虛擬內存管理
虛擬內存管理
當程序的存儲空間要求大於實際的內存空間時,就使得程序難以運行了。虛擬存儲技術就是利用實際內存空間和相對大的多的外部儲存器存儲空間相結合構成一個遠遠大於實際內存空間的虛擬存儲空間,程序就運行在這個虛擬存儲空間中,能夠實現虛擬存儲的依據是程序的局部性原理,即程序在運行過程中經常體現出運行在某個局部範圍之內的特點。
虛擬存儲管理:當程序的存儲空間要求大於實際的內存空間時,就使得程序難以運行。在時間上,經常運行相同的指令段和數據(稱為時間局部性),在空間上,經常運行與某一局部存儲空間的指令和數據(稱為空間局部性),有些程序段不能同時運行或根本得不到運行。
虛擬內存是把一個程序所需要的存儲空間分成若干頁或段,程序運行用到頁和段就放在內存里,暫時不用就放在外存中。當用到外存中的頁和段時,就把它們調到內存,反之就把它們送到外存中,裝入內存中的頁或段可以分散存放。
虛擬頁式存儲管理和一般的頁式管理有相同之處,只不過各進程頁表要增加指明每個頁面所在的位置,也就是這個頁面是在內存還是外存中的具體物理地址.當進程工作到需要使用某個頁面時,如果通過查頁表發現該頁表是在外存中,此時要進行缺頁中斷處理.也就是暫停當前進程的運行,CPU轉而執行缺頁中斷處理程序,把所需要的頁面調入內存,在頁表上填寫該頁面的物理頁面號,注名該頁面已經進入內存,再恢復當前進程的運行。