十年網站開發(fā)經驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網站問題一站解決
在計算機科學中,操作系統是基本的軟件組件之一。操作系統的作用之一是管理計算機系統的內存。在Linux操作系統中,內存是通過邏輯地址和物理地址來管理和訪問的。本文將介紹,以及操作系統如何管理這些地址。

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