操作系統——段式存儲管理、段頁式存儲管理


一、段式存儲管理

1、分段

進程的地址空間:按照程序自身的邏輯關系划分為若干個段,每個段都有一個段名(在低級語言中,程序員使用段名來編程),每段從0開始編址。

內存分配規則:以段為單位進行分配,每個段在內存中占連續空間,但各段之間可以不相鄰

 分段系統的邏輯地址結構由段號(段名)段內地址(段內偏移量)所組成。

 

 

2、段表

每一個程序設置一個段表,放在內存,屬於進程的現場信息

3、地址變換

 

4、段的保護

越界中斷處理
      進程在執行過程中,有時需要擴大分段,如數據段。由於要訪問的地址超出原有的段長,所以發越界中斷。操作系統處理中斷時 ,首先判斷該段的“擴充位”,如可擴充,則增加段的長度;否則按出錯處理

缺段中斷處理

檢查內存中是否有足夠的空閑空間
   ①若有,則裝入該段,修改有關數據結構,中斷返回
   ②若沒有,檢查內存中空閑區的總和是否滿足要求,是則應采用緊縮技術,轉 ① ;否則,淘汰一(些)段,轉①

5、段的動態連接

為何要進行段的動態鏈接?
大型程序由若干程序段,若干數據段組成
進程的某些程序段在進程運行期間可能根本不用
互斥執行的程序段沒有必要同時駐留內存
有些程序段執行一次后不再用到
靜態鏈接花費時間,浪費空間

在一個程序運行開始時,只將主程序段裝配好並調入主存。其它各段的裝配是在主程序段運行過程中逐步進行的。每當需要調用一個新段時,再將這個新段裝配好,並與主程序段連接。
頁式存儲管理:難以完成動態鏈接,其邏輯地址是一維的

 

6、信息的保護與共享

這里主要與頁式存儲管理進行一下對比。

分段比分頁更容易實現信息的共享和保護。

 

 純代碼舉例:比如,有一個代碼段只是簡單的輸出“Hello World!”。

7、頁式系統與段式系統的對比

補充:

段長是可變的,頁的大小是固定的。

分段存儲:段內地址W字段溢出將產生越界中斷。

分頁存儲:段內地址W字段溢出會自動加入到頁號中。

8、總結

 

二、段頁式存儲管理

1、分頁、分段的有缺點分析

 

2、基本思想

用戶程序划分:按段式划分(對用戶來講,按段的邏輯關系進行划分;對系統講,按頁划分每一段)

邏輯地址:

 內存划分:按頁式存儲管理方案
 內存分配:以頁為單位進行分配

 

3、邏輯地址結構

 

4、段表頁表

5、地址轉換

6、評價

優點:
保留了分段和請求分頁存儲管理的全部優點
提供了虛存空間,能更有效利用主存

缺點:
增加了硬件成本
系統復雜度較大

7、總結

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM