⑴ 簡述。。分頁式虛擬存儲系統中。一個邏輯地址到物理地址的轉換過程(並畫出地址轉換機構圖) 跪求大
存儲管理單元 MMU(Memory Manage Unit, 存儲管理單元)和物理內存之間進行地址轉換 在CPU和物理內存之間進行地址轉換,將地址從邏輯空間映映射到物理地址空間。\r\n選 B
⑵ 分頁存儲管理的基本思想
分頁式存儲管理的基本原理:採用分頁存儲器允許把一個作業存放到若干不相鄰的分區中,既可免去移動信息的工作,又可盡量減少主存的碎片。分頁式存儲管理的基本原理如下:
1、 頁框:物理地址分成大小相等的許多區,每個區稱為一塊;
2、址分成大小相等的區,區的大小與塊的大小相等,每個稱一個頁面。
3、 邏輯地址形式:與此對應,分頁存儲器的邏輯地址由兩部分組成,頁號和單元號。邏輯地址格式為
頁號 單元號(頁內地址)
採用分頁式存儲管理時,邏輯地址是連續的。所以,用戶在編製程序時仍只須使用順序的地址,而不必考慮如何去分頁。
4、頁表和地址轉換:如何保證程序正確執行呢?採用的辦法是動態重定位技術,讓程序的指令執行時作地址變換,由於程序段以頁為單位,所以,我們給每個頁設立一個重定位寄存器,這些重定位寄存器的集合便稱頁表。頁表是操作系統為每個用戶作業建立的,用來記錄程序頁面和主存對應頁框的對照表,頁表中的每一欄指明了程序中的一個頁面和分得的頁框的對應關系。絕對地址=塊號*塊長+單元號
以上從拓撲結構角度分析了對稱式與非對稱式虛擬存儲方案的異同,實際從虛擬化存儲的實現原理來講也有兩種方式;即數據塊虛擬與虛擬文件系統.
數據塊虛擬存儲方案著重解決數據傳輸過程中的沖突和延時問題.在多交換機組成的大型Fabric結構的SAN中,由於多台主機通過多個交換機埠訪問存儲設備,延時和數據塊沖突問題非常嚴重.數據塊虛擬存儲方案利用虛擬的多埠並行技術,為多台客戶機提供了極高的帶寬,最大限度上減少了延時與沖突的發生,在實際應用中,數據塊虛擬存儲方案以對稱式拓撲結構為表現形式.
虛擬文件系統存儲方案著重解決大規模網路中文件共享的安全機制問題.通過對不同的站點指定不同的訪問許可權,保證網路文件的安全.在實際應用中,虛擬文件系統存儲方案以非對稱式拓撲結構為表現形式.
虛擬存儲技術,實際上是虛擬存儲技術的一個方面,特指以CPU時間和外存空間換取昂貴內存空間的操作系統中的資源轉換技術
基本思想:程序,數據,堆棧的大小可以超過內存的大小,操作系統把程序當前使用的部分保留在內存,而把其他部分保存在磁碟上,並在需要時在內存和磁碟之間動態交換,虛擬存儲器支持多道程序設計技術
目的:提高內存利用率
管理方式
A 請求式分頁存儲管理
在進程開始運行之前,不是裝入全部頁面,而是裝入一個或零個頁面,之後根據進程運行的需要,動態裝入其他頁面;當內存空間已滿,而又需要裝入新的頁面時,則根據某種演算法淘汰某個頁面,以便裝入新的頁面
B 請求式分段存儲管理
為了能實現虛擬存儲,段式邏輯地址空間中的程序段在運行時並不全部裝入內存,而是如同請求式分頁存儲管理,首先調入一個或若干個程序段運行,在運行過程中調用到哪段時,就根據該段長度在內存分配一個連續的分區給它使用.若內存中沒有足夠大的空閑分區,則考慮進行段的緊湊或將某段或某些段淘汰出去,這種存儲管理技術稱為請求式分段存儲管理
⑶ 在一個分頁的虛擬存儲管理系統中,系統的使用情況如下:CPU利用率20%,分頁硬碟利用率97.7%,......
分頁硬碟利用率97.7%,可見大部分內存會轉存到硬碟,可知主存嚴重不足。
如果是單選的話,答案是E。其他都不會減少CPU的使用。
⑷ 內存分頁機制是相對於虛擬內存 還是虛擬內存和物理內存都採用分頁機制
這是一種虛擬存儲器的實現方法。
虛擬存儲器的思想是程序、數據和堆棧的大小都有可能超過物理內存大小,由操作系統把當前使用的放在內存,而不需要的放在磁碟。
而絕大部分操作系統使用的虛擬存儲器技術就是分頁技術。
為了虛擬內存的使用方便,以頁為的單位,換頁管理內存
⑸ 分頁存儲管理的實現原理
採用分頁存儲器允許把一個作業存放到若干不相鄰的分區中,既可免去移動信息的工作,又可盡量減少主存的碎片。分頁式存儲管理的基本原理如下:
1、 頁框:物理地址分成大小相等的許多區,每個區稱為一塊;
2、址分成大小相等的區,區的大小與塊的大小相等,每個稱一個頁面。
3、 邏輯地址形式:與此對應,分頁存儲器的邏輯地址由兩部分組成,頁號和單元號。邏輯地址格式為 頁號 單元號(頁內地址) 採用分頁式存儲管理時,邏輯地址是連續的。所以,用戶在編製程序時仍只須使用順序的地址,而不必考慮如何去分頁。
4、頁表和地址轉換:如何保證程序正確執行呢?
採用的辦法是動態重定位技術,讓程序的指令執行時作地址變換,由於程序段以頁為單位,所以,我們給每個頁設立一個重定位寄存器,這些重定位寄存器的集合便稱頁表。頁表是操作系統為每個用戶作業建立的,用來記錄程序頁面和主存對應頁框的對照表,頁表中的每一欄指明了程序中的一個頁面和分得的頁框的對應關系。絕對地址=塊號*塊長+單元號 以上從拓撲結構角度分析了對稱式與非對稱式虛擬存儲方案的異同,實際從虛擬化存儲的實現原理來講也有兩種方式;即數據塊虛擬與虛擬文件系統. 數據塊虛擬存儲方案著重解決數據傳輸過程中的沖突和延時問題.在多交換機組成的大型Fabric結構的SAN中,由於多台主機通過多個交換機埠訪問存儲設備,延時和數據塊沖突問題非常嚴重.數據塊虛擬存儲方案利用虛擬的多埠並行技術,為多台客戶機提供了極高的帶寬,最大限度上減少了延時與沖突的發生,在實際應用中,數據塊虛擬存儲方案以對稱式拓撲結構為表現形式. 虛擬文件系統存儲方案著重解決大規模網路中文件共享的安全機制問題.通過對不同的站點指定不同的訪問許可權,保證網路文件的安全.在實際應用中,虛擬文件系統存儲方案以非對稱式拓撲結構為表現形式. 虛擬存儲技術,實際上是虛擬存儲技術的一個方面,特指以CPU時間和外存空間換取昂貴內存空間的操作系統中的資源轉換技術 基本思想:程序,數據,堆棧的大小可以超過內存的大小,操作系統把程序當前使用的部分保留在內存,而把其他部分保存在磁碟上,並在需要時在內存和磁碟之間動態交換,虛擬存儲器支持多道程序設計技術 目的:提高內存利用率 管理方式
A 請求式分頁存儲管理 在進程開始運行之前,不是裝入全部頁面,而是裝入一個或零個頁面,之後根據進程運行的需要,動態裝入其他頁面;當內存空間已滿,而又需要裝入新的頁面時,則根據某種演算法淘汰某個頁面,以便裝入新的頁面
B 請求式分段存儲管理 為了能實現虛擬存儲,段式邏輯地址空間中的程序段在運行時並不全部裝入內存,而是如同請求式分頁存儲管理,首先調入一個或若干個程序段運行,在運行過程中調用到哪段時,就根據該段長度在內存分配一個連續的分區給它使用.若內存中沒有足夠大的空閑分區,則考慮進行段的緊湊或將某段或某些段淘汰出去,這種存儲管理技術稱為請求式分段存儲管理
⑹ 為實現分頁式虛擬存儲,頁表中至少包含哪些內容
至少包括塊號、外存地址、狀態位、訪問位、修改位以及訪問控制欄位等
⑺ 請說明為什麼請求分頁存儲管理可以實現虛擬存儲
請求分頁是在分頁的基礎上實現。
它們之間的根本區別在於是否將一作業的全部地址空間同時裝入主存。
請求分頁存儲管理不要求將作業全部地址空間同時裝入主存。
基於這一點,請求分頁存儲管理可以提供虛存,而分頁存儲管理卻不能提供虛存。
⑻ 在一個分頁虛擬存儲管理方式中,採用LRU頁面置換演算法時,若頁面走向1、3、2、1、1、3、5、1、3、2、1、5,
M為3時,缺頁次數為6,缺頁率為50%,當M為4時缺頁次數為3缺頁率為25%
⑼ 虛擬存儲器中的分頁機制的邏輯地址怎樣理解
cache中存儲的數據一般是主存中的數據的副本。所以cache無論多大不可能加大主存空間。所以cache不與主存統一編址。高速緩存是將最近最有可能被CPU處理的數據方便被CPU訪問而從內存中讀取的副本
虛擬存儲器技術個人認為可以理解為:操作系統建立的主存與程序員之間的關於內存使用的橋梁。用戶寫程序,需要使用內存。但是用戶寫的程序必須被計算機讀入內存執行。由於每次執行同一程序不可能被讀入內存的同一位置。而且程序被具體執行時被操作系統讀入內存什麼位置用戶是不可能事先知道的。而當用戶編程時,往往需要對內存進行操作。
所以操作系統提供給了用戶一個邏輯上的訪問內存的地址。這個地址就是所謂的「虛擬地址」(顯然不是實際地址)。而每次用戶程序被執行時,這個地址根據這次程序被裝載入內存的位置通過虛擬存儲器機制轉換為實際的物理內存位置。
⑽ linux為什麼主要採用分頁機制來實現虛擬存儲管理
1 分頁機制
在虛擬內存中,頁表是個映射表的概念, 即從進程能理解的線性地址(linear address)映射到存儲器上的物理地址(phisical address).
很顯然,這個頁表是需要常駐內存的東西, 以應對頻繁的查詢映射需要(實際上,現代支持VM的處理器都有一個叫TLB的硬體級頁表緩存部件,本文不討論)。
1.1 為什麼使用多級頁表來完成映射
但是為什麼要使用多級頁表來完成映射呢?
用來將虛擬地址映射到物理地址的數據結構稱為頁表, 實現兩個地址空間的關聯最容易的方式是使用數組, 對虛擬地址空間中的每一頁, 都分配一個數組項. 該數組指向與之關聯的頁幀, 但這會引發一個問題, 例如, IA-32體系結構使用4KB大小的頁, 在虛擬地址空間為4GB的前提下, 則需要包含100萬項的頁表. 這個問題在64位體系結構下, 情況會更加糟糕. 而每個進程都需要自身的頁表, 這回導致系統中大量的所有內存都用來保存頁表.
設想一個典型的32位的X86系統,它的虛擬內存用戶空間(user space)大小為3G, 並且典型的一個頁表項(page table entry, pte)大小為4 bytes,每一個頁(page)大小為4k bytes。那麼這3G空間一共有(3G/4k=)786432個頁面,每個頁面需要一個pte來保存映射信息,這樣一共需要786432個pte!
如何存儲這些信息呢?一個直觀的做法是用數組來存儲,這樣每個頁能存儲(4k/4=)1K個,這樣一共需要(786432/1k=)768個連續的物理頁面(phsical page)。而且,這只是一個進程,如果要存放所有N個進程,這個數目還要乘上N! 這是個巨大的數目,哪怕內存能提供這樣數量的空間,要找到連續768個連續的物理頁面在系統運行一段時間後碎片化的情況下,也是不現實的。
為減少頁表的大小並容許忽略不需要的區域, 計算機體系結構的涉及會將虛擬地址分成多個部分. 同時虛擬地址空間的大部分們區域都沒有使用, 因而頁沒有關聯到頁幀, 那麼就可以使用功能相同但內存用量少的多的模型: 多級頁表
但是新的問題來了, 到底採用幾級頁表合適呢?
1.2 32位系統中2級頁表
從80386開始, intel處理器的分頁單元是4KB的頁, 32位的地址空間被分為3部分
單元
描述
頁目錄表Directory 最高10位
頁中間表Table 中間10位
頁內偏移 最低12位
即頁表被劃分為頁目錄表Directory和頁中間表Tabl兩個部分
此種情況下, 線性地址的轉換分為兩步完成.
第一步, 基於兩級轉換表(頁目錄表和頁中間表), 最終查找到地址所在的頁幀
第二步, 基於偏移, 在所在的頁幀中查找到對應偏移的物理地址
使用這種二級頁表可以有效的減少每個進程頁表所需的RAM的數量. 如果使用簡單的一級頁表, 那將需要高達220個頁表, 假設每項4B, 則共需要佔用220?4B=4MB的RAM來表示每個進程的頁表. 當然我們並不需要映射所有的線性地址空間(32位機器上線性地址空間為4GB), 內核通常只為進程實際使用的那些虛擬內存區請求頁表來減少內存使用量.
1.3 64位系統中的分頁
正常來說, 對於32位的系統兩級頁表已經足夠了, 但是對於64位系統的計算機, 這遠遠不夠.
首先假設一個大小為4KB的標准頁. 因為1KB覆蓋210個地址的范圍, 4KB覆蓋212個地址, 所以offset欄位需要12位.
這樣線性地址空間就剩下64-12=52位分配給頁中間表Table和頁目錄表Directory. 如果我們現在決定僅僅使用64位中的48位來定址(這個限制其實已經足夠了, 2^48=256TB, 即可達到256TB的定址空間). 剩下的48-12=36位被分配給Table和Directory欄位. 即使我們現在決定位兩個欄位各預留18位, 那麼每個進程的頁目錄和頁表都包含218個項, 即超過256000個項.
基於這個原因, 所有64位處理器的硬體分頁系統都使用了額外的分頁級別. 使用的級別取決於處理器的類型
平台名稱
頁大小
定址所使用的位數
分頁級別數
線性地址分級
alpha 8KB 43 3 10 + 10 + 10 + 13
ia64 4KB 39 3 9 + 9 + 9 + 12
ppc64 4KB 41 3 10 + 10 + 9 + 12
sh64 4KB 41 3 10 + 10 + 9 + 12
x86_64 4KB 48 4 9 + 9 + 9 + 9 + 12