6.1 儲存空間的基本概念
主儲存空間管理仍然是今天作業系統十分重要的內容;能否合理而有效使用主存,在很大成度上反映了作業系統的效能,並直接影響到整個電腦系統作用的發揮。
6.1.1 儲存空間的層次
目前在許多電腦系統中,採用三級儲存空間結構,即高速緩衝儲存空間、主儲存空間和外部儲存空間。
三級儲存空間的比較
從快取到外存,其容量愈來愈大,一般每級之間相差幾個數量級。而訪問資料的速度則愈來愈慢,價格也愈來愈便宜。
6.1.2 地址重定位
為了弄清什麼是重定位,我們首先介紹相對位址、絕對位址和邏輯地址空間、儲存空間的概念。
1.邏輯地址空間
名空間
使用者在編程或編輯來源程式時,不考慮作業之間的儲存空間分配,而是將其來源程式存於程式員建立的符號名字空間(簡稱名空間)內,6-1(a)所示。
邏輯地址空間
當對來源程式進行編譯時間,編譯後一個目標程式所限定的位址範圍稱為該作業的邏輯地址空間。
圖6-1 名空間、地址空間和儲存空間
6-1(b)所示。
2.物理空間
所謂物理空間(也稱儲存空間)是指主存中物理單元的集合。這些單元的編號稱為物理地址或絕對位址。因此,物理空間的大小,是由主存的實際容量決定的。6-1(c)。
3.地址重定位
需要地址重定位的例子
6-2(a)是一個簡單的程式段。第一條指令是把資料A取到1號寄存器中,第二條指令是把資料B同1號寄存中的內容相加,結果放在1號寄存器中,第三 條指令是把1號寄存器的內容送入相對位址10中去。如果這個程式原封不動地裝入主存自100號單元起的儲存區中(6-2(b)),就無法正確執行。
地址重定位
由於一個作業裝入到與其地址空間不一致的儲存空間所引起的,對有關地址部分的調整過程稱為地址的重定位。這個調整過程就是把作業地址空間中使用的邏輯地址變換成主存中物理地址的過程。這種地址變換也稱為地址映射.
圖6-2 程式裝入舉例
4.重定位類型
根據對地址變換進行的時間及採用的技術手段的不同,可把地址重定位分為靜態重定位和動態重定位兩類。
靜態重定位
(1)含義
靜態重定位是在程式運行之前由裝配程式完成的。例圖5-2(a)中的情況,只需將與地址有關的項都加上100就可以了,見圖5-2(c)。
(2)優點
它的主要優點是,無需增加硬體地址變換機構,因而可在一般電腦上實現。
(3)缺點
主要缺點有:
①要求給每個作業分配一個連續的儲存空間,且在作業的整個執行期間不能再移動,因而也就不能實現重新分配主存。
②使用者必須事先確定所需的儲存量,若所需的儲存量超過可用儲存空間時,使用者必須考慮覆蓋結構。
③使用者之間難以共用主存中的同一程式副本。
動態重定位
(1)含義
動態重定位是在程式執行過程中由硬體地址變換機構實現的。
(2)例子
最簡單的辦法是利用一個重定位寄存器。該寄存器的值由發送器根據作業分配到的儲存空間的起始地址來設定。在具有這種地址變換機構的電腦系統中,當作業 執行時,不是根據CPU給出的邏輯地址去訪問主存,而是將邏輯地址與重定位寄存器中的內容相加後得到的地址作為訪問主存的地址。其地址變換過程
6-3所示 重定位類型
圖6-3 動態重定位
(3)動態重定位的主要優點有:
①使用者作業不要求分配連續的儲存空間。
②使用者作業在執行過程中,可以動態申請儲存空間和在主存中移動。
③有利於程式段的共用。
(4)動態重定位的主要缺點有:
①需要附加的硬體支援。
②實現儲存管理的軟體演算法比較複雜。