1.分頁的記憶體管理克服了交換系統的缺點:外部碎片,程式不能大於物理記憶體等。但付出的代價是頁面更換。在交換系統下,乙個程式作為乙個整體載入到記憶體,這樣,在程式執行時,無須在從磁碟上載入任何東西,而分頁系統下,乙個程式的所有頁面不一定都在記憶體中,所以可能會產生缺頁中斷,缺頁中斷的服務程式負責把位於磁碟上的資料載入到物理記憶體中來,如果
物理記憶體中有空閒的頁面,那就直接使用空閒的頁面,但如果物理記憶體已滿,就需要挑選某個已經使用過的頁面進行替換。這裡就出現乙個問題,如何挑選?
2.如果挑選的頁面是之後很快又要被訪問的頁面,那樣系統很快又要產生缺頁中斷,這樣是很不合適的。頁面更換的目標就是降低隨後發生缺頁中斷的次數或者概率。因此,我們選擇的頁面應當是在隨後相當長的時間內不會被訪問的頁面,最好是在也不會被訪問的頁面。如果可能,我們也應該選擇乙個沒有修改過的頁面,這樣,替換時就無須將被替換的頁面的內容寫回磁碟,從而進一步加快缺頁中斷的響應速度。
3.頁面更換的演算法?
1)公平演算法:隨機演算法,先來先出演算法,第二次機會演算法,時鐘演算法。
2)非公平演算法:最優演算法,nru演算法,lru演算法,工作集演算法。
4.先來先出演算法:更換最早進入記憶體的頁面,實現機制是使用鍊錶將所有在記憶體的頁面按照進入時間的早晚連起來,然後每次置換鍊錶頭上的頁面,新進來的頁面則掛在鍊錶的末端。
5.第二次機會演算法:由於fifo只考慮進入記憶體的時間,沒有關心乙個頁面被訪問的頻率,可能替換了乙個經常被訪問的頁面。改進的方法是,在使用fifo更換乙個頁面時,需要看下該頁面是否在最近被訪問後,如果沒有被訪問,直接替換,如果最近被訪問,則將該頁面掛到鍊錶末端,並將該頁面進入記憶體的時間設定為當前時間,並將其訪問位清零。
6.時鐘演算法:
7.nru(not recently used)最近未使用演算法:選擇乙個在最近一段時間沒有被訪問過的頁面進行替換,利用頁面的訪問和修改位。
8.lru(least recently used)最近使用最少演算法:不僅考慮最近是否使用,還要考慮最近使用的頻率。它的實現方法有頁表式的方法,鍊錶式的方法,矩陣式的方法,移位暫存器的方法。
9.工作集演算法在實際作業系統中使用較多。
作業系統之分頁式記憶體管理1
1.分頁記憶體管理的核心就是 頁面的翻譯。對於任何乙個虛擬頁面,系統要知道該頁面是否在物理記憶體中?如果在的話,對應的物理頁面是哪乙個?如果不在,就會產生乙個缺頁中斷,並將該虛頁從磁碟轉到記憶體,然後將分配給它的物理頁面號返回。虛擬頁面到物理頁面的對映,這個翻譯過程由記憶體管理單元mmu完成。mmu...
作業系統之分段式記憶體管理1
1.分頁作業系統的缺點?1 頁表太大,我們用多級頁表克服了。2 多級頁表速度慢,我們用tlb翻譯快表解決了絕大部分。3 頁面來回更換所帶來的缺頁中斷的問題,我們用各類頁面更換演算法解決了大部分。4 內部碎片相對於交換系統的外部碎片,還是可以忍受的。最大的缺陷是 共享困難。2.分段管理系統?3.邏輯分...
作業系統13 儲存器管理之分頁儲存
四.位址變換機構 五.訪問記憶體的有效時間 六.兩級和多級頁表 七.反置頁表 八.參考資料 連續儲存會產生許多的 碎片 雖然 緊湊 方法可以將許多碎片拼接可以的大塊空間,但需為之很大的開銷。如果允許將乙個程序直接分散的裝入到許多不相鄰的分割槽中,便可以充分利用記憶體空間。基於這一思想,產生了離散分配...