能不能簡單的講解一下邏輯位址和實體地址 邏輯定址和物理定址 的區別?

時間 2021-06-05 19:02:14

1樓:趙志偉

4096B=2^12B

16位定址總共2^16B

分頁儲存。共分的頁:2^16/2^12=2^4=16 共分16頁。

第0頁的位址規模 0 - FFFH

第1頁的位址規模 1000H - 1FFFH第2頁得位址規模 2000H - 2FFFH.....

第11頁B000H - BFFFH

第15頁F000H - FFFFH

2F6AH=10 1111 0110 1010 在2頁的規模對應物理塊11

2F6AH - 2000H B000H = F6AH B000H= BF6AH

2樓:Vincent Hou

虛擬位址是MMU經過轉換之後製造出來的記憶體空間,而實體地址是直接訪問記憶體和DMA的空間。

打個比方,你有一本筆記本,每頁都有頁碼,現在是空的,你可以在上邊記東西。你要上語文數學英語三門課,三門課的筆記要記在基本上。顯然,這三門課是混著上的,所以如果你從前往後記筆記,這三門課的內容是混起來的。

你需要不時翻找每門課的筆記,但是因為內容都是混在一起的,查詢很困難,所以你想到了乙個辦法:記筆記的時候,記語文的頁只記語文,不把其他課的內容混在一起。並且用單獨的三頁記錄每門課的筆記的頁碼。

你管這種記錄方式叫做頁表。筆記每多記一頁,就在相應的學科的頁表上記上筆記本頁數。

於是你需要找語文第10頁的時候,只要看語文的頁表,發現語文第10頁放在筆記本的第20頁上,那麼你只要翻到筆記本第20頁就能看到你想要的內容了。

在這個例子中:

筆記本 -- 物理記憶體

筆記本頁碼 -- 實體地址

筆記頁 -- 頁框 (Page frame)

頁表 -- 頁表 (Page table)

頁表內容 -- 頁表項 (Page table entry)

語文頁碼 -- 虛擬位址

語文頁表形成的空間 -- 虛擬記憶體空間

以及答主 @範茹 的答案有兩個錯誤必須要指出的是:1. 虛擬記憶體不是由作業系統建立的(或者說只有作業系統無法建立虛擬記憶體空間),而是由MMU建立的。

作業系統只是管理虛擬記憶體 2. C語言的指標並不區分虛擬記憶體和物理記憶體,只是指向目前的記憶體空間。

3樓:土地測量員

實體地址就是CPU訪問主存的時候給位址匯流排的二進位制訊號,用於訪問主存上的乙個位元組。這應該所以CPU都這樣吧 (不太清楚不敢下定論 ((逃

實模式下那就不多說了...16位段位址+16位段內偏移,段位址左移4位+段內偏移,得到20位實體地址。 邏輯位址一般就是指16位段位址+16位段內偏移 (不過我並沒有考證,只是在書上看到這麼說過

而IA32保護模式的邏輯位址,包括16位段選擇子(segment selector) + 32位段內偏移。

英特爾的手冊上這麼說:

A logical address consists of a 16-bit segment selector and a 32-bit offset

To translate a logical address into a linear address, the processor does the following:

1. Uses the offset in the segment selector to locate the segment descriptor for the segment in the GDT or LDT and reads it into the processor. (This step is needed only when a new segment selector is loaded into a segment register.

)2.Examines the segment descriptor to check the access rights and range of the segment to insure that the segment is accessible and that the offset is within the limits of the segment.

3.Adds the base address of the segment from the segment descriptor to the offset to form a linear address.

如果IA32沒有開啟分頁,那麼得到的這個線性位址就是實體地址(不過幾乎所有X86上的作業系統會用分頁);否則,還得通過頁表從線性位址對映到實體地址。

4樓:5275

正在學習作業系統。

邏輯位址(虛擬位址)是作業系統建立,方便程式訪問變數;實體地址是絕對位址。

c語言中取變數位址(&),列印輸出是邏輯位址。因為程式不關心變數的實體地址,只是需要找到變數位址進行操作。舉個例子,大學裡快遞點分發快遞會給學生發乙個簡訊裡面包含乙個快遞ID(類似B103),學生通過這個ID到快遞點找B103取快遞。

這裡B103就是邏輯位址,而實體地址指實際的貨物配送位址。快遞點和學生都沒有必要通過實體地址找貨物,所以新建了邏輯位址。

作業系統會為每個程式設立乙個邏輯位址空間(0-MAXprog)並建立對應邏輯-物理對映表,同時可以保證程式指令不越界。

這是我的理解,希望可以幫助大家。

能不能講解一下計算機專業的優勢?

LIKE 陝西國際商貿學院計算機專業是有中軟國際定製版,定向培養優秀人才,保證成功就業,中軟國際班有計算機科學技術 網際網路技術,計算機資訊管理,大資料應用。專科本科都可以申請,實習期月薪4000以上,轉正後月薪7000以上。 Zarza Ng 自己寫外掛程式算不算 現在遊戲一堆抽卡的,運氣好抽到新...

能不能簡單介紹一下漫威宇宙和DC宇宙?

有點晚了,不過確實有科普的興趣。最簡單的就是按出品日期一部部看,這個可以在知乎搜搜漫威dc電影票房,有盤點的很全的。比較讓吃瓜群眾不理解的是重啟的問題。漫威本家還好,只有李安版綠巨人劇情連不上,漫威分家x戰警也還好,雖然一直不溫不火但劇情都連得上。問題出在dc以及漫威分家蜘蛛俠上。dceu目前有鋼鐵...

能不能簡單易懂地講述一下八王之亂?

德先生 司馬師一堆女兒,司馬昭一堆兒子。司馬昭把自己兒子司馬攸過繼給司馬師,自己繼承了晉王,後來又把王位傳給自己的兒子 司馬攸的哥哥司馬炎,改封司馬攸為齊王。司馬炎死後想讓岳父楊駿和叔父司馬亮一起輔政,楊駿卻矯詔趕走了司馬亮,司馬亮認慫跑了。賈南風就和司馬衷弟弟司馬瑋聯手乾掉楊駿,而後賈南風又殺了司...