新聞中心
在計(jì)算機(jī)科學(xué)中,操作系統(tǒng)是基本的軟件組件之一。操作系統(tǒng)的作用之一是管理計(jì)算機(jī)系統(tǒng)的內(nèi)存。在Linux操作系統(tǒng)中,內(nèi)存是通過(guò)邏輯地址和物理地址來(lái)管理和訪問(wèn)的。本文將介紹,以及操作系統(tǒng)如何管理這些地址。

從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供成都網(wǎng)站制作、做網(wǎng)站服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。成都創(chuàng)新互聯(lián)將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。
邏輯地址和物理地址的定義
邏輯地址是指進(jìn)程或線程在虛擬內(nèi)存中使用的地址。虛擬內(nèi)存是一種機(jī)制,它允許進(jìn)程或線程使用比實(shí)際RAM更大的內(nèi)存空間。進(jìn)程或線程使用邏輯地址,而不是物理地址,因?yàn)樗鼈儾恢浪鼈冊(cè)谟?jì)算機(jī)中的確切位置。
物理地址是實(shí)際的RAM地址,其用于存儲(chǔ)數(shù)據(jù)和程序。物理地址是由計(jì)算機(jī)硬件管理的,它們由中央處理器(CPU)將指令發(fā)送到RAM,然后存儲(chǔ)或檢索數(shù)據(jù)。物理地址是在RAM中的確切位置。
邏輯地址和物理地址的轉(zhuǎn)換
在Linux操作系統(tǒng)中,內(nèi)存管理單元(MMU)執(zhí)行邏輯地址和物理地址之間的轉(zhuǎn)換。MMU是處理器芯片上的硬件,它負(fù)責(zé)將進(jìn)程或線程的邏輯地址映射到物理地址上。對(duì)于每個(gè)進(jìn)程或線程,操作系統(tǒng)會(huì)分配一個(gè)頁(yè)表,頁(yè)表包含一個(gè)轉(zhuǎn)換表,用于將邏輯地址映射到物理地址上。
當(dāng)進(jìn)程或線程嘗試訪問(wèn)內(nèi)存時(shí),MMU檢查頁(yè)表以確定實(shí)際的物理地址。如果進(jìn)程或線程嘗試訪問(wèn)不存在的地址,則操作系統(tǒng)會(huì)向其發(fā)送信號(hào)以阻止訪問(wèn)。這可以防止進(jìn)程或線程訪問(wèn)其他進(jìn)程或線程的內(nèi)存。
操作系統(tǒng)還使用虛擬存儲(chǔ)器技術(shù)來(lái)管理內(nèi)存。虛擬存儲(chǔ)器是一種機(jī)制,它允許操作系統(tǒng)將系統(tǒng)RAM外的磁盤(pán)存儲(chǔ)器用作RAM的擴(kuò)展。當(dāng)系統(tǒng)RAM不足時(shí),操作系統(tǒng)將部分的RAM數(shù)據(jù)存儲(chǔ)在磁盤(pán)上,并將它們存儲(chǔ)在稱為“頁(yè)面文件”的文件中。當(dāng)進(jìn)程或線程訪問(wèn)已頁(yè)面文件中的數(shù)據(jù)時(shí),操作系統(tǒng)將這些數(shù)據(jù)讀入RAM,并使用MMU將邏輯地址轉(zhuǎn)換為物理地址。
物理地址和硬件
在Linux中,物理地址是由CPU和內(nèi)存控制器(Memory Controller)控制的。它們負(fù)責(zé)將邏輯地址轉(zhuǎn)換為物理地址,并將CPU指令發(fā)送到RAM,以讀取或?qū)懭霐?shù)據(jù)。物理地址和CPU之間的快速通信是計(jì)算機(jī)系統(tǒng)性能的關(guān)鍵之一。
可通過(guò)Linux內(nèi)核配置文件修改內(nèi)存管理策略。內(nèi)核配置文件包含系統(tǒng)配置參數(shù)的信息,包括內(nèi)存管理參數(shù)。通過(guò)修改內(nèi)核配置文件,可以更改Linux內(nèi)核如何管理內(nèi)存并控制物理地址的分配。
Linux邏輯地址與物理地址之間的關(guān)系是操作系統(tǒng)和輸入輸出設(shè)備之間的重要部分。操作系統(tǒng)使用邏輯地址和物理地址之間的轉(zhuǎn)換來(lái)管理內(nèi)存,避免進(jìn)程和線程之間的干擾。物理地址由CPU和內(nèi)存控制器控制,它們負(fù)責(zé)將邏輯地址轉(zhuǎn)換為物理地址。通過(guò)修改內(nèi)核配置文件,可以更改Linux內(nèi)核如何管理內(nèi)存并控制物理地址的分配。了解邏輯地址和物理地址之間的關(guān)系是深入理解Linux操作系統(tǒng)的重要組成部分。
相關(guān)問(wèn)題拓展閱讀:
- 物理地址是什么
- Linux存儲(chǔ)管理方式
物理地址是什么
物理地址是什么?。?
是指你的 網(wǎng)卡 MAC地址,,就相當(dāng)于一個(gè)編號(hào)吧網(wǎng)卡物理地址存儲(chǔ)器中存儲(chǔ)單元對(duì)應(yīng)實(shí)際地址稱物理地址
MAC(Media Access Control, 介質(zhì)訪問(wèn)控制)地址是識(shí)別LAN(局域網(wǎng))節(jié)點(diǎn)的標(biāo)識(shí)。網(wǎng)卡的物理地址通常是由磨轎網(wǎng)卡生產(chǎn)廠家燒入網(wǎng)卡的EPROM(一種閃存襲亮芯片,通??梢酝ㄟ^(guò)程序擦寫(xiě)),它存儲(chǔ)的是傳輸數(shù)據(jù)時(shí)真正賴以標(biāo)識(shí)發(fā)出數(shù)據(jù)的電腦和接收數(shù)據(jù)的主機(jī)的地址。
也就是說(shuō),在網(wǎng)絡(luò)底層的物理傳輸過(guò)程中,是通過(guò)物理地址來(lái)識(shí)別主機(jī)的,它一般也是全球唯一的。比如,著名的以太網(wǎng)卡,其物理地址是48bit(比特位)的整數(shù),如:-00,以機(jī)器可讀的方式存入主機(jī)接口中。以太網(wǎng)地址管理機(jī)構(gòu)(IEEE)將以太網(wǎng)地址,也就是48比特的不同組合,分為若干獨(dú)立的連續(xù)地址組,生產(chǎn)以太網(wǎng)網(wǎng)卡的廠家就購(gòu)買(mǎi)其中一組,具體生產(chǎn)時(shí),逐個(gè)將唯一地址賦予以太網(wǎng)卡。
形象的說(shuō),MAC地址就如同我們身份證上的身份證號(hào)碼,具有全球唯一性。
怎么查詢電腦物理地址
步驟如下: 方法一 1.打開(kāi)【運(yùn)行】按鈕。
2.在【運(yùn)行】對(duì)話框輸入【cmd】,點(diǎn)擊確定。 3.在命令提示符里輸入【ipconfig -all】。
4.按下回車(chē)鍵即可查看到物理地址。 方法二: 1.打開(kāi)【網(wǎng)絡(luò)和共享中心】。
2.點(diǎn)擊【以太網(wǎng)】按鈕。 3.點(diǎn)擊【詳細(xì)信息】即可完成對(duì)物理地址的查詢。
擴(kuò)展資料:描述 地址從0開(kāi)始編號(hào),順序地每次加1,因此存儲(chǔ)器的物理地址空間是呈線性增長(zhǎng)的。它是用二進(jìn)制數(shù)來(lái)表示的,是無(wú)符號(hào)整數(shù),書(shū)寫(xiě)格式為十六進(jìn)制數(shù)。
它是出現(xiàn)在CPU外部地址總線上的尋址物理內(nèi)存的地址信號(hào),是地址變換的最終結(jié)果。用于內(nèi)存芯片級(jí)的單元尋址,與處理器和CPU連接的地址總線相對(duì)應(yīng)。
在計(jì)算機(jī)科學(xué)中,物理地址(英語(yǔ):physical address),也叫實(shí)地址(real address)、二進(jìn)制地址(binary address),它是在地址總線上,以電子形式存在的,使得數(shù)據(jù)總線可以訪問(wèn)主存的某個(gè)特定存儲(chǔ)單元的內(nèi)存地址。 在和虛擬內(nèi)存的計(jì)算機(jī)中,物理地址這個(gè)術(shù)語(yǔ)多用于區(qū)分虛擬地址。
尤其是在使用內(nèi)存管理單元(MMU)轉(zhuǎn)換內(nèi)存地址的計(jì)算機(jī)中,虛擬和物理地址分別指在經(jīng)MMU轉(zhuǎn)換之前和之后的地址。在計(jì)算機(jī)網(wǎng)絡(luò)中,物理地址有時(shí)又是MAC地址的同義詞。
這個(gè)地址實(shí)際上是用于數(shù)據(jù)鏈路層,而不是如它名字所指的物理層上的。 參考資料來(lái)源:拍游寬百度百科:物理地址。
什么是物理地址?
物理地址是你的網(wǎng)卡地址,MAC(Media Access Control, 介質(zhì)訪問(wèn)控制)地址是識(shí)別LAN(局域網(wǎng))節(jié)點(diǎn)的標(biāo)識(shí)。網(wǎng)卡的物理地址通常是由網(wǎng)卡生產(chǎn)廠家燒入網(wǎng)卡的EPROM(一種閃存芯片,通??梢酝ㄟ^(guò)程序擦寫(xiě)),它存儲(chǔ)的是傳輸數(shù)據(jù)時(shí)真正賴以標(biāo)識(shí)發(fā)出數(shù)據(jù)的電腦和接收數(shù)據(jù)的主機(jī)的地址。
也就是說(shuō),在網(wǎng)絡(luò)底層的物理傳輸過(guò)程中,是通過(guò)物理地址來(lái)識(shí)別主機(jī)的,它一般也是全球唯一的。比如,著名的以太網(wǎng)卡,其物理地址是48bit(比特位)的整數(shù),如:-00,以機(jī)器可讀的方式存入主機(jī)接口中。以太網(wǎng)地址管理機(jī)構(gòu)(IEEE)將以太網(wǎng)地址,也就是48比特的不同組合,分為若干獨(dú)立的連續(xù)地址組,生產(chǎn)以太網(wǎng)網(wǎng)卡的廠家就購(gòu)買(mǎi)其中一組,具體生產(chǎn)時(shí),逐個(gè)將唯一地址賦予以太網(wǎng)卡。
形象的說(shuō),MAC地址就如同我們身份證上的身份證號(hào)碼,具有全球唯一性。
可以這樣獲取MAC地址:在Windows 98/Me中,依次單擊“開(kāi)始”→“運(yùn)行” →輸入“winipcfg”→回車(chē)。即可看到MAC地址。在Windows 2023/XP中,依次單擊“開(kāi)始”→“運(yùn)行”→輸入“CMD”→回車(chē)→輸入“ipconfig /all”→回車(chē)。即可看到MAC地址
什么是物理地址?物理地址有何作用?
網(wǎng)絡(luò)中的地址分為物理地址和邏輯地址兩類(lèi),與網(wǎng)絡(luò)層的IP地址 傳輸層的端口號(hào)以及應(yīng)用層的用戶名相比較,局域望網(wǎng)的MAC層地址是由硬件來(lái)處理的,叫做物理地址或硬件地址.IP地址 傳輸層的端口號(hào)以及應(yīng)用層的用戶名是邏輯地址一由軟件處理.我認(rèn)為你說(shuō)的MAC地址應(yīng)該就是物理地址.
大多數(shù)局域網(wǎng)通過(guò)為網(wǎng)卡分配一個(gè)硬件地址來(lái)標(biāo)識(shí)一個(gè)聯(lián)網(wǎng)的計(jì)算機(jī)或其他設(shè)備.所謂物理地址是指固化在網(wǎng)卡EPROM中的地址,這個(gè)地址應(yīng)該保證在全網(wǎng)是唯一的.IEEE注冊(cè)委員會(huì)為每一個(gè)生產(chǎn)廠商分配物理地址的前三字節(jié),即公司標(biāo)識(shí).后面三字節(jié)由廠商自行分配.即一個(gè)廠商獲得一個(gè)前三字節(jié)的地址可以生產(chǎn)的網(wǎng)卡數(shù)量是塊.即一塊網(wǎng)卡對(duì)應(yīng)一個(gè)物理地址.也就是說(shuō)對(duì)應(yīng)物理地址的前三字節(jié)可以知道他的生產(chǎn)廠商.
如果固化在網(wǎng)卡中的地址為,那么這塊網(wǎng)卡插到主機(jī)A中,主機(jī)A的地址就是,不管主機(jī)A是連接在局域網(wǎng)1上還是在局域網(wǎng)2上,也不管這臺(tái)計(jì)算機(jī)移到什么位置,主機(jī)A的物理地址就是.它是不變的,而且不會(huì)和世界上任何一臺(tái)計(jì)算機(jī)相同.當(dāng)主機(jī)A發(fā)送一幀時(shí),網(wǎng)卡執(zhí)行發(fā)送程序時(shí),直接將這個(gè)地址作為源地址寫(xiě)入該幀.當(dāng)主機(jī)A接收一幀時(shí),直接將這個(gè)地址與接收幀目的地址比較,以決定是否接收.
物理地址一般記作-23(主機(jī)A的地址是)
什么是電腦里的“物理地址”?
電腦里的物理地址是指固化在硬件網(wǎng)卡里不能隨便更改的唯一標(biāo)識(shí)。
網(wǎng)絡(luò)中的地址分為物理地址和邏輯地址兩類(lèi):
與網(wǎng)絡(luò)層的IP地址、傳輸層的端口號(hào)以及應(yīng)用層的用戶ID相比較,局域網(wǎng)的MAC層地址是由硬件來(lái)處理的,叫做物理地址或硬件地址;
而IP地址、傳輸層的端口號(hào)以及應(yīng)用層的用戶名是邏輯地址——由軟件處理。
MAC地址一般被稱為物理地址,固化在網(wǎng)卡EPROM中的地址。這個(gè)地址應(yīng)該保證在全網(wǎng)是唯一的.IEEE注冊(cè)委員會(huì)為每一個(gè)生產(chǎn)廠商分配物理地址的前三字節(jié),即公司標(biāo)識(shí)。后面三字節(jié)由廠商自行分配,即一個(gè)廠商獲得一個(gè)前三字節(jié)的地址可以生產(chǎn)的網(wǎng)卡數(shù)量是塊。
什么是線性地址?和物理地址的區(qū)別是什么呢?
386架構(gòu)里,cpu可以處于實(shí)模式和保護(hù)模式。
實(shí)模式下,cpu指令訪問(wèn)的地址就是物理地址,形式為:段寄存器:偏移
在保護(hù)模式下,cpu可以使用分段機(jī)制和分頁(yè)機(jī)制。
分段機(jī)制下使用的地址就是邏輯地址,形式為:段選擇子:偏移
分頁(yè)機(jī)制下使用的地址就是線性地址,形式為:0xXXXXXXXX
無(wú)論是邏輯地址還是線性地址,都要被cpu映射成物理地址。
保護(hù)模式下必須采用分段機(jī)制。在此基礎(chǔ)上可采用分頁(yè)機(jī)制。
邏輯地址被轉(zhuǎn)化為線性地址,如果采用分頁(yè)機(jī)制,則該線性地址通過(guò)分頁(yè)機(jī)制被映射成物理地址。如果不采用分頁(yè)機(jī)制,則該線性地址就是物理地址。
實(shí)模式下的物理地址只能訪問(wèn)1M以下空間,而保護(hù)模式下的物理地址可以訪問(wèn)所有32位空間。并且要注意,物理內(nèi)存空間只是物理地址空間的一個(gè)部分而已。
另外還有一個(gè)”總線地址“的概念,是從總線設(shè)備的角度來(lái)說(shuō)的。
在linux系統(tǒng)里,對(duì)cpu來(lái)說(shuō),物理內(nèi)存的首地址是從線性地址的0xc開(kāi)始的。而對(duì)總線設(shè)備來(lái)說(shuō),物理內(nèi)存的首地址可能是從總線地址0x開(kāi)始,也可能是從另外的總線地址開(kāi)始,隨系統(tǒng)而異。這也是為什么內(nèi)核里經(jīng)常有vir_to_phy 和vir_to_bus轉(zhuǎn)換的緣故。
還有~~~
關(guān)于物理地址,線性地址和虛擬地址的區(qū)別,我只能憑我的理解簡(jiǎn)單說(shuō)說(shuō),可能不準(zhǔn)確。物理地址在什么時(shí)候都存在,但是在采用分頁(yè)技術(shù)和虛擬內(nèi)存技術(shù)后,你很難確定物理地址在那里,所以建議在實(shí)模式下采用物理地址和線性地址形式,這時(shí)候物理地址和線性地址其實(shí)是一致的。最常用的,比方說(shuō),計(jì)算機(jī)啟動(dòng)后的地址是0xfff0:0000,裝載BIOS,然后轉(zhuǎn)移到0x07C0:0000,所以總可以設(shè)置一個(gè)物理斷點(diǎn)0x7C00,開(kāi)始調(diào)試你的bootloader。
Linux存儲(chǔ)管理方式
這種方式中,將用戶程序的地址空間,注意,是
用戶程序的地址空間
分為若干個(gè)固定大小的區(qū)域,成為“頁(yè)”或“頁(yè)面”。我們可以知道,這也頁(yè)其實(shí)是不存在的,只是一種劃分內(nèi)存空間的方法。也就是說(shuō),這種方式將用戶的程序
“肢解”
了,分成很多個(gè)小的部分,每個(gè)部分稱為一個(gè)“頁(yè)”。
將邏輯地址的前n位作為頁(yè)號(hào),后面32-n位作為頁(yè)內(nèi)偏移量。
由于進(jìn)程的最后一頁(yè)經(jīng)常裝不滿一個(gè)塊,從而形成了不可利指洞用的碎片,稱之為
“頁(yè)內(nèi)碎片”
。
作用:實(shí)現(xiàn)頁(yè)號(hào)到物理號(hào)的地址映射。
頁(yè)表是記錄邏輯空間(虛擬內(nèi)存)中每一頁(yè)在內(nèi)存中對(duì)應(yīng)的物理塊號(hào)。但并非每一頁(yè)邏輯空間都會(huì)實(shí)際對(duì)應(yīng)著一個(gè)物理塊,只有實(shí)際駐留在物理內(nèi)存空間中的頁(yè)才會(huì)對(duì)應(yīng)著物理塊。
系統(tǒng)會(huì)為每一個(gè)進(jìn)程建立一張頁(yè)表,頁(yè)表是需要一直駐留在物理內(nèi)存中的(多級(jí)頁(yè)表除外),另外頁(yè)表的起址和長(zhǎng)度存放在 PCB(Process Control Block)進(jìn)程控制結(jié)構(gòu)體中。
可以在頁(yè)表的表項(xiàng)中設(shè)置相關(guān)的權(quán)限控制字段,例如設(shè)置存取控制字段,用于保護(hù)該存儲(chǔ)塊的讀寫(xiě);若存取控制字段為2位,則可以設(shè)置讀/寫(xiě)、只讀和只執(zhí)行等存取方式。
物理塊唯念枯是實(shí)實(shí)在在存在于內(nèi)存中的:
由于執(zhí)行頻率高,要求效率比較高,需要使用硬件實(shí)現(xiàn)。
在系統(tǒng)中設(shè)置一個(gè)
頁(yè)表寄存器(PTR)
,其中存放頁(yè)表在內(nèi)存的起始地址和頁(yè)表的長(zhǎng)度。平時(shí)進(jìn)程未執(zhí)行的時(shí)候,頁(yè)表的起始地址和頁(yè)表長(zhǎng)度放在本進(jìn)程的PCB中。當(dāng)調(diào)度程序調(diào)度到某個(gè)進(jìn)程的時(shí)候,才將這兩個(gè)數(shù)據(jù)裝入
頁(yè)表寄存器
。
變換過(guò)程:
快表的變換機(jī)構(gòu)
為了提高地址變換速度,可在地址變換機(jī)構(gòu)中增設(shè)一個(gè)具有并行查詢能力的特殊高速緩沖寄存器,又稱為”聯(lián)想寄存器”或者“快表”。俗稱TLB。
快表與頁(yè)表的功能類(lèi)似,其實(shí)就是將一部分頁(yè)表存到 CPU 內(nèi)部的高速緩沖存儲(chǔ)器 Cache。CPU 尋址時(shí)先到快表查詢相應(yīng)的頁(yè)表項(xiàng)形成物理地址,如果查詢不到,則到內(nèi)存中查詢,并將對(duì)應(yīng)頁(yè)表項(xiàng)調(diào)入到快表中。但,如果快表的存儲(chǔ)空間已滿,則需要通過(guò)算法找到一個(gè)暫時(shí)不再需要的頁(yè)表項(xiàng),將它換出內(nèi)存。
由于成本的關(guān)系,快表不可能做得很大,通常只存放 16~512 個(gè)頁(yè)表項(xiàng),這對(duì)中、高亮小型作業(yè)來(lái)說(shuō),已有可能把全部頁(yè)表項(xiàng)放在快表中;但對(duì)于大型作業(yè)而言,則只能將其一部分頁(yè)表項(xiàng)放入其中。由于對(duì)程序和數(shù)據(jù)的訪問(wèn)往往帶有局限性,因此,據(jù)統(tǒng)計(jì),從快表中能找到所需頁(yè)表項(xiàng)的概率可達(dá) 90% 以上。這樣,由于增加了地址變換機(jī)構(gòu)而造成的速度損失可減少到 10% 以下,達(dá)到了可接受的程度。
我們可以采用這樣兩個(gè)方法來(lái)解決這一問(wèn)題:
① 對(duì)于頁(yè)表所需的內(nèi)存空間,可采用離散分配方式,以解決難以找到一塊連續(xù)的大內(nèi)存空間的問(wèn)題;
②
只將當(dāng)前需要的部分頁(yè)表項(xiàng)調(diào)入內(nèi)存,其余的頁(yè)表項(xiàng)仍駐留在磁盤(pán)上,需要時(shí)再調(diào)入。
二級(jí)頁(yè)表的頁(yè)表項(xiàng):
過(guò)程:
在采用兩級(jí)頁(yè)表結(jié)構(gòu)的情況下,對(duì)于正在運(yùn)行的進(jìn)程,必須將其外層頁(yè)表調(diào)入內(nèi)存,而對(duì)于內(nèi)頁(yè)表則只需調(diào)入一頁(yè)或幾頁(yè)。為了表征某頁(yè)的頁(yè)表是否已經(jīng)調(diào)入內(nèi)存,還應(yīng)在外層頁(yè)表項(xiàng)中增設(shè)一個(gè)狀態(tài)位 S,其值若為 0,表示該頁(yè)表分頁(yè)不在內(nèi)存中,否則說(shuō)明其分頁(yè)已調(diào)入內(nèi)存。進(jìn)程運(yùn)行時(shí),地址變換機(jī)構(gòu)根據(jù)邏輯地址中的 P1去查找外層頁(yè)表;若所找到的頁(yè)表項(xiàng)中的狀態(tài)位為 0,則產(chǎn)生一個(gè)中斷信號(hào),請(qǐng)求 OS 將該頁(yè)表分頁(yè)調(diào)入內(nèi)存。
多級(jí)頁(yè)表和二級(jí)頁(yè)表類(lèi)似。多級(jí)頁(yè)表和二級(jí)頁(yè)表是為了節(jié)省物理內(nèi)存空間。使得頁(yè)表可以在內(nèi)存中離散存儲(chǔ)。(單級(jí)頁(yè)表為了隨機(jī)訪問(wèn)必須連續(xù)存儲(chǔ),如果虛擬內(nèi)存空間很大,就需要很多頁(yè)表項(xiàng),就需要很大的連續(xù)內(nèi)存空間,但是多級(jí)頁(yè)表不需要。)
為什么引入分段存儲(chǔ)管理?
引入效果:
它將用戶程序的地址空間分為若干個(gè)大小不同的的段,每個(gè)段可以定義一組完整的信息。
段號(hào)表示段名,每個(gè)段都從0開(kāi)始編址,并且采用一段連續(xù)的地址空間。
在該地址結(jié)構(gòu)中,允許一個(gè)作業(yè)最長(zhǎng)有64K個(gè)段,每個(gè)段的更大長(zhǎng)度為64KB。
在分段式存儲(chǔ)管理系統(tǒng)中,為每一個(gè)分段分配一個(gè)連續(xù)的分區(qū)。進(jìn)程的各個(gè)段,可以離散地裝入內(nèi)存中不同的分區(qū)中。
作用:實(shí)現(xiàn)從邏輯地址到物理內(nèi)存區(qū)的映射。
為了保證程序能夠正常運(yùn)行,就必須能夠從物理內(nèi)存中找出每個(gè)邏輯段所對(duì)應(yīng)的位置。為此在系統(tǒng)中會(huì)為每一個(gè)進(jìn)程建立一張
段表
。每個(gè)段在表中有一個(gè)表項(xiàng),其中記錄了該段在內(nèi)存中的起始地址和段的長(zhǎng)度。一般將段表保存在內(nèi)存中。
在配置了段表之后,執(zhí)行的過(guò)程可以通過(guò)查找段表,找到每一個(gè)段所對(duì)應(yīng)的內(nèi)存區(qū)。
為了實(shí)現(xiàn)進(jìn)程從邏輯地址到物理地址的變換功能,在系統(tǒng)設(shè)置了段表寄存器,用于存放段表的起始地址和段表長(zhǎng)度TL。
在進(jìn)行地址變換時(shí),系統(tǒng)將邏輯地址中的段號(hào)與段表長(zhǎng)度TL 進(jìn)行比較。若 S > TL,表示段號(hào)太大,是訪問(wèn)越界,于是產(chǎn)生越界中斷信號(hào)。若未越界,則根據(jù)段表的始址和該段的段號(hào),計(jì)算出該段對(duì)應(yīng)段表項(xiàng)的位置,從中讀出該段在內(nèi)存的起始地址。然后,再檢查段內(nèi)地址 d 是否超過(guò)該段的段長(zhǎng) SL。若超過(guò),即 d>SL,同樣發(fā)出越界中斷信號(hào)。若未越界,則將該段的基址 d 與段內(nèi)地址相加,即可得到要訪問(wèn)的內(nèi)存。
分頁(yè)和分段系統(tǒng)相似之處:兩者都采用離散分配方式,且都是通過(guò)地址映射機(jī)構(gòu)實(shí)現(xiàn)地址變換。
但在概念上兩者完全不同,主要表現(xiàn)在下述三個(gè)方面:
分頁(yè)系統(tǒng)以頁(yè)面作為內(nèi)存分配的基本單位,能有效地提高內(nèi)存利用率,而分段系統(tǒng)以段作為內(nèi)存分配的基本單位,它能夠更好地滿足用戶多方面的需要。
段頁(yè)式地址結(jié)構(gòu)由段號(hào)、段內(nèi)頁(yè)號(hào)及頁(yè)內(nèi)地址三部分所組成
段頁(yè)式系統(tǒng)的基本原理是分段和分頁(yè)原理的結(jié)合,即先將用戶程序分成若干個(gè)段,再把每個(gè)段分成若干個(gè)頁(yè),并為每一個(gè)段賦予一個(gè)段名。如下圖展示了一個(gè)作業(yè)地址空間的結(jié)構(gòu)。該作業(yè)有三個(gè)段:主程序段、子程序段和數(shù)據(jù)段;頁(yè)面大小為 4 KB:
在段頁(yè)式系統(tǒng)中,為了實(shí)現(xiàn)從邏輯地址到物理地址的變換,系統(tǒng)中需要同時(shí)配置段表和頁(yè)表。段表的內(nèi)容與分段系統(tǒng)略有不同,它不再是內(nèi)存始址和段長(zhǎng),而是頁(yè)表始址和頁(yè)表長(zhǎng)度。下圖展示出了利用段表和頁(yè)表進(jìn)行從用戶地址空間到物理(內(nèi)存)空間的映射。
在段頁(yè)式系統(tǒng)中,為了便于實(shí)現(xiàn)地址變換,須配置一個(gè)段表寄存器,其中存放段表始址和段長(zhǎng) TL。進(jìn)行地址變換時(shí),首先利用段號(hào) S,將它與段長(zhǎng) TL 進(jìn)行比較。若 S
在段頁(yè)式系統(tǒng)中,為了獲得一條指令或數(shù)據(jù),須三次訪問(wèn)內(nèi)存。之一次訪問(wèn)是訪問(wèn)內(nèi)存中的段表,從中取得頁(yè)表始址;第二次訪問(wèn)是訪問(wèn)內(nèi)存中的頁(yè)表,從中取出該頁(yè)所在的物理塊號(hào),并將該塊號(hào)與頁(yè)內(nèi)地址一起形成指令或數(shù)據(jù)的物理地址;第三次訪問(wèn)才是真正從第二次訪問(wèn)所得的地址中取出指令或數(shù)據(jù)。
顯然,這使訪問(wèn)內(nèi)存的次數(shù)增加了近兩倍。為了提高執(zhí)行速度,在地址變換機(jī)構(gòu)中增設(shè)一個(gè)高速緩沖寄存器。每次訪問(wèn)它時(shí),都須同時(shí)利用段號(hào)和頁(yè)號(hào)去檢索高速緩存,若找到匹配的表項(xiàng),便可從中得到相應(yīng)頁(yè)的物理塊號(hào),用來(lái)與頁(yè)內(nèi)地址一起形成物理
參考鏈接:
linux 邏輯地址 物理地址 關(guān)系的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux 邏輯地址 物理地址 關(guān)系,Linux邏輯地址與物理地址的關(guān)系,物理地址是什么,Linux存儲(chǔ)管理方式的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
文章題目:Linux邏輯地址與物理地址的關(guān)系(linux邏輯地址物理地址關(guān)系)
當(dāng)前路徑:http://m.5511xx.com/article/cdopijc.html


咨詢
建站咨詢
