導航:首頁 > 物理學科 > 如何轉換為物理地址

如何轉換為物理地址

發布時間:2023-01-22 08:03:05

A. 操作系統中邏輯地址轉物理地址是什麼

1、確定虛擬地址(物理地址)的有效位。

2、再次確定邏輯地址頁面位數你應該知道:邏輯地址=頁號+頁面。

3、由物理地址=頁框號×頁塊大小(頁塊大小是等於頁面大小的)+頁內位移(即頁面邏輯地址)

4、根據上面物理地址=頁框號×1024B+1110000000。

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

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

p=int[A/L]d=AmodL

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

B. 如何檢查是否越界邏輯地址轉為物理地址

1. 基本地址變換機構
定義:用於實現邏輯地址到物理地址轉換的一組硬體機構

基本地址變換機構可以藉助進程的頁表將邏輯地址轉換為物理地址。

通常會在系統中設置一個頁表寄存器(PTR),存放頁表在內存中的起始地址F和頁表長度M(就相當於一個數組),進程未執行時,F和M放在進程式控制制塊(PCB)中,當進程被調度時,操作系統內核會把他們放到頁表寄存器(PTR)中。

過程描述:
進程被調度後,操作系統從PCB中取得頁表始址F和頁表長度M,放入到頁表寄存器PTR中。當程序想訪問一個邏輯地址A的時候,根據頁表大小,就可以自動算出頁號P和頁內偏移量W。

首先檢查頁號P是否合法,如果不合法,就產生一個越界中斷。如果合法,就去頁表中查詢對應的幀號b,再根據偏移量,計算出物理地址(直接把b和W按二進制拼起來就是物理地地址)
頁表長度:頁表內有多少表項。
頁表項長度:每個頁表項佔多大的內存空間。
頁面大小:一個頁面佔多大的存儲空間,頁面大小是2的整數次冪。這也確定了一個邏輯地址中,偏移量最多有多少位。
頁表項:頁表中的一個元素,PTR。
頁表在內存中的存儲,與數組類似,但不完全一樣 ,可能出現跨頁存儲的情況。


打開APP



行仔ovo
關注
操作系統學習 - 邏輯地址轉物理地址 原創
2021-06-28 15:13:35
3點贊

行仔ovo

碼齡9年

關注
文章目錄
1. 基本地址變換機構
2. 具有快表的地址變換機構
局部性原理
快表
引入快表後,地址變換過程
1. 基本地址變換機構
定義:用於實現邏輯地址到物理地址轉換的一組硬體機構

基本地址變換機構可以藉助進程的頁表將邏輯地址轉換為物理地址。

通常會在系統中設置一個頁表寄存器(PTR),存放頁表在內存中的起始地址F和頁表長度M(就相當於一個數組),進程未執行時,F和M放在進程式控制制塊(PCB)中,當進程被調度時,操作系統內核會把他們放到頁表寄存器(PTR)中。

過程描述:
進程被調度後,操作系統從PCB中取得頁表始址F和頁表長度M,放入到頁表寄存器PTR中。當程序想訪問一個邏輯地址A的時候,根據頁表大小,就可以自動算出頁號P和頁內偏移量W。

首先檢查頁號P是否合法,如果不合法,就產生一個越界中斷。如果合法,就去頁表中查詢對應的幀號b,再根據偏移量,計算出物理地址(直接把b和W按二進制拼起來就是物理地址)。


頁表長度:頁表內有多少表項。
頁表項長度:每個頁表項佔多大的內存空間。
頁面大小:一個頁面佔多大的存儲空間,頁面大小是2的整數次冪。這也確定了一個邏輯地址中,偏移量最多有多少位。
頁表項:頁表中的一個元素,PTR。
頁表在內存中的存儲,與數組類似,但不完全一樣 ,可能出現跨頁存儲的情況。

所以,最好用一個Byte把一個頁表項補齊成4Byte。這樣,一般情況下都不會產生碎片。
結論:理論上,頁表項長度為3Byte即可表示頁幀號的范圍了,但是,為了方便頁表的查詢,嘗嘗會讓一個頁表項占更多的Byte,使得每個頁面恰好可以裝得下整數個頁表項。

2. 具有快表的地址變換機構
局部性原理
時間局部性
執行了程序中的某條指令,那麼不久後這條指令很可能再次執行。如果某個數據剛剛訪問過,那麼不久後,該數據很可能再次被訪問。(因為程序中存在大量的循環)

空間局部性
程序訪問了某個內存單元,在不久之後,該內存單元附近的存儲單元也很有可能被訪問。(因為很多數據在內存中都是連續存放的)

快表
在基本地址變換機構中,每次想訪問一個物理地址,都需要到內存中去先查一下頁表,再去訪問物理地址。由於局部性的原理,這個頁表項可能很快就被再次訪問到,既然如此,能否利用局部性的原理減少頁表查詢的次數呢?

快表TLB,是一種訪問速度比內存快很多的高速緩沖存儲器,用來存放當前訪問的若干頁表項,以加速地址變換的過程。與此對應,內存中的頁表常被稱為慢表。
引入快表後,地址變換過程
每次訪問邏輯地址時,先到快表中看一下有沒有對應的幀號,如果有的話,就直接用,如果沒有,再去慢表中查詢。查詢到(命中)以後,回頭更新一下快表。再去訪問物理地址。因為快表的訪問速度比慢表的速度要快得多。所以這樣一來,效率得以提高。
(頁表寄存器PTR是個寄存器,速度也很快)

如果快表命中的話,則訪問某個邏輯地址僅需一次訪存即可(原來需要兩次,第一次是訪問頁表,頁表在內存中;第二次是訪問目標物理地址去讀數據。)。
如果快表未命中的話,仍然按照原來的方式,需要兩次訪存。
若快表已滿,則需要按照一定的演算法對舊的頁表項進行替換。
要注意的是,有的系統支持快表和慢表同時查找。

C. 虛擬地址到物理地址的轉換

對於一個虛擬地址,我們如何能夠實現到物理地址的轉換呢?

我們知道,虛擬地址 = 高10位在頁目錄表中的偏移量(頁目錄項pde)+中間10位在頁表中的偏移量(頁表項pte)+物理頁的偏移,因此,如果我們能夠獲取到虛擬地址所對應的pte的物理地址,那麼根據該物理地址和虛擬地址中物理頁的偏移量進行結合,就能夠得到虛擬地址所對應的真實物理地址。

因為我們起初設計的時候,在頁目錄項的第1023項中存放的是頁目錄表的物理地址,我們可以根據此特定來構造出虛擬地址所對應的pte的物理地址。

uint32_t* pte = (uint32_t*)(0xffc00000 + ((vaddr & 0xffc00000) >> 10) + ((vddr & 0x003ff000) >> 12) * 4);
其中的第一部分0xffc00000是通過虛擬地址的高10位進行回環,回到自身頁目錄表的地址,第二項vaddr & 0xffc00000) >> 10是再用頁目錄項pde(頁目錄內頁表的索引)做為pte的索引訪問到頁表,((vddr & 0x003ff000) >> 12)再用pte的索引做為頁內偏移。

這樣我們就得到的虛擬地址對應的頁表項的物理地址,最後我們根據 ((*pte & 0xfffff000) + (vaddr & 0x00000fff)),來找到物理頁中所對應的那、個內存地址
.

D. 邏輯地址怎麼轉化為物理地址

物理地址:載入到內存地址寄存器中的地址,內存單元的真正地址。在前端匯流排上傳輸的內存地址都是物理內存地址,編號從0開始一直到可用物理內存的最高端。

程序的邏輯地址空間變換成內存中的實際物理地址空間的過程,也就是說在裝入時對目標程序中指令和數據的修改過程。他是實現多道程序在內存中同時運行的基礎。重定位有兩種,分別是動態重定位與靜態重定位。

線性地址:

一個邏輯地址由兩部份組成,段標識符和段內偏移量。段標識符是由一個16位長的欄位組成,稱為段選擇符。其中前13位是一個索引號。這就是「段描述符(segment descriptor)」,段描述符具體地址描述了一個段(對於「段」這個字眼的理解:我們可以理解為把虛擬內存分為一個一個的段。

比如一個存儲器有1024個位元組,可以把它分成4段,每段有256個位元組)。這樣,很多個段描述符,就組了一個數組,叫「段描述符表」。

E. 現代CPU如何自動把虛擬地址轉換成物理地址的硬體電路

虛擬內存是一個由存放在磁碟上的N個連續的位元組大小的單元組成的數組。
每個位元組都有一個唯一的地址,就是虛擬地址。通常,虛擬地址由頁號和偏移量組成,頁號就是抽象的虛擬頁的編號,偏移量用於計算實際的物理地址。
虛擬地址和物理地址的關系。進程雖然使用虛擬地址,但是用數據時還是要到實際的物理地址去取數據。這就存在一個虛擬地址到物理地址的轉化運算,這是由CPU晶元上一個叫做內存管理單元(MMU)的專用硬體來實現的。
通常,物理地址=頁號*頁大小+頁內偏移量。虛擬定址CPU通過虛擬地址來訪問主存,訪問內存使用的物理地址,MMU通過將虛擬地址進行翻譯,轉化為物理地址,然後再用這個物理地址去訪問內存數據。

F. IP地址如何轉化成物理地址

arp是一種將ip轉化成以ip對應的網卡的物理地址的一種協議,或者說ARP協議是一種將ip地址轉化成MAC地址的一種協議。它靠維持在內存中保存的一張表來使ip得以在網路上被目標機器應答。

為什麼要將ip轉化成mac呢?簡單的說,這是因為在tcp網路環境下,一個ip包走到哪裡,要怎麼走是靠路由表定義。但是,當ip包到達該網路後,哪台機器響應這個ip包卻是靠該ip包中所包含的mac地址來識別。也就是說,只有機器的mac地址和該ip包中的mac地址相同的機器才會應答這個ip 包。因為在網路中,每一台主機都會有發送ip包的時候。所以,在每台主機的內存中,都有一個 arp--> mac 的轉換表。通常是動態的轉換表(注意在路由中,該arp表可以被設置成靜態)。也就是說,該對應表會被主機在需要的時候刷新。這是由於乙太網在子網層上的傳輸是靠48位的mac地址而決定的。

G. 邏輯地址轉換物理地址公式

物理地址是明確的、最終用在匯流排上的編號。那麼邏輯地址轉物理地址怎麼轉?我為大家介紹邏輯地址轉物理地址的解決 方法 。希望大家喜歡。

邏輯地址轉換物理地址公式參考如下

1. 物理地址和邏輯地址

物理地址:載入到內存地址寄存器中的地址,內存單元的真正地址。在前端匯流排上傳輸的內存地址都是物理內存地址,編號從0開始一直到可用物理內存的最高端。這些數字被北橋(Nortbridge chip)映射到實際的內存條上。物理地址是明確的、最終用在匯流排上的編號,不必轉換,不必分頁,也沒有特權級檢查(no translation, no paging, no privilege checks)。

邏輯地址:CPU所生成的地址。邏輯地址是內部和編程使用的、並不唯一。例如,你在進行C語言指針編程中,可以讀取指針變數本身值(&操作),實際上這個值就是邏輯地址,它是相對於你當前進程數據段的地址(偏移地址),不和絕對物理地址相干。

(具體步驟 共三步)

1.確定虛擬地址(物理地址)的有效位

例如:假設頁面大小1KB,共32頁。(頁面:邏輯地址 頁框:物理地址)

由32(KB)=32×1024(B) 即等於32×1024 位元組

二進制用多少位能有效表示這么多位元組呢——答是:15位 因為32×1024=2^5×2^10=2^15

2.再次確定邏輯地址頁面位數 你應該知道:邏輯地址=頁號+頁面

還是以上假設,那麼頁面大小為1KB=1024位元組 同樣的方法計算出表示位數:10位

如果給你邏輯地址:0000 1111 1000 0000

那麼由:011+11100000000(相當於 頁號+頁面(10位))推得出頁號011=3

3.根據頁號找出對應的頁框號

由 物理地址=頁框號×頁塊大小(頁塊大小是等於頁面大小的)+頁內位移(即頁面邏輯地址)

根據上面 物理地址=頁框號×1024B + 1110000000 ( 這里的相加是指位置上而言)

例如:110+110=110110(即高地址+低地址)

提問:在一分頁存儲管理系統中,邏輯地址長度為16位,頁面大小為4096B,現有一邏輯地址為2F6AH,且第0、1、2頁依次存放在物理塊5、10、11中,問相應的物理地址為多少?

答:4096B=2^12B

16位定址一共2^16B

分頁存儲。共分的頁:2^16/2^12=2^4=16 共分16頁。

第0頁的地址范圍 0 - FFFH

第1頁的地址范圍 1000H - 1FFFH

第2頁得地址范圍 2000H - 2FFFH

.....

第11頁 B000H - BFFFH

第15頁 F000H - FFFFH

2F6AH=10 1111 0110 1010 在2頁的范圍對應物理塊11

所以物理地址為:

2F6AH - 2000H + B000H = F6AH + B000H= BF6AH

H. 邏輯地址如何轉換為物理地址

如果是16進制的話 將段地址移一位 加上偏移地址就是了如果是二進制的話 是將段地址移4位 加上偏移量

I. 已知邏輯地址求物理地址

J. 怎樣把邏輯地址轉化為物理地址

大多數區域網通過為網卡分配一個硬體地址來標識一個聯網的計算機或其他設備.所謂物理地址是指固化在網卡EPROM中的地址,這個地址應該保證在全網是唯一的.IEEE注冊委員會為每一個生產廠商分配物理地址的前三位元組,即公司標識.後面三位元組由廠商自行分配.即一個廠商獲得一個前三位元組的地址可以生產的網卡數量是16777216塊.即一塊網卡對應一個物理地址.也就是說對應物理地址的前三位元組可以知道他的生產廠商.
如果固化在網卡中的地址為002514895423,那麼這塊網卡插到主機A中,主機A的地址就是002514895423,不管主機A是連接在區域網1上還是在區域網2上,也不管這台計算機移到什麼位置,主機A的物理地址就是002514895423 .它是不變的,而且不會和世界上任何一台計算機相同.當主機A發送一幀時,網卡執行發送程序時,直接將這個地址作為源地址寫入該幀.當主機A接收一幀時,直接將這個地址與接收幀目的地址比較,以決定是否接收.
物理地址一般記作00-25-14-89-54-2

閱讀全文

與如何轉換為物理地址相關的資料

熱點內容
word中化學式的數字怎麼打出來 瀏覽:736
乙酸乙酯化學式怎麼算 瀏覽:1401
沈陽初中的數學是什麼版本的 瀏覽:1347
華為手機家人共享如何查看地理位置 瀏覽:1038
一氧化碳還原氧化鋁化學方程式怎麼配平 瀏覽:881
數學c什麼意思是什麼意思是什麼 瀏覽:1405
中考初中地理如何補 瀏覽:1296
360瀏覽器歷史在哪裡下載迅雷下載 瀏覽:697
數學奧數卡怎麼辦 瀏覽:1384
如何回答地理是什麼 瀏覽:1020
win7如何刪除電腦文件瀏覽歷史 瀏覽:1052
大學物理實驗干什麼用的到 瀏覽:1481
二年級上冊數學框框怎麼填 瀏覽:1696
西安瑞禧生物科技有限公司怎麼樣 瀏覽:962
武大的分析化學怎麼樣 瀏覽:1244
ige電化學發光偏高怎麼辦 瀏覽:1334
學而思初中英語和語文怎麼樣 瀏覽:1646
下列哪個水飛薊素化學結構 瀏覽:1420
化學理學哪些專業好 瀏覽:1483
數學中的棱的意思是什麼 瀏覽:1054