六月丁香五月婷婷,丁香五月婷婷网,欧美激情网站,日本护士xxxx,禁止18岁天天操夜夜操,18岁禁止1000免费,国产福利无码一区色费

學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦知識(shí)大全 > 什么是邏輯地址和物理地址

什么是邏輯地址和物理地址

時(shí)間: 春健736 分享

什么是邏輯地址和物理地址

  有網(wǎng)友問(wèn)到小編:什么是邏輯地址和物理地址?怎么轉(zhuǎn)換?針對(duì)此問(wèn)題,學(xué)習(xí)啦小編為大家分享了具體的操作方法,希望對(duì)你有幫助!

  什么是邏輯地址

  是指由程式產(chǎn)生的和段相關(guān)的偏移地址部分。例如,你在進(jìn)行C語(yǔ)言指針編程中,能讀取指針變量本身值(&操作),實(shí)際上這個(gè)值就是邏輯地址,他是相對(duì)于你當(dāng)前進(jìn)程數(shù)據(jù)段的地址,不和絕對(duì)物理地址相干。只有在Intel實(shí)模式下,邏輯地址才和物理地址相等(因?yàn)閷?shí)模式?jīng)]有分段或分頁(yè)機(jī)制,Cpu不進(jìn)行自動(dòng)地址轉(zhuǎn)換);邏輯也就是在Intel保護(hù)模式下程式執(zhí)行代碼段限長(zhǎng)內(nèi)的偏移地址(假定代碼段、數(shù)據(jù)段如果完全相同)。應(yīng)用程式員僅需和邏輯地址打交道,而分段和分頁(yè)機(jī)制對(duì)你來(lái)說(shuō)是完全透明的,僅由系統(tǒng)編程人員涉及。應(yīng)用程式員雖然自己能直接操作內(nèi)存,那也只能在操作系統(tǒng)給你分配的內(nèi)存段操作。

  什么是物理地址

  用于內(nèi)存芯片級(jí)的單元尋址,與處理器和CPU連接的地址總線(xiàn)相對(duì)應(yīng)。 ——這個(gè)概念應(yīng)該是這幾個(gè)概念中最好理解的一個(gè),但是值得一提的是,雖然可以直接把物理地址理解成插在機(jī)器上那根內(nèi)存本身,把內(nèi)存看成一個(gè)從0字節(jié)一直到最大空量逐字節(jié)的編號(hào)的大數(shù)組,然后把這個(gè)數(shù)組叫做物理地址,但是事實(shí)上,這只是一個(gè)硬件提供給軟件的抽像,內(nèi)存的尋址方式并不是這樣。所以,說(shuō)它是“與地址總線(xiàn)相對(duì)應(yīng)”,是更貼切一些,不過(guò)拋開(kāi)對(duì)物理內(nèi)存尋址方式的考慮,直接把物理地址與物理的內(nèi)存一一對(duì)應(yīng),也是可以接受的。也許錯(cuò)誤的理解更利于形而上的抽像。 虛擬內(nèi)存(virtual memory) 這是對(duì)整個(gè)內(nèi)存(不要與機(jī)器上插那條對(duì)上號(hào))的抽像描述。它是相對(duì)于物理內(nèi)存來(lái)講的,可以直接理解成“不直實(shí)的”,“假的”內(nèi)存,例如,一個(gè)0x08000000內(nèi)存地址,它并不對(duì)就物理地址上那個(gè)大數(shù)組中0x08000000 - 1那個(gè)地址元素;之所以是這樣,是因?yàn)楝F(xiàn)代操作系統(tǒng)都提供了一種內(nèi)存管理的抽像,即虛擬內(nèi)存(virtual memory)。進(jìn)程使用虛擬內(nèi)存中的地址,由操作系統(tǒng)協(xié)助相關(guān)硬件,把它“轉(zhuǎn)換”成真正的物理地址。這個(gè)“轉(zhuǎn)換”,是所有問(wèn)題討論的關(guān)鍵。有了這樣的抽像,一個(gè)程序,就可以使用比真實(shí)物理地址大得多的地址空間。(拆東墻,補(bǔ)西墻,銀行也是這樣子做的),甚至多個(gè)進(jìn)程可以使用相同的地址。不奇怪,因?yàn)檗D(zhuǎn)換后的物理地址并非相同的。 ——可以把連接后的程序反編譯看一下,發(fā)現(xiàn)連接器已經(jīng)為程序分配了一個(gè)地址,例如,要調(diào)用某個(gè)函數(shù)A,代碼不是call A,而是call 0x0811111111 ,也就是說(shuō),函數(shù)A的地址已經(jīng)被定下來(lái)了。沒(méi)有這樣的“轉(zhuǎn)換”,沒(méi)有虛擬地址的概念,這樣做是根本行不通的。打住了,這個(gè)問(wèn)題再說(shuō)下去,就收不住了。邏輯地址(logical address) Intel為了兼容,將遠(yuǎn)古時(shí)代的段式內(nèi)存管理方式保留了下來(lái)。邏輯地址指的是機(jī)器語(yǔ)言指令中,用來(lái)指定一個(gè)操作數(shù)或者是一條指令的地址。以上例,我們說(shuō)的連接器為A分配的0x08111111這個(gè)地址就是邏輯地址。 ——不過(guò)不好意思,這樣說(shuō),好像又違背了Intel中段式管理中,對(duì)邏輯地址要求,“一個(gè)邏輯地址,是由一個(gè)段標(biāo)識(shí)符加上一個(gè)指定段內(nèi)相對(duì)地址的偏移量,表示為 [段標(biāo)識(shí)符:段內(nèi)偏移量],也就是說(shuō),上例中那個(gè)0x08111111,應(yīng)該表示為[A的代碼段標(biāo)識(shí)符: 0x08111111],這樣,才完整一些” 線(xiàn)性地址(linear address)或也叫虛擬地址(virtual address) 跟邏輯地址類(lèi)似,它也是一個(gè)不真實(shí)的地址,如果邏輯地址是對(duì)應(yīng)的硬件平臺(tái)段式管理轉(zhuǎn)換前地址的話(huà),那么線(xiàn)性地址則對(duì)應(yīng)了硬件頁(yè)式內(nèi)存的轉(zhuǎn)換前地址。

  邏輯地址和物理地址拓展知識(shí)

  存儲(chǔ)器中每一個(gè)單元的地址可以用兩種方法表示:

  1.邏輯地址:其表達(dá)形式為“段地址:段內(nèi)偏移地址”。

  2.物理地址:CPU與存儲(chǔ)器進(jìn)行數(shù)據(jù)交換時(shí)在地址總線(xiàn)上

  提供的20位地址信息稱(chēng)為物理地址。

  物理地址=段地址×10H+段內(nèi)偏移量

  CPU一次處理的數(shù)據(jù)是16位,地址總線(xiàn)實(shí)際上代表CPU的尋址能力,地址線(xiàn)為20條那么CPU實(shí)際的尋址能力就是2的20次方就是1M。實(shí)際的物理地址是這樣形成的:

  段地址*10H+偏移地址,偏移地址用IP指向,IP是16位的。

  例如段地址是1234H,偏移地址是4321H

  那么實(shí)際的物理地址怎么算呢:1234H*10H+4321H=12340H+4321H=16661H

  實(shí)際上可以這么來(lái)理解,就是段地址左移一位后加上偏移地址就得出實(shí)際的物理地址。

  這里邏輯地址和物理地址的關(guān)系又可以用一個(gè)比喻來(lái)說(shuō)明:

  比如你的學(xué)號(hào)是0102,這是你的真實(shí)地址亦即物理地址,那么又假如01表示你的班級(jí)名稱(chēng),02表示你相對(duì)整個(gè)班級(jí)的位置,這就是邏輯地址,道理是一樣的,只不過(guò)在實(shí)際由邏輯地址合成物理地址的時(shí)候需要將物理地址左移一位,再加上偏移地址。

  邏輯地址到物理地址的轉(zhuǎn)換方法

  以一個(gè)例子的形式講解邏輯地址到物理地址的轉(zhuǎn)換:

  某虛擬存儲(chǔ)器的用戶(hù)編程空間共32個(gè)頁(yè)面,每頁(yè)為1KB,內(nèi)存為16KB。假定某時(shí)刻一用戶(hù)頁(yè)表中已調(diào)入內(nèi)存的頁(yè)面的頁(yè)號(hào)和物理塊號(hào)的對(duì)照表如下:

  則邏輯地址0A5C(H)所對(duì)應(yīng)的物理地址是什么?要求:寫(xiě)出主要計(jì)算過(guò)程。

  解題過(guò)程:

  首先要知道頁(yè)式存儲(chǔ)管理的邏輯地址分為兩部分:頁(yè)號(hào)和頁(yè)內(nèi)地址。物理地址分為兩部分:

  關(guān)系為:邏輯地址= 頁(yè)號(hào)+頁(yè)內(nèi)地址d

  物理地址= 塊號(hào)*塊長(zhǎng)度( 等于頁(yè)面長(zhǎng)度 L )+頁(yè)內(nèi)地址;

  頁(yè)號(hào): p = lnt( 邏輯地址 A / 頁(yè)面長(zhǎng)度 L ); d = 邏輯地址 A % 頁(yè)面長(zhǎng)度 L (取余)

  分析題:已知:用戶(hù)編程空間共32個(gè)頁(yè)面,2ˆ5 = 32 得知頁(yè)號(hào)部分占5位,由“每頁(yè)為1KB”,1K=2^10,可知內(nèi)頁(yè)地址占10位。

  由“內(nèi)存為16KB”,2^4=16得知塊號(hào)占4位。

  邏輯地址0A5C(H)所對(duì)應(yīng)的二進(jìn)制表示形式是:0000101001011100,后十位1001011100是頁(yè)內(nèi)地址,

  00010(本題特例,因?yàn)轫?yè)面長(zhǎng)度為1KB)為為頁(yè)號(hào),頁(yè)號(hào)化為十進(jìn)制是2,在對(duì)照表中找到2對(duì)應(yīng)的物理塊號(hào)是11,11轉(zhuǎn)換二進(jìn)制是1011,11* 2^10 + d即可求出物理地址為10111001011100,化成十六進(jìn)制為2 E5C;

  即則邏輯地址0A5C(H)所對(duì)應(yīng)的物理地址是2E5C;


猜你喜歡:

1.IP地址和物理地址有什么區(qū)別

2.物理地址和邏輯地址的區(qū)別

3.虛擬地址與物理地址的概念

4.物理地址什么意思

5.邏輯地址如何轉(zhuǎn)換成物理地址

6.物理地址有什么用

7.物理地址作用是什么

629914