引入分頁記憶體管理方式的目的是提高記憶體空間利用率,而引入分段記憶體管理的目的是滿足程式設計師在程式設計和使用上的多方面要求:
方便程式設計:使用者可以把自己的作業按照邏輯關係劃分為若干個段,而且每乙個段的位址都是從0開始編址的,並且具有自己的段名和長度。邏輯位址是由段名(段號)和段內偏移量(段內位址)組成的。
資訊共享:在實現對程式和資料的共享時,是以資訊的邏輯單位為基礎的,而段恰恰是這樣的邏輯單位(頁只是存放資訊的物理塊,並無實際的含義)。
資訊保護:在實現對資訊的保護時,也是以資訊的邏輯單位為基礎的。
動態增長:在實際的應用中,有些段(資料段)會隨著程式的執行而不斷的動態增長,而且事前不知道資料段會增長到多大。
在執行時動態鏈結中,主程式會在執行過程中呼叫某段時才將該段調入記憶體並進行鏈結。可見執行時動態鏈結也要求以段作為記憶體管理單位。
(1)位址變換機構自動將邏輯位址分為段號和段內位址。
(2)將段號與段表長度進行比較,若段號大於等於段表長度,則觸發越界中斷。
(3)以段號為索引檢索段表獲取段表項。段表項的位置 =段表始址+(段號*段表項長度)。
(4)從獲取的段表項中得到分段基址和分段的段長。
(5)將段內位址與段長進行比較,若段內位址大於段長,則觸發越界中斷。
(6)將段基址與段內位址相加即可得到實體地址。
頁是資訊的物理單位,分頁的目的是為了消除零頭(碎片),進而提高記憶體空間利用率。分頁僅僅系統管理記憶體的需要,而不是使用者的需要;段是資訊的邏輯單位,它能夠更好的滿足使用者的需求。
頁的大小是由系統決定的;而段的大小取決於使用者編寫的程式。
分頁的邏輯位址空間是一維的,程式設計師在程式設計時只需利用乙個記憶符(這個記憶符是啥我暫時不太了解)即可表示乙個位址;段的邏輯位址空間是二維的,程式設計師在程式設計時需利用段名和段內位址才可表示乙個位址。
作業系統 分段式記憶體管理
從計算機的角度出發,提高了記憶體的利用率,提公升了計算機的效能,以分頁通過硬體機制實現,對使用者透明 考慮到使用者和程式設計師,已滿足方便程式設計 資訊保護和共享 動態增長 動態鏈結等多方面需求 分段式記憶體管理 分段 按照使用者程序中的自然段劃分邏輯空間,例如 使用者的程序由主程式 兩個子程式 棧...
作業系統之分段式記憶體管理1
1.分頁作業系統的缺點?1 頁表太大,我們用多級頁表克服了。2 多級頁表速度慢,我們用tlb翻譯快表解決了絕大部分。3 頁面來回更換所帶來的缺頁中斷的問題,我們用各類頁面更換演算法解決了大部分。4 內部碎片相對於交換系統的外部碎片,還是可以忍受的。最大的缺陷是 共享困難。2.分段管理系統?3.邏輯分...
基本分段和段頁式記憶體管理
分段儲存管理方式的引入是為了滿足使用者的要求。方便程式設計 通常乙個作業是由多個程式段和資料段組成的,一般情況下,使用者希望按邏輯關係對作業分段,並能根據名字來訪問程式段和資料段。資訊共享 資訊保護 動態增長 實際應用中,某些段 資料段 會不斷增長,前面的儲存管理方法均難以實現。為什麼分段中整個作業...