(1)靜態(tài)重定位
在裝入一個(gè)作業(yè)時(shí),把作業(yè)中的指令地址和數(shù)據(jù)地址全部轉(zhuǎn)換成絕對(duì)地址。這種轉(zhuǎn)換工作是在 作業(yè)開始前集中完成 的,在作業(yè)執(zhí)行過程中無需再進(jìn)行地址轉(zhuǎn)換。所以稱為“靜態(tài)重定位”。
(2)動(dòng)態(tài)重定位
在裝入一個(gè)作業(yè)時(shí),不進(jìn)行地址轉(zhuǎn)換,而是直接把作業(yè)裝到分配的主區(qū)域中。在作業(yè)執(zhí)行過程中,每當(dāng)執(zhí)行一條指令時(shí)都由硬件的地址轉(zhuǎn)換機(jī)構(gòu)轉(zhuǎn)換成絕對(duì)地址。這種方式的地址轉(zhuǎn)換是在 作業(yè)執(zhí)行時(shí)動(dòng)態(tài)完成 的,所以稱為動(dòng)態(tài)重定位。
動(dòng)態(tài)重定位由軟件(操作系統(tǒng))和硬件(地址轉(zhuǎn)換機(jī)構(gòu))相互配合來實(shí)現(xiàn)。動(dòng)態(tài)重定位的系統(tǒng)支持“程序浮動(dòng)”,而靜態(tài)重定位則不能。
二、固定分區(qū)存儲(chǔ)管理( 領(lǐng)會(huì) )
分區(qū)存儲(chǔ)管理是把存儲(chǔ)器中的用戶區(qū)作為一個(gè)連續(xù)區(qū)或分成若干連續(xù)區(qū)進(jìn)行管理。早先使用一個(gè)分區(qū)的存儲(chǔ)管理,后發(fā)展成多分區(qū)的存儲(chǔ)管理。多個(gè)分區(qū)的管理可采用固定分區(qū)方式和可變分區(qū)方式。
1、固定分區(qū)存儲(chǔ)管理的原理
固定分區(qū) 的意思就是指主存空間劃分成若干連續(xù)區(qū)后,這些分區(qū)的 大小和個(gè)數(shù) 就 固定 不變。
固定分區(qū)管理利用一張“ 主存分配表 ”說明各分區(qū)的情況。裝入和結(jié)束作業(yè)均通過這個(gè)分區(qū)表來記錄分區(qū)使用的變化情況。
2、如何實(shí)現(xiàn)存儲(chǔ)保護(hù)
固定分區(qū)管理 可采用 靜態(tài)重定位 的方式裝入作業(yè)。裝入程序把作業(yè)中的邏輯地址轉(zhuǎn)換為絕對(duì)地址。并檢查絕對(duì)地址是否在指定(裝入)的分區(qū)內(nèi),如果是,就裝入這個(gè)作業(yè)。否則就不能裝入。如果裝入主存分區(qū)的作業(yè)占用處理器時(shí)(注意,是運(yùn)行時(shí)),進(jìn)程調(diào)度程序(不是裝入程序了)必須把作業(yè)所在分區(qū)的上下限地址存入“下限寄存器”和“上限寄存器”中,這樣可以在指令執(zhí)行中判斷其所用到的絕對(duì)地址是否越界,達(dá)到存儲(chǔ)保護(hù)的目的。
3、怎樣 提高主存空間的利用率 這里有幾種辦法:
(1)分區(qū)按大小順序排列,這樣可以使作業(yè)總是先使用滿足要求的最小分區(qū)。
(2)根據(jù)經(jīng)常出現(xiàn)的作業(yè)大小和頻率劃分分區(qū)。
(3)按作業(yè)的對(duì)主存空間的需求量排成多個(gè)隊(duì)列,規(guī)定隊(duì)列與分區(qū)的對(duì)應(yīng)關(guān)系。也就是說多大的作業(yè)只能放在多大的分區(qū)里,就算有更大的分區(qū)空著,也不許他進(jìn)入。
三、可變分區(qū)的管理( 領(lǐng)會(huì) )
可變就是指分區(qū)的 大小和位置不是固定 的,而是根據(jù)作業(yè)要求的主存量來分配分區(qū)的大小。
1、主存的分配和去配(回收)
在系統(tǒng)初始化時(shí),主存除了操作系統(tǒng)所占部分外,整個(gè)用戶區(qū)是一個(gè)大的空閑區(qū),可以按作業(yè)需要的空間大小順序分配空閑區(qū)直到不夠時(shí)為止。
當(dāng)作業(yè)結(jié)束時(shí),它的占用分區(qū)被收回。這個(gè)空閑區(qū)又可以根據(jù)新作業(yè)的大小重新用于分配,所以主存中的已占分區(qū)和空閑區(qū)的數(shù)目和大小都是在變化的?梢杂脙蓮埍怼耙逊峙鋮^(qū)表”和“空閑區(qū)表”來記錄和管理。
2、常用的分配算法
最先適應(yīng)分配算法 :簡單地說,就是在分區(qū)表中順序查找,找到夠大的空閑區(qū)就分配。但是這樣的分配算法可能形成許多不連續(xù)的空閑區(qū),造成許多“碎片”,使主存空間利用率降低。
最優(yōu)適應(yīng)分配算法 :這種算法總是挑選一個(gè)能滿足作業(yè)要求的最小空閑區(qū)。但是這種算法可能形成一些極小的空閑區(qū),以致無法使用,這也會(huì)影響主存利用率。
最壞適應(yīng)分配算法 :這種算法和上面的正好相反,它總是挑一個(gè)最大的空閑區(qū)分給作業(yè)使用,使剩下的空間不至于太小。
3、地址轉(zhuǎn)換與存儲(chǔ)保護(hù)
采用 可變分區(qū)方式管理 時(shí),一般均采用 動(dòng)態(tài)重定位 方式裝入作業(yè)。也就是每讀一條指令,都要變換一次地址。變換要靠硬件支持,主要是 兩個(gè)寄存器 : 基址 寄存器和 限長 寄存器,限長寄存器存放作業(yè)所占分區(qū)的長度,基址寄存器則存放作業(yè)所占分區(qū)的起始地址,這兩個(gè)值確定了一個(gè)分區(qū)的位置和大小。
轉(zhuǎn)換時(shí)根據(jù)邏輯地址與限長值比較,如果不有超過這個(gè)值,表示訪問地址合法,再加上基址寄存器中的值就得到了絕對(duì)地址了,否則形成“地址越界”中斷。達(dá)到存儲(chǔ)保護(hù)的目的。
對(duì)于共享程序,則硬件提供兩組限長寄存器和基址寄存器。訪問時(shí)對(duì)訪問區(qū)享區(qū)和作業(yè)區(qū)的地址分別進(jìn)行轉(zhuǎn)換。
4、移動(dòng)技術(shù)的應(yīng)用
移動(dòng)技術(shù) 要“移動(dòng)”的東東就是主存空間中的作業(yè)。把某個(gè)作業(yè)移到另一處主存空間去(在磁盤整理中我們應(yīng)用的也是類似的移動(dòng)技術(shù)),這樣的最大好處就是可以合并一些空閑區(qū)。
但是移動(dòng)技術(shù)的應(yīng)用也要注意以下問題。
移動(dòng)會(huì)增加系統(tǒng)開銷。所以要盡量減少移動(dòng)。
移動(dòng)是有條件的,如果作業(yè)在執(zhí)行過程中正等待與外圍設(shè)備傳輸信息,就不能移動(dòng)。因此在移動(dòng)時(shí)首先要判定該作業(yè)是否與外設(shè)交換信息。
相關(guān)推薦:2010年自考數(shù)據(jù)庫及其應(yīng)用重點(diǎn)知識(shí)講解匯總