當前位置:首頁 » 服務存儲 » 虛擬存儲器和請求分頁
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

虛擬存儲器和請求分頁

發布時間: 2022-11-21 11:57:33

❶ 為什麼說請求頁式管理可以實現虛擬存儲

請求分頁式存儲管理的基本思想是:操作系統按照存儲塊的尺寸,把用戶作業地址空間劃分成頁,全部存放在磁碟上。作業運行時,只先裝入若干頁。運行過程中遇到不在內存的頁時,操作系統就把它從磁碟調入內存。這樣一來,用戶的作業地址空間無需顧及內存的大小。這與虛擬存儲器的思想是完全吻合的。所以,請求分頁式存儲管理能夠向用戶提供虛擬存儲器。

❷ 實現虛擬存儲器需要哪幾個關鍵技術

請求分頁系統(請求分頁的頁表機構、缺頁中斷機構、地址變換機構)
請求分段系統(請求分段的段表機構、缺段中斷機構、地址變換機構)

❸ 實現虛擬存儲器需要哪幾個關鍵技術

有分頁請求系統和請求分段系統兩種方法。

❹ 操作系統(三)內存管理 3.2 虛擬內存管理

傳統存儲管理很多暫時用不到的數據也會長期佔用內存,導致內存利用率不高,他們具有以下兩個特徵

高速緩沖技術的思想:將近期會頻繁訪問到的數據放到更高速的存儲器中,暫時用不到的數據放在更低速存儲器中。快表機構就是將近期常訪問的頁表項副本放到更高速的聯想寄存器中,其依賴的就是局部性原理

時間局部性:如果執行了程序中的某條指令,那麼不久後這條指令很有可能再次執行;如果某個數據被訪問過,不久之後該數據很可能再次被訪問。(因為程序中存在大量的循環)

空間局部性:一旦程序訪問了某個存儲單元,在不久之後,其附近的存儲單元也很有可能被訪問。(因為很多數據在內存中都是連續存放的,並且程序的指令也是順序地在內存中存放的)

基於局部性原理,在程序裝入時,可以將程序中很快會用到的部分裝入內存,暫時用不到的部分留在外存,就可以讓程序開始執行。在程序執行過程中,當所訪問的信息不在內存時,由操作系統負責將所需信息從外存調入內存,然後繼續執行程序。若內存空間不夠,由操作系統負責將內存中暫時用不到的信息換出到外存。在操作系統的管理下,在用戶看來似乎有一個比實際內存大得多的內存,這就是 虛擬內存 。虛擬內存是操作系統虛擬性的一個體現,實際的物理內存大小沒有變,只是在邏輯上進行了擴充。

虛擬內存有以下三個主要特徵:

虛擬內存技術,允許一個作業分多次調入內存。如果採用連續分配方式,會不方便實現。因此,虛擬內存的實現需要建立在離散分配的內存管理方式基礎上。

虛擬內存的實現有以下三種方式

在程序執行過程中,當所訪問的信息不在內存時,由操作系統負責將所需信息從外存調入內存,然後繼續執行程序。 [1] 若內存空間不夠,由操作系統負責將內存中暫時用不到的信息換出到外存。 [2]

請求分頁系統建立在基本分頁系統之上,為了支持虛擬存儲器功能而增加了請求調頁和頁面置換功能

與基本分頁管理相比,請求分頁管理中,為了實現「請求調頁」,操作系統需要知道每個頁面是否已經調入內存;如果還沒調入,那麼也需要知道該頁面在外存中存放的位置。當內存空間不夠時,要實現「頁面置換」,操作系統需要通過某些指標來決定到底換出哪個頁面;有的頁面沒有被修改過,就不用再浪費時間寫回外存。有的頁面修改過,就需要將外存中的舊數據覆蓋,因此,操作系統也需要記錄各個頁面是否被修改的信息。因此,請求頁表項增加了四個欄位

在請求分頁系統中,每當要訪問的頁面不在內存時,便產生一個缺頁中斷,然後由操作系統的缺頁中斷處理程序處理中斷。此時缺頁的進程阻塞,放入阻塞隊列,調頁完成後再將其喚醒,放回就緒隊列。如果內存中有空閑塊,則為進程分配一個空閑塊,將所缺頁面裝入該塊,並修改頁表中相應的頁表項。

找到對應頁表項後,若對應頁面未調入內存,則產生缺頁中斷,之後由操作系統的缺頁中斷處理程序進行處理

快表中有的頁面一定是在內存中的。若某個頁面被換出外存,則快表中的相應表項也要刪除,否則可能訪問錯誤的頁面

頁面的換入、換出需要磁碟I/O,會有較大的開銷,因此好的頁面置換演算法應該追求更少的缺頁率

最佳置換演算法(OPT,Optimal):每次選擇淘汰的頁面將是以後永不使用,或者在最長時間內不再被訪問的頁面,這樣可以保證最低的缺頁率。

最佳置換演算法可以保證最低的缺頁率,但實際上,只有在進程執行的過程中才能知道接下來會訪問到的是哪個頁面。操作系統無法提前預判頁面訪問序列。因此,最佳置換演算法是無法實現的。

先進先出置換演算法(FIFO):每次選擇淘汰的頁面是最早進入內存的頁面。把調入內存的頁面根據調入的先後順序排成一個隊列,需要換出頁面時選擇隊頭頁面即可。隊列的最大長度取決於系統為進程分配了多少個內存塊。

只有FIFO演算法會產生Belady異常 [3] 。另外,FIFO演算法雖然實現簡單,但是該演算法與進程實際運行時的規律不適應,因為先進入的頁面也有可能最經常被訪問。因此,演算法性能差

最近最久未使用置換演算法(LRU,least recently used):每次淘汰的頁面是最近最久未使用的頁面。賦予每個頁面對應的頁表項中,用訪問欄位記錄該頁面自上次被訪問以來所經歷的時間t。當需要淘汰一個頁面時,選擇現有頁面中t值最大的,即最近最久未使用的頁面。

該演算法的實現需要專門的硬體支持,雖然演算法性能好,但是實現困難,開銷大

時鍾置換演算法是一種性能和開銷較均衡的演算法,又稱CLOCK演算法,或最近未用演算法(NRU,NotRecently Used)簡單的CLOCK演算法實現方法:為每個頁面設置一個訪問位,再將內存中的頁面都通過鏈接指針鏈接成一個循環隊列。當某頁被訪問時,其訪問位置為1。當需要淘汰一個頁面時,只需檢查頁的訪問位。如果是0,就選擇該頁換出;如果是1,則將它置為0,暫不換出,繼續檢查下一個頁面,若第一輪掃描中所有頁面都是1,則將這些頁面的訪問位依次置為0後,再進行第二輪掃描(第二輪掃描中一定會有訪問位為0的頁面,因此簡單的CLOCK演算法選擇一個淘汰頁面最多會經過兩輪掃描)

改進型的時鍾置換演算法:

簡單的時鍾置換演算法僅考慮到一個頁面最近是否被訪問過。事實上,如果被淘汰的頁面沒有被修改過,就不需要執行I/O操作寫回外存。只有被淘汰的頁面被修改過時,才需要寫回外存。因此,除了考慮一個頁面最近有沒有被訪問過之外,操作系統還應考慮頁面有沒有被修改過。在其他條件都相同時,應優先淘汰沒有修改過的頁面,避免I/O操作。這就是改進型的時鍾置換演算法的思想。修改位=0,表示頁面沒有被修改過;修改位=1,表示頁面被修改過。為方便討論,用(訪問位,修改位)的形式表示各頁面狀態。如(1,1)表示一個頁面近期被訪問過,且被修改過。

演算法規則:將所有可能被置換的頁面排成一個循環隊列

由於第二輪已將所有幀的訪問位設為0,因此經過第三輪、第四輪掃描一定會有一個幀被選中,因此改進型CLOCK置換演算法選擇一個淘汰頁面最多會進行四輪掃描

對於分頁式的虛擬內存,在進程准備執行時,不需要也不可能把-一個進程的所有頁都讀入主存。因此,操作系統必須決定讀取多少頁,即決定給特定的進程分配幾個頁框。

分配方式有

置換方式有

根據以上,現代操作系統通常採用三種策略:

預調頁策略:根據局部性原理,一次調入若干個相鄰的頁面可能比一次調入一個頁面更高效。但如果提前調入的頁面中大多數都沒被訪問過,則又是低效的。因此可以預測不久之後可能訪問到的頁面,將它們預先調入內存,但目前預測成功率只有50%左右。故這種策略 主要用於進程的首次調入 ,由程序員指出應該先調入哪些部分。

請求調頁策略:進程 在運行期間發現缺頁時才將所缺頁面調入內存 。由這種策略調入的頁面一定會被訪問到,但由於每次只能調入一頁,而每次調頁都要磁碟l/O操作,因此I/O開銷較大。

請求分頁系統中的外存分為兩部分:用於存放文件的文件區和用於存放對換頁面的對換區。對換區通常採用連續分配方式,而文件區採用離散分配方式,因此對換區的磁碟I/O速度比文件去的更快

剛剛換出的頁面馬上又要換入內存,剛剛換入的頁面馬上又要換出外存,這種頻繁的頁面調度行為稱為抖動,或顛簸。產生抖動的主要原因是進程頻繁訪問的頁面數目高於可用的物理塊數(分配給進程的物理塊不夠)

工作集:指在某段時間間隔里,進程實際訪問頁面的集合。

操作系統會根據「窗口尺寸」來算出工作集。

工作集大小可能小於窗口尺寸,實際應用中,操作系統可以統計進程的工作集大小,根據工作集大小給進程分配若干內存塊。 [4]
一般來說,駐留集大小不能小於工作集大小,否則進程運行過程中將頻繁缺頁。

❺ 在請求分頁管理系統中,發生缺頁以後,所缺頁有可能從哪裡調入

在請求分頁系統中,每當所要訪問的頁面不在內存時,便產生一個缺頁中斷,請求操作系統將所缺頁調入內存。此時應將缺頁的進程阻塞(調頁完成喚醒),如果內存中有空閑塊,則分配一個塊,將調入的頁裝入該塊,並修改頁表中的相應頁表項,.若內存中沒有空閑塊,則要淘汰某頁(若被淘汰頁在內存期間被修改過,則要將其寫回外存)。
請求分頁也稱為頁式虛擬存儲管理,是建立在基本分頁基礎上,為了能支持虛擬存儲器功能而增加了請求調頁功能和頁面置換功能其基本思想是:在進程開始運行之前,不是裝入全部頁面,而是裝入部分頁面,之後根據進程運行的需要,動態裝入其他頁面,當內存空間已滿,又需要裝入新的頁面時,根據某種演算法淘汰某個頁面,以便裝進新的頁面。

❻ 虛擬內存有什麼用

虛擬內存的作用:

1.虛擬內存是計算機系統內存管理的一種技術。它使得應用程序認為它擁有連續的可用的內存(一個連續完整的地址空間),而實際上,它通常是被分隔成多個物理內存碎片,還有部分暫時存儲在外部磁碟存儲器上,在需要時進行數據交換。

2.別稱虛擬存儲器(Virtual Memory)。電腦中所運行的程序均需經由內存執行,若執行的程序很大或很多,則會導致內存消耗殆盡。為解決該問題,Windows中運用了虛擬內存技術,即勻出一部分硬碟空間來充當內存使用。

3.當內存耗盡時,電腦就會自動調用硬碟來充當內存,以緩解內存的緊張。若計算機缺乏運行程序或操作所需的隨機存儲器 (RAM),則 Windows 會用之進行補償。它將計算機的RAM和硬碟上的臨時空間組合。當RAM運行速率緩慢時,它便將數據從RAM移動到稱為「分頁文件」的空間中。

4.將數據移入與移出分頁文件可釋放RAM,以便完成工作。 一般而言,計算機的RAM越多,程序運行得越快。若計算機的速率由於RAM可用空間匱乏而減緩,則可嘗試借增加虛擬內存來進行補償。但是,計算機從RAM讀取數據的速率要比從硬碟讀取數據的速率快,因而擴增RAM容量(可加內存條)是最佳選擇。

拓展回答:

怎樣正確設置電腦虛擬內存:

1.在「我的電腦」的圖標上滑鼠右鍵,選擇「屬性」

❼ 實現虛擬存儲器需要哪些硬體支持

實現虛擬存儲器需要三方面的硬體支持:
1、請求分頁/段的頁表或段表機制;
請求分頁存儲管理是建立在分頁存儲管埋的基礎上,並結合虛擬存儲系統原理實現的,是目前常用的一種實現虛擬存儲器的方式
2、缺頁/段中斷機構;
作用就是就是要訪問的頁不在主存,需要操作系統將其調入主存後再進行訪問。在這個時候,被內存映射的文件實際上成了一個分頁交換文件。
3、地址變換機構。
當進程要訪問某個邏輯地址中的數據時,分頁地址變換機構會自動地將有效地址(相對地址)分為頁號頁內地址兩部分,再以頁號為索引去檢索頁表。查找操作由硬體執行。在執行檢索之前,先將頁號與頁表長度進行比較,如果頁號大於或等於頁表長度,則表示本次所訪問的地址已超越進程的地址空間。於是,這一錯誤將被系統發現並產生一地址越界中斷。若未出現越界錯誤,則將頁表始址與頁號和頁表項長度的乘積相加,便得到該表項在頁表中的位置,於是可從中得到該頁的物理塊號,將之裝入物理地址寄存器中。與此同時,再將有效地址寄存器中的頁內地址送入物理地址寄存器的塊內地址欄位中。這樣便完成了從邏輯地址到物理地址的變換。

❽ 操作系統請求分頁存儲方式的基本原理是什麼謝謝

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操作的次數。

❾ 虛擬存儲技術的指導思想是以時間換取空間對嗎

1、虛擬存儲管理概念
一個計算機任務只需要部分裝入主存便可以啟動運行,其餘部分留在磁碟上,在需要的時候裝入主存,這樣可以提高主存空間的利用率。這樣該系統所具有的主存容量會比實際主存容量大很多,這樣的存儲器稱為虛擬存儲器。
2、程序局部性原理
程序在執行時會呈現局部性規律,即在一段時間內,程序的執行僅局限於某個部分,相應所訪問的空間也局限於某個區域內。程序的局限性表現在時間、空間兩個方面。
2.1 時間局限性
指程序中的某個指令一旦執行,則在不久的將來可能會被再次執行;如果某個存儲單元被訪問,則不久後該存儲單元可能會被再次訪問。產生時間局限性的原因是程序中存在大量的循環處理。
2.2 空間局限性
指一旦程序訪問了某個存儲單元,在不久的將來,它附件的存儲單元也有可能被訪問。典型原因是程序是順序執行的。
3、虛擬存儲器的實現原理
虛擬存儲器具有請求調入功能和置換功能,能僅把作業的一部分裝入主存便運行作業系統,能從邏輯上對主存容量進行擴充的一種虛擬存儲系統。其邏輯容量由主存和外存容量之和以及CPU可定址的范圍決定,運行速度接近主存速度。應用十分廣泛。
3.1 虛擬存儲器實現方式
1、請求分頁系統
在分頁系統的基礎上增加了請求調頁功能和頁面裝置功能所形成的頁式虛擬存儲系統。置換時以頁面為單位。
2、請求分段系統
在分段系統的基礎上增加了請求調段和分段置換功能所形成的段式虛擬存儲系統。置換時以段為單位。
3、請求分頁管理
請求分頁是在純分頁系統的基礎上增加了請求調頁功能、頁面置換功能所形成的頁式虛擬存儲系統。是目前最常用的一種虛擬存儲器的方式。
請求分頁的頁表機制是在純分頁的頁表機制上形成的,因為只將應用程序的一部分調入主存,還有一部分仍在磁碟上,因此需要在頁表中增加(狀態位、訪問欄位和輔存地址等)供程序(數據)在轉進、轉出時參考。
請求分頁系統中的地址變換機構是在分頁系統的地址變換結構的基礎上增加了某些功能。比如處理缺頁中斷、從主存中轉出一頁實現虛擬存儲。
在請求分頁系統中,每當所要訪問的頁面不在主存時便要產生一個缺頁中斷,請求系統將所缺的頁調入主存,這個是由中斷機構完成的。
3.1 缺頁中斷和一般中斷的區別
1、缺頁中斷是在指令執行期間產生和中斷處理信號;一般中斷是在一條指令執行完。下一條指令執行前檢查和處理中斷信號。
2、發生缺頁中斷返回到被中斷指令的開始重新執行該指令;

❿ 請求分頁調度是和分頁調度有何聯系和區別

在分頁存儲管理方式中 :不具備頁面對換功能,不支持虛擬存儲器功能,在調度作業運行時 ,必須將它的所有頁面一次調入內存 ,若內存沒有足夠的塊, 則作業等待的這種分頁管理方式被稱為純分頁或基本分頁存儲管理方式.

而請求分頁管理方式是支持虛擬存儲的,具備了頁面的對換功能.調度作業時 是將它的 一部分(而不是全部) 放入內存.當發現頁面缺少時 會發出一個缺頁請求 從外存調用頁面文件進入內存.

基於以上所述:基於這一點,請求分頁存儲管理可以提供虛存,而分頁存儲管理卻不能提供虛存。