① 操作系統的物理地址怎麼計算
其實第一條回答是正確的,我在這里為網友們追加一個解釋:
按照書上定義,在頁式存儲系統中,
絕對地址 = 塊號 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.
② 已知當前段的寄存器的基址怎樣找物理地址末地址與首地址
段寄存器的內容左移4位(我說的是二進制),就是這個段的首地址了,在這個基礎上加上0ffffh,就是這個段的末地址。因為物理地址=段基地址左移4位+段內偏移地址,其中段內偏移地址是16位。
③ 頁儲存管理中,已知一個邏輯地址長度為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。因頁號超過頁表長度,該邏輯地址非法。
④ 求物理地址,拜託詳細一點的解答過程,謝謝!
頁式存儲管理的邏輯地址分為兩部分:頁號和頁內地址。由已知條件「用戶編程空間共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)