页式虚拟存储管理
頁式存儲的基本原理
? ? ??將程序的邏輯地址空間劃分為固定大小的頁(page),而物理內存劃分為同樣大小的頁框(pageframe)。程序加載時,可將任意一頁放人內存中任意一個頁框,這些頁框不必連續,從而實現了離散分配。也就是把內存等分成N份,存放運行的程序時,按分成的快放置即可。但放置時要考慮主存里哪些塊已經被占用,這個用主存分配表(位示圖)來表示。
頁表
? ? ??分頁式存儲器的邏輯地址由兩部分組成:頁號和業內地址頁表和地址轉換
? ? ??系統為每個程序都建立一張頁表,用于記錄程序的邏輯頁面與內存物理頁面之間的對應關系。
多級頁表
? ? ??二級頁表如下圖所示,一級頁表指出二級頁表的存放地址,二級頁表指出頁的存放地址。
?
地址映射
?
? ? ??絕對地址=塊號*塊長 + 業內地址
?
虛擬存儲器
? ? ??根據程序執行的互斥性和局部性兩個特點,我們允許作業裝入的時候只裝入一部分,另一部分放在磁盤上,當需要的時候再裝入到主存,這樣以來,在一個小的主存空間就可以運行一個比它大的作業。同時,用戶編程的時候也擺脫了一定要編寫小于主存容量的作業的限制。也就是說,用戶的邏輯地址空間可以比主存的絕對地址空間要大。對用戶來說,好象計算機系統具有一個容量很大的主存儲器,稱為“虛擬存儲器”。
頁式虛擬存儲器的實現
? ? ??把未執行的程序放在輔助存儲器中。
?
調度算法
<1> 先進先出調度算法
? ? ??先進先出調度算法根據頁面進入內存的時間先后選擇淘汰頁面,先進入內存的頁面先淘汰,后進入內存的后淘汰。本算法實現時需要將頁面按進入內存的時間先后組成一個隊列,每次調度隊首頁面予以淘汰。
?
<2>最近最少調度算法
? ? ??先進先出調度算法沒有考慮頁面的使用情況,大多數情況下性能不佳。根據程序執行的局部性特點,程序一旦訪問了某些代碼和數據,則在一段時間內會經常訪問他們,因此最近最少用調度在選擇淘汰頁面時會考慮頁面最近的使用,總是選擇在最近一段時間以來最少使用的頁面予以淘汰。算法實現時需要為每個頁面設置數據結構記錄頁面自上次訪問以來所經歷的時間。
?
<3>最近最不常用調度算法
? ? ??由于程序設計中經常使用循環結構,根據程序執行的局部性特點,可以設想在一段時間內經常被訪問的代碼和數據在將來也會經常被訪問,顯然這樣的頁面不應該被淘汰。最近最不常用調度算法總是根據一段時間內頁面的訪問次數來選擇淘汰頁面,每次淘汰訪問次數最少的頁面。算法實現時需要為每個頁面設置計數器,記錄訪問次數。計數器由硬件或操作系統自動定時清零。
總結
- 上一篇: 操作系统虚拟存储管理实验
- 下一篇: SAP 之定义工厂(Plant)