導航:首頁 > 物理學科 > 如何利用頁表求物理地址

如何利用頁表求物理地址

發布時間:2022-05-16 07:14:22

⑴ 頁儲存管理中,已知一個邏輯地址長度為16位,頁面大小為4096B,地址為2F6AH,怎麼知道這個地址的頁號啊

例3 若在一分頁存儲管理系統中,某作業的頁表如下所示。已知頁面大小為1024位元組,試將邏輯地址1011,2148,4000,5012轉化為相應的物理地址。

頁號
物理塊號

0
2

1
3

2
1

3
6

【分析】 頁式存儲管理的地址結構是一維的,即邏輯地址(或物理地址)只用一個數值即可表示。若給定邏輯地址A,頁面的大小為L,則頁號p和頁內地址d可按照下式求得:

p=int [A/L] d=A mod L

其中,int是取整函數(取數值的整數部分),mod是取余函數(取數值的余數部分)。

下圖顯示了頁式管理系統的地址轉換機構。

頁表的作用是實現從頁號到物理塊號的地址映射。以邏輯地址的頁號檢索頁表,得到該頁的物理塊號;同時將頁內地址d直接送入物理地址寄存器的塊內地址欄位中。這樣物理塊號和塊內地址拼接成了實際訪問內存的地址,從而完成了從邏輯地址到物理地址的轉換。

所以物理地址的計算公式為:

物理地址=塊的大小(即頁的大小L)*塊號f+頁內地址d

解 本題中,為了描述方便,設頁號為p,頁內位移為d,則:

(1)對於邏輯地址1011,p=int(1011/1024)=0,d=1011 mod 1024=1011。查頁表第0頁在第2塊,所以物理地址為1024*2+1011=3059。

(2)對於邏輯地址2148,p=int(2148/1024)=2,d=2148 mod 1024=100。查頁表第2頁在第1塊,所以物理地址為1024+100=1124。

(3)對於邏輯地址4000,p=int(4000/1024)=3,d=4000 mod 1024=928。查頁表第3頁在第6塊,所以物理地址為1024*6+928=7072。

(4)對於邏輯地址5012,p=int(5012/1024)=4,d=5012 mod 1024=916。因頁號超過頁表長度,該邏輯地址非法。

⑵ 頁表的物理地址怎麼確定

邏輯地址:CPU所生成的地址。CPU產生的邏輯地址被分為 :p (頁號) 它包含每個頁在物理內存中的基址,用來作為頁表的索引;d (頁偏移),同基址相結合,用來確定送入內存設備的物理內存地址。
物理地址:內存單元所看到的地址。邏輯地址空間為2^m,且頁大小為2^n,那麼邏輯地址的高m-n位表示頁號,低n位表示頁偏移。
邏輯地址空間:由程序所生成的所有邏輯地址的集合。

⑶ 請求頁式存儲管理求物理地址

頁大小為2KB=2的11次方B,頁內偏移量為11bit邏輯地址:1CDBH 轉換成二進制:00011100110110112C1DH 轉換成二進制:0010110000011101取低11位為頁內偏移量,剩餘高位為頁號。內存空間32KB=2的15次方B,物理地址15bit.1CDBH 頁號為00011,值為3.如表,塊號為9.9 轉換成二進制 10011CDBH 物理地址為1001100110110112C1DH 物理地址同上

⑷ 什麼是邏輯地址什麼是物理地址在實模式下,如何求存儲器的物理地址假設一個

邏輯地址和物理地址的區別是:
邏輯地址(Logical Address) 是指由程序產生的與段相關的偏移地址部分。例如,你在進行C語言指針編程中,可以讀取指針變數本身值(&操作),實際上這個值就是邏輯地址,它是相對於你當前進程數據段的地址,不和絕對物理地址相干。只有在Intel實模式下,邏輯地址才和物理地址相等(因為實模式沒有分段或分頁機制,Cpu不進行自動地址轉換);邏輯也就是在Intel 保護模式下程序執行代碼段限長內的偏移地址(假定代碼段、數據段如果完全一樣)。應用程序員僅需與邏輯地址打交道,而分段和分頁機制對您來說是完全透明的,僅由系統編程人員涉及。應用程序員雖然自己可以直接操作內存,那也只能在操作系統給你分配的內存段操作。
物理地址(Physical Address) 是指出現在CPU外部地址匯流排上的定址物理內存的地址信號,是地址變換的最終結果地址。如果啟用了分頁機制,那麼線性地址會使用頁目錄和頁表中的項變換成物理地址。如果沒有啟用分頁機制,那麼線性地址就直接成為物理地址了。
虛擬內存(Virtual Memory)是指計算機呈現出要比實際擁有的內存大得多的內存量。因此它允許程序員編制並運行比實際系統擁有的內存大得多的程序。這使得許多大型項目也能夠在具有有限內存資源的系統上實現。一個很恰當的比喻是:你不需要很長的軌道就可以讓一列火車從上海開到北京。你只需要足夠長的鐵軌(比如說3公里)就可以完成這個任務。採取的方法是把後面的鐵軌立刻鋪到火車的前面,只要你的操作足夠快並能滿足要求,列車就能象在一條完整的軌道上運行。這也就是虛擬內存管理需要完成的任務。在Linux 0.11內核中,給每個程序(進程)都劃分了總容量為64MB的虛擬內存空間。因此程序的邏輯地址范圍是0x0000000到0x4000000。有時我們也把邏輯地址稱為虛擬地址。因為與虛擬內存空間的概念類似,邏輯地址也是與實際物理內存容量無關的。 邏輯地址與物理地址的「差距」是0xC0000000,是由於虛擬地址->線性地址->物理地址映射正好差這個值。這個值是由操作系統指定的。

⑸ 在二級頁表分頁存儲管理中怎樣由十進制的邏輯地址計算相對應的物理地址

1)092b(H)轉換成二進制就是0000 1001 0010 1011 前6位為頁號p得先轉換成10進制為2 ,對應的塊號為5,用5*1024加上後10位(0100101011轉換成10進制為1+2+8+32+256=299)為5419即為物理地址
2)2A12轉換成二進制為0010 1010 0001 0010 頁號為001010就是10 而頁號中缺頁了 溢出
3)2A5C十進制就是10844再除以1024等於 10餘604 10為塊號 而題目中沒有 也是溢出
不知道算對沒.

⑹ 如果知道了頁表寄存器的地址和虛頁號,如何知道PTE的地址

一 頁面與頁表

1 頁面

分頁存儲管理是將作業的邏輯地址劃分為一系列同等大小的部分,稱為頁。並為各頁加以編號,每個作業的頁的編號都是從0開始的。與之類似,把可用的物理內存也劃分為同樣大小的連續的部分,稱為塊或頁框。同樣為塊也進行標號,從0#開始。在為進程分配內存空間時,以頁為單位,每個內存中的塊存放一頁用戶作業。只要內存中有足夠多的塊,這些塊可以相鄰也可以不相鄰,就可以存放整個作業了。

頁面的大小對於內存利用和系統開銷來說非常重要,頁面太大,在作業的最後一頁必然會剩餘較大不能利用的空間--內碎片。頁面太小,雖然可以減小內碎片的大小,但是一個作業的頁太多,會使得作業頁表太長而佔用內存,同時系統頻繁地進行頁面轉化,加重系統開銷。因此,頁面的大小應該適中,通常為512B - 8KB,windows系統的頁面大小為4KB。

2 地址結構

分頁系統中的地址結構由兩部分組成,頁號和頁內偏移量。可以解釋為一個二元組(p,w),其中p是頁號,w是頁面p中的偏移量或者相對於p頁開始的位置。下圖(a) 中的地址長度為32位,其中0 - 9位為頁內偏移量,每頁的大小為2的10次方 = 1k;10 - 31位為頁號,共計2的22次方 = 4M頁。在圖(b)中,地址長度同樣為32位,其中0 - 11位頁內偏移量,每頁的大小為2的12次方 = 4k;12 - 31位為頁號,共計2的20次方 = 1M頁,由此可知不同的系統頁的大小是不一樣的。

2 採用大小不等的段,邏輯地址和物理地址之間不再是簡單的對應關系。考慮一個 n+m 位的地址,左邊的n位為段號,右邊的m位為段內地址。當進程進入運行狀態時,它的段表地址被裝入到段表寄存器中。

⑺ 分頁,虛擬地址是怎麼轉換成物理地址的

虛擬地址(即圖中的邏輯地址)的高位表示頁號,由計算機硬體將頁號取出,且和頁表寄存器中的頁表始址一起送加法器,就可以得到該頁對應的頁表項的地址,根據此地址到內存讀出對應的塊號,最後將塊號和頁內地址拼接得到對應的物理地址。

⑻ 在分頁系統中頁面大小由誰決定頁表的作用是什麼如何將邏輯地址轉換成物理地址

答:
在分頁系統中頁面大小由硬體決定。頁表的作用是實現從頁號到物理塊號的地址映射。邏輯地址轉換成物理地址的過程是:用頁號p去檢索頁表,從頁表中得到該頁的物理塊號,把它裝人物理地址寄存器中。同時,將頁內地址d直接送人物理地址寄存器的塊內地址欄位中。這樣,物理地址寄存器中的內容就是由二者拼接成的實際訪問內存的地址,從而完成了從邏輯地址到物理地址的轉換。

⑼ 求物理地址,拜託詳細一點的解答過程,謝謝!

頁式存儲管理的邏輯地址分為兩部分:頁號和頁內地址。由已知條件「用戶編程空間共32個頁面」,可知頁號部分佔5位,由「每頁為2KB」,可知頁內地址佔11位。由「內存為16KB」,可知有8塊,塊號為3位。邏輯地址1A5C(H)所對應的二進製表示形式是:0001 1(010 0101 1100) ,根據上面的分析,()內的為頁內地址,編碼「0001 1」為頁號,表示該邏輯地址對應的頁號為3。查頁表,得到物理塊號是7(十進制),即物理塊地址為:01 11 ,拼接頁內地址10 0101 1100,得01 1110 0101 1100,即1E5C(H)

⑽ 操作系統的物理地址怎麼計算

其實第一條回答是正確的,我在這里為網友們追加一個解釋:

按照書上定義,在頁式存儲系統中,

絕對地址 = 塊號 x塊長 +業內偏移地址。
相對地址 由一段內存的高bit位作為頁號,低bit位作為頁內偏移地址

那重要的一點是,如果找出這三個變數。且看該題:
每頁1KB,說明了,業內偏移地址的范圍是0~1023byte 換句話說,頁內偏移地址佔16bit中的 0-9bit, 那按照相對地址的概念,那10-15 bit就該為頁號地址了。

那麼, 0x0A5C <=> 0000 1010 0101 1100
則前面 0000 10 這6個bit 表示頁號,換算成十進制為 2,也即是頁號為2,再按照頁表推算,即物理塊號就為4, 而4再換算成16進制,即是0001 00;而後面 10 0101 1100 這10個bit位,理所當然的為頁內偏移地址了。 則物理地址就該為0001 00 (占據10-15bit)+ 10 0101 1100 (占據0-9bit) = 0001 0010 0101 1100

他的所謂憑接,其實就是讓0001 00 佔用bit 10-15.

閱讀全文

與如何利用頁表求物理地址相關的資料

熱點內容
word中化學式的數字怎麼打出來 瀏覽:747
乙酸乙酯化學式怎麼算 瀏覽:1411
沈陽初中的數學是什麼版本的 瀏覽:1364
華為手機家人共享如何查看地理位置 瀏覽:1054
一氧化碳還原氧化鋁化學方程式怎麼配平 瀏覽:894
數學c什麼意思是什麼意思是什麼 瀏覽:1423
中考初中地理如何補 瀏覽:1312
360瀏覽器歷史在哪裡下載迅雷下載 瀏覽:712
數學奧數卡怎麼辦 瀏覽:1402
如何回答地理是什麼 瀏覽:1037
win7如何刪除電腦文件瀏覽歷史 瀏覽:1063
大學物理實驗干什麼用的到 瀏覽:1494
二年級上冊數學框框怎麼填 瀏覽:1713
西安瑞禧生物科技有限公司怎麼樣 瀏覽:1008
武大的分析化學怎麼樣 瀏覽:1256
ige電化學發光偏高怎麼辦 瀏覽:1345
學而思初中英語和語文怎麼樣 瀏覽:1669
下列哪個水飛薊素化學結構 瀏覽:1431
化學理學哪些專業好 瀏覽:1493
數學中的棱的意思是什麼 瀏覽:1072