2)頁命中
3)缺頁
DRAM緩衝不命中稱為缺頁(page fault)。
VM page fault (before). The reference to a word in VP 3 is a miss and triggers a
page fault.
VM page fault (after). The page fault handler selects VP 4 as the victim and
replaces it with a copy of VP 3 from disk. After the page fault handler restarts the
faulting instruction, it will read the word from memory normally, without generating
an exception.
在虛擬儲存空間的習慣用法中,塊被稱為頁。在磁碟和儲存空間之間傳送頁面的活動收做交換(swapping)或者頁面調度(paging)。一直等待,直到最後時刻,也就是當有不命中發生時,才換入頁面的這種策略被稱為換需頁面調度(demand paging)。
4)分配頁面
Allocating a new virtual page. The kernel allocates VP 5 on disk and points PTE
5 to this new location.
6)利用unix的getrusage函數監測缺頁的數量。
6、虛擬儲存空間作為儲存空間管理的工具
OS為每個進程提供一個獨立的頁表,因而也就是一個獨立的虛擬位址空間。
How VM provides processes with separate address spaces. The operating maintains a
separate page table for each process in the system.
1)簡化連結
每個linux進程都使用示格式。
使用者棧總是從虛擬位址0xbfffffff向下伸展。程式總是從虛擬位址0x08048000處開始,共用對象總是載入在從虛擬位址0x4000000處開始的地區。
2)簡化共用
一般,每個進程都有自己私人的代碼,資料,堆,棧地區,是不和其他進程共用頁面的。
然而,在一些情況下,還是需要進程來共用代碼,資料,如核心代碼,C的庫函數。OS通過將不同進程中適當的虛擬頁面映射到相同的物理頁面,從而安排多個進程共用這部分代碼的一個拷貝。
3)簡化儲存空間分配
當一個運行在使用者進程中的程式要額外堆空間時,OS分配一個適當數字,如k個連續的虛擬位址空間,並且將它們映射到實體儲存體器中任意位置的k個任意的物理頁面(不必要連續,可以是分散地分配)。
4)簡化載入
映射一個連續虛擬頁面的集合到任意一個檔案中的任意一個位置的概念叫做儲存空間映射(memory mapping)。
7、虛擬儲存空間作為儲存空間保護的工具