物理、线性、虚拟、逻辑、有效地址
1、物理地址:就是物理內存真正的地址,相當于內存中的每個存儲單元的門牌號,具有唯一性。CPU最終都要以物理地址去訪問內存,只有物理地址才是內存訪問的終點站。
? ? ?在實模式下,{段基址+段內偏移地址}經過段部件的處理,直接輸出的就是物理地址,CPU可以直接用此地址訪問內存。
2、線性地址:
? ? ?在保護模式下:{段基址+段內偏移地址} 稱為線性地址,不過此時段基址已經不是真正的地址,而是一個稱為選擇子。它本質是個索引,類似于數組下標,通過這個索引便能在GDT中找到相應的段描述符,在該描述符中記錄了該段的起始、大小等信息,這樣便得到了段基址。當沒有開啟地址分頁功能時,此線性地址就被當作物理地址來用,可直接訪問內存;若開啟了分頁功能,此線性地址就是虛擬地址(虛擬地址、線性地址在分頁機制下是一個概念)。
3、虛擬地址:它要經過CPU 頁部件轉換成具體的物理地址,這樣CPU才能去地址總線上訪問內存。
4、邏輯地址:無論在實模式還是保護模式下,段內偏移地址都稱為有效地址,也稱為邏輯地址,這是程序員可以見到的地址。
? ? ? 這是因為最終的地址是由段基址+段內便宜地址組合而成的,由于段基址已經有默認值了,要么在實模式下的默認段寄存器中,要么就是在保護模式下的默認段選擇子寄存器指向的段描述符中,所以只要給出段內偏移地址就行了。
總結:
? ? ?線性地址、虛擬地址都不是真實的內存地址,他們都是用來描述程序或任務的地址空間。由于分頁功能是需要在保護模式下開啟的,32位系統保護模式下的尋址空間是4GB,所以虛擬地址或者線性地址就是0~4GB的范圍。
?
? ? 轉換過程如下:
轉載于:https://www.cnblogs.com/jadeshu/p/10663506.html
總結
以上是生活随笔為你收集整理的物理、线性、虚拟、逻辑、有效地址的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字符流
- 下一篇: LeetCode12- 整数转罗马数字