亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: 獨孤九賤
打印 上一主題 下一主題

我理解的邏輯地址、線性地址、物理地址和虛擬地址(補充完整了) [復(fù)制鏈接]

論壇徽章:
0
41 [報告]
發(fā)表于 2008-01-21 11:22 |只看該作者
與君共勉,呵呵,學(xué)習(xí)了。

論壇徽章:
0
42 [報告]
發(fā)表于 2008-01-21 17:34 |只看該作者
很不錯,學(xué)習(xí)了~~~

論壇徽章:
0
43 [報告]
發(fā)表于 2008-01-21 20:39 |只看該作者
寫得很好 又容易看懂 呵呵 贊一個
lz是高手

論壇徽章:
0
44 [報告]
發(fā)表于 2008-01-22 14:19 |只看該作者

你的理解錯誤很多,居然將硬件的進(jìn)步說成是冗余,可惜了。

從硬件設(shè)計的角度來看!
物理地址: 內(nèi)存單元的編號,邏輯上是將將內(nèi)存單元按照一定的度量單位劃分,如字節(jié),字等,80x86  可以按字節(jié)也可以按字編址。所謂的總線只是一個存取通路,插座相當(dāng)于一個設(shè)備開關(guān)。地址空間是數(shù)據(jù)總線的寬度。
邏輯地址:也稱相對地址,是與絕對地址(物理地址)相對的一個概念,是相對與某一位置開始編址。她存在的意義是記住程序和數(shù)據(jù)的相對位置。一般定義為CPU通過地址總線發(fā)出的地址。 程序裝入到內(nèi)存后就通過相關(guān)的硬件,主要是地址的加法器與一個相對位置相加得到絕對地址。相對的位置是存在段表和頁表中的,通過相聯(lián)查找獲得。地址空間由用戶定義
虛擬內(nèi)存:說白了就是構(gòu)造一個滿足程序和用戶需要的空間。程序員不用擔(dān)心內(nèi)存不夠!也不用擔(dān)心地址問題。只要關(guān)心程序的邏輯順序,即邏輯地址。
虛擬地址:和邏輯地址是抽象和具體的關(guān)系,是邏輯地址的一個實例。
虛擬地址到物理地址變換:對于X86  目前有三種方式,頁式,段式,段頁式
頁式:
地址映像:
   第一步 將用戶程序按頁的長度劃分,長度固定。  劃分了之后,就有了頁的起始地址
      第二步 操作系統(tǒng)創(chuàng)建進(jìn)程時,先查全局的頁表,找了幾頁空閑的內(nèi)存,也就有了物理的頁的起始地址
      第三步 操作系統(tǒng)創(chuàng)建頁表,一般有這么幾項,物理頁號, 用戶頁號 (o-n) 使用位等。 這樣就建立了虛擬地址到物理地址的映射關(guān)系了。
地址變換:硬件根據(jù)cpu發(fā)出的邏輯地址(這里是虛擬地址)查表,得到物理的頁號(高位地址),將物理頁號加邏輯地址的地位(頁內(nèi)地址)就是物理地址了。一次查表,一次加法計算。比直接用物理地址編程效率要低很多。
段式:
虛擬地址劃分  用戶號+段號+段內(nèi)偏移
地址映像:
   第一步 將用戶程序分段,長度不固定。  劃分了之后,就有了段的起始地址,和段的長度。
      第二步 操作系統(tǒng),根據(jù)段長申請內(nèi)存空間,也就有了段起始地址。
      第三步 操作系統(tǒng)創(chuàng)建段表,一般有這么幾項,兩個段起始地址, 段長。 這樣就建立了邏輯段到物理段的映射關(guān)系了。
地址變換:INTEL X86是這樣的, 有段寄存器堆,即段選擇子,描述符是一致的。 先將段表基地址裝入 LDT,(這里討論的是一般用戶程序),根據(jù)CPU 發(fā)出的邏輯地址得到段號, 加上LDT 當(dāng)中的段表基地址得到一個邏輯段到物理段的映射項,讀出物理段基地址,再加上段的偏移得到 物理地址 ,總共需要做兩次加法,一次查表, 效率更低。
段頁式: 即將程序中一段再分頁,需要一個段表,一個頁表,先查段表得到頁表基地址,然后再頁式變換。
對于這種三種變換方式的優(yōu)點: 簡化 編程,簡化系統(tǒng)設(shè)計,太多了,
總結(jié):  對內(nèi)核編程人員的建議:  先對程序劃分,再定義映射,設(shè)置寄存器,地址變換由硬件完成。

論壇徽章:
0
45 [報告]
發(fā)表于 2008-01-22 15:46 |只看該作者
好文,標(biāo)記一下,贊一個

論壇徽章:
0
46 [報告]
發(fā)表于 2008-01-23 01:17 |只看該作者
原帖由 softchinacom 于 2008-1-22 14:19 發(fā)表
從硬件設(shè)計的角度來看!
物理地址: 內(nèi)存單元的編號,邏輯上是將將內(nèi)存單元按照一定的度量單位劃分,如字節(jié),字等,80x86  可以按字節(jié)也可以按字編址。所謂的總線只是一個存取通路,插座相當(dāng)于一個設(shè)備開關(guān)。地址空 ...


沒細(xì)看,但 LZ 寫得還是不錯滴,何以說錯誤很多呀,你說得也一踏糊涂

論壇徽章:
0
47 [報告]
發(fā)表于 2008-01-23 09:24 |只看該作者
原帖由 softchinacom 于 2008-1-22 14:19 發(fā)表
從硬件設(shè)計的角度來看!
物理地址: 內(nèi)存單元的編號,邏輯上是將將內(nèi)存單元按照一定的度量單位劃分,如字節(jié),字等,80x86  可以按字節(jié)也可以按字編址。所謂的總線只是一個存取通路,插座相當(dāng)于一個設(shè)備開關(guān)。地址空 ...


1、如果你認(rèn)為段式+頁式不是Intel的冗余,不是為了向上兼容而保留,而是一種硬件進(jìn)步,我雖然不贊成你的看法,但是我想聽聽你的理由——不過你的貼子中,并沒有并于“進(jìn)步”的原因解釋,只是一大堆的名詞解釋。呵呵。而且,內(nèi)容基本與偶是一致的,沒有質(zhì)的分歧;

2、Intel在后續(xù)CPU中,保留了段式映射結(jié)構(gòu),連他自己都說這只是一個兼容而不得已的原因(這個不權(quán)威哈,出處忘了,好像在N年前的一篇電腦雜志上看到的)

3、很多優(yōu)秀的CPU,本身就沒有,或者說是“有限支持”段式映射;

4、如果真要說是“進(jìn)步”,那也是Intel一家的進(jìn)步,從段式發(fā)展到支持頁式——不過如果它不考慮兼容,完全可以舍棄段式。所以還是說不上“進(jìn)步”。

呵呵……一家之言,僅供參考。

論壇徽章:
0
48 [報告]
發(fā)表于 2008-01-24 00:17 |只看該作者
lz寫的好啊

論壇徽章:
0
49 [報告]
發(fā)表于 2008-01-24 09:57 |只看該作者

回復(fù) #1 獨孤九賤 的帖子

好文,mark一下,感謝lz

論壇徽章:
0
50 [報告]
發(fā)表于 2008-01-24 10:26 |只看該作者
好文,轉(zhuǎn)載了
謝謝
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP