【計算機操作系統】操作系統--分段存儲管理方式
來源:程序員人生 發布時間:2017-02-05 13:27:23 閱讀次數:3159次
分段存儲管理方式的引入
分段存儲管理方式的引入是為了滿足用戶的要求。
- 方便編程:通常1個作業是由多個程序段和數據段組成的,1般情況下,用戶希望按邏輯關系對作業分段,并能根據名字來訪問程序段和數據段。
-
信息同享:
- 同享是以信息的邏輯單位為基礎的。頁是存儲信息的物理單位,段卻是信息的邏輯單位。
- 頁式管理中地址空間是1維的,主程序,子程序都順序排列,同享公用子程序比較困難,1個同享進程可能需要幾10個頁面。

-
信息保護:
- 頁式管理中,1個頁面中可能裝有 2 個不同的子程序段的指令代碼,不能通過頁面同享實現同享1個邏輯上完全的子程序或數據塊。
- 段式管理中,可以以信息的邏輯單位進行保護。
- 動態增長:實際利用中,某些段(數據段)會不斷增長,前面的存儲管理方法均難以實現。
- 動態鏈接:動態鏈接在程序運行時才把主程序和要用到的目標程序(程序段)鏈接起來。
分段系統的空間劃分
將用戶作業的邏輯地址空間劃分成若干個大小不等的段(由用戶根據邏輯信息的相對完全來劃分) 。各段有段名(經常使用段號代替) ,首地址為 0。

利用段表實現地址映照

段表
段表記錄了段與內存位置的對應關系。
段表保存在內存中。
段表的基址及長度由段表寄存器給出。

訪問1個字節的數據/指令需訪問內存兩次 (段表1次,內存1次)。
邏輯地址由段和段內地址組成。


在為作業分配內存時以段為單位,分配1段連續的物理地址空間,段間沒必要連續。
分頁管理中,作業地址空間是1維的,邏輯地址是的線性地址。
分段管理中,全部作業的地址空間由因而分成多個段,因此是2維的,其邏輯地址由段號和段內地址所組成。
地址變換機構
系統將邏輯地址中的段號 S 與段表長度 TL 進行比較。
- 若 S>TL,表示段號太大,是訪問越界,因而產生越界中斷信號。
- 若未越界,則根據段表的始址和該段的段號,計算出該段對應段表項的位置,從中讀出該段在內存的始址。
再檢查段內地址 d,是不是超過該段的段長 SL。
- 若超過,即 d >SL,一樣發出越界中斷信號。
- 若未越界,則將該段的基址與段內地址 d 相加,便可得到要訪問的內存物理地址。




信息同享
分段系統的1個突出優點,是易于實現段的同享,對段的保護也10分簡單。
例:1個多用戶系統,可同時接納 40 個用戶,都履行1個文本編輯程序 (Text Editor)。如果文本編輯程序有 160KB 的代碼和另外 40 KB 的數據區,如果不同享,則總共需有 8 MB 的內存空間來支持 40 個用戶。
可重入代碼(Reentrant Code) 又稱為“純代碼”(PureCode),是1種允許多個進程同時訪問的代碼。為使各個進程所履行的代碼完全相同,絕對不允許可重入代碼在履行中有任何改變。因此,可重入代碼是1種不允許任何進程對它進行修改的代碼。
如果 160 KB 的代碼是可重入的,則不管是在分頁系統還是在分段系統中,該代碼都能被同享。
在內存中只需保存1份文本編輯程序的副本,此時所需的內存空間僅為 1760 KB(40×40+160),而不是(160+40)×40= 8000 KB 。
分頁系統的同享

分段系統的同享
在分段系統中,實現同享容易很多,只需在每一個進程的段表中為文本編輯程序設置1個段表項。

分頁與分段的主要區分
- 頁是信息的物理單位,分頁僅僅是由于系統管理的需要,對用戶透明的。段是信息的邏輯單位,分段的目的是為了能更好的滿足用戶的需要。
- 頁的大小固定且由系統肯定,把邏輯地址劃分為頁號和頁內地址兩部份。段的長度卻不固定,決定于用戶所編寫的程序。
- 分頁的作業地址空間是1維的,分段的作業地址空間是2維的。
- 頁和段都有存儲保護機制。但存取權限不同:段有讀、寫和履行3種權限;而頁只有讀和寫兩種權限。

2者優點的結合:段頁式存儲管理
段頁式存儲管理的基本原理
- 段頁式存儲管理是分段和分頁原理的結合,即先將用戶程序分成若干個段(段式) ,并為每個段賦1個段名,再把每一個段分成若干個頁(頁式) 。
- 其地址結構由段號、段內頁號、及頁內位移3部份所組成。

- 系統中設段表和頁表,均寄存于內存中。讀1字節的指令或數據須訪問內存3次。為提高履行速度可增設高速緩沖寄存器。
- 每一個進程1張段表,每一個段1張頁表。
- 段表含段號、頁表始址和頁表長度。頁表含頁號和塊號。
利用段表和頁表實現地址映照

段頁式存儲管理的地址變換
- 從 PCB 中取出段表始址和段表長度,裝入段表寄存器。
- 將段號與段表長度進行比較,若段號大于或等于段表長度,產生越界中斷。
- 利用段表始址與段號得到該段表項在段表中的位置。取出該段的頁表始址和頁表長度。
- 將頁號與頁表長度進行比較,若頁號大于或等于頁表長度,產生越界中斷。
- 利用頁表始址與頁號得到該頁表項在頁表中的位置。
- 取出該頁的物理塊號,與頁內地址拼接得到實際的物理地址。

轉載自:楊森源
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈