




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第四章存儲器管理4.1存儲器的層次結構
4.2程序的裝入和鏈接
4.3連續分配存儲管理方式4.4對換4.4分頁存儲管理方式4.5分段存儲管理方式4.1存儲器的層次結構
一、多級存儲器結構
在現代計算機系統中,存儲器是信息的來源與歸宿,占據重要位置。但是,在現有技術條件下,任何一種存儲裝置,都無法同時從速度與容量兩方面,滿足用戶的需求。實際上它們組成了一個速度由快到慢,容量由小到大的存儲裝置層次。
圖4-1計算機系統存儲層次示意
速度快慢小大容量OS管理設備管理二、各種存儲器1.主存儲器簡稱內存、主存、可執行存儲器;主要部件,保存進程運行時的程序和數據,若干兆字節、中等速度、中等價格。主存儲器的訪問速度遠低于CPU執行指令的速度,為緩和這一矛盾,在計算機系統中引入了寄存器和高速緩存。
2.寄存器速度最快,價格昂貴,容量小。以字(word)為單位。寄存器用于加速存儲器的訪問速度,如:用寄存器存放操作數。3.高速緩存
少量的、容量小(幾十KB~幾MB
)、非常快速、昂貴。主存中常訪問的信息存放在高速緩存中,減少訪主次數。4.磁盤緩存目前磁盤的I/O速度遠低于對主存的訪問速度,將頻繁使用的一部分磁盤數據和信息,暫時存放在磁盤緩存中,可減少訪問磁盤的次數。
即利用主存中的存儲空間,來暫存從磁盤中讀出(或寫入)的信息。掉電則丟失。文件硬盤存放內存調入磁盤緩沖備份磁帶文件出現于不同的存儲層次中三、存儲管理的目的
1)主存的分配和管理當用戶需要內存時,系統為之分配相應的存儲空間;不需要時,及時回收,以供其它用戶使用。
2)提高主存儲器的利用率不僅能使多道程序動態地共享主存,提高主存利用率,最好還能共享主存中某個區域的信息。
3)“擴充”主存容量為用戶提供比主存物理空間大得多的地址空間,以至使用戶感覺他的作業是在這樣一個大的存儲器中運行。
4)存儲保護確保多道程序都在各自分配到存儲區域內操作,互不干擾,防止一道程序破壞其它作業或系統文件的信息。
四、預備知識(補充)1.定位(存儲分配)為具體的程序和數據等分配存儲單元或存儲區工作。2.映射把邏輯地址轉換為相應的物理地址的過程。3.隔離按存取權限把合法區與非法區分隔,實現存儲保護。4.名空間程序員在程序中定義的標識符程序符號集合由程序員自定義沒有地址的概念符號指令數據說明I/O說明5、邏輯地址、邏輯地址空間邏輯地址(相對地址、虛地址)
用戶的程序經過匯編或編譯后形成目標代碼,目標代碼通常采用相對地址的形式,其首地址為0,其余指令中的地址都相對于首地址而編址。用戶的程序地址(指令地址或操作數地址)均為邏輯地址。不能用邏輯地址在內存中讀取信息。(why)作業地址空間(作業邏輯地址空間、作業虛空間)
用戶程序所有的邏輯地址集合對應的空間。由編譯程序生成作業地址空間01n-1
指令、數據movr1,[500]1230100500599作業地址空間6、物理地址、物理地址空間物理地址(絕對地址、實地址)物理地址是計算機主存單元的真實地址,又稱為絕對地址或實地址。可直接尋址。主存空間(物理地址空間、存儲空間)物理地址的集合所對應的空間組成了主存空間。主存空間01n-1
地址映射LoadA2003456
。。1200物理地址空間LoadAdata1data13456名空間LoadA20034560100200編譯連接邏輯地址空間BA=1000圖:名空間、地址空間、存儲空間源程序目標程序可執行程序
7.存儲共享
內存共享:兩個或多個進程共用內存中相同區。目的:節省內存空間,提高內存利用率。實現進程通信:數據共享。共享內容:代碼共享。數據共享。
8.存儲保護與安全
1)保護目的為多個程序共享內存提供保障,使在內存中的各道程序,只能訪問它自己的區域,避免各道程序間相互干攏,特別是當一道程序發生錯誤時,不致于影響其他程序的運行。通常由硬件完成保護功能,由軟件輔助實現。特權指令不能完成存儲保護。
2)存儲保護
ⅰ.保護系統程序區不被用戶侵犯。(有意或無意的)
ⅱ.不允許用戶程序讀寫不屬于自己地址空間的數據。(系統區地址空間,其他用戶程序的地址空間)
3)保護過程--防止地址越界每個進程都有自己獨立的進程空間,如果一個進程在運行時所產生的地址在其地址空間之外,則發生地址越界。即當程序要訪問某個內存單元時,由硬件檢查是否允許,如果允許則執行,否則產生地址越界中斷,由操作系統進行相應處理。9.內存“擴充”
通過虛擬存儲技術實現用戶在編制程序時,不應該受內存容量限制,所以要采用一定技術來“擴充”內存的容量,使用戶得到比實際內存容量大的多的內存空間。具體實現是在硬件支持下,軟硬件相互協作,將內存和外存結合起來統一使用。通過這種方法把內存擴充,使用戶在編制程序時不受內存限制。4.2程序的裝入和鏈接
在多道程序環境下,要使程序運行,必須創建進程,而創建進程第一件事就是將程序和數據裝入內存。一個用戶源程序要變為在內存中可執行的程序,通常要進行以下處理:
(1)編譯:由編譯程序將用戶源程序編譯成若干個目標模塊
(2)鏈接:由鏈接程序將目標模塊和相應的庫函數鏈接成裝入模塊
(3)裝入:由裝入程序將裝入模塊裝入內存庫目標程序塊1目標程序塊2第一步鏈接程序裝入模塊(.exe)第二步裝入程序第三步用戶源程序(.c;.c++)編譯程序.obj一、程序的裝入(由裝入程序將裝入模塊(exe文件)裝入內存)1.絕對裝入方式(AbsoluteLoadingMode)(早期)
如果在編譯時,事先知用戶程序在內存的駐留位置,則編譯程序在編譯時就產生絕對地址的目標代碼。裝入程序就直接把裝入模塊中的程序和數據裝入到指定的位置,(不需進行地址轉換)該裝入方式只適用于單道程序環境。2.可重定位裝入方式(RelocationLoadingMode)
在多道程序環境下,目標模塊中的其它地址都是相對于0編址。應根據內存的當前情況,將裝入模塊裝入到內存的適當位置。
通常是把在裝入時對目標程序中指令和數據的修改過程稱為重定位。圖4-3作業裝入內存時的情況修改指令地址修改數據地址指令中的相對地址是否要修改?
裝入模塊中所有的邏輯地址與實際裝入內存的物理地址不同。從此裝入LOADl,[2500]365010002500100001100012500LOADl,[2500]365程序空間內存空間0[12500]12500=10000+2500物理地址基地址相對地址地址變換在裝入時一次完成,以后不改變,靜態再定位。是否允許程序運行時在內存中移動位置?3.動態運行時裝入方式(DynamicRun-timeLoading)
可重定位裝入方式:
裝入模塊裝入到內存中任何允許的位置。不允許程序運行時在內存中移動位置。
實際情況:程序在運行過程中它在內存中的位置可能經常要改變。動態運行時的裝入程序,在把裝入模塊裝入內存后,并不立即把裝入模塊中的相對地址轉換為絕對地址,而是把這種地址轉換推遲到程序真正要執行時才進行。因此,裝入內存后的所有地址都仍是相對地址。二、程序的鏈接根據鏈接時間的不同,程序鏈接分成三種:
(1)靜態鏈接。
(2)裝入時動態鏈接。
(3)運行時動態鏈接。1.靜態鏈接方式(StaticLinking)圖
4-4程序鏈接示意圖
是一種事先鏈接方式,即在程序運行之前,先將各目標模塊及它們所需的庫函數,鏈接成一個完整的裝入模塊(執行文件),以后不再拆開。
實現靜態鏈接應解決的問題:(1)相對地址的修改(2)變換外部調用符號存在問題:(1)不便于對目標模塊的修改和更新。如要更新其中一個模塊,需要打開裝入模塊。(2)無法實現對目標模塊的共享。PPAB靜態鏈接2.裝入時動態鏈接(Load-timeDynamicLinking)
將用戶源程序編譯后所得到的一組目標模塊,在裝入內存時,采用邊裝入邊鏈接的鏈接方式。
優點:
(1)便于修改和更新。各目標模塊是分開存放的;修改容易;
(2)便于實現對目標模塊的共享。PPAB靜態鏈接PAB裝入時動態鏈接存在問題:
由于程序運行所有可能用的目標模塊在裝入時均全部鏈接在一起,所以將會把一些不會運行的目標模塊也鏈接進去。如程序中的錯誤處理模塊。3.運行時動態鏈接(Run-timeDynamicLinking)
定義:對某些模塊的鏈接推遲到程序執行時才進行鏈接。在執行過程中,當發現一個被調用模塊尚未裝入內存時,立即由OS去找到該模塊并將之裝入內存,把它鏈接到調用者模塊上。凡在執行過程中未被用到的目標模塊,都不會被調入內存和被鏈接到裝入模塊上,這樣不僅可加快程序的裝入過程,而且可節省大量的內存空間。三、重定位
地址映射:把作業地址空間中使用的邏輯地址變換成內存空間中的物理地址的過程。如下圖,作業i經過重定位,把地址集合映射到以1000為始址的內存中,作為作業i的存儲空間。作業i1.重定位的類型
1)靜態重定位當用戶程序被裝入內存時,一次性實現邏輯地址到物理地址的轉換,以后不再轉換(一般在裝入內存時由軟件完成),作業i在執行前一次變址,直到該作業完成退出內存為止。
動態重定位在程序運行過程中要訪問數據時再進行地址變換。由地址變換機構進行的地址變換,硬件上需要重定位寄存器的支持。
重定位寄存器:在執行一條指令取操作數時,要將指令給出的有效地址(500)與重定位寄存器中的內容(1000)相加,得訪問地址(1500),從而實現了地址動態修改。裝入時未修改4.3連續分配存儲管理方式
一、單一連續分配方式
最簡單的一種存儲管理方式,但只能用于單用戶、單任務的OS中。存儲管理方法:將內存分為系統區(內存低端,分配給OS用)和用戶區(內存高端,分配給用戶用)。采用靜態分配方式,即作業一旦進入內存,就要等待它運行結束后才能釋放內存。主要特點:管理簡單,只需小量的軟件和硬件支持,便于用戶了解和使用。但因內存中只裝入一道作業運行,內存空間浪費大,各類資源的利用率也不高。系統區-os用戶區用戶程序工作流程
單一連續區分配采用靜態重定位方式,即作業或進程一旦進入主存,就一直等到它運行結束后才能釋放主存。下圖所示的主存分配與回收法。并且由裝入程序檢查其絕對地址是否越界,即可達到保護系統的目的。缺點:
不支持多道。主存利用率不高。程序的運行受主存容量限制。分區分配方式存儲管理
分區分配方式是滿足多道程序設計需要的一種最簡單的存儲管理方法。存儲管理方法
將內存分成若干個分區(大小相等/不相等),除OS占一區外,其余的每一個分區容納一個用戶程序。按分區的變化情況,可將分區存儲管理進一步分為:固定分區存儲管理動態分區存儲管理二、固定分區分配(固定分區存儲管理)
是最早使用的一種可運行多道程序的存儲管理方法。存儲管理方法內存空間的劃分:將內存空間劃分為若干個固定大小的分區,除OS占一區外,其余的一個分區裝入一道程序。分區的大小可以相等,也可以不等,但事先必須確定,在運行時不能改變。即分區大小及邊界在運行時不能改變。系統需建立一張分區說明表或使用表,以記錄分區號、分區大小、分區的起始地址及狀態(已分配或未分配)。固定分區分配方式示意圖os用戶程序p4p1p20k20k56k65k125k135k區號大小起址狀態136k20k已分配29k56k未分配360k65k已分配410k125k已分配分區說明表分區4分區3分區2分區1操作系統多個等待隊列單個等待隊列分區4分區3分區2分區1操作系統圖:固定分區示意圖內存分配當某個用戶程序要裝入內存時,由內存分配程序檢索分區說明表,從表中找出一個滿足要求的尚未分配的分區分配該程序,同時修改說明表中相應分區的狀態;若找不到大小足夠的分區,則拒絕為該程序分配內存。當程序執行完畢,釋放占用的分區,管理程序將修改說明表中相應分區的狀態為未分配,實現內存資源的回收。主要特點:管理簡單,但因作業的大小并不一定與某個分區大小相等,從而使一部分存儲空間被浪費。所以主存的利用率不高。例題分配回收20
例:在某系統中,采用固定分區分配管理方式,內存分區(單位字節)情況如圖所示,現有大小為1K、9K、33K、121K的多個作業要求進入內存,試畫出它們進入內存后的空間分配情況,并說明主存浪費多大?10k20k28k60k180k511k234(1)內存分區圖os區號大小起址狀態18k20k未分配232k28k未分配3120k60k未分配4331k180k未分配(2)分區說明表區號大小起址狀態18k20k已分配232k28k已分配3120k60k已分配4331k180k已分配(2)分區說明表0k20k28k60k180k511k23(1)內存分配圖(3)主存浪費空間=(8-1)+(32-9)+(120-33)+(331-121)=7+23+87+210=327(k)解:根據分區說明表,將4個分區依次分配給4個作業,同時修改分區說明表,其內存分配和分區說明表如下所示:1K9K33K121K結論:浪費嚴重;產生內部碎片三、動態分區分配方式
動態分區分配又稱為可變式分區分配,是一種動態劃分存儲器的分區方法。存儲管理方法
不事先將內存劃分成一塊塊的分區,而是在作業進入內存時,根據作業的大小動態地建立分區,并使分區的大小正好適應作業的需要。因此系統中分區的大小是可變的,分區的數目也是可變的。
主要特點
管理簡單,只需小量的軟件和硬件支持,便于用戶了解和使用。進程的大小與某個分區大小相等,從而主存的利用率有所提高。1、分區分配中的數據結構空閑分區表
用來登記系統中的空閑分區(分區號,分區起始地址,分區大小及狀態).分區號大小KB起始地址KB狀態132352空閑2……空表目3520504空閑4……空表目5………空閑分區鏈
用鏈頭指針將系統中的空閑分區鏈接起來,構成空閑分區鏈。每個空閑分區的起始部分存放相應的控制信息(如大小,指向下一空閑分區的指針等).352KB504KB32KB^520KB空閑分區鏈頭指針2、分區分配算法
為了將一個作業裝入內存,應按照一定的分配算法從空閑分區表(鏈)中選出一個滿足作業需求的分區分配給作業,如果這個空閑分區的容量比作業申請的空間要大,則將該分區一分為二,一部分分配給作業,剩下的部分仍然留在空閑分區表(鏈)中,同時修改空閑分區表(鏈)中相應的信息。目前常用分配算法有:首次適應算法循環首次適應算法最佳適應算法最壞適應算法首次適應算法(最先適應算法)算法
空閑分區(鏈)按地址遞增的次序排列。在進行內存分配時,從空閑分區表/鏈首開始順序查找,直到找到第一個滿足其大小要求的空閑分區為止。然后再按照作業大小,從該分區中劃出一塊內存空間分配給請求者,余下的空閑分區仍留在空閑分區表(鏈)中。區號大小起址132k20k28k52k3120k60k4331k180k空閑分區表解:按首次適應算法,
申請作業100k,分配3號分區,剩下分區為20k,起始地址160K;申請作業30k,分配1號分區,剩下分區為2k,起始地址50K;申請作業7k,分配2號分區,剩下分區為1k,起始地址59K;其內存分配圖及分配后空閑分區表如下:例:系統中的空閑分區表如下,現有三個作業分配申請內存空間100K、30K及7K。給出按首次適應算法的內存分配情況及分配后空閑分區表。區號大小起址12k50k21k59k320k160k4331k380k(3)該算法分配后的空閑分區表0k20k52k60k180k511k(1)內存分配圖50K59K160K380K首次適應算法的特點
優先利用內存低地址部分的空閑分區,從而保留了高地址部分的大空閑區。但由于低地址部分不斷被劃分,致使低地址端留下許多難以利用的很小的空閑分區(碎片或零頭),而每次查找又都是從低地址部分開始,這無疑增加了查找可用空閑分區的開銷。區號大小起址132k20k28k52k3120k60k4331k180k(2)分配前空閑分區表三個作業分配申請內存空間100K、30K及7K。循環首次適應算法算法
又稱為下次適應算法,由首次適應算法演變而來。在為作業分配內存空間時,不再每次從空閑分區表/鏈首開始查找,而是從上次找到的空閑分區的下一個空閑分區開始查找,直到找到第一個能滿足其大小要求的空閑分區為止。然后,再按照作業大小,從該分區中劃出一塊內存空間分配給請求者,余下的空閑分區仍留在空閑分區表/鏈中。區號大小起址132k20k28k52k3120k60k4331k180k空閑分區表解:按循環首次適應算法,
申請作業100k,分配3號分區,剩下分區為20k,起始地址160K;申請作業30k,分配4號分區,剩下分區為301k,起始地址210K;申請作業7k,分配1號分區,剩下分區為25k,起始地址27K;其內存分配圖及分配后空閑分區表如下:例:系統中的空閑分區表如下,現有三個作業分配申請內存空間100K、30K及7K。給出按循環首次適應算法的內存分配情況及分配后空閑分區表。區號大小起址125k27k28k52k320k160k4301k210k(3)該算法分配后的空閑分區表算法特點
使存儲空間的利用更加均衡,不致使小的空閑區集中在存儲區的一端,但這會導致缺乏大的空閑分區。0k20k52k60k180k511k(1)內存分配圖27K52K160K210K區號大小起址132k20k28k52k3120k60k4331k180k(2)分配前空閑分區表三個作業分配申請內存空間100K、30K及7K。最佳適應算法算法
空閑分區表/鏈按容量大小遞增的次序排列。在進行內存分配時,從空閑分區表/鏈的首開始順序查找,直到找到第一個滿足其大小要求的空閑分區為止。按這種方式為作業分配內存,就能把既滿足作業要求又與作業大小最接近的空閑分區分配給作業。如果該空閑分區大于作業的大小,則與首次適應算法相同,將剩余空閑分區仍留在空閑分區表/鏈中。0k20k52k60k180k511k2134例:系統中的空閑分區表如下,現有三個作業分配申請內存空間100K、30K及7K。給出按最佳適應算法的內存分配情況及分配后空閑分區表。區號大小起址18k52k232k20k3120k60k4331k180k分配前的空閑分區表內存分區按從小到大排隊解:按最佳適應算法,分配前的空閑分區表如上表。
申請作業100k,分配3號分區,剩下分區為20k,起始地址160K;申請作業30k,分配2號分區,剩下分區為2k,起始地址50K;申請作業7k,分配1號分區,剩下分區為1k,起始地址59K;其內存分配圖及分配后空閑分區表如下區號大小起址18k52k320k160k232k20k4331k180k作業100K分配后的空閑分區表區號大小起址22k50k18k52k320k160k4331k180k作業30K分配后的空閑分區表區號大小起址11k59k22k50k320k160k4331k180k作業7K分配后的空閑分區表區號大小起址18k52k232k20k3120k60k4331k180k分配前的空閑分區表(2)該算法分配后的空閑分區表0k20k52k60k180k511k(1)內存分配圖50K59K160K180K區號大小起址11k59k22k50k320k160k4331k180k算法特點
若存在與作業大小一致的空閑分區,則它必然被選中,若不存在與作業大小一致的空閑分區,則只劃分比作業稍大的空閑分區,,從而保留了大的空閑分區,但空閑區一般不可能正好和它申請的內存空間大小一樣,因而將其分割成兩部分時,往往使剩下的空閑區非常小,從而在存儲器中留下許多難以利用的小空閑區(碎片或零頭)。最壞適應算法算法
空閑分區表/鏈按容量大小遞減的次序排列。在進行內存分配時,從空閑分區表/鏈的首開始順序查找,直到找到第一個比之大的空閑分區為止。剩下的空閑仍留在空閑分區表/鏈中。區號大小起址1331k180k2120k60k332k20k48k52k空閑分區表例:系統中的空閑分區表如下,現有三個作業分配申請內存空間100K、30K及7K。給出按最壞適應算法的內存分配情況及分配后空閑分區表。按從大到小排隊區號大小起址1231k280k2120k60k332k20k48k52k作業100K分配后的空閑分區表區號大小起址1201k310k2120k60k332k20k48k52k作業30K分配后的空閑分區表區號大小起址1194k317k2120k60k332k20k48k52k作業7K分配后的空閑分區表解:按最壞適應算法,分配前的空閑分區表如上表。
申請作業100k,分配1號分區,剩下分區為231k,起始地址280K;申請作業30k,分配1號分區,剩下分區為201k,起始地址310K;申請作業7k,分配1號分區,剩下分區為194k,起始地址317K;其內存分配圖及分配后空閑分區表如下:區號大小起址1331k180k2120k60k332k20k48k52k空閑分區表區號大小起址1194k317k2120k60k332k20k48k52k(2)該算法分配后的空閑分區表30k20k52k60k180k511k(1)內存分配圖20K52K60K280K310K317K算法特點
總是挑選滿足作業要求的最大的分區分配給作業。這樣使分給作業后剩下的空閑分區也較大,可裝下其它作業。但由于最大的空閑分區總是因首先分配而劃分,當有大作業到來時,其存儲空間的申請往往會得不到滿足。3.分區分配操作1)分配內存—根據內存分配算法圖
4-7內存分配流程
設:u.size:
請求的分區大小為;
m.size:
空閑分區的大小;
size:規定不再切割的剩余分區的大小;
該分區整體分配分成兩部分找一個空閑區能滿足作業大小(2)回收內存
當作業執行結束時,應回收已使用完畢的分區。系統根據回收分區的大小及首地址,在空閑分區表中檢查是否有鄰接的空閑分區,如有,則合成為一個大的空閑分區,然后修改有關的分區狀態信息。回收分區與已有空閑分區的相鄰情況有以下四種:
1)回收分區上鄰接一個空閑分區,合并后首地址為空閑分區的首地址,大小為二者之和。
2)回收分區下鄰接一個空閑分區,合并后首地址為回收分區的首地址,大小為二者之和。
3)回收分區上下鄰接空閑分區,合并后首地址為上空閑分區的首地址,大小為三者之和。
4)回收分區不鄰接空閑分區,這時在空閑分區表中新建一表項,并填寫分區大小等信息。…回收分區空閑分區…(a)…空閑分區回收分區…(b)…空閑分區回收分區空閑分區…(c)內存回收情況思考:
哪種回收情況,回收后,空閑分區數目要減少一個?四、可重定位分區分配方式1、碎片問題
在分區存儲管理方式中,必須把作業裝入到一片連續的內存空間。如果系統中有若干個小的分區,其總容量大于要裝入的作業,但由于它們不相鄰接,也將致使作業不能裝入內存。例:如圖所示系統中有四個小空閑分區,不相鄰,但總容量為90KB,如果現有一作業要求分配40KB的內存空間,由于系統中所有空閑分區的容量均小于40KB,故此作業無法裝入內存。這種內存中無法被利用的存儲空間稱為“零頭”或“碎片”。根據碎片出現的情況分為以下兩種:操作系統作業A20KB作業B30KB作業C15KB作業D25KB系統中的碎片os用戶程序p4p1p20k20k56k65k125k135k內部碎片內部碎片內部碎片25KB作業D15KB作業C30KB作業B20KB作業A操作系統外部碎片外部碎片外部碎片外部碎片內部碎片外部碎片內部碎片:指分配給作業的存儲空間中未被利用的部分。如固定分區中存在的碎片。外部碎片:指系統中無法利用的小的空閑分區。如動態分區中存在的碎片。2.碎片問題的解決方法
對系統中存在碎片,目前主要有兩種技術:拼接或緊湊或緊縮技術將內存中所有作業移到內存一端(作業在內存中的位置發生了變化,這就必須對其地址加以修改或變換即稱為重定位),使本來分散的多個小空閑分區連成一個大的空閑區。如圖所示。這種通過移動作業從把多個分散的小分區拼接成一個大分區的方法稱為拼接或緊湊或緊縮。
拼接時機:分區回收時;當找不到足夠大的空閑分區且總空閑分區容量可以滿足作業要求時。操作系統作業A作業B作業C作業D20KB30KB90KB15KB25KB建立在動態重定位基礎上動態重定位分區分配算法流程圖有大于x的空閑分區嗎?返回分區號空閑分區總和大于x嗎?拼接并修改相應數據結構返回修改有關數據結構按動態分區分配方式進行分配YYNN無法分配,返回請求分配一個大小為x的分區動態重定位分區分配技術
在動態分區分配算法中增加拼接功能,在找不到足夠大的空閑分區來滿足作業要求,而系統中總空閑分區容量可以滿足作業要求時,進行拼接。特點:
可以充分利用存儲區中的“零頭/碎片”,提高主存的利用率。但若“零頭/碎片”大多,則拼接頻率過高會使系統開銷加大。五、分區的存儲保護
存儲保護是為了防止一個作業有意或無意地破壞操作系統或其它作業,常用的存儲保護方法有:1、界限寄存器方法
上下界寄存器方法基址、限長寄存器方法2、存儲保護鍵方法給每個存儲塊分配一個單獨的保護鍵,它相當于一把鎖。進入系統的每個作業也賦予一個保護鍵,它相當于一把鑰匙。當作業運行時,檢查鑰匙和鎖是否匹配,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年開學第一課安全主題班會教案范例
- 2025年玻璃花盆架項目可行性研究報告
- 2025年猴頭菇多糖項目可行性研究報告
- 2025年牛皮紙繩機項目可行性研究報告
- 石家莊財經職業學院《時尚健美操》2023-2024學年第二學期期末試卷
- 浙江省淮北市2025年三年級數學第二學期期末學業水平測試試題含解析
- 上海市青浦區達標名校2025年初三5月份考試物理試題含解析
- 三亞城市職業學院《醫學實驗基本技術與設備》2023-2024學年第二學期期末試卷
- 山東交通學院《大數據基礎實踐》2023-2024學年第二學期期末試卷
- 四川省遂寧市重點中學2024-2025學年初三畢業班聯考生物試題試卷含解析
- DB3309T 86-2021 晚稻楊梅生產技術規程
- 水電安裝合同范本6篇
- 2024年03月徽商銀行社會招考筆試歷年參考題庫附帶答案詳解
- 2024中國兒童營養趨勢洞察報告
- 第一章-地震工程學概論
- 孩子畏難情緒心理健康教育
- 《中國糖尿病防治指南(2024版)》更新要點解讀
- 手術患者液體管理
- 中國融通集團北京企業管理共享中心社會招聘筆試真題2023
- T-CCSAS 042-2023 在役常壓儲罐檢驗與適用性評價技術規范
- 2024年10月自考15040習概試題及答案含評分參考
評論
0/150
提交評論