版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第5章 存儲管理15.1 存儲管理的功能內存是現代計算機系統(tǒng)的中心,是指CPU能直接存取指令和數據的存儲器,CPU和I/O設備都要和內存打交道。內存由很大的一組字或字節(jié)所組成,每個字或字節(jié)都有它們自己的編號,稱為內存地址。對內存的訪問是通過一系列對指定地址單元進行讀寫來實現的。25.1 存儲管理的功能5.1.1 存儲空間的分配和回收 內存的分配與回收是內存管理的主要功能之一。用戶程序通常以文件的形式保存在計算機外存上,為了執(zhí)行用戶程序,用戶程序必須全部或部分裝入內存,因此在內外存之間必須不斷交換數據。能否把外存中的數據和程序調入內存,取決于能否在內存中為它們安排合適的位置。因此,存儲管理模塊要
2、為每一個并發(fā)執(zhí)行的進程分配內存空間。另外,當進程執(zhí)行結束之后,存儲管理模塊又要及時回收該進程所占用的內存資源,以便給其他進程分配空間。35.1 存儲管理的功能5.1.2 地址轉換(映射)內存的每個存儲單元都有一個編號,這種編號稱為內存地址(或稱為物理地址,絕對地址)。內存地址的集合稱為內存空間(或物理地址空間)。源程序經過匯編或編譯后,形成目標程序,每個目標程序都是以0為基址順序進行編址的,原來用符號名訪問的單元用具體的數據單元號取代。這樣生成的目標程序占據一定的地址空間,稱為作業(yè)的邏輯地址空間,簡稱邏輯空間。在邏輯空間中每條指令的地址和指令中要訪問的操作數地址統(tǒng)稱為邏輯地址。45.1 存儲管
3、理的功能地址映射Load A 200 3456 。 。1200物理地址空間Load A data1data1 3456源程序Load A 200 34560100200編譯連接邏輯地址空間BA=100055.1 存儲管理的功能我們把用戶程序裝入內存時對有關指令的地址部分的修改定義為從程序地址到內存地址的地址映射,或稱為地址重定位。地址映射的方式: 1、靜態(tài)地址重定位程序被裝入內存時由操作系統(tǒng)的連接裝入程序完成程序的邏輯地址到內存地址的轉換。假定程序裝入內存的首地址為BR,程序地址為VR,內存地址為MR,則地址映射按下式進行:MR=BR+VR 。65.1 存儲管理的功能2、動態(tài)重定位動態(tài)地址重定
4、位是在程序執(zhí)行的過程中,每次訪問內存之前,將要訪問的程序地址轉換為內存地址。動態(tài)重定位依靠硬件地址變換機構完成。地址重定位機構需要一個(或多個)基地址寄存器BR和一個(或多個)程序虛擬地址寄存器VR。指令或數據的內存地址MA與邏輯地址的關系為: MA=(BR)+ (VR) 這里,(BR)與(VR)分別表示寄存器BR與VR中的內容。 75.1 存儲管理的功能85.1 存儲管理的功能5.1.3 主存空間的共享和保護 在多道程序設計環(huán)境下,內存中的許多用戶或系統(tǒng)程序和數據段可供不同的用戶進程共享。這種資源共享將會提高內存的利用率。但是,反過來說,除了被允許共享的部分之外,又要限制各進程只在自己的存儲
5、區(qū)活動,各進程不能對別的進程的程序和數據段產生干擾和破壞,因此須對內存中的程序和數據段采取保護措施。 95.1 存儲管理的功能內存保護的方式:(1)上、下界存儲保護:上、下界保護是一種簡單的存儲保護技術。系統(tǒng)可為每個作業(yè)設置一對上、下界寄存器,分別用來存放當前運行作業(yè)在內存空間的上、下邊界地址,用它們來限制用戶程序的活動范圍。 (2)基址限長存儲保護:上、下界保護的一個變種是采用基址限長存儲保護。105.1 存儲管理的功能115.1 存儲管理的功能5.1.4 主存空間的擴充對內存進行邏輯上的擴充,現在普遍采用虛擬存儲管理技術。 虛擬存儲技術的基本思想是把有限的內存空間與大容量的外存統(tǒng)一管理起來
6、,構成一個遠大于實際內存的、虛擬的存儲器。此時,外存是作為內存的直接延伸,用戶并不會感覺到內、外存的區(qū)別,即把兩級存儲器當作一級存儲器來看待。一個作業(yè)運行時,其全部信息裝入虛存,實際上可能只有當前運行的必需一部分信息存入內存,其他則存于外存,當所訪問的信息不在內存時,系統(tǒng)自動將其從外存調入內存。 125.2 連續(xù)內存分配5.2.1 分區(qū)管理的基本原理分區(qū)管理的基本原理是給每一個內存中的進程劃分一塊適當大小的存儲區(qū),以連續(xù)存儲各進程的程序和數據,使各進程得以并發(fā)執(zhí)行。按分區(qū)的時機,分區(qū)管理可以分為固定分區(qū)和動態(tài)分區(qū)兩種方法。1、固定分區(qū)法:把內存區(qū)固定地劃分為若干個大小不等的區(qū)域。劃分的原則由系
7、統(tǒng)操作員或操作系統(tǒng)決定。分區(qū)一旦劃分結束,在整個執(zhí)行過程中每個分區(qū)的長度和內存的總分區(qū)個數將保持不變。135.2 連續(xù)內存分配某系統(tǒng)的內存容量為256K,操作系統(tǒng)占用低地址的20K,其余空間劃分成4個固定大小的分區(qū)。如下圖:145.2 連續(xù)內存分配2、動態(tài)分區(qū)法動態(tài)分區(qū)法在作業(yè)執(zhí)行前并不建立分區(qū),分區(qū)的建立是在作業(yè)的處理過程中進行的,且其大小可隨作業(yè)或進程對內存的要求而改變。這就改變了固定分區(qū)法中那種即使是小作業(yè)也要占據大分區(qū)的浪費現象,從而提高了內存的利用率。 采用動態(tài)分區(qū)法,在系統(tǒng)初啟時,除了操作系統(tǒng)中常駐內存部分之外,只有一個空閑分區(qū)。隨后,分配程序將該區(qū)依次劃分給調度選中的作業(yè)或進程。
8、155.2 連續(xù)內存分配165.2 連續(xù)內存分配在動態(tài)分區(qū)存儲管理中,要有相應的數據結構來登記空閑區(qū)的說明信息,它包括空閑區(qū)的大小和位置。不同系統(tǒng)根據設計要求采用不同的結構。常用的有表結構和隊列結構??臻e區(qū)表的每個表目記錄一個空閑區(qū),主要參數包括區(qū)號、長度和起始地址??臻e區(qū)隊列則是利用每個內存空閑區(qū)的頭幾個單元存放本空閑區(qū)的大小及下個空閑區(qū)的起始地址,從而把所有的空閑區(qū)鏈接起來。 175.2 連續(xù)內存分配185.2 連續(xù)內存分配5.2.2 分區(qū)的分配和回收1.固定分區(qū)的分配和回收 當用戶程序要裝入執(zhí)行時,存儲管理程序根據用戶程序的大小查詢分區(qū)說明表,從中找出一個滿足要求的空閑分區(qū),并將其分配給
9、申請者。 195.2 連續(xù)內存分配2、動態(tài)分區(qū)的分配和回收(1)分區(qū)的分配當用戶要求一個大小為SIZE的存儲空間時,系統(tǒng)查詢空閑區(qū)表或空閑分區(qū)隊列,找一個大于或等于SIZE的空閑區(qū)。分配時會出現以下三種情況:一是系統(tǒng)中無滿足要求的空閑區(qū),則分配失敗。二是空閑區(qū)大小與SIZE相等,則修改空閑區(qū)表相應表目,向用戶返回該空閑區(qū)首址。三是空閑區(qū)大于SIZE,這時將空閑區(qū)一分為二。將一個空閑區(qū)分成二部分有兩種辦法:一是從空閑區(qū)的上部開始劃出SIZE大小的空閑區(qū)給用戶;二是從空閑區(qū)的底部開始向上劃出SIZE大小的空閑區(qū)給用戶。205.2 連續(xù)內存分配分配算法:(1)首次適應算法: 要求空閑區(qū)按首址遞增的次
10、序組織空閑區(qū)表(隊列)。(2)最佳適應算法: 要求按空閑區(qū)大小從小到大的次序組成空閑區(qū)表(隊列)。(3)最壞適應算法 要求空閑區(qū)按大小遞減的順序組織空閑區(qū)表(或隊列)。215.2 連續(xù)內存分配例5-1:有作業(yè)序列:作業(yè)A要求18K;作業(yè)B要求25K,作業(yè)C要求30K。系統(tǒng)中空閑區(qū)按三種算法組成的空閑區(qū)隊列.225.2 連續(xù)內存分配(2)動態(tài)分區(qū)的內存回收 當某一個用戶作業(yè)完成釋放所占分區(qū)時,系統(tǒng)應進行回收。在可變式分區(qū)中,應該檢查回收區(qū)與內存中前后空閑區(qū)是否相鄰,若相鄰,則應進行合并,形成一個較大的空閑區(qū),并對相應的鏈表指針進行修改;若不相鄰,應將空閑區(qū)插入到空閑區(qū)鏈表的適當位置。235.2
11、連續(xù)內存分配245.2 連續(xù)內存分配5.2.3 碎片問題在連續(xù)內存分配中,必須把一個系統(tǒng)程序或用戶程序裝入一個連續(xù)的內存空間中。由于各個進程不但的申請和釋放內存,導致在內存中出現大量的分散的小空閑區(qū)。內存中這種容量太小、無法利用的小分區(qū)稱做“碎片”或“零頭”。根據碎片出現的位置,可以分為內部碎片和外部碎片兩種。在一個分區(qū)內部出現的碎片(即被浪費的空間)稱做內部碎片。在所有分區(qū)之外新增的碎片稱做外部碎片。解決碎片問題最簡單的方法是定時或在分配內存時把所有碎片合并為一個連續(xù)區(qū)。實現的方法是移動某些已分配區(qū)的內容,使所有進程的分區(qū)緊挨在一起,而把空閑區(qū)留在另一端,這種技術稱為緊縮(或拼湊)。255.
12、2 連續(xù)內存分配例題5-2:某操作系統(tǒng)采用可變分區(qū)分配存儲管理方法,用戶區(qū)大小為512K且初始值為0,用空閑分區(qū)表管理空閑分區(qū)。若分配時采用分配空閑區(qū)低地址部分的方案,且初始時用戶區(qū)的512K空間空閑,對于下列申請序列: 申請300K,申請100K,釋放300K,申請150K,申請30K,申請40K,申請60K,釋放30K 回答下列問題: (1)請分別畫出采用首次適應算法、最佳適應算法進行內存分配和回收后的內存使用狀態(tài)。 (2)如果再申請100K,針對上述兩種算法會有什么結果?26例題5-2解答如下:150K作業(yè)40K作業(yè)60K作業(yè)100K作業(yè)0150K180K220K280K300K400K
13、512K-1首次適應算法150K作業(yè)60K作業(yè)100K作業(yè)40K作業(yè)0150K210K300K400K430K470K512K-1最佳適應算法275.3 內存不足的管理5.3.1 覆蓋 覆蓋技術是基于這樣一種思想提出來的:一個程序并不需要一開始就把它的全部指令和數據都裝入內存后再執(zhí)行。在單CPU系統(tǒng)中,每一時刻事實上只能執(zhí)行一條指令。因此,不妨把程序劃分為若干個功能上相對獨立的程序段,按照程序的邏輯結構讓那些不會同時執(zhí)行的程序段共享同一塊內存區(qū)。通常,這些程序段都被保存在外存中,當有關程序段的先頭程序段已經執(zhí)行結束后,再把后續(xù)程序段調入內存覆蓋前面的程序段。這使得用戶看來,好像內存擴大了,從而
14、達到了內存擴充的目的。285.3 內存不足的管理 例如,設某進程的程序正文段由A,B,C,D,E和F等6個程序段組成。它們之間的調用關系如下圖所示,程序段A調用程序段B和C,程序段B又調用程序段F,程序段C調用程序段D和E。295.3 內存不足的管理5.3.2 交換技術 交換是指先將內存某部分的程序或數據寫入外存交換區(qū),再從外存交換區(qū)中調入指定的程序或數據到內存中來,并讓其執(zhí)行的一種內存擴充技術 。305.4 分頁管理5.4.1 分頁管理的基本原理把用戶程序的地址空間劃分成若干大小相等的區(qū)域,每個區(qū)域稱作頁面或頁。每個頁都有一個編號,叫做頁號。頁號一般從0開始編號,如0,1,2,等。把內存空間
15、劃分成若干和頁大小相同的物理塊,這些物理塊叫“幀”(frame)或內存塊。同樣,每個物理塊也有一個編號,塊號從0開始依次順序排列。 以頁為單位進行內存分配,并按作業(yè)的頁數多少來分配。邏輯上相鄰的頁,物理上不一定相鄰。315.4 分頁管理325.4 分頁管理在分頁系統(tǒng)中,頁面的大小是由硬件的地址結構所決定的。機器確定、頁面大小便確定了。一般來說,頁面的大小選擇為2的若干次冪,根據計算機結構的不同,其大小從512B到16MB不等。 在分頁系統(tǒng)中,由CPU生成的每個地址被硬件分成兩個部分:頁號(p)和頁內偏移(w)。通常,如果邏輯地址空間為2m,且頁的大小為2n單元(字節(jié)或詞),那么邏輯地址的高mn
16、位表示頁號,而低n位表示頁偏移。這樣,一個地址長度為20位的計算機系統(tǒng),如果每頁的大小為1KB(210) ,那么可以有210個頁。335.4 分頁管理0111231頁號P頁內位移量W編號01048575相對地址04095 對于某臺具體機器來說,其地址結構是一定的。如果給定的邏輯地址是A,頁面的大小為L,則頁號p和頁內地址w可按下式求得: p=INTA/L,w=A MOD L 其中,INT是向下整除的函數,MOD是取余函數。例如,設系統(tǒng)的頁面大小為1KB,A=3456,則p=INT(3456/1024)=3,w= 3456 MOD 1024=384。345.4 分頁管理在分頁系統(tǒng)中,允許將進程的
17、各頁離散地裝入內存的任何空閑塊中,這樣就出現進程頁號連續(xù),而塊號不連續(xù)的情況。為了找到每個頁面在內存中對應的物理塊,系統(tǒng)為每個進程設立一張頁面映射表,簡稱頁表。進程的所有頁依次在頁表中有一個頁表項,其中記載了相應頁面在內存中對應的物理塊號。進程執(zhí)行時,按照邏輯地址中的頁號查找頁表中對應的項,找到該頁在內存中物理塊號。頁表的作用就是實現頁號到物理塊號的地址映射。355.4 分頁管理5.4.2 地址映射設頁長為1K,程序地址字長為16位,用戶程序空間和頁表如圖。365.4 分頁管理例題與習題:例5-1:設有8頁的邏輯地址空間,每頁有1024個字節(jié),它們被映射到32塊的的物理存儲區(qū),那么邏輯地址的有
18、效為是多少,物理地址至少多少位?例5-2:在一分頁系統(tǒng)中,邏輯地址的長度為16位,頁面大小為4096字節(jié),現有一邏輯地址2F6AH,且第0、1、2頁依次存放在物理塊5、10、11中,問相應的物理地址是多少?例5-3:在某分頁系統(tǒng),主存的容量為64K,頁面的大小為1K,對于一個4頁大的作業(yè),其0、1、2、3頁分別被分配到主存的2、4、6、7塊中,試將十進制的邏輯地址1023、2500、3500和4500轉化成物理地址。375.4 分頁管理快表和聯想寄存器由于頁表是駐留在內存的某個固定區(qū)域中,而取數據或指令又必須經過頁表變換才能得到實際物理地址。因此,取一個數據或指令至少要訪問內存兩次以上。一次訪
19、問頁表以確定所取數據或指令的物理地址,另一次是根據地址取數據或指令,這比通常執(zhí)行指令的速度慢了一倍。 解決這個問題的一種方法是把頁表放在一組快速存儲器中(Cache),從而加快訪問內存的速度。我們把這種快速存儲器組成的頁表稱為快表,把存放在內存中的頁表稱為慢表。快表又叫相聯(聯想)存儲器(associative memory)。385.4 分頁管理關于聯想寄存器的討論: 一個程序可能會很大,如1M,若頁長為1K,則該程序有1000個頁,則該程序的頁表就需要1000個表項,當程序更大時,頁表會更大,那么我們應該有一個多大的快速存儲器才能滿足要求呢?這會遇到兩個問題:可能快速存儲器多大都是不夠的,
20、因為程序可能會更大??焖俅鎯ζ魇欠浅7浅0嘿F的。 實際上我們并不需要一個很大的快速存儲器,有一個能存放16個頁表表目的快速存儲器就夠了。395.4 分頁管理 例題: 假定訪問主存時間為100毫微秒,訪問相聯存儲器時間為20毫微秒,相聯存儲器為32個單元時快表命中率可達90%,按邏輯地址存取的平均時間為:(10020)90%(100+100+20)(1-90%)130毫微秒 比兩次訪問主存的時間100毫微秒2200毫微秒下降了四成多。40p頁表地址越界 l比較P=1pp.快表 b+頁號p 頁內地址dPd物理地址頁表地址寄存器頁表長度寄存器邏輯地址415.4 分頁管理5.4.3 頁表的結構CPU具
21、有32位地址時 ,使用232邏輯地址空間的分頁系統(tǒng),規(guī)定頁面4KB時,每個進程頁表的表項有1兆(220)個,若表項占用4個字節(jié),則每個進程需要占用4KB連續(xù)內存空間存放頁表。多級頁表概念:頁表和頁面一樣也進行分頁,內存僅存放當前使用的頁表,暫時不用部分放在磁盤上,待用到時再行調進。具體做法:把整個頁表進行分頁,分成一張張小頁表(稱為頁表頁) ,小頁表的大小與頁框相同,為進行索引查找,應該為這些小頁表建一張頁目錄表,其表項指出小頁表所在頁框號及相關信息。425.4 分頁管理系統(tǒng)為每個進程建一張頁目錄表,它的每個表項對應一個頁表頁,而頁表頁的每個表項給出了頁面和頁框的對應關系,頁目錄表是一級頁表,
22、頁表頁是二級頁表。邏輯地址結構有三部分組成:頁目錄、頁表頁和位移。435.4 分頁管理在具有兩級頁表結構的系統(tǒng)中,地址轉換的方法是:利用外層頁號p1檢索外層頁表,從中找到相應內層頁表的基址,在利用p2作為該內層頁表的索引,找到該頁面在內存的塊號,用該塊號和頁內地址d拼接起來形成訪問物塊內存的物理地址。 445.4 分頁管理5.4.4 頁面的共享設想一下這樣的系統(tǒng),有40個用戶,每個用戶都執(zhí)行一個文本編輯器。如果文本編輯器有150KB代碼段和50KB數據段,需要8000KB來支持40個用戶。如果代碼是可重入代碼,那么就可以共享。可重入代碼(或純代碼)是在其執(zhí)行過程中本身不做任何修改的代碼,通常由
23、指令和常數組成。共享頁面時只需要在物理內存中保存一個編輯器的拷貝。每個用戶的頁表映射到編輯器的同一物理拷貝,而數據頁映射到不同的幀。 455.4 分頁管理465.5 分段存儲管理5.5.1 分段存儲管理的基本原理用戶程序劃分:按程序自身的邏輯關系劃分為若干個程序段,每個程序段都有一個段名,且有一個段號。段號從0開始,每一段段內也從0開始編址,段內地址是連續(xù)的。邏輯地址:段號 段內地址內存劃分:內存空間被動態(tài)的劃分為若干個長度不相同的區(qū)域,稱為物理段,每個物理段由起始地址和長度確定。內存分配:以段為單位分配內存,每一個段在內存中占據連續(xù)空間(內存隨機分割,需要多少分配多少),但各段之間可以不連續(xù)
24、存放。475.5 分段存儲管理.0S工作區(qū)段B主程序段M.0EP子程序段X0K.CALL X E.CALL Y FCALL A 116.0FL子程序段Y0116N數組A12345.485.5 分段存儲管理5.5.2 分段存儲管理的地址映射495.5 分段存儲管理分段存儲存儲管理的地址轉換過程: 一個邏輯地址由兩部分組成:段號s和段內地址d。系統(tǒng)根據段表地址寄存器的內容(表示段表的起始地址)找到進程的段表,以段號為索引查找相應的表項,得出該段的長度limit及該段在內存的起始地址base。將段內地址d與段長limit進行比較。如果d不小于limit,這表示地址越界,系統(tǒng)發(fā)出地址越界中斷,終止程序
25、的執(zhí)行;如果d小于limit,則表示地址合法,將段內地址d與該段的內存始址base相加,得到所要訪問單元的內存地址。505.5 分段存儲管理例題:在一分段存儲系統(tǒng)中,其段表如下:段號內存起始地址段長01234210235010013501938500209059095試求下列邏輯地址對應的物理地址是什么?(1)0:430;(2)1:10;(3)2:500;(4)3:400;(5)4:112;(6)5:32515.5 分段存儲管理5.5.3 段的共享和保護525.5 分段存儲管理分段和分頁的比較: (1)頁是信息的物理單位,而段是信息的邏輯單位。分頁時為了實現離散分配方式,以減少內存碎片,提高內
26、存利用率?;蛘哒f,分頁僅僅是由于系統(tǒng)管理的需要,而不是用戶的需要。段則是信息的邏輯單位,它含有一組其意義相對完整的信息。分段的目的是為了能更好地滿足用戶的需要。(2)頁的大小是由系統(tǒng)確定的,由系統(tǒng)把邏輯地址劃分成頁號和頁內地址兩部分,整個系統(tǒng)只能有一種大小的頁面;而段的長度卻不固定,決定于用戶的程序。通常由編譯程序在對源碼進行編譯時,根據信息的性質來劃分。(3)分頁的進程地址空間是一維的,即單一的線性空間;而分段的進程地址空間是二維的,有段號和段內地址兩部分組成。535.5 分段存儲管理5.5.4 段頁式存儲管理1.基本思想:(1)作業(yè)地址空間進行段式管理。(2)每段內再分成若干大小固定的頁,
27、每段都從零開始為自己的各頁依次編寫連續(xù)的頁號。(3)對內存空間的管理仍然和分頁存儲管理一樣,將其分成若干個和頁面大小相同的物理塊。(4)作業(yè)的邏輯地址包括3個部分:段號、頁號和頁內位移。(5)為實現地址變換,段頁式系統(tǒng)設立了段表和頁表。545.5 分段存儲管理555.5 分段存儲管理2.地址轉換過程:565.6 虛擬存儲器 前面所介紹的各種存儲管理方式,有一個共同的特點,即它們都要求將一個作業(yè)全部裝入內存后才能運行,于是,就可能出現以下情況: (1) 有的作業(yè)很大,其所要求內存空間超過了內存容量,從而導致作業(yè)不能全部被裝入內存,以至于該作業(yè)無法運行。 (2) 有多個作業(yè)要求運行,但可用的內存空
28、間不足以容納所有的作業(yè),只能將少數的作業(yè)裝入內存讓它們先運行,而將其他的作業(yè)留在外存等待。575.6 虛擬存儲器 5.6.1 虛擬存儲器的概念 虛擬內存(Virtual Memory)是指在具有層次結構存儲器的計算機系統(tǒng)中,采用自動實現部分裝入和部分對換功能,為用戶提供一個比物理主存容量大得多的可尋址的一種“主存儲器”。它使用戶邏輯存儲器與物理存儲器分離,是操作系統(tǒng)給用戶提供的一個比真實內存空間大得多的地址空間 。585.6 虛擬存儲器595.6 虛擬存儲器實現虛擬存儲器的物質基礎是二級存儲器結構和動態(tài)地址轉換機構。經過操作系統(tǒng)的改造,把計算機的內存與外存有機的結合起來使用,從而得到一個容量很
29、大的“內存”,這就是虛存。虛擬存儲器實質上是把用戶地址空間和實際的存儲空間區(qū)分開來,當作兩個不同的概念。它的容量主要受到兩方面的限制:(1)指令中表示地址的字長。一個虛擬存儲器的最大容量是由計算機的地址結構確定的。如:若CPU的有效地址長度為32位,則程序可以尋址范圍是0232 -1 ,即虛存容量為 4GB。(2)外存的容量。虛擬存儲器的容量與主存的實際大小沒有直接的關系,而是由主存與輔存的容量之和所確定。605.6 虛擬存儲器 5.6.2 虛擬內存的特征虛擬性。虛擬內存不是擴大實際的物理內存,而是擴充邏輯內存的容量。部分裝入。每個進程不是全部裝入內存,而是分成若干個部分。當進程需要執(zhí)行時,才
30、將當前運行所需要的程序和數據裝入內存。對換性。在一個進程運行期間,它所需要的程序和數據可以分多次調入。每次僅僅調入一部分,以滿足當前程序執(zhí)行的需要。而且,在內存中那些暫時不使用的程序和數據可以換到外存的交換區(qū)存放,以騰出盡量多的內存空間供可運行進程使用。615.7 請求分頁技術 5.7.1 請求分頁存儲管理的基本思想請求式分頁也稱虛擬頁式存儲管理,它的基本思想是:在進程開始運行之前,不是裝入全部頁面,而是裝入一個或零個頁面,之后根據進程運行的需要,動態(tài)裝入其它頁面;當內存空間已滿,而又需要裝入新的頁面時,則根據某種算法淘汰某個頁面,以便裝入新的頁面。 為了實現頁式虛存,系統(tǒng)需要解決下面三個問題
31、: (1)系統(tǒng)如何獲知進程當前所需頁面不在主存。 (2)當發(fā)現缺頁時,如何把所缺頁面調入主存。 (3)當主存中沒有空閑的頁框時,為了要接受一個新頁,需要把老的一頁淘汰出去,根據什么策略選擇欲淘汰的頁面。625.7 請求分頁技術駐留位(中斷位):表示該頁是在內存還是在外存訪問位:根據訪問位來決定淘汰哪頁(由不同的算法決定)修改位:查看此頁是否在內存中被修改過頁號中斷位內存塊號外存地址訪問位修改位 頁表的擴充635.7 請求分頁技術 程序在執(zhí)行時,首先檢查頁表,當存在位指示該頁不在主存時,則引起一個缺頁中斷發(fā)生,相應的中斷處理程序把控制轉向缺頁中斷子程序。執(zhí)行此子程序,即把所缺頁面裝入主存。然后處
32、理機重新執(zhí)行缺頁時打斷的指令。這時,就將順利形成物理地址。缺頁中斷的處理過程是由硬件和軟件共同實現的。 缺頁中斷645.7 請求分頁技術655.7 請求分頁技術缺頁中斷同一般中斷都是中斷,相同點是: 保護現場 中斷處理 恢復現場不同點:一般中斷是一條指令完成后中斷,缺頁中斷是一條指令執(zhí)行時中斷一條指令執(zhí)行時可能產生多個缺頁中斷。如指令可能訪問多個內存地址,這些地址在不同的頁中。665.7 請求分頁技術 5.7.2 頁面置換算法1.最佳置換算法最佳置換算法是由Belady于1966年提出的一種理論上的算法。 其所選擇的被淘汰頁面,將是以后永不使用的,或許是在最長(未來)時間內不再被訪問的頁面。采
33、用最佳置換算法,通??杀WC獲得最低的缺頁率。假定系統(tǒng)為某進程分配了三個物理塊,并考慮有以下的頁面號引用串: 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1 675.7 請求分頁技術685.7 請求分頁技術2.先進先出(FIFO)頁面置換算法 FIFO算法是最早出現的頁面置換算法。該算法總是淘汰最先進入內存的頁面,即選擇在內存中停留時間最長(年齡最老)的一頁予以淘汰 。695.7 請求分頁技術 為了說明FIFO頁面置換算法相關的可能問題,考慮一下引用串:1,2,3,4,1,2,5,1,2,3,4,5。注意到對4個可用內存塊的缺頁次數(10)比3個內存塊的缺頁次數(
34、9)還要大。這種令人難以相信的結果稱為Belady異?,F象,即缺頁次數隨內存塊增加而增加。 705.7 請求分頁技術3.最近最久未使用(LRU)置換算法 最近最久未使用置換算以“最近的過去”作為“不久將來”的近似,選擇最近一段時間內最久沒有使用的頁面淘汰掉。它的實質是:當需要置換一頁時,選擇在最近一段時間里最久沒有使用過的頁面予以淘汰 。715.7 請求分頁技術4. LRU的近似算法 (1)附加引用位算法通過在規(guī)定時間間隔里記錄引用位,能獲得額外順序信息??梢詾槲挥趦却嬷械拿總€頁表中的每一頁保留一個8 bit的字節(jié)。在規(guī)定的時間間隔(如,每100ms)內,時鐘定時器產生中斷并將控制權交給操作系統(tǒng)。操作系統(tǒng)把每個頁的引用位轉移到其8 bit字節(jié)的高位,而將其他位右移,并拋棄最低位。這些8 bit移位寄存器包含著該頁在最近8個時間周期內的使用情況。如果移位寄存器含有,那么該頁在8個時間周期內沒有使用;如果移位寄存器的值為,那么該頁在過去每個周期內都至少使用過一次。具有值為的移位寄存器的也要比值為的頁使用更為頻繁。如果將這8 bit字節(jié)作為無符號整數,那么具有最小值的頁為LRU頁,可以被置換出去。如果這個數字不惟一,可以置換所有具有最小值的頁或在這些頁之間采用FIF
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年不銹鋼宣傳欄工程設計與施工監(jiān)理合同6篇
- 二零二五年度凈水設備租賃與水質凈化技術支持合同3篇
- 二零二五年度建筑工程施工合同全解析6篇
- 二零二五年度工廠搬遷及環(huán)境恢復合同2篇
- 二零二五年度大型物流倉儲管理系統(tǒng)建設合同2篇
- 《手術室護士如何做》課件
- 2025年冀教新版八年級物理上冊階段測試試卷
- 2025年人教版PEP九年級生物上冊月考試卷
- 2025年牛津譯林版必修1物理上冊階段測試試卷
- 自主招聘工作人員報名表
- 2025年蛇年年度營銷日歷營銷建議【2025營銷日歷】
- 2024年法律職業(yè)資格考試(試卷一)客觀題試卷及解答參考
- 食堂項目經理培訓
- 安全經理述職報告
- 福建省泉州市2023-2024學年高一上學期期末質檢英語試題 附答案
- 建筑項目經理招聘面試題與參考回答(某大型集團公司)2024年
- 安保服務評分標準
- (高清版)DB34∕T 1337-2020 棉田全程安全除草技術規(guī)程
- 部編版小學語文二年級上冊單元測試卷含答案(全冊)
- 護理部年終總結
- 部編版三年級上冊語文語文期末質量監(jiān)測(含答題卡)
評論
0/150
提交評論