① 虛擬地址與物理地址怎麼映射
每個進程都是獨立的虛擬地址空間,兩個獨立進程的相同地址互不幹擾,但是在物理上對每早坦個進程可能也就分了一部分空間給了某個進梁睜派程,所橡賀以中間就要用到映射,調度某個進程執行時,就要把它的地址空間映射到一個物理空間上
② 什麼叫物理地址什麼叫邏輯地址什麼叫地址映射地址映射分哪幾類
什麼叫物理地址?什麼叫邏輯地址?什麼叫地址映射?地址映射分哪幾類?
1、物理地址就是由硬體地址編碼電路產生的內存地址。
2、邏輯地址是軟體程序中使用的地址,是為了編程的簡易性、安全性等目的由物理地址按一些規則由物理地址轉化而來的地址。比如將物理地址空間分為若干段,從而一個物理地址就可以由一個段地址和一個段內地址構成的邏輯地址來表示了----這種物理地址和邏輯地址的對用關系就叫地址映射:
3、映射本是個數學概念,描述兩個集合元素之間的對應關系:如有兩個集合A和B,如果對於A中的每一個元素,B中都有唯一的一個元素與之對應,A和B的這種對應關系就稱為映射。
4、映射的種類很多,PC微機中有內存和外存之間映射、分頁等,有文件映射,埠映射:即讓內部網路中很多機器都能對外部網路提供WWW服務,只用一個網關IP地址,這當然需要把這些內部機器都映射到這同一個網關IP地址去了,這有很多好處,安全,省錢:就一個IP,當然省錢嘍。
③ 如何將物理地址映射到基於頁面的內存管理系統中的虛擬地址
如何將物理地址映射到基於頁面的內存管理系統中的虛擬地址
Win32通過一個兩層的表握凱派結構來實現地址映射,因為每個進程都擁有私有的4G的虛擬內存空間,相應的,每個進程都有自己的層次表結構來實現其地址映射。
第一孫跡層稱為頁目錄,實際就是一個內存頁,Win32的內存頁有4KB大小,這個內存段賀頁以4個位元組分為1024項,每一項稱為「頁目錄項」(PDE);
第二層稱為頁表,這一層共有1024個頁表,頁表結構與頁目錄相似,每個頁表也都是一個內存頁,這個內存頁以4KB的大小被分為1024項,頁表的每一項被稱為頁表項(PTE),易知共有1024×1024個頁表項。每一個頁表項對應一個物理內存中的某一個「內存頁」,即共有1024×1024個物理內存頁,每個物理內存頁為4KB,這樣就可以索引到4G大小的虛擬物理內存。
④ 基本分段存儲管理方式的分段系統的基本原理
在分段存儲管理方式中,作業的地址空間被劃分為若干個段,每個段定義了一組邏輯信息。例如,有主程序段MAIN、子程序段X、數據段D及棧段S等,如圖4-17所示。每個段都有自己的名字。為了實現簡單起見,通常可用一個段號來代替段名,每個段都從0開始編址,並採用一段連續的地址空間。段的長度由相應的邏輯信息組的長度決定,因而各段長度不等。整個作業的地址空間由於是分成多個段,因而是二維的,亦即,其邏輯地址由段號(段名)和段內地址所組成。
分段地址中的地址具有如下結構:
在該地址結構中,允許一個作業最長有 64 K個段,每個段的最大長度為64 KB。分段方式已得到許多編譯程序的支持,編譯程序能自動地根據源程序的情況而產生若干個段。例如,Pascal編譯程序可以為全局變數、用於存儲相應參數及返回地址的過程調用棧、每個過程或函數的代碼部分、每個過程或函數的局部變數等等,分別建立各自的段。類似地,Fortran編譯程序可以為公共塊(Common block)建立單獨的段,也可以為數組分配一個單獨的段。裝入程序將裝入所有這些段,並為每個段賦予一個段號。 為了實現從進程的邏輯顫明地址到物理地址的變換功能,在系統中設置了段表寄存器,用於存放段表始址和段表長度TL。在進行地址變換時,系統將邏輯地址中的段號與段表長度TL進行比較。若S>TL,表示段號太大,是訪問越界,於是產生越界中斷信號;若未越界,則根據段表的始址和該段的段號,計算出該段對應段表項的位置,從中讀出該段在內存的起始地址,然後,再檢查段內地址d是否超過該段的段長SL。若超過,即d>SL,同樣發出越界中斷信號;若未越界,則將該段茄弊告的基址d與段內地址相加,即可得到要訪問的內存物理地址。
下圖示出了分段系統的地址變換過程。
像分頁系統一樣,當段表放在內存中時,每要訪問一個數據,都須訪問兩次內存,從而極大地降低了計算機的速率。解決的方法也和分頁系統類似,再增設卜衫一個聯想存儲器,用於保存最近常用的段表項。由於一般情況是段比頁大,因而段表項的數目比頁表項的數目少,其所需的聯想存儲器也相對較小,便可以顯著地減少存取數據的時間,比起沒有地址變換的常規存儲器的存取速度來僅慢約10%~15%。
⑤ 內存地址映射是什麼
內存物理地址為橡清差A,即地址A而物理地址A得地址代碼又需要內存來存放,我們設地址A存的地址為地址B所謂映射就是把存地址梁皮A代碼的地址B由地址C來來指向地址B,也就是說通過C來間接正升的指向實際地址A 這就好比一個儲藏庫為A,地址代碼為1111,我把這個地址代碼放到B處(B裡面放上A的地址代碼1111),而B的地址為10000,我在把B的地址10000放到C中(01010),這樣C就是對B的映射!
⑥ 什麼是地址映射地址映射由計算機系統中的哪一個部分實現
為了保證CPU執行指令時可正確訪問存儲單元,需將用戶程序中的邏輯地址轉換為運手物行時由機器直畢雀液接定址的物理地址,這一過程稱為地址映射。
地址映射最小單位為1頁,4K大小,所以len值最小為:0x00001000。
地址映射分類:
地址映射也可以成為地址重定位或地址變換,可以分為以下兩類:
靜態重定位
當用戶程序被裝入內存時,一次性實現邏輯地址到物理地址的轉換,以後不再轉換(一般在裝入內存時由軟體完成)。
動態重定位
在程序運行過程中要訪問數據時再進歲沒行地址變換(即在逐條指令執行時完成地址映射。一般為了提高效率,此工作由硬體地址映射機制來完成。由硬體支持,軟體硬體結合完成。硬體上一般需要一對寄存器的支持)。
⑦ 分段存儲管理需提供二維地址
一. 分頁存儲管理
1.基本思想
用戶程序的地址空間被劃分成若干固定大小的區域,稱為「頁」,相應地,內存空間分成若干個物理塊,頁和塊的大小相等。可將用戶程序的任一頁放在內存的任一塊中,實現了離散分配。
2. 分頁存儲管理的地址機構
15 12 11 0
頁號P 頁內位移量W
頁號4位,每個作業最多2的4次方=16頁,表示頁號從0000~1111(24-1),頁內位移量的位數表示頁的大小,若頁內位移量12位,則2的12次方=4k,頁的大小為4k,頁內地址從000000000000~111111111111
若給定一個邏輯地址為A,頁面大小為L,則
頁號P=INT[A/L],頁內地址W=A MOD L
3. 頁表
分頁系統中,允許將進程的每一頁離散地存儲在內存的任一物理塊中,為了能在內存中找到每個頁面對應的物理塊,系統為每個進程建立一張頁面映射表,簡稱頁表。頁表的作用是實現從頁號到物理塊號的地址映射。
頁表:
頁號 物理塊號 存取控制
0 2
1 15(F)
2 14(E)
3 1
4. 地址變換
(1) 程序執行時,從PCB中取出頁表始址和頁表長度(4),裝入頁表寄存器PTR。
(2) 由分頁地址變換機構將邏輯地址自動分成頁號和頁內地址。
例:11406D=0010|110010001110B=2C8EH
頁號為2,位移量為C8EH=3214D
或11406 DIV 4096=2
11406 MOD 4096=3214
(3) 將頁號與頁表長度進行比較(2<4),若頁號大於或等於頁表長度,則表示本次訪問的地址已超越進程的地址空間,產生越界中斷。
(4) 將頁表始址與頁號和頁散者表項長度的乘積相加,便得到該頁表項在頁表中的位置。
(5) 取出頁描述子得到該頁的物理塊號。 2 14(E)
(6) 對該頁的存取控制進行檢查。
(7) 將物理塊號送入物理地址寄存器中,再將有效地址寄存器中的頁內地址直接送入物理地址寄存器的塊內地址欄位中,拼接得到實際的物理地址。
例:0010|110010001101B
1110|110010001101B=EC8EH=60558D
或 14*4096+3214=60558D
5. 具有快表的地址變換機構
分頁系統中,CPU每次要存取一個數據,都要兩次訪問內存(訪問頁表、訪問實際物理地址)。為提高地址變換碧歷速度,增設一個具有並行查詢能力的特殊高速緩沖存儲器,稱沖慧薯為「聯想存儲器」或「快表」,存放當前訪問的頁表項。
二.分段存儲管理
1.基本思想
將用戶程序地址空間分成若干個大小不等的段,每段可以定義一組相對完整的邏輯信息。存儲分配時,以段為單位,段與段在內存中可以不相鄰接,也實現了離散分配。
2. 分段存儲方式的引入
方便編程
分段共享
分段保護
動態鏈接
動態增長
3. 分段地址結構
作業的地址空間被劃分為若干個段,每個段定義了一組邏輯信息。常式序段、數據段等。每個段都從0開始編址,並採用一段連續的地址空間。
段的長度由相應的邏輯信息組的長度決定,因而各段長度不等。整個作業的地址空間是二維的。
15 12 11 0
段號 段內位移量
段號4位,每個作業最多24=16段,表示段號從0000~1111(24-1);段內位移量12位,212=4k,表示每段的段內地址最大為4K(各段長度不同),從000000000000~111111111111
4. 段表
段號 段長 起始地址 存取控制
0 1K 4096
1 4K 17500
2 2K 8192
5. 地址變換
(1). 程序執行時,從PCB中取出段表始址和段表長度(3),裝入段表寄存器。
(2). 由分段地址變換機構將邏輯地址自動分成段號和段內地址。
例:7310D=0001|110010001110B=1C8EH
段號為1,位移量為C8EH=3214D
(3). 將段號與段表長度進行比較(1<3),若段號大於或等於段表長度,則表示本次訪問的地址已超越進程的地址空間,產生越界中斷。
(4). 將段表始址與段號和段表項長度的乘積相加,便得到該段表項在段表中的位置。
(5). 取出段描述子得到該段的起始物理地址。1 4K 17500
(6). 檢查段內位移量是否超出該段的段長(3214<4K),若超過,產生越界中斷。
(7). 對該段的存取控制進行檢查。
(8). 將該段基址和段內地址相加,得到實際的物理地址。
例:0001|110010001101B
起始地址17500D+段內地址3214D=20714D
三.分頁與分段的主要區別
分頁和分段有許多相似之處,比如兩者都不要求作業連續存放.但在概念上兩者完全不同,主要表現在以下幾個方面:
(1)頁是信息的物理單位,分頁是為了實現非連續分配,以便解決內存碎片問題,或者說分頁是由於系統管理的需要.段是信息的邏輯單位,它含有一組意義相對完整的信息,分段的目的是為了更好地實現共享,滿足用戶的需要.
(2)頁的大小固定,由系統確定,將邏輯地址劃分為頁號和頁內地址是由機器硬體實現的.而段的長度卻不固定,決定於用戶所編寫的程序,通常由編譯程序在對源程序進行編譯時根據信息的性質來劃分.
(3)分頁的作業地址空間是一維的.分段的地址空間是二維的.
四.段頁式存儲管理
1.基本思想:
分頁系統能有效地提高內存的利用率,而分段系統能反映程序的邏輯結構,便於段的共享與保護,將分頁與分段兩種存儲方式結合起來,就形成了段頁式存儲管理方式。
在段頁式存儲管理系統中,作業的地址空間首先被分成若干個邏輯分段,每段都有自己的段號,然後再將每段分成若干個大小相等的頁。對於主存空間也分成大小相等的頁,主存的分配以頁為單位。
段頁式系統中,作業的地址結構包含三部分的內容:段號 頁號 頁內位移量
程序員按照分段系統的地址結構將地址分為段號與段內位移量,地址變換機構將段內位移量分解為頁號和頁內位移量。
為實現段頁式存儲管理,系統應為每個進程設置一個段表,包括每段的段號,該段的頁表始址和頁表長度。每個段有自己的頁表,記錄段中的每一頁的頁號和存放在主存中的物理塊號。
2.地址變換的過程:
(1)程序執行時,從PCB中取出段表始址和段表長度,裝入段表寄存器。
(2)由地址變換機構將邏輯地址自動分成段號、頁號和頁內地址。
(3)將段號與段表長度進行比較,若段號大於或等於段表長度,則表示本次訪問的地址已超越進程的地址空間,產生越界中斷。
(4)將段表始址與段號和段表項長度的乘積相加,便得到該段表項在段表中的位置。
(5)取出段描述子得到該段的頁表始址和頁表長度。
(6)將頁號與頁表長度進行比較,若頁號大於或等於頁表長度,則表示本次訪問的地址已超越進程的地址空間,產生越界中斷。
(7)將頁表始址與頁號和頁表項長度的乘積相加,便得到該頁表項在頁表中的位置。
(8)取出頁描述子得到該頁的物理塊號。
(9)對該頁的存取控制進行檢查。
(10)將物理塊號送入物理地址寄存器中,再將有效地址寄存器中的頁內地址直接送入物理地址寄存器的塊內地址欄位中,拼接得到實際的物理地址。
⑧ 是如何實現邏輯地址到物理地址的映射
邏輯地址=基地址地址*10H+物理地址
詳細可查閱 單片機或者微機原理 相關書籍!
⑨ 求教段頁式地址映射過程
假設段頁式系統有關數據結構如下,
(1)求虛地址69732的物段畝理地址(用十進製表示)
(2)該邏輯地址空間多大?
(3)每段的最大尺寸為多少?
數據結構(由於畫出圖形不方便,故用文字表示):
邏輯地址結構(s,p,w) 其中s為8位,沒燃枝p為4位,w為12位
段表:枯敏0——頁表0
1——頁表1
2——頁表2
頁表0:0——0
1——2
2——3
頁表1:0——5
1——8
2——9
頁表2:0——7
1——4
2——A
⑩ 操作系統如何做到把邏輯地址映射為對應的物理地址
通過tcp/ip協議.和內存地址埠.如果沒有這個協議銷皮也可悔模以通過別的協議強加進去.但前提碧斗緩是硬體支持.