作業系統儲存管理之分段儲存

2021-07-31 00:26:11 字數 811 閱讀 5966

從固定分割槽到動態分割槽,從分割槽方式到分頁方式發展提高了主存空間利用率。

而分段儲存管理的引入,則滿足使用者(程式設計師)程式設計和使用上的要求,這些要求其它各種儲存管理技術難以滿足。

在分頁式儲存管理中,頁的劃分——即邏輯位址劃分為頁號和單元號是使用者不可見的,連續的使用者位址空間將根據頁框架(塊)的大小自動分頁;而在分段式儲存管理中,位址結構是使用者可見的,即使用者知道邏輯位址如何劃分為段號和單元號,使用者在程式設計時,每個段的最大長度受到位址結構的限制,進一步,每乙個程式中允許的最多段數也可能受到限制.

例如,pdp-11/45的段址結構為:段號佔3位,單元號佔 13 位,也就是乙個作業最多可分8段,每段的長度可達 8k 位元組。

類似於頁表及其作業表,段表及其作業表如下所示:

流程圖如下所示:

段表表目實際上起到了基址/限長暫存器的作用。作業執行時通過段表可將邏輯位址轉換成絕對位址。由於每個作業都有自己的段表,位址轉換應按各自的段表進行。類似於分頁儲存器那樣,分段儲存器也設定乙個段表控制暫存器,用來存放當前占用處理器的作業的段表始址和長度。

在分段式儲存管理中,由於每個作業可以有幾個段組成,所以可以實現段的共享,以存放共享的程式和常數。所謂段的共享,事實上就是共享分割槽,為此計算機系統要提供多對基址/限長暫存器。於是,幾道作業共享的例行程式就可放在乙個公共的分割槽中,只要讓各道的共享部分有相同的基址 /限長值就行了。

作業系統儲存管理之分段儲存

而程式還存在一種分段結構 乙個程式由若干程式段 模組 組成,例如由乙個主程式段 若干子程式段 陣列段和工作區段所組成 每個段都從 0 開始編址,每個段都有模組名,且具有完整的邏輯意義。段與段之間的位址不連續,而段內位址是連續的。使用者程式中可用符號形式 指出段名和入口 呼叫某段的功能,程式在編譯或彙...

作業系統13 儲存器管理之分頁儲存

四.位址變換機構 五.訪問記憶體的有效時間 六.兩級和多級頁表 七.反置頁表 八.參考資料 連續儲存會產生許多的 碎片 雖然 緊湊 方法可以將許多碎片拼接可以的大塊空間,但需為之很大的開銷。如果允許將乙個程序直接分散的裝入到許多不相鄰的分割槽中,便可以充分利用記憶體空間。基於這一思想,產生了離散分配...

作業系統儲存管理

分段單元 分頁單元 邏輯位址 段基址 32位偏移量 線性位址 虛擬位址,0 4gb 實體地址 6個段暫存器 cs code段 ss stack段 ds data段 es fs gs 通用段暫存器 16位的段選擇符就存放在以上段暫存器中 線性位址 4gb 被分成以固定長度為單位的組,即頁。頁內部連續的...