6.1 存儲器的基本概念 主存儲器管理仍然是今天操作系統(tǒng)十分重要的內(nèi)容,;能否合理而有效的使用主存,,在很大成度上反映了操作系統(tǒng)的性能,并直接影響到整個計算機(jī)系統(tǒng)作用的發(fā)揮,。 6.1.1 存儲器的層次 目前在許多計算機(jī)系統(tǒng)中,,采用三級存儲器結(jié)構(gòu),,即高速緩沖存儲器、主存儲器和外部存儲器,。 三級存儲器的比較 從高速緩存到外存,其容量愈來愈大,,一般每級之間相差幾個數(shù)量級,。而訪問數(shù)據(jù)的速度則愈來愈慢,價格也愈來愈便宜,。 為了弄清什么是重定位,,我們首先介紹相對地址,、絕對地址和邏輯地址空間、存儲空間的概念,。 1.邏輯地址空間 名空間 用戶在編程或編輯源程序時,,不考慮作業(yè)之間的存儲空間分配,,而是將其源程序存于程序員建立的符號名字空間(簡稱名空間)內(nèi),如圖6-1(a)所示,。 邏輯地址空間 當(dāng)對源程序進(jìn)行編譯時,,編譯后一個目標(biāo)程序所限定的地址范圍稱為該作業(yè)的邏輯地址空間。
圖6-1 名空間、地址空間和存儲空間 如圖6-1(b)所示,。 2.物理空間 所謂物理空間(也稱存儲空間)是指主存中物理單元的集合,。這些單元的編號稱為物理地址或絕對地址。因此,,物理空間的大小,,是由主存的實際容量決定的。如圖6-1(c),。 3.地址重定位 如圖6-2(a)是一個簡單的程序段,。第一條指令是把數(shù)據(jù)A取到1號寄存器中,,第二條指令是把數(shù)據(jù)B同1號寄存中的內(nèi)容相加,結(jié)果放在1號寄存器中,,第三 條指令是把1號寄存器的內(nèi)容送入相對地址10中去,。如果這個程序原封不動地裝入主存自100號單元起的存儲區(qū)中(如圖6-2(b)),就無法正確執(zhí)行。 地址重定位 由于一個作業(yè)裝入到與其地址空間不一致的存儲空間所引起的,對有關(guān)地址部分的調(diào)整過程稱為地址的重定位,。這個調(diào)整過程就是把作業(yè)地址空間中使用的邏輯地址變換成主存中物理地址的過程,。這種地址變換也稱為地址映射.
圖6-2 程序裝入舉例 4.重定位類型 根據(jù)對地址變換進(jìn)行的時間及采用的技術(shù)手段的不同,,可把地址重定位分為靜態(tài)重定位和動態(tài)重定位兩類。 靜態(tài)重定位 (1)含義 靜態(tài)重定位是在程序運行之前由裝配程序完成的。例圖5-2(a)中的情況,,只需將與地址有關(guān)的項都加上100就可以了,,見圖5-2(c)。 (2)優(yōu)點 它的主要優(yōu)點是,,無需增加硬件地址變換機(jī)構(gòu),,因而可在一般計算機(jī)上實現(xiàn)。 (3)缺點 主要缺點有: 動態(tài)重定位 (1)含義 動態(tài)重定位是在程序執(zhí)行過程中由硬件地址變換機(jī)構(gòu)實現(xiàn)的。 (2)例子 最簡單的辦法是利用一個重定位寄存器,。該寄存器的值由調(diào)度程序根據(jù)作業(yè)分配到的存儲空間的起始地址來設(shè)定,。在具有這種地址變換機(jī)構(gòu)的計算機(jī)系統(tǒng)中,當(dāng)作業(yè) 執(zhí)行時,,不是根據(jù)CPU給出的邏輯地址去訪問主存,,而是將邏輯地址與重定位寄存器中的內(nèi)容相加后得到的地址作為訪問主存的地址。其地址變換過程 如圖6-3所示 重定位類型
圖6-3 動態(tài)重定位 (3)動態(tài)重定位的主要優(yōu)點有: ①用戶作業(yè)不要求分配連續(xù)的存儲空間,。 (4)動態(tài)重定位的主要缺點有: ①需要附加的硬件支持,。 |
|