存儲管理的基本原理_第1頁
存儲管理的基本原理_第2頁
存儲管理的基本原理_第3頁
存儲管理的基本原理_第4頁
存儲管理的基本原理_第5頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、4.1存儲管理的基本原理4.1.1內存管理方法內存管理主要包括內存分配和回收、地址變換、內存擴充、內存共享和保護等功能。下面主要介紹連續分配存儲管理、覆蓋與交換技術以及頁式與段式存儲管理等基本概念和原理。1 .連續分配存儲管理方式連續分配是指為一個用戶程序分配連續的內存空間。連續分配有單一連續存儲管理和分區式儲管理兩種方式。(1)單一連續存儲管理在這種管理方式中,內存被分為兩個區域:系統區和用戶區。應用程序裝入到用戶區,可使用用戶區全部空間。其特點是,最簡單,適用于單用戶、單任務的操作系統。CP7M和DOS20以下就是采用此種方式。這種方式的最大優點就是易于管理。但也存在著一些問題和不足之處,

2、例如對要求內存空間少的程序,造成內存浪費;程序全部裝入,使得很少使用的程序部分也占用一定數量的內存。(2)分區式存儲管理為了支持多道程序系統和分時系統,支持多個程序并發執行,引入了分區式存儲管理。分區式存儲管理是把內存分為一些大小相等或不等的分區,操作系統占用其中一個分區,其余的分區由應用程序使用,每個應用程序占用一個或幾個分區。分區式存儲管理雖然可以支持并發,但難以進行內存分區的共享。分區式存儲管理引人了兩個新的問題:內碎片和外碎片。前者是占用分區內未被利用的空間,后者是占用分區之間難以利用的空閑分區(通常是小空閑分區)0為實現分區式存儲管理,操作系統應維護的數據結構為分區表或分區鏈表。表中

3、各表項一般包括每個分區的起始地址、大小及狀態(是否已分配)。分區式存儲管理常采用的一項技術就是內存緊縮(compaction):將各個占用分區向內存一端移動,然后將各個空閑分區合并成為一個空閑分區。這種技術在提供了某種程度上的靈活性的同時,也存在著一些弊端,例如:對占用分區進行內存數據搬移占用CPUt寸間;如果對占用分區中的程序進行“浮動”,則其重定位需要硬件支持。1)固定分區(nxedpartitioning)固定式分區的特點是把內存劃分為若干個固定大小的連續分區。分區大小可以相等:這種作法只適合于多個相同程序的并發執行(處理多個類型相同的對象)。分區大小也可以不等:有多個小分區、適量的中等

4、分區以及少量的大分區。根據程序的大小,分配當前空閑的、適當大小的分區。這種技術的優點在于,易于實現,開銷小。缺點主要有兩個:內碎片造成浪費;分區總數固定,限制了并發執行的程序數目。2)動態分區(dynamicpartitioning)。動態分區的特點是動態創建分區:在裝入程序時按其初始要求分配,或在其執行過程中通過系統調用進行分配或改變分區大小。與固定分區相比較具優點是:沒有內碎片。但它卻引入了另一種碎片一一外碎片。動態分區的分區分配就是尋找某個空閑分區,其大小需大于或等于程序的要求。若是大于要求,則將該分區分割成兩個分區,其中一個分區為要求的大小并標記為“占用”,而另一個分區為余下部分并標記

5、為“空閑”。分區分配的先后次序通常是從內存低端到高端。動態分區的分區釋放過程中有一個要注意的問題是,將相鄰的空閑分區合并成一個大的空閑分區。下面列出了幾種常用的分區分配算法:首先適配法(nrstfit):按分區在內存的先后次序從頭查找,找到符合要求的第一個分區進行分配。該算法的分配和釋放的時間性能較好,較大的空閑分區可以被保留在內存高端。但隨著低端分區不斷劃分會產生較多小分區,每次分配時查找時間開銷便會增大。下次適配法(nextfit):按分區在內存的先后次序,從上次分配的分區起查找(到最后區時再從頭開始,找到符合要求的第一個分區進行分配。該算法的分配和釋放的時間性能較好,使空閑分區分布得更均

6、勻,但較大空閑分區不易保留。最佳適配法(bestfit):按分區在內存的先后次序從頭查找,找到其大小與要求相差最小的空閑分區進行分配。從個別來看,外碎片較小;但從整體來看,會形成較多外碎片優點是較大的空閑分區可以被保留。最壞適配法(worst-fit):按分區在內存的先后次序從頭查找,找到最大的空閑分區進行分配。基本不留下小空閑分區,不易形成外碎片。但由于較大的空閑分區不被保留,當對內存需求較大的進程需要運行時,其要求不易被滿足。2 .覆蓋和交換技術引入覆蓋(overlay)技術的目標是在較小的可用內存中運行較大的程序。這種技術常用于多道程序系統之中,與分區式存儲管理配合使用。覆蓋技術的原理很

7、簡單,一個程序的幾個代碼段或數據段,按照時間先后來占用公共的內存空間。將程序必要部分(常用功能)的代碼和數據常駐內存;可選部分(不常用功能)平時存放在外存(覆蓋文件)中,在需要時才裝入內存。不存在調用關系的模塊不必同時裝入到內存,從而可以相互覆蓋。覆蓋技術的缺點是編程時必須劃分程序模塊和確定程序模塊之間的覆蓋關系,增加編程復雜度;從外存裝入覆蓋文件,以時間延長換取空間節省。覆蓋的實現方式有兩種:以函數庫方式實現或操作系統支持??梢詫簳r不能執行的程序送或讀人保存在外存中而處于就交換技術常用于多道程序系統交換(swapping)技術在多個程序并發執行時,到外存中,從疝獲得空閑內存空間來裝入新程序

8、,緒狀態的程序。交換單位為整個進程的地址空間?;蛐⌒头謺r系統中,與分區式存儲管理配合使用又稱作“對換”或“滾進/滾出"(roll-in/roll-out)。其優點之一是增加并發運行的程序數目,并給用戶提供適當的響應時間;與覆蓋技術相比交換技術另一個顯著的優點是不影響程序結構。交換技術本身也存在著不足,例如:對換人和換出的控制增加處理器開銷;程序整個地址空間都進行對換,沒有考慮執行過程中地址訪問的統計特性。3.頁式和段式存儲管理在前面的幾種存儲管理方法中,為進程分配的空間是連續的,使用的地址都是物理地址。如果允許將一個進程分散到許多不連續的空間,就可以避免內存緊縮,減少碎片?;谶@一思

9、想,通過引入進程的邏輯地址,把進程地址空間與實際存儲空間分離,增加存儲管理的靈活性。地址空間和存儲空間兩個基本概念的定義如下:地址空間:將源程序經過編譯后得到的目標程序,存在于它所限定的地址范圍內,這個范圍稱為地址空間。地址空間是邏輯地址的集合。存儲空間:指主存中一系列存儲信息的物理單元的集合,這些單元的編號稱為物理地址存儲空間是物理地址的集合。根據分配時所采用的基本單位不同,可將離散分配的管理方式分為以下三種段式存儲管理和段頁式存儲管理。其中段頁式存儲管理是前兩種結合的產物。(1)頁式存儲管理1)基本原理。將程序的邏輯地址空間劃分為固定大小的頁(page),而物理內存劃分為同樣大小的頁框(p

10、ageframe)0程序加載時,可將任意一頁版人內存中任意一個頁框,這些頁框不必連續,從而實現了離散分配。該方法需要CPU勺硬件支持,來實現邏輯地址和物理地址之間的映射。在頁式存儲管理方式中地址結構由兩部構成,前一部分是頁號,后一部分為頁內地址,如圖4-2所示。這種管理方式的優點是,沒有外碎片,每個內碎片不超過頁大比前面所討論的幾種管理方式的最大進步是,一個程序不必連續存放。這樣就便于改變程序占用空間的大小(主要指隨著程序運行,動態生成的數據增多,所要求的地址空間相應增長)。缺點是仍舊要求程序全部裝入內存,沒有足夠的內存,程序就不能執行。2)頁式管理的數據結構。在頁式系統中進程建立時,操作系統

11、為進程中所有的頁分配頁框。當進程撤銷時收回所有分配給它的頁框。在程序的運行期間,如果允許進程動態地申請空間,操作系統還要為進程申請的空間分配物理頁框。操作系統為了完成這些功能,必須記錄系統內存中實際的頁框使用情況。操作系統還要在進程切換時,正確地切換兩個不同的進程地址空間到物理內存空間的映射。這就要求操作系統要記錄每個進程頁表的相關信息。為了完成上述的功能,一個頁式系統中,一般要采用如下的數據結構。進程頁表:完成邏輯頁號(本進程的地址空間)到物理頁面號(實際內存空間)的映射。每個進程有一個頁表,描述該進程占用的物理頁面及邏輯排列順序。物理頁面表:整個系統有一個物理頁面表,描述物理內存空間的分配

12、使用狀況,其數據結構可采用位示圖和空閑頁鏈表。請求表:整個系統有一個請求表,描述系統內各個進程頁表的位置和大小,用于地址轉換也可以結合到各進程的PCB進程控制塊)里。3)頁式管理地址變換有效地址控制寄存器在頁式系統中,指令所給出的地址分為兩部分:邏輯頁號和頁內地址。CPU中的內存管理單元(MMU按邏輯頁號通過查進程頁表得到物理頁框號,將物理頁框號與頁內地址相加形成物理地址(見圖4-3)。上述過程通常由處理器的硬件直接完成,不需要軟件參與。通常,操作系統只需在進程切換時,把進程頁表的首地址裝入處理器特定的寄存器中即可。一般來說,頁表存儲在主存之中。這樣處理器每訪問一個在內存中的操作數,就要訪問兩

13、次內存。第一次用來查找頁表將操作數的邏輯地址變換為物理地址;第二次完成真正的讀寫操作。這樣做時間上耗費嚴重。為縮短查找時間,可以將頁表從內存裝入CPlrt部的關聯存儲器(例如,快表)中,實現按內容查找。此時的地址變換過程是:在CPU合出有效地址后,由地址變換機構自動將頁號送人快表,并將此頁號與快表中的所有頁號進行比較,而且這種比較是同時進行的。若其中有與此相匹配的頁號,表示要訪問的頁的頁表項在快表中。于是可直接讀出該頁所對應的物理頁號,這樣就無需訪問內存中的頁表。由于關聯存儲器的訪問速度比內存的訪問速度快得多。(2)段式存儲管理1)基本原理。在段式存儲管理中,將程序的地址空間劃分為若干個段(s

14、egment),這樣每個進程有一個二維的地址空間。在前面所介紹的動態分區分配方式中,系統為整個進程分配一個連續的內存空間。而在段式存儲管理系統中,則為每個段分配一個連續的分區,而進程中的各個段可以不連續地存放在內存的不同分區中。程序加載時,操作系統為所有段分配其所需內存,這些段不必連續,物理內存的管理采用動態分區的管理方法。在為某個段分配物理內存時,可以采用首先適配法、下次適配法、最佳適配法等方法。在回收某個段所占用的空間時,要注意將收回的空間與其相鄰的空間合并。段式存儲管理也需要硬件支持,實現邏輯地址到物理地址的映射。程序通過分段劃分為多個模塊,如代碼段、數據段、共享段。這樣做的優點是:可以

15、分別編寫和編譯源程序的一個文件,并且可以針對不同類型的段采取不同的保護,也可以按段為單位來進行共享??偟膩碚f,段式存儲管理的優點是:沒有內碎片,外碎片可以通過內存緊縮來消除;便于實現內存共享。缺點與頁式存儲管理的缺點相同,進程必須全部裝入內存。2)段式管理的數據結構。為了實現段式管理,操作系統需要如下的數據結構來實現進程的地址空間到物理內存空間的映射,并跟蹤物理內存的使用情況,以便在裝入新的段的時候,合理地分配內存空間。 進程段表:描述組成進程地址空間的各段,可以是指向系統段表中表項的索引。每段有段基址(baseaddress)。 系統段表:系統所有占用段。 空閑段表:內存中所有空閑段,可以結

16、合到系統段表中。3)段式管理的地址變換。內存段表地址寄存器在段式管理系統中,整個進程的地址空間是二維的,即其邏輯地址由段號和段內地址兩部分組成。為了完成進程邏輯地址到物理地址的映射,處理器會查找內存中的段表,由段號得到段的首地址,加上段內地址,得到實際的物理地址(見圖44)。這個過程也是由處理器的硬件直接完成的,操作系統只需在進程切換時,將進程段表的首地址裝入處理器的特定寄存器當中。這個寄存器一般被稱作段表地址寄存器。4.頁式和段式系統的區別頁式和段式系統有許多相似之處。比如,兩者都采用離散分配方式,且都通過地址映射機構來實現地址變換。但概念上兩者也有很多區別,主要表現在: 頁是信息的物理單位,分頁是為了實現離散分配方式,以減少內存的外零頭,提高內存的利用率。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論