操作系統之分頁式內存管理1

1.分頁內存管理的核心就是:頁面的翻譯。

對於任何一個虛擬頁面,系統要知道該頁面是否在物理內存中?如果在的話,對應的物理頁面是哪一個?如果不在,就會產生一個缺頁中斷,並將該虛頁從磁盤轉到內存,然後將分配給它的物理頁面號返回。虛擬頁面到物理頁面的映射,這個翻譯過程由內存管理單元MMU完成。MMU接收CPU發出的虛擬地址,將其翻譯爲物理地址後發給內存。MMU對虛擬地址的翻譯只是對頁面號的翻譯,而對於偏移值則不進行任何操作,這是因爲虛擬頁表和物理頁表大小完全一樣,虛擬頁面裏的偏移值和物理頁面裏的偏移值完全一樣,因此無需翻譯。


2.頁表在分頁管理系統中的地位?

  頁表記錄的條數與虛擬頁面數相同。對於32位尋址的虛擬地址,如果頁面大小爲4KB,則頁表的記錄條數最多可以達到1048576條。內存管理單元依賴頁表來進行一切與頁面有關的管理活動,例如,判斷某一頁面號是否在內存中,頁面是否受保護,頁面是否非法空間。

3.頁表記錄了那些內容?


4.頁面翻譯過程?

5.分頁內存管理的缺點與解決方法?

   頁表會很大,佔用大量的內存空間,如1048576個頁面的記錄,每個記錄又會佔用多個字節,這樣一個頁表所佔的內存空間就很大了。

   1)多級頁表



 2) 反轉頁表

6.如何提高翻譯效率?

  如果使用單級頁表,則每次內存訪問變爲兩次內存訪問,先訪問頁表,在訪問實際的物理內存,如果使用多級頁表或反轉頁表,則每次內存訪問變爲更多次的內存訪問,這樣效率會越來越低。爲了提高這種內存翻譯的效率,我們想出了一些方法。

在一段時間內,程序所要訪問的地址空間有一點的空間侷限性,如果一個頁面被訪問,則有些頁面被訪問的可能性很大,這樣我們可以將這些頁面的翻譯結果存在緩存裏,如是可以大大提高系統效率。




 TLB通常由CPU製造商提供,但TLB的更換算法則有可能由操作系統提高。

7.缺頁中斷處理?

8.鎖住頁面:如果一個頁面非常重要,可以把它鎖住,從而防止不必要的頁面替換。

9.一個進程內的碎片空間稱爲內部空間,頁面越大,內部碎片就可能越大。而頁面越小,則頁表尺寸將越大,所以頁面尺寸的大小要在內部碎片和頁表大小之間平衡。

10.內存抖動的概念?

   在更換頁面時,如果更換的頁面是一個很快就會被訪問的頁面,則在此次缺頁中斷後很快又會發生新的缺頁中斷,最壞的情況是,每次新的訪問都是對一個不在內存的頁面進行訪問,即每次內存訪問都會產生缺頁中斷,這樣每次的內存訪問其實變成可磁盤訪問,磁盤的訪問速度可能會比內存慢幾百萬倍,因此整個系統的效率急劇下降,這種現象稱爲內存抖動。發生內存抖動是,系統幾乎看不到任何進展的現象,CPU的資源絕大部分將消耗在缺頁中斷上。

 

 

 

 

  

發佈了143 篇原創文章 · 獲贊 29 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章