分頁和分段

分段機制

分段,是指將程序所需要的內存空間大小的虛擬空間,通過映射機制映射到某個物理地址空間(映射的操作由硬件完成)。分段映射機制解決了之前操作系統存在的兩個問題:(1)地址空間沒有隔離。(2)程序運行的地址不確定。分頁方法中,程序所需要的空間會一併在內存中分配,因此空間要麼被整體換入,要麼被整體換出;不存在由於內存不足而引起的重新申請更多的內存空間的問題。

不過分段方法存在一個嚴重的問題:內存的使用效率低。分段的內存映射單位是整個程序;如果內存不足,被換入換出到磁盤的空間都是整個程序的所需空間,這會造成大量的磁盤訪問操作,並且嚴重降低了運行速度。事實上,很多時候程序運行所需要的數據只是很小的一部分,加入到內存的數據大小可能會很小,並沒有必要整體的寫入和寫出。



分頁機制

分頁機制解決了上面分段方法所存在的一個內存使用效率問題;其核心思想是系統爲程序執行文件中的第x頁分配了內存中的第y頁,同時y頁會添加到進程虛擬空間地址的映射表中(頁表),這樣程序就可以通過映射訪問到內存頁y了。

分頁的基本方法是將地址空間人爲地等分成某一個固定大小的頁;每一頁大小由硬件來決定,或者是由操作系統來決定(如果硬件支持多種大小的頁)。目前,以大小爲4KB的分頁是絕大多數PC操作系統的選擇。

關於進程分頁。當我們把進程的虛擬地址空間按頁來分割,常用的數據和代碼會被裝在到內存;暫時沒用到的是數據和代碼則保存在磁盤中,需要用到的時候,再從磁盤中加載到內存中即可。這裏需要了解三個概念:1.虛擬頁(VP, Virtual Page),虛擬空間中的頁;2.物理頁(PP, Physical Page),物理內存中的頁;3.磁盤頁(DP, Disk Page),磁盤中的頁。

虛擬內存的實現需要硬件的支持,從Virtual Address到Physical Address的映射,通過一個叫MMU(Memory Mangement Unit)的部件來完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章