一、虛擬存儲器
程序存在着局部性原理,時間局部性與空間局部性。時間局部性是指某條指令執行,不久之後可能再次執行。空間局部性是指一個存儲單元訪問後,其相鄰單元不久之後可能會訪問。
根據局部性原理,我們可以知道,在運行進程時,不必將所有的數據載入內存,可以將部分先載入內存,等運行需要時再動態載入。虛擬存儲器存在着多次性、對換性和虛擬性的重要特徵。
二、分頁請求
2.1請求頁表機制
(1) 狀態位 P:用於指示該頁是否已調入內存,供程序訪問時參考。
(2) 訪問字段 A:用於記錄本頁在一段時間內被訪問的次數,或記錄本頁最近已有多長 時間未被訪問,供選擇換出頁面時參考。
(3) 修改位 M:表示該頁在調入內存後是否被修改過。由於內存中的每一頁都在外存上 保留一份副本,因此,若未被修改,在置換該頁時就不需再將該頁寫回到外存上,以減少 系統的開銷和啓動磁盤的次數;若已被修改,則必須將該頁重寫到外存上,以保證外存中 所保留的始終是最新副本。簡言之,M 位供置換頁面時參考。
(4) 外存地址:用於指出該頁在外存上的地址,通常是物理塊號,供調入該頁時參考
2.2缺頁中斷機構
當訪問的頁面不在內存時,便產生一卻也中斷,請求OS調入缺頁。
2.3地址變換機構
2.4內存分配
(1)分配策略:固定分配局部置換、可變分配全局置換、可變分配局部置換
三、對置算法
(1)最佳置換:將未來最長時間內不再被訪問的置換。
(2)先進先出置換:先進先出原則(3)最近最久未使用:記錄頁面自上次訪問以來所經歷的時間,將時間最長的置換。(4)最少使用置換:記錄被訪問的頻率。(5)clock最近未用算法
四、抖動與工作集
4.1抖動
抖動是由於頻繁換入換出現象。抖動的根本原因是分配給每一個進程的物理塊較少。
4.2工作集
工作集是指在某段時間間隔裏,進程實際所要訪問頁面的集合。
4.3抖動預防
(1)局部置換(2)把工作集融入處理機調度(3)利用L=S準則調節缺頁率(4)選擇暫停進程