《現代作業系統》筆記 記憶體管理3

2022-08-19 12:24:12 字數 2928 閱讀 6149

接上

缺點:有可能置換出頻繁使用的頁

缺陷: 前提是必須要知道接下來哪些頁面要使用,完全理想的情況,不可能實現。但可作為衡量演算法優劣的標準,結果越接近的越優秀。

頁表中節點的訪問位(reference)和修改位(modified):當被訪問後,r位會被設定;當被修改後,m位會被修改。但每過乙個週期,r位會被全部清空,m位不變(因為要被寫會磁碟)。

r位和m位在某一時刻可能存在幾種情況

a. 未訪問,未修改

b. 未訪問,修改(發生在剛重新整理之後)

c. 訪問,未修改

d. 訪問,修改

依順序淘汰相應的頁面。

nru淘汰頁的思路: 淘汰掉已經修改的但至少乙個週期(20毫秒左右)未訪問的頁比淘汰頻繁使用的頁要好。

先進入的頁先被淘汰。

缺點:有可能淘汰頻繁使用的頁

逐個查詢所有的頁,如果它已經被訪問過(r位被設定),則清空r位,並重置進入記憶體的時間為當前,移動至隊尾。直到找到乙個未被訪問過的頁。(如果都被訪問過,則退化為fifo演算法,第1個被淘汰)

將頁面像時鐘一樣排成環形,指標開始時指向最「老」的頁面,之後同第二次機會演算法一致。優化了「第二次機會」中的反覆移動頁面。

現象:過去頻繁使用的頁在未來也會被頻繁使用。

要維護乙個鍊錶,最近最多使用的頁在最前面,最近最少使用的頁在最後面,缺頁時淘汰最後面的。

缺點: 每次訪問頁面都要更新鍊錶,代價太高。即使硬體實現也較為複雜。

(1)實現最不頻繁使用nfu(not frequently used)

每次時鐘中斷後,將r位的值新增到計數器,淘汰計數最小的頁(與lru相比沒有「最近」的概念)

缺點:在多通道編譯器(multipass compiler)中,在某個通道會頻繁使用一部分記憶體,在另一通道會使用另一部分。在剛剛執行另一通道時,新調入的記憶體會因使用較少而馬上被淘汰。由於在該通道執行,又要馬上調入(因為沒有「最近」的概念)

(2)改進——加入老化(aging)

在向計數器新增r位的值時,先右移一位,將新值新增到最左側(相當於為最近使用的頁新增了權重)。

缺點:a. 都有相同的週期未使用時,不能明確哪個是最後被使用。——因為不是每次訪問記憶體都更新頁狀態

b. 計數器的位數有限,只能監測最近短時間的資料。例如計數器是8位,那麼前9次訪問過的頁和前1000次訪問的頁表現相同。

之前的頁面置換演算法均為請求調頁(demand paging),它們總是在需要時才載入。程式執行時對記憶體的訪問是區域性性的,因此恢復程序時可以預先調頁(prepaging)

程式每執行幾個指令發生的缺頁異常被稱為顛簸(thrashing)

工作集概念:最近k個最常使用的頁。隨著k的增大,工作集的容量的增加先快後慢,無限趨近乙個值。因為程式不能取得比它的位址空間更大的記憶體,而且很少有程式會用盡位址空間(這是假設程式所需記憶體一直增加的最壞情況下)。

缺點:每次記憶體訪問都要遍歷維護的頁狀態表,將所有頁面左移,在右側新增最近訪問的頁面,刪除重複的頁並排序(維護程式集),開銷太大,從未使用。

改進:將最近k個改為最近 t 時間內訪問的頁

乙個程序從它開始執行到當前所實際使用的cpu時間總數被稱為當前實際執行時間(current virtual time)。在要淘汰頁面時,對時間進行比較:

a. 已經訪問過的頁,將r位清空,將最後使用時間設定為當前實際執行時間

b. 在 t 時間外的且未訪問的頁,淘汰

c. 在 t 時間內但未訪問的頁頁,記錄下時間。在未找到其它合適頁的情況下,淘汰時間最久遠的

d. 在最近的一次時鐘週期內都被訪問了,則隨機淘汰。傾向於淘汰未被修改的頁。

將頁狀態表像時鐘一樣環形排列,淘汰演算法與工作集頁面置換演算法相同。實現簡單,效能較好,被廣泛使用。

理論上,所有的頁面都有可能被排程到磁碟i/o,寫回磁碟。但為了降低磁碟阻塞,需要限制最大n個頁面可以被寫回。一旦達到了n,被修改的頁就不能被寫回磁碟。

指標走過一輪後可能出現的情況:

a. 至少有一次寫操作被排程

待寫操作完成後,淘汰第乙個已經被寫回的頁面即可(此處的第乙個頁面不一定是第乙個找到頁面,因為寫回指令可能被重排序)。

b. 沒有排程過寫操作

所有的頁面都在工作集中,因此沒有排程過一次寫操作。隨機置換乙個未被修改的頁面(掃瞄中需要記錄乾淨的頁面)。如果沒有乾淨頁面,則選定當前頁並寫回磁碟後置換。

《現代作業系統》讀書筆記 記憶體管理篇

標籤 讀書筆記 校招 作業系統 面試 實體地址是指出現在cpu外部位址匯流排上的定址物理記憶體的位址訊號,是邏輯位址變換後的最終結果位址,實體地址空間是指記憶體中實體地址單元的集合。記憶體保護是為了防止乙個作業有意或無意地破壞作業系統或其他作業。常用的儲存保護方法有界限暫存器方法和儲存保護鍵方法。界...

《現代作業系統》筆記

特色 1.講述了作業系統演變的過程 2.沒有空洞講述概念,用圖表和c 講了作業系統的具體實現 什麼是作業系統 自頂向下看,作業系統是擴充套件機器,向使用者提供抽象。自底向上看,作業系統是資源管理者,給程序提供資源。設計思想 1.利用cpu高速和人類及i o裝置之間的低速的差距,多個程序共享cpu,虛...

作業系統筆記記憶體管理

主存分配 1.構造分配用的資料結構 主存資源資訊塊 等待佇列 空閒區佇列 主存分配程式 2.制定策略 分配策略 在眾多個請求者中選擇乙個請求者的原則 放置策略 在可用資源中,選擇乙個空閒區的原則 調入策略 決定資訊裝入主存的時機。預調策略 預先將資訊調入主存。請調策略 當需要資訊時,將資訊調入主存 ...