1、一個系統中的進程是與其他進程共用CPU和主存資源的。
2、虛擬儲存空間(Virtual Memory),是硬體異常,硬體地址翻譯,主存,磁碟檔案和核心軟體的完善互動,它為每個進程提供一個大的,一致的,私人地址空間。通過一個清晰的機制,虛擬儲存空間提供了三個要重的能力:它將主存看成是一個儲存在磁碟上的地址空間的快取,在主存中只儲存即時區域,並根據需要在磁碟和主存之間來回傳送資料,通過這種方式,它高效的利用了主存;它為每個進程提供了一致的地址空間,從而簡化了儲存空間管理;它保護每個進程的地址空間不被其他進程破壞。
3、物理和虛擬定址
電腦系統的主存被組織成一個由M個連續的位元組大小的單元組成的數組。每位元組都有一個惟一的物理地址(physical address,PA)。第一個位元組地址是0,接下來的位元組地址為1,...
早期的PC使用物理定址,而且諸如數位訊號處理器,嵌入式微控制器以及Cray超級電腦這樣的系統仍然繼續使用這種定址方式。而為通用電腦設計師的現代處理器使用的是虛擬定址(virtual addressing)。
MMU(memory management unit,儲存空間嵌入式管理單元),利用存放在主存中的查詢表來動態翻譯虛擬位址,該表的內容由OS管理。
4、地址空間
地址空間為非負整數地址的有序集合:{0,1,2,...}
如果地址是連續的,則稱為線性地址空間。如果電腦有n位地址匯流排,在一個帶有虛擬儲存空間的系統中,CPU從一個有N = 2n個地址的地址空間中產生虛擬位址,這個地址稱為虛擬位址空間:{0,1,2,...,N-1}
物理地址空間,與實體儲存體器的M個位元組相對應:{0,1,2,...M-1}
M不要求是2的冪。
允許每個資料對象(位元組)有多個獨立的地址(屬性),其中每個地址都選自一個不同的地址空間,就是虛擬位址的基本思想。主存中的每位元組都有一個選自虛擬位址空間的虛擬位址,和一個選自物理地址空間的物理地址。
5、虛擬儲存空間作為緩衝的工具
概念上言,虛擬儲存空間被組織為一個由存放在磁碟上的N個連續的位元組大小的單元組成的數組。每位元組都有一個惟一的虛擬位址,這個惟一的虛擬位址是作為到數組的索引的。磁碟上數組的內容被緩衝到主存中。和儲存空間階層中其他緩衝一樣,磁碟(較低層)上的資料被分成塊,這些塊作為磁碟和主存(較高層)之間的傳輸單元。VM系統通過將虛擬儲存空間分割成稱為虛擬頁(virtual page,VP)的大小固定的塊,來處理這個問題。每個虛擬頁的大小為P = 2p位元組。類似地,實體儲存體器被分割成物理頁(physical page,PP),大小也為P位元組(物理頁也被稱為頁幀,page frame)。
在任意時刻,虛擬頁面的集合都分為三個不相交的子集:
未分配的:VM系統還未分配或建立的頁。未分配的塊沒有任何資料與它們相關聯,因此也就不佔用任何磁碟空間。
緩衝存:當前緩衝在實體儲存體器中的已指派頁。
未緩衝的:沒有緩衝在實體儲存體器中的已指派頁。
因為大的不命中處罰和訪問第一位元組的開銷,虛擬開銷趨向於很大,典型地是4~8KB。由於大的不命中處罰,DRAM緩衝是全相聯的。也就是說,任何虛擬儲存頁都可以放置在任何的物理頁中。DRAM緩衝總是使用寫回(write back)。
1)頁表
存放在實體儲存體器一個資料結構,叫做頁表(page table)。頁表將虛擬頁映射到物理頁。
頁表就是一個PTE(page table entry,頁表條目)的數組。虛擬位址空間中的每個頁在頁表中的一個固定位移量處都有一個PTE。
NULL:未分配。
VP3,VP5:已指派,但是還未被緩衝。
VP1:已指派,已緩衝。