<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦>學習電腦>電腦入門>

        邏輯地址轉物理地址

        時間: 春健736 分享

          物理地址是明確的、最終用在總線上的編號。那么邏輯地址轉物理地址怎么轉?學習啦小編為大家介紹邏輯地址轉物理地址的解決方法。希望大家喜歡。

          邏輯地址轉物理地址參考如下

          1. 物理地址和邏輯地址

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

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

          為什么會有這兩種地址?

          個人覺的原因在于邏輯地址分配更加靈活,可以允許不唯一,看起來也較為直觀,例如,一段代碼中分配數組,邏輯地址上是連續的,然而在物理地址上,這個數組所占用的頁可能分散開來,物理地址上就是不連續的,這樣對程序的可理解性上有影響。另外,有了邏輯地址這個概念,才能使用虛擬內存技術。

          CPU將一個虛擬內存空間中的地址轉換為物理地址,需要進行兩步:首先將給定一個邏輯地址(其實是段內偏移量,這個一定要理解!!!),CPU要利用其段式內存管理單元,先將為個邏輯地址轉換成一個線程地址,再利用其頁式內存管理單元,轉換為最終物理地址。

          物理地址(physical address)

          用于內存芯片級的單元尋址,與處理器和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)

          跟邏輯地址類似,它也是一個不真實的地址,如果邏輯地址是對應的硬件平臺段式管理轉換前地址的話,那么線性地址則對應了硬件頁式內存的轉換前地址。

        607198 主站蜘蛛池模板: 国产高清自产拍av在线| 国产色无码精品视频免费| 亚洲一区二区三区av激情 | 亚洲一区二区三区高清在线看| 人妻丰满熟妇av无码区乱| 日韩人妻无码一区二区三区综合部| 全部av―极品视觉盛宴| 精品国产成人国产在线视| 亚洲欧美日韩在线不卡| 天堂在线精品亚洲综合网| 亚洲av免费看一区二区| 亚洲熟妇精品一区二区| 国产精品福利自产拍久久| 国产av普通话对白国语| 人妻少妇精品中文字幕| 亚洲嫩模一区二区三区| 韩国午夜福利片在线观看| 久久99国产视频| 69天堂人成无码麻豆免费视频| 在线观看91精品国产不卡 | 欧美交A欧美精品喷水| 伊人久久大香线蕉网av| 欧美黑人巨大xxxxx| 亚洲激情av一区二区三区| 国产精品成人午夜久久| 亚洲熟妇自偷自拍另欧美| 偷窥盗摄国产在线视频| 琪琪777午夜理论片在线观看播放| 亚洲av成人午夜电影在线观看| 国产福利一区二区三区在线观看| 色伦专区97中文字幕| 亚洲色成人网站www永久下载| 一区二区三区一级黄色片| 亚洲一区二区偷拍精品| 亚洲国产精品久久久久秋霞| 精品国产女同疯狂摩擦2 | 91色老久久精品偷偷蜜臀| 亚洲精品一区二区三区小| 亚洲欧美日韩在线码| 337p粉嫩大胆色噜噜噜| 国产在线乱子伦一区二区|