Ⅰ 如何通過邏輯地址和物理地址求物理塊數
通過邏輯地址和物理地址求物理塊數方法如下
邏輯地址=頁號+頁內地址=p+d;
物理地址=塊號+頁內地址=f+d;
(兩個d是一樣的,頁表中存儲有p與f的對應關系)
地址總長度位數=頁號佔位數m+頁內地址佔位數n
邏輯地址中的頁數=2^m (2的 頁號位數 次冪)
一個頁面(業內地址)大小= 2^n (2的 頁內地址位數 次冪)
Ⅱ 操作系統的物理地址怎麼計算
其實第一條回答是正確的,我在這里為網友們追加一個解釋:
按照書上定義,在頁式存儲系統中,
絕對地址 = 塊號 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.
Ⅲ 什麼是邏輯地址和物理地址
有網友問到我:什麼是邏輯地址和物理地址?怎麼轉換?針對此問題,我為大家分享了具體的操作 方法 ,希望對你有幫助!
什麼是邏輯地址是指由程式產生的和段相關的偏移地址部分。例如,你在進行C語言指針編程中,能讀取指針變數本身值(&操作),實際上這個值就是邏輯地址,他是相對於你當前進程數據段的地址,不和絕對物理地址相干。只有在Intel實模式下,邏輯地址才和物理地址相等(因為實模式沒有分段或分頁機制,Cpu不進行自動地址轉換);邏輯也就是在Intel保護模式下程式執行代碼段限長內的偏移地址(假定代碼段、數據段如果完全相同)。應用程式員僅需和邏輯地址打交道,而分段和分頁機制對你來說是完全透明的,僅由系統編程人員涉及。應用程式員雖然自己能直接操作內存,那也只能在 操作系統 給你分配的內存段操作。
什麼是物理地址用於內存晶元級的單元定址,與處理器和CPU連接的地址匯流排相對應。 ——這個概念應該是這幾個概念中最好理解的一個,但是值得一提的是,雖然可以直接把物理地址理解成插在機器上那根內存本身,把內存看成一個從0位元組一直到最大空量逐位元組的編號的大數組,然後把這個數組叫做物理地址,但是事實上,這只是一個硬體提供給軟體的抽像,內存的定址方式並不是這樣。所以,說它是“與地址匯流排相對應”,是更貼切一些,不過拋開對物理內存定址方式的考慮,直接把物理地址與物理的內存一一對應,也是可以接受的。也許錯誤的理解更利於形而上的抽像。 虛擬內存(virtual memory) 這是對整個內存(不要與機器上插那條對上號)的抽像描述。它是相對於物理內存來講的,可以直接理解成“不直實的”,“假的”內存,例如,一個0x08000000內存地址,它並不對就物理地址上那個大數組中0x08000000 - 1那個地址元素;之所以是這樣,是因為現代操作系統都提供了一種內存管理的抽像,即虛擬內存(virtual memory)。進程使用虛擬內存中的地址,由操作系統協助相關硬體,把它“轉換”成真正的物理地址。這個“轉換”,是所有問題討論的關鍵。有了這樣的抽像,一個程序,就可以使用比真實物理地址大得多的地址空間。(拆東牆,補西牆,銀行也是這樣子做的),甚至多個進程可以使用相同的地址。不奇怪,因為轉換後的物理地址並非相同的。 ——可以把連接後的程序反編譯看一下,發現連接器已經為程序分配了一個地址,例如,要調用某個函數A,代碼不是call A,而是call 0x0811111111 ,也就是說,函數A的地址已經被定下來了。沒有這樣的“轉換”,沒有虛擬地址的概念,這樣做是根本行不通的。打住了,這個問題再說下去,就收不住了。邏輯地址(logical address) Intel為了兼容,將遠古時代的段式內存管理方式保留了下來。邏輯地址指的是機器語言指令中,用來指定一個操作數或者是一條指令的地址。以上例,我們說的連接器為A分配的0x08111111這個地址就是邏輯地址。 ——不過不好意思,這樣說,好像又違背了Intel中段式管理中,對邏輯地址要求,“一個邏輯地址,是由一個段標識符加上一個指定段內相對地址的偏移量,表示為 [段標識符:段內偏移量],也就是說,上例中那個0x08111111,應該表示為[A的代碼段標識符: 0x08111111],這樣,才完整一些” 線性地址(linear address)或也叫虛擬地址(virtual address) 跟邏輯地址類似,它也是一個不真實的地址,如果邏輯地址是對應的硬體平台段式管理轉換前地址的話,那麼線性地址則對應了硬體頁式內存的轉換前地址。
邏輯地址和物理地址拓展知識存儲器中每一個單元的地址可以用兩種方法表示:
1.邏輯地址:其表達形式為“段地址:段內偏移地址”。
2.物理地址:CPU與存儲器進行數據交換時在地址匯流排上
提供的20位地址信息稱為物理地址。
物理地址=段地址×10H+段內偏移量
CPU一次處理的數據是16位,地址匯流排實際上代表CPU的定址能力,地址線為20條那麼CPU實際的定址能力就是2的20次方就是1M。實際的物理地址是這樣形成的:
段地址*10H+偏移地址,偏移地址用IP指向,IP是16位的。
例如段地址是1234H,偏移地址是4321H
那麼實際的物理地址怎麼算呢:1234H*10H+4321H=12340H+4321H=16661H
實際上可以這么來理解,就是段地址左移一位後加上偏移地址就得出實際的物理地址。
這里邏輯地址和物理地址的關系又可以用一個比喻來說明:
比如你的學號是0102,這是你的真實地址亦即物理地址,那麼又假如01表示你的班級名稱,02表示你相對整個班級的位置,這就是邏輯地址,道理是一樣的,只不過在實際由邏輯地址合成物理地址的時候需要將物理地址左移一位,再加上偏移地址。
邏輯地址到物理地址的轉換方法以一個例子的形式講解邏輯地址到物理地址的轉換:
某虛擬存儲器的用戶編程空間共32個頁面,每頁為1KB,內存為16KB。假定某時刻一用戶頁表中已調入內存的頁面的頁號和物理塊號的對照表如下:
則邏輯地址0A5C(H)所對應的物理地址是什麼?要求:寫出主要計算過程。
解題過程:
首先要知道頁式存儲管理的邏輯地址分為兩部分:頁號和頁內地址。物理地址分為兩部分:
關系為:邏輯地址=頁號+頁內地址d
物理地址=塊號*塊長度( 等於頁面長度 L )+頁內地址;
頁號: p = lnt( 邏輯地址 A / 頁面長度 L ); d = 邏輯地址 A % 頁面長度 L (取余)
分析題:已知:用戶編程空間共32個頁面,2ˆ5=32得知頁號部分佔5位,由“每頁為1KB”,1K=2^10,可知內頁地址佔10位。
由“內存為16KB”,2^4=16得知塊號佔4位。
邏輯地址0A5C(H)所對應的二進製表示形式是:0000101001011100,後十位1001011100是頁內地址,
00010(本題特例,因為頁面長度為1KB)為為頁號,頁號化為十進制是2,在對照表中找到2對應的物理塊號是11,11轉換二進制是1011,11* 2^10 + d即可求出物理地址為10111001011100,化成十六進制為2 E5C;
即則邏輯地址0A5C(H)所對應的物理地址是2E5C;
猜你喜歡:
1. IP地址和物理地址有什麼區別
2. 物理地址和邏輯地址的區別
3. 虛擬地址與物理地址的概念
4. 物理地址什麼意思
5. 邏輯地址如何轉換成物理地址
6. 物理地址有什麼用
7. 物理地址作用是什麼
Ⅳ 操作系統,頁號,頁面號和塊號怎麼區別 頁面號是不是就是塊號
1、頁和塊的對象不同:頁是對邏輯地址進行分頁存儲,塊是對實際地址進行分塊存儲。
2、頁號是虛擬地址的劃分,指向程序中的某一頁,每個頁號對應一個頁面號。
3、塊號是實際地址的劃分,指向內存空間中某一個物理塊。
4、頁面號不是塊號。
(4)主存中的物理塊怎麼求擴展閱讀
分頁存儲
1、分頁存儲管理是將一個進程的邏輯地址空間分成若干個大小相等的片,稱為頁面或頁,並為各頁加以編號,從0開始,如第0頁、第1頁等。
2、相應地,也把內存空間分成與頁面相同大小的若干個存儲塊,稱為(物理)塊或頁框(frame),也同樣為它們加以編號,如0#塊、1#塊等等。
3、在為進程分配內存時,以塊為單位將進程中的若干個頁分別裝入到多個可以不相鄰接的物理塊中。由於進程的最後一頁經常裝不滿一塊而形成了不可利用的碎片,稱之為「頁內碎片」。
分段存儲
1、在分段存儲管理方式中,作業的地址空間被劃分為若干個段,每個段定義了一組邏輯信息。例如,有主程序段MAIN、子程序段X、數據段D及棧段S等。
2、每個段都有自己的名字。為了實現簡單起見,通常可用一個段號來代替段名,每個段都從0開始編址,並採用一段連續的地址空間。
3、段的長度由相應的邏輯信息組的長度決定,因而各段長度不等。整個作業的地址空間由於是分成多個段,因而是二維的,亦即,其邏輯地址由段號(段名)和段內地址所組成。
參考文獻:網路-存儲管理
Ⅳ 物理塊號怎麼算
1、盤塊的大小為4KB,每個盤塊號佔4B,則一個索引塊可含 4KB/4B=1K個盤塊號,於是兩級索引最多可含1K×1K =
1M個盤塊號,因此,允許的最大文件長度為4KB×1M = 4GB.
2、最短尋找時間優先調度演算法總是從等待訪問者中挑選尋找時間最短的那個請求先執行的,而不管訪問者到來的先後次序.現在當當前磁頭在第4道,離它最近的是5,移動1道,離5最近的是7,移動2道,離7最近的是11,以此類推,則最後的移動次序為5、7、11、21、22、0,移動倒數為1+2+4+10+1+22=40.
3、採用最短尋道時間優先調度演算法時與第二題類似,移動次序為16、13、9、20、24、29,移動總數為1+3+4+11+4+5=28.
「電梯調度」演算法是從移動臂當前位置開始沿著臂的移動方向去選擇離當前移動臂最近的那個柱訪問,如果沿臂的移動方向無請求訪問時,就改變臂的移動方向再選擇.現在移動方向是從大到小,那會先朝比當前柱面小的方向找離其最近的移動,當前在15,比它小又離它最近的是13,然後是9,比它小的訪問請求處理完了,就改變方向,於是離15最近的是16,然後是20,、24、29,最終的次序是13、9、16、20、24、29,移動總數是2+4+7+4+4+5=26.
Ⅵ 操作系統原理 文件的邏輯塊號怎麼轉變為物理塊號
(1)符號目錄項佔8位元組,物理塊大小為512位元組,目錄文件包含256個目錄項,所以分解後存放符號文件所需的物理塊為(8*256)/512=4。
(2)根據(1)中求出的4,得出平均訪盤次數為【(1+4)/2】+1=3.5。
Ⅶ 什麼叫物理內存怎麼知道自己電腦上的物理內存是多少
最簡單的方法打開「我的電腦」點擊屬性即可。物理內存(Physical memory)是相對於邏輯內存而言的。物理內存指通過物理內存條而獲得的內存空間,而邏輯內存則是指將硬碟的一塊區域劃分來作為內存。內存主要作用是在計算機運行時為操作系統和各種程序提供臨時儲存。常見的物理內存規格有256M、512M、1G、2G等,現如今隨著計算機硬體的發展,已經出現4G、8G甚至更高容量的內存規格。當物理內存不足時,可以用虛擬內存代替。在應用中,自然是顧名思義,物理上,真實存在的插在主板內存槽上的內存條的容量的大小。看計算機配置的時候,主要看的就是這個物理內存。最簡單的查看方法:滑鼠在『任務欄』(也就是桌面最底下的那個橫條)上『右擊』選擇『任務管理器』,再單擊『性能』,在該窗口的右下側會看到『物理內存』一欄,『物理內內總數』表示內存一共有多大,而『可用數』則表示還剩餘有多少內存能使用。只要把『內存總數』減去『可用數』就可知道已經使用了多少內存了。什麼叫物理內存?怎麼知道自己電腦上的物理內存是多少?