簡單理解什么是虛擬存儲器


先看一個問題:

如何理解虛擬地址空間?

 

如何理解虛擬地址空間?常說的32位系統中,為每個進程分配4g虛擬地址空間,這4g空間到底是保存在哪里?(個人理解,這4g空間和物理地址做了一個映射,那么問題來了,多個進程就需要多個這樣的4g空間,內存夠用嗎?)

 

答:

所謂地址空間,是地址訪問可以達到的所有地址的集合,而不是支持這個地址空間的全部硬件。就好比郵政編碼是6位,它的地址空間就是10^6個地址,從0到999999。但不表示你需要有這么多個建築區支持它。

32位進程可以發出2^32個地址,比如*ptr=0xNNNNNNN,這個被訪問的地址不一定有內存存在,只是說它可以發出這個地址而已。而這個地址對應什么物理內存,這是操作系統給的,給了就有,沒給就沒有。



一、什么是虛擬存儲器

物理尋址和虛擬尋址
存放在存儲器中每一個字節都有一個地址,這個地址稱為物理地址(PA, physical address)。處理器通過物理地址訪問數據的方式稱為物理尋址。處理器也可以通過虛擬地址(VA, visual address)尋址,稱為虛擬尋址。處理器生成一個虛擬地址來訪問處理器,在地址到達存儲器之前需要先轉換為物理地址。存儲器管理單元負責將虛擬地址轉換為物理地址。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM