1.指的是一段連續的內存空間
2.段式內存管理-程序的各個部分相對獨立(數據段,代碼段),早期x86處理器沒法經過一個寄存器訪問全部內存單元,解決早期程序運行的重定位問題
段式內存管理的應用,在x86系列的處理器中,硬件對段式內存管理進行了直接支持;另外,段式內存管理也可使用純軟件實現,內存單元地址=段首地址+段內偏移地址算法
1.數組的本質:一片連續的內存
2.數組名:數組的起始內存地址
3.數組的元素的訪問
4.第i個元素
Q:操做系統只使用段式內存管理是否足夠?--需求
軟硬件技術的發展
1.硬件技術:計算器部件獨立化(硬件接口相同,可任意組裝),計算機配置差別化(各部件硬件參數不一樣)
2.軟件技術:應用程序處理的問題愈來愈複雜,應用程序運行須要的資源愈來愈多(物理內存可能沒法知足)
此時出現的問題是,當應用程序的規模越大時,會致使多數時候沒法所有加載進入內存,會出現問題,須要提出方法進行解決數組
只將當前程序運行須要的段加載進內存,當某個段再也不須要使用時,當即從內存中移除。可是按段加載會帶來一些其它的問題,好比段的大小不肯定,可能大於實際的物理內存,段加載須要具體的長度信息,致使效率不高。
由此提出的新的解決方法-內存分頁
1.頁指的是固定大小的內存片(4KB)
2.每個內存由多個頁組成
3.頁是進行內存管理的基本單位ide
1.實模式下所使用的是物理地址空間
2.保護模式下所使用的是偏移地址空間
3.不一樣應用程序所使用的內存空間的分離採用分頁管理
4.程序運行須要的內存大於實際物理內存時分頁加載
進階虛擬存儲技術(內存分頁的意義)
虛擬內存空間(邏輯地址):程序在執行時內部使用的內存空間
物理內存空間(物理地址):物理機器所配置的實際內存空間,邏輯地址須要進行轉換才能獲得對應的物理地址操作系統
地址=頁號+頁內偏移
邏輯地址=邏輯頁號+頁內偏移
物理地址=物理頁號+頁內偏移
地址轉換時僅變動頁號便可,頁內偏移不變
邏輯地址到物理地址的映射
頁式內存管理中的關鍵操做
1.頁請求-訪問一個邏輯地址時,對應的頁不在內存中,從外存中將目標頁加到內存中,以後更新頁表
2.頁交換-頁請求時發現物理內存不足,須要將暫時不用的頁移除,首先決定並選擇須要移除的頁;將選中頁中的全部數據寫入外存,更新頁表,從新進行頁請求3d
1.內存分段可以解決必定問題,但沒法保證程序的移植性
2.根據程序運行的局部性原理,可進一步對內存進行分頁
3.頁指的是固定大小的內存片(4KB)
4.頁的引入使得程序的邏輯地址於內存的物理地址完全分離
5.操做系統的內存管理是以頁爲基本單位完成的blog
經過以前的介紹出現一些須要注意的問題
1.操做系統如何管理實際的物理內存
2.頁表與不一樣任務有怎樣的關係
3.頁表對任務的意義是什麼
4.頁表交換時如何選擇須要替換的內存頁
5.頁表具體是如何構成的接口
頁框與頁面
頁框:物理內存空間中的頁
頁面:邏輯內存空間中的頁
操做系統對物理內存的管理-首先操做系統必須知道物理內存的使用狀況,而後創建結構對物理內存進行管理,結構記錄包括頁框是否可用,被誰使用;最後爲具體的應用程序分配頁表內存
每一個任務都有專屬的頁表,頁表是任務上下文的一部分資源
1.頁表機制可以保證任務沒法意外的訪問或破壞其它任務的內存
2.頁表是虛擬內存空間與物理內存空間的分界線
3.由於頁表的存在,各個任務才具有相同且獨立的內存空間
4.頁表是虛擬內存通往物理內存的惟一通道it
在進行替換時的原則是:對再也不使用的內存頁進行替換
1.FIFO頁交換算法-將最早進入內存的頁移除
2.LRU頁交換算法-將當前使用最少的頁從內存移出
FIFO頁交換算法原理
LRU頁交換原理
LRU頁交換算法原理-訪問計數的更新方式
1.每一個時間週期將全部頁框的訪問計數減1
2.當某個頁面被訪問時,RW將被訪問計數加1
3.訪問計數最小的頁面是最近未被使用的頁
1.頁表的本質是一個映射表
2.虛擬內存空間的每一頁映射到一個頁框
3.頁表能夠看做作一維整形數組
單級頁表
1.每個任務都有頁表
2.單級頁表大小固定
3.根據程序雲的局部性原理-多數狀況下,頁表爲稀疏狀態,單級頁表會浪費大量內存資源
二級頁表
1.把頁號分爲兩段:頁目錄+二級頁號
2.若是下級頁表的全部表項爲空,那麼頁目錄爲空
二級頁表示例-假設當前須要訪問虛擬頁爲0x52,則,頁目錄爲0x5,二級頁號爲0x2。因此:對應的頁框號爲0x31
1.操做系統經過頁框表對物理內存進行管理2.每一個任務都有本身專屬的頁表,任務經過頁表使用物理內存3.須要頁置換時,經過規則選擇短時間內再也不使用的頁進行置換4.單級頁表可以快速映射對應的頁框,但形成內存浪費5.二級頁表將頁號分爲兩部分:頁目錄+二級頁號6.二級頁表須要經過一次尋址才能映射到對應的頁框