請求分頁虛擬存儲管理的實現原理
❶ 為什麼說請求頁式管理可以實現虛擬存儲器
請求分頁式存儲管理的基本思想是:操作系統按照存儲塊的尺寸,把用戶作業地址空間劃分成頁,全部存放在磁碟上。作業運行時,只先裝入若干頁。運行過程中遇到不在內存的頁時,操作系統就把它從磁碟調入內存。這樣一來,用戶的作業地址空間無需顧及內存的大小。這與虛擬存儲器的思想是完全吻合的。所以,請求分頁式存儲管理能夠向用戶提供虛擬存儲器。
❷ 虛擬存儲技術的指導思想是以時間換取空間對嗎
1、虛擬存儲管理概念
一個計算機任務只需要部分裝入主存便可以啟動運行,其餘部分留在磁碟上,在需要的時候裝入主存,這樣可以提高主存空間的利用率。這樣該系統所具有的主存容量會比實際主存容量大很多,這樣的存儲器稱為虛擬存儲器。
2、程序局部性原理
程序在執行時會呈現局部性規律,即在一段時間內,程序的執行僅局限於某個部分,相應所訪問的空間也局限於某個區域內。程序的局限性表現在時間、空間兩個方面。
2.1 時間局限性
指程序中的某個指令一旦執行,則在不久的將來可能會被再次執行;如果某個存儲單元被訪問,則不久後該存儲單元可能會被再次訪問。產生時間局限性的原因是程序中存在大量的循環處理。
2.2 空間局限性
指一旦程序訪問了某個存儲單元,在不久的將來,它附件的存儲單元也有可能被訪問。典型原因是程序是順序執行的。
3、虛擬存儲器的實現原理
虛擬存儲器具有請求調入功能和置換功能,能僅把作業的一部分裝入主存便運行作業系統,能從邏輯上對主存容量進行擴充的一種虛擬存儲系統。其邏輯容量由主存和外存容量之和以及CPU可定址的范圍決定,運行速度接近主存速度。應用十分廣泛。
3.1 虛擬存儲器實現方式
1、請求分頁系統
在分頁系統的基礎上增加了請求調頁功能和頁面裝置功能所形成的頁式虛擬存儲系統。置換時以頁面為單位。
2、請求分段系統
在分段系統的基礎上增加了請求調段和分段置換功能所形成的段式虛擬存儲系統。置換時以段為單位。
3、請求分頁管理
請求分頁是在純分頁系統的基礎上增加了請求調頁功能、頁面置換功能所形成的頁式虛擬存儲系統。是目前最常用的一種虛擬存儲器的方式。
請求分頁的頁表機制是在純分頁的頁表機制上形成的,因為只將應用程序的一部分調入主存,還有一部分仍在磁碟上,因此需要在頁表中增加(狀態位、訪問欄位和輔存地址等)供程序(數據)在轉進、轉出時參考。
請求分頁系統中的地址變換機構是在分頁系統的地址變換結構的基礎上增加了某些功能。比如處理缺頁中斷、從主存中轉出一頁實現虛擬存儲。
在請求分頁系統中,每當所要訪問的頁面不在主存時便要產生一個缺頁中斷,請求系統將所缺的頁調入主存,這個是由中斷機構完成的。
3.1 缺頁中斷和一般中斷的區別
1、缺頁中斷是在指令執行期間產生和中斷處理信號;一般中斷是在一條指令執行完。下一條指令執行前檢查和處理中斷信號。
2、發生缺頁中斷返回到被中斷指令的開始重新執行該指令;
❸ 虛擬存儲技術的基本思想是什麼
1 虛擬存儲技術的產生
虛擬化技術並不是一件很新的技術,它的發展,應該說是隨著計算機技術的發展而發展起來的,最早是始於70年代.由於當時的存儲容量,特別是內存容量成本非常高,容量也很小,對於大型應用程序或多程序應用就受到了很大的限制.為了克服這樣的限制,人們就採用了虛擬存儲的技術,最典型的應用就是虛擬內存技術.隨著計算機技術以及相關信息處理技術的不斷發展,人們對存儲的需求越來越大.這樣的需求刺激了各種新技術的出現,比如磁碟性能越來越好,容量越來越大.但是在大量的大中型信息處理系統中,單個磁碟是不能滿足需要,這樣的情況下存儲虛擬化技術就發展起來了.在這個發展過程中也由幾個階段和幾種應用.首先是磁碟條帶集(RAID,可帶容錯)技術,將多個物理磁碟通過一定的邏輯關系集合起來,成為一個大容量的虛擬磁碟.而隨著數據量不斷增加和對數據可用性要求的不斷提高,又一種新的存儲技術應運而生,那就是存儲區域網路(SAN)技術.SAN的廣域化則旨在將存儲設備實現成為一種公用設施,任何人員,任何主機都可以隨時隨地獲取各自想要的數據.目前討論比較多的包括iSCSI,FC Over IP 等技術,由於一些相關的標准還沒有最終確定,但是存儲設備公用化,存儲網路廣域化是一個不可逆轉的潮流.
2 虛擬存儲的概念
所謂虛擬存儲,就是把多個存儲介質模塊(如硬碟,RAID)通過一定的手段集中管理起來,所有的存儲模塊在一個存儲池(Storage Pool)中得到統一管理,從主機和工作站的角度,看到就不是多個硬碟,而是一個分區或者卷,就好象是一個超大容量(如1T以上)的硬碟.這種可以將多種,多個存儲設備統一管理起來,為使用者提供大容量,高數據傳輸性能的存儲系統,就稱之為虛擬存儲.
虛擬存儲的分類
目前虛擬存儲的發展尚無統一標准,從虛擬化存儲的拓撲結構來講主要有兩種方式:即對稱式與非對稱式.對稱式虛擬存儲技術是指虛擬存儲控制設備與存儲軟體系統,交換設備集成為一個整體,內嵌在網路數據傳輸路徑中;非對稱式虛擬存儲技術是指虛擬存儲控制設備獨立於數據傳輸路徑之外.從虛擬化存儲的實現原理來講也有兩種方式;即數據塊虛擬與虛擬文件系統.具體如下:
A.對稱式虛擬存儲
圖1
圖1對稱式虛擬存儲解決方案的示意圖
在圖1所示的對稱式虛擬存儲結構圖中,存儲控制設備 High Speed Traffic Directors(HSTD)與存儲池子系統Storage Pool集成在一起,組成SAN Appliance.可以看到在該方案中存儲控制設備HSTD在主機與存儲池數據交換的過程中起到核心作用.該方案的虛擬存儲過程是這樣的:由HSTD內嵌的存儲管理系統將存儲池中的物理硬碟虛擬為邏輯存儲單元(LUN),並進行埠映射(指定某一個LUN能被哪些埠所見),主機端將各可見的存儲單元映射為操作系統可識別的盤符.當主機向SAN Appliance寫入數據時,用戶只需要將數據寫入位置指定為自己映射的盤符(LUN),數據經過HSTD的高速並行埠,先寫入高速緩存,HSTD中的存儲管理系統自動完成目標位置由LUN到物理硬碟的轉換,在此過程中用戶見到的只是虛擬邏輯單元,而不關心每個LUN的具體物理組織結構.該方案具有以下主要特點:
(1)採用大容量高速緩存,顯著提高數據傳輸速度.
緩存是存儲系統中廣泛採用的位於主機與存儲設備之間的I/O路徑上的中間介質.當主機從存儲設備中讀取數據時,會把與當前數據存儲位置相連的數據讀到緩存中,並把多次調用的數據保留在緩存中;當主機讀數據時,在很大幾率上能夠從緩存中找到所需要的數據.直接從緩存上讀出.而從緩存讀取數據時的速度只受到電信號傳播速度的影響(等於光速),因此大大高於從硬碟讀數據時碟片機械轉動的速度.當主機向存儲設備寫入數據時,先把數據寫入緩存中,待主機端寫入動作停止,再從緩存中將數據寫入硬碟,同樣高於直接寫入硬碟的速度
(2)多埠並行技術,消除了I/O瓶頸.
傳統的FC存儲設備中控制埠與邏輯盤之間是固定關系,訪問一塊硬碟只能通過控制它的控制器埠.在對稱式虛擬存儲設備中,SAN Appliance的存儲埠與LUN的關系是虛擬的,也就是說多台主機可以通過多個存儲埠(最多8個)並發訪問同一個LUN;在光纖通道100MB/帶寬的大前提下,並行工作的埠數量越多,數據帶寬就越高.
(3)邏輯存儲單元提供了高速的磁碟訪問速度.
在視頻應用環境中,應用程序讀寫數據時以固定大小的數據塊為單位(從512byte到1MB之間).而存儲系統為了保證應用程序的帶寬需求,往往設計為傳輸512byte以上的數據塊大小時才能達到其最佳I/O性能.在傳統SAN結構中,當容量需求增大時,唯一的解決辦法是多塊磁碟(物理或邏輯的)綁定為帶區集,實現大容量LUN.在對稱式虛擬存儲系統中,為主機提供真正的超大容量,高性能LUN,而不是用帶區集方式實現的性能較差的邏輯卷.與帶區集相比,Power LUN具有很多優勢,如大塊的I/O block會真正被存儲系統所接受,有效提高數據傳輸速度;並且由於沒有帶區集的處理過程,主機CPU可以解除很大負擔,提高了主機的性能.
(4)成對的HSTD系統的容錯性能.
在對稱式虛擬存儲系統中,HSTD是數據I/O的必經之地,存儲池是數據存放地.由於存儲池中的數據具有容錯機制保障安全,因此用戶自然會想到HSTD是否有容錯保護.象許多大型存儲系統一樣,在成熟的對稱式虛擬存儲系統中,HSTD是成對配製的,每對HSTD之間是通過SAN Appliance內嵌的網路管理服務實現緩存數據一致和相互通信的.
(5)在SAN Appliance之上可方便的連接交換設備,實現超大規模Fabric結構的SAN.
因為系統保持了標準的SAN結構,為系統的擴展和互連提供了技術保障,所以在SAN Appliance之上可方便的連接交換設備,實現超大規模Fabric結構的SAN.
B.非對稱式虛擬存儲系統
圖2
圖2非對稱式虛擬存儲系統示意圖
在圖2所示的非對稱式虛擬存儲系統結構圖中,網路中的每一台主機和虛擬存儲管理設備均連接到磁碟陣列,其中主機的數據路徑通過FC交換設備到達磁碟陣列;虛擬存儲設備對網路上連接的磁碟陣列進行虛擬化操作,將各存儲陣列中的LUN虛擬為邏輯帶區集(Strip),並對網路上的每一台主機指定對每一個Strip的訪問許可權(可寫,可讀,禁止訪問).當主機要訪問某個Strip時,首先要訪問虛擬存儲設備,讀取Strip信息和訪問許可權,然後再通過交換設備訪問實際的Strip中的數據.在此過程中,主機只會識別到邏輯的strip,而不會直接識別到物理硬碟.這種方案具有如下特點:
(1)將不同物理硬碟陣列中的容量進行邏輯組合,實現虛擬的帶區集,將多個陣列控制器埠綁定,在一定程度上提高了系統的可用帶寬.
(2)在交換機埠數量足夠的情況下,可在一個網路內安裝兩台虛擬存儲設備,實現Strip信息和訪問許可權的冗餘.
但是該方案存在如下一些不足:
(1)該方案本質上是帶區集——磁碟陣列結構,一旦帶區集中的某個磁碟陣列控制器損壞,或者這個陣列到交換機路徑上的銅纜,GBIC損壞,都會導致一個虛擬的LUN離線,而帶區集本身是沒有容錯能力的,一個LUN的損壞就意味著整個Strip裡面數據的丟失.
(2)由於該方案的帶寬提高是通過陣列埠綁定來實現的,而普通光纖通道陣列控制器的有效帶寬僅在40MB/S左右,因此要達到幾百兆的帶寬就意味著要調用十幾台陣列,這樣就會佔用幾十個交換機埠,在只有一兩台交換機的中小型網路中,這是不可實現的.
(3)由於各種品牌,型號的磁碟陣列其性能不完全相同,如果出於虛擬化的目的將不同品牌,型號的陣列進行綁定,會帶來一個問題:即數據寫入或讀出時各並發數據流的速度不同,這就意味著原來的數據包順序在傳輸完畢後被打亂,系統需要佔用時間和資源去重新進行數據包排序整理,這會嚴重影響系統性能.
4 數據塊虛擬與虛擬文件系統
以上從拓撲結構角度分析了對稱式與非對稱式虛擬存儲方案的異同,實際從虛擬化存儲的實現原理來講也有兩種方式;即數據塊虛擬與虛擬文件系統.
數據塊虛擬存儲方案著重解決數據傳輸過程中的沖突和延時問題.在多交換機組成的大型Fabric結構的SAN中,由於多台主機通過多個交換機埠訪問存儲設備,延時和數據塊沖突問題非常嚴重.數據塊虛擬存儲方案利用虛擬的多埠並行技術,為多台客戶機提供了極高的帶寬,最大限度上減少了延時與沖突的發生,在實際應用中,數據塊虛擬存儲方案以對稱式拓撲結構為表現形式.
虛擬文件系統存儲方案著重解決大規模網路中文件共享的安全機制問題.通過對不同的站點指定不同的訪問許可權,保證網路文件的安全.在實際應用中,虛擬文件系統存儲方案以非對稱式拓撲結構為表現形式.
虛擬存儲技術和這門課的結合點
本學期的這門課中,所涉及的虛擬存儲技術,實際上是虛擬存儲技術的一個方面,特指以CPU時間和外存空間換取昂貴內存空間的操作系統中的資源轉換技術
基本思想:程序,數據,堆棧的大小可以超過內存的大小,操作系統把程序當前使用的部分保留在內存,而把其他部分保存在磁碟上,並在需要時在內存和磁碟之間動態交換,虛擬存儲器支持多道程序設計技術
目的:提高內存利用率
管理方式
A 請求式分頁存儲管理
在進程開始運行之前,不是裝入全部頁面,而是裝入一個或零個頁面,之後根據進程運行的需要,動態裝入其他頁面;當內存空間已滿,而又需要裝入新的頁面時,則根據某種演算法淘汰某個頁面,以便裝入新的頁面
B 請求式分段存儲管理
為了能實現虛擬存儲,段式邏輯地址空間中的程序段在運行時並不全部裝入內存,而是如同請求式分頁存儲管理,首先調入一個或若干個程序段運行,在運行過程中調用到哪段時,就根據該段長度在內存分配一個連續的分區給它使用.若內存中沒有足夠大的空閑分區,則考慮進行段的緊湊或將某段或某些段淘汰出去,這種存儲管理技術稱為請求式分段存儲管理
❹ 實現虛擬存儲器需要哪些硬體支持
實現虛擬存儲器需要三方面的硬體支持:
1、請求分頁/段的頁表或段表機制;
請求分頁存儲管理是建立在分頁存儲管埋的基礎上,並結合虛擬存儲系統原理實現的,是目前常用的一種實現虛擬存儲器的方式
2、缺頁/段中斷機構;
作用就是就是要訪問的頁不在主存,需要操作系統將其調入主存後再進行訪問。在這個時候,被內存映射的文件實際上成了一個分頁交換文件。
3、地址變換機構。
當進程要訪問某個邏輯地址中的數據時,分頁地址變換機構會自動地將有效地址(相對地址)分為頁號頁內地址兩部分,再以頁號為索引去檢索頁表。查找操作由硬體執行。在執行檢索之前,先將頁號與頁表長度進行比較,如果頁號大於或等於頁表長度,則表示本次所訪問的地址已超越進程的地址空間。於是,這一錯誤將被系統發現並產生一地址越界中斷。若未出現越界錯誤,則將頁表始址與頁號和頁表項長度的乘積相加,便得到該表項在頁表中的位置,於是可從中得到該頁的物理塊號,將之裝入物理地址寄存器中。與此同時,再將有效地址寄存器中的頁內地址送入物理地址寄存器的塊內地址欄位中。這樣便完成了從邏輯地址到物理地址的變換。
❺ 虛擬存儲器有哪些特徵其中最本質的特徵是什麼
虛擬存儲器有離散性,多次性,對換性和虛擬性這四個主要特徵:
1、離散性,是指內存分配時採用離散分配的方式。若採用連續分配方式,需要將作業裝入到連續的內存區域,這樣需要連續地一次性申請一部分內存空間,無法實現虛擬存儲功能,只有採用離散分配方式,才能為它申請內存空間,以避免浪費內存空間。
2、 多次性,多次性是指一個作業被分成多次調入內存運行。作業在運行時,只將當前運行的那部分程序和數據裝入內存,以後再陸續從外存將需要的部分調入內存。
3、 對換性,對換性是指允許在作業運行過程中換進換出。允許將暫時不用的程序和數據從內存調至外存的對換區,以後需要時再從外存調入到內存。
4、 虛擬性,虛擬性是指能夠從邏輯上擴充內存容量,使用戶所看到的內存容量遠大於實際的內存容量。
(5)請求分頁虛擬存儲管理的實現原理擴展閱讀:
虛擬存儲器是計算機系統內存管理的一種技術。它使得應用程序認為它擁有連續的可用的內存(一個連續完整的地址空間),而實際上,它通常是被分隔成多個物理內存碎片,還有部分暫時存儲在外部磁碟存儲器上,在需要時進行數據交換。
虛擬存儲器是由硬體和操作系統自動實現存儲信息調度和管理的。它的工作過程包括6個步驟:
①中央處理器訪問主存的邏輯地址分解成組號a和組內地址b,並對組號a進行地址變換,即將邏輯組號a作為索引,查地址變換表,以確定該組信息是否存放在主存內。
②如該組號已在主存內,則轉而執行④;如果該組號不在主存內,則檢查主存中是否有空閑區,如果沒有,便將某個暫時不用的組調出送往輔存,以便將這組信息調入主存。
③從輔存讀出所要的組,並送到主存空閑區,然後將那個空閑的物理組號a和邏輯組號a登錄在地址變換表中。
④從地址變換表讀出與邏輯組號a對應的物理組號a。
⑤從物理組號a和組內位元組地址b得到物理地址。
⑥根據物理地址從主存中存取必要的信息。
❻ 分頁存儲管理的基本思想
分頁式存儲管理的基本原理:採用分頁存儲器允許把一個作業存放到若干不相鄰的分區中,既可免去移動信息的工作,又可盡量減少主存的碎片。分頁式存儲管理的基本原理如下: 1、 頁框:物理地址分成大小相等的許多區,每個區稱為一塊; 2、址分成大小相等的區,區的大小與塊的大小相等,每個稱一個頁面。 3、 邏輯地址形式:與此對應,分頁存儲器的邏輯地址由兩部分組成,頁號和單元號。邏輯地址格式為 頁號 單元號(頁內地址) 4、頁表和地址轉換:如何保證程序正確執行呢?採用的辦法是動態重定位技術,讓程序的指令執行時作地址變換,由於程序段以頁為單位,所以,我們給每個頁設立一個重定位寄存器,這些重定位寄存器的集合便稱頁表。頁表是操作系統為每個用戶作業建立的,用來記錄程序頁面和主存對應頁框的對照表,頁表中的每一欄指明了程序中的一個頁面和分得的頁框的對應關系。絕對地址=塊號*塊長+單元號 以上從拓撲結構角度分析了對稱式與非對稱式虛擬存儲方案的異同,實際從虛擬化存儲的實現原理來講也有兩種方式;即數據塊虛擬與虛擬文件系統. 數據塊虛擬存儲方案著重解決數據傳輸過程中的沖突和延時問題.在多交換機組成的大型Fabric結構的SAN中,由於多台主機通過多個交換機埠訪問存儲設備,延時和數據塊沖突問題非常嚴重.數據塊虛擬存儲方案利用虛擬的多埠並行技術,為多台客戶機提供了極高的帶寬,最大限度上減少了延時與沖突的發生,在實際應用中,數據塊虛擬存儲方案以對稱式拓撲結構為表現形式. 虛擬文件系統存儲方案著重解決大規模網路中文件共享的安全機制問題.通過對不同的站點指定不同的訪問許可權,保證網路文件的安全.在實際應用中,虛擬文件系統存儲方案以非對稱式拓撲結構為表現形式. 虛擬存儲技術,實際上是虛擬存儲技術的一個方面,特指以CPU時間和外存空間換取昂貴內存空間的操作系統中的資源轉換技術 基本思想:程序,數據,堆棧的大小可以超過內存的大小,操作系統把程序當前使用的部分保留在內存,而把其他部分保存在磁碟上,並在需要時在內存和磁碟之間動態交換,虛擬存儲器支持多道程序設計技術 目的:提高內存利用率管理方式A 請求式分頁存儲管理 在進程開始運行之前,不是裝入全部頁面,而是裝入一個或零個頁面,之後根據進程運行的需要,動態裝入其他頁面;當內存空間已滿,而又需要裝入新的頁面時,則根據某種演算法淘汰某個頁面,以便裝入新的頁面 B 請求式分段存儲管理 為了能實現虛擬存儲,段式邏輯地址空間中的程序段在運行時並不全部裝入內存,而是如同請求式分頁存儲管理,首先調入一個或若干個程序段運行,在運行過程中調用到哪段時,就根據該段長度在內存分配一個連續的分區給它使用.若內存中沒有足夠大的空閑分區,則考慮進行段的緊湊或將某段或某些段淘汰出去,這種存儲管理技術稱為請求式分段存儲管理
❼ 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
❽ 請說明為什麼請求分頁存儲管理可以實現虛擬存儲
請求分頁是在分頁的基礎上實現。
它們之間的根本區別在於是否將一作業的全部地址空間同時裝入主存。
請求分頁存儲管理不要求將作業全部地址空間同時裝入主存。
基於這一點,請求分頁存儲管理可以提供虛存,而分頁存儲管理卻不能提供虛存。
❾ 請求分頁管理可以實現虛擬存儲器
請求式分頁存儲管理技術是在靜態分頁的基礎上發展起來的,二者的根本區別就是請求式分頁提供虛擬存儲器。
❿ 操作系統請求分頁存儲方式的基本原理是什麼謝謝
3.請求分頁系統(1)請求分頁對頁表的擴充
在請求分頁系統中所使用的主要數據結構仍然是頁表。它對頁式系統中的頁表機制進行了擴充但其基本作用是實現由用戶地址空間到物理內存空間的映射。由於只將應用程序的一部分裝入內存,還有一部分仍在磁碟上,故需在頁表中增加若干項,供操作系統實現虛擬存儲器功能時參考。常見的系統中,一般對頁表的表項進行如下擴充:除了頁號對應的物理塊號,還增加了狀態位、修改位、外存地址和訪問欄位等。
·狀態位,用於指示該頁是否已經調入了內存。該位一般由操作系統軟體來管理,每當操作系統把一頁調人物理內存中時,置位。相反,當操作系統把該頁從物理內存調出時,復位。CPU對內存進行引用時,根據該位判斷要訪問的頁是否在內存中,若不在內存之中,則產生缺頁中斷。
·修改位,表示該頁調入內存後是否被修改過。當CPU以寫的方式訪問頁面時,對該頁表項中的修改位置位。該位也可由操作系統軟體來修改,例如,當操作系統將修改過頁面保存在磁碟上後,可將該位復位。
·外存地址,用於指出該頁在外存上的地址,供調人該頁時使用。
·訪問宇段,用於記錄本頁在一定時間內被訪問的次數,或最近已經有多長時間未被訪問。提供給相應的置換演算法在選擇換出頁面時參考。
(2)對缺頁中斷的支持
在請求分頁系統中,CPU硬體一定要提供對缺頁中斷的支持,根據頁表項中的狀態位判斷是否產生缺頁中斷。缺頁中斷是一個比較特殊的中斷,這主要體現在如下兩點:
·在指令的執行期間產生和處理缺頁信號。通常的CPU外部中斷,是在每條指令執行完畢後檢查是否有中斷請求到達。而缺頁中斷,是在一條指令的執行期間,發現要訪問的指令和數據不在內存時產生和處理的。
·一條指令可以產生多個缺頁中斷。例如,一條雙操作數的指令,每個操作數都不在內存中,這條指令執行時,將產生兩個中斷。CPU提供的硬體支持,還要體現在當從中斷處理程序返回時,能夠正確執行產生缺頁中斷的指令。
(3)頁面調度策略
虛擬存儲器系統通常定義三種策略來規定如何(或何時)進行頁面調度:調入策略、置頁策略和置換策略。
(4)置換演算法(replacementalgorithm)決定在需要調入頁面時,選擇內存中哪個物理頁面被置換。置換演算法的出發點應該是,把未來不再使用的或短期內較少使用的頁面調出。而未來的實際情況是不確定的,通常只能在局部性原理指導下依據過去的統計數據進行預測。常用的演算法有以下幾種:
·最佳演算法(optimal,OPT)。選擇「未來不再使用的」或「在離當前最遠位置上出現的」頁面被置換。這是一種理想情況,是實際執行中無法預知的,因而不能實現,只能用作性能評價的依據。
·最近最久未使用演算法(LeastRecentlyUsed,LRU)。選擇內存中最久未使用的頁面被置換,這是局部性原理的合理近似,性能接近最佳演算法。但由於需要記錄頁面使用時間的先後關系,硬體開銷太大。LRU可用如下的硬體機構幫助實現:
一個特殊的棧:把被訪問的頁面移到棧頂,於是棧底的是最久未使用頁面。每個頁面設立移位寄存器:被訪問時左邊最高位置1,定期右移並且最高位補0,於是寄存器數值最小的是最久未使用頁面。
·先進先出演算法(FIFO)。選擇裝入最早的頁面置換。可以通過鏈表來表示各頁的裝入時間先後。FIFO的性能較差,因為較早調入的頁往往是經常被訪問的頁,這些頁在FIFO演算法下被反復調入和調出,並且有Belady現象。所謂Belady現象是指:採用FIFO演算法時,如果對—個進程未分配它所要求的全部頁面,有時就會出現分配的頁面數增多但缺頁率反而提高的異常現象。Belady現象可形式化地描述為:一個進程戶要訪問M個頁,OS分配艫個內存頁面給進程P;對一個訪問序列S,發生缺頁次數為PE(占,N)。當N增大時,PE(S,N)時而增大時而減小。Belady現象的原因是FIFO演算法的置換特徵與進程訪問內存的動態特徵是矛盾的,即被置換的頁面並不是進程不會訪問的。
·時鍾(clock)演算法。也稱最近未使用演算法(NotRecentlyUsed,NRU),它是LRU和FIFO的折中。每頁有一個使用標志位(usebit),若該頁被訪問則置userbit=l,這是由CPU的硬體自動完成的。置換時採用一個指針,從當前指針位置開始按地址先後檢查各頁,尋找usebit=0的面作為被置換頁。指針經過的userbit=l的頁都修改userbit=O,這個修改的過程是操作系統完成的,最後指針停留在被置換頁的下一個頁。
·最不常用演算法(LeastFrequentlyUsed,LFU)。選擇到當前時間為止被訪問次數最少的頁面被置換。每頁設置訪問計數器,每當頁面被訪問時,該頁面的訪問計數器加1。發生缺頁中斷時,淘汰計數值最小的頁面,並將所有計數清零。
·頁面緩沖演算法(pagebuffering)。它是對FIFO演算法的發展,通過建立置換頁面的緩沖,這樣就有機會找回剛被置換的頁面,從而減少系統I/0的開銷。頁面緩沖演算法用FIFO演算法選擇被置換頁,把被置換的頁面放人兩個鏈表之一。即是如果頁面未被修改,就將其歸人到空閑頁面鏈表的末尾,否則將其歸人到已修改頁面鏈表。空閑頁面和已修改頁面,仍停留在內存中一段時間,如果這些頁面被再次訪問,只需較小開銷,被訪問的頁面就可以返還作為進程的內存頁。需要調入新的物理頁面時,將新頁面內容讀人到空閑頁面鏈表的第一項所指的頁面,然後將第一項刪除。當已修改頁面達到一定數目後,再將它們一起調出到外存,然後將它們歸人空閑頁面鏈表。這樣能大大減少I/O操作的次數。