標籤:
虛擬儲存空間
虛擬儲存空間(VM)是對主存的一種抽象概念。是硬體一場,硬體地址翻譯,貯存,磁碟檔案和核心軟體的完美互動。他為每個進程提供了一個大的,一致的和私人的地址空間。
- 它將貯存堪稱一個儲存在磁碟上的地址空間的快取,在主存中只儲存活動的地區,並根據需要在磁碟和主存之間來回傳送資料,防止其它進程沒有主存空間可用。
- 它為每個進程提供了一致的地址空間,從而簡化了儲存空間的管理。
- 它保護了每個進程的地址空間不被其他進程破壞。
物理定址和虛擬定址
電腦系統的主存由若干位元組組成,每個位元組有唯一的物理地址。在數位訊號處理器,嵌入式微控制器以及Cray超級電腦仍使用這種物理存執。現代處理器使用虛擬定址的定址方式。
虛擬儲存空間作為緩衝的工具
虛擬儲存空間被組織為一個儲存在磁碟上的N個連續的位元組大小的單元數組,每個數組都有唯一的虛擬位址,磁碟上數組的內容被緩衝在貯存中。VM系統將虛擬儲存空間分割為虛擬頁,實體儲存體器分割為物理頁。
虛擬頁面的三個不相交子集:
- 未分配的:VM系統還沒有分配的頁,不佔磁碟空間。
- 緩衝的:當前緩衝在實體儲存體器中已指派頁。
- 未緩衝的:沒有緩衝在實體儲存體器中的已指派頁。
頁表:
用來判斷一個虛擬頁是否放在DRAM中的某個地方。利用頁表的資料結構,將虛擬頁映射到物理頁,每次地址翻譯硬體將一個虛擬位址轉換為物理地址時都會讀取頁表,作業系統負責維護頁表的內容。(PTE表示虛擬位址空間中每個頁在頁表的固定位移量)
頁命中:
表示但CPU讀取VPn中的一個字時,VPn被緩衝在DRAM中,地址翻譯應將將虛擬位址作為一個索引來來定位到PTEn,並讀取。
缺頁:
緩衝不命中。調用t缺頁例外處理常式,選擇一個犧牲頁PPt,如果VPt已經修改則拷貝回磁碟,然後將VPn調入到PPt,並修改頁表條目。
分配頁:
作業系統分配一個新的虛擬儲存空間頁,在磁碟上建立空間並更新PTEn,使他指向磁碟上這個新建立的頁面。從而分配VPn。
局部性:
在任意時刻,程式往往在一個較小的活動頁面集合上工作(工作集),在初始開銷是,將工作集頁面調度到儲存空間中,接下來對工作集的引用將導致命中,而不會產生額外的磁碟流量。
CSAPP--虛擬儲存空間