L25 內(nèi)存換出

中斷處理程序
do_no_page()缺頁中斷
時(shí)鐘中斷


MMU查頁表的時(shí)候修改引用位

顛簸

分配頁框

二次整理

首先,要計(jì)算空閑頁還夠不夠,不夠的話就要先換出,再換入。
get_free_page()這個(gè)函數(shù)是在中斷處理程序中的。

image.png


調(diào)度和淘汰沒有本質(zhì)區(qū)別,都是選擇一個(gè)物品,調(diào)度是分配,淘汰則是剝奪。
頻繁地?fù)Q入換出會導(dǎo)致時(shí)間太長,類比不斷地去倉庫取東西放到店面,有些失敗。


算法1
FIFO顯然不行
算法的評價(jià)準(zhǔn)則,缺頁。也就是看換入了多少次。



算法2MIN
有些不切實(shí)際


image.png

算法3LRU
擁有局部性特點(diǎn)
前面講的快表也擁有局部性這個(gè)特點(diǎn),計(jì)算機(jī)中關(guān)于局部性的特點(diǎn)是很重要的,一定要會把握。


image.png

邏輯頁
找邏輯頁需要用MMU查詢頁表
時(shí)間戳可能會溢出


image.png

實(shí)現(xiàn)算法2頁碼棧:準(zhǔn)確實(shí)現(xiàn)代價(jià)太大



不能準(zhǔn)確實(shí)現(xiàn),要近似實(shí)現(xiàn),所以不是最近最少使用,而是使用最近沒有使用來替換最近最少使用。
R被放在頁表項(xiàng)中,MMU在查表的時(shí)候會順便改R的值為1。
代價(jià)低的原因是,這個(gè)只需要改對應(yīng)位置的R的值即可,不像時(shí)間戳和頁碼棧,還需要移動(dòng)其他位置。

image.png


長指針:用來將R1變成0,放在時(shí)鐘中斷中。
短指針:換出頁面,放在缺頁的程序中。


需要給一個(gè)進(jìn)程分配多少個(gè)物理內(nèi)存頁?
時(shí)鐘算法就是用來換出的。


缺頁就需要調(diào)頁,調(diào)頁就需要啟動(dòng)磁盤,CPU就要等著,那么多個(gè)進(jìn)程就都要等著,這樣CPU的利用率就低了。
CPU利用率下降的根本原因是缺頁。進(jìn)程增多,給進(jìn)程分配的頁就會變少。
顛簸:磁盤不斷地在內(nèi)存中讀寫,換入換出,CPU只能等著。


分配多少個(gè)頁框,要根據(jù)局部性來決定。
一般的話,分配頁框的個(gè)數(shù)需要?jiǎng)討B(tài)調(diào)整,進(jìn)程太多的話也要限制進(jìn)程的數(shù)量。
clock算法->頁面的換出(頁面的淘汰)->內(nèi)存的換出

image.png


時(shí)鐘中斷
缺頁中斷
磁盤管理,磁盤驅(qū)動(dòng)


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容