虛擬內(nèi)存的尋址過程?
虛擬地址
虛擬內(nèi)存是一個由存放在磁盤上的N個連續(xù)的字節(jié)大小的單元組成的數(shù)組。每個字節(jié)都有一個唯一的地址,就是虛擬地址。通常,虛擬地址由頁號和偏移量組成,頁號就是抽象的虛擬頁的編號,偏移量用于計算實際的物理地址。
虛擬地址和物理地址的關系
進程雖然使用虛擬地址,但是用數(shù)據(jù)時還是要到實際的物理地址去取數(shù)據(jù)。這就存在一個虛擬地址到物理地址的轉(zhuǎn)化運算,這是由CPU芯片上一個叫做內(nèi)存管理單元(MMU)的專用硬件來實現(xiàn)的。
通常,物理地址=頁號*頁大小+頁內(nèi)偏移量。
虛擬尋址
CPU通過虛擬地址來訪問主存,訪問內(nèi)存使用的物理地址,MMU通過將虛擬地址進行翻譯,轉(zhuǎn)化為物理地址,然后再用這個物理地址去訪問內(nèi)存數(shù)據(jù)。