1. 程式人生 > >作業系統-儲存管理

作業系統-儲存管理

儲存器是由記憶體和外存組成。記憶體由順序編址的塊組成,每塊包含相應的物理單元。CPU要啟動相應的輸入輸出裝置後才能使外存與記憶體交換資訊。
1、虛擬儲存器
儲存管理系統吧程序中那些不經常被訪問的程式段和資料放入外存中,待需要訪問他們時再將他們調入記憶體。對於那些一部分資料和程式段在記憶體而另一部分在外存的程序,可用虛擬儲存器來安排地址。有兩種方法可以安排這些編譯後的的目的碼的地址。一種方法是按照物理儲存器中的位置賦予實際實體地址;另一種方法是編譯連結程式把使用者源程式編譯後連結到一個以0地址為始地址的線性或多維虛擬地址空間
這裡寫圖片描述
將程序中的目的碼、資料等的虛擬地址組成的虛擬空間稱為虛擬儲存器。。每個程序都有自己的虛擬儲存器,且虛擬儲存器的容量是由計算機的地址結構和定址方式確定的。
(1)地址變換:把虛擬地址對映到記憶體地址。稱為地址重定位或地址對映。
(2)靜態地址重定位:在虛擬空間執行程式之前完成地址對映工作。不需要硬體支援。但是無法實現虛擬儲存器
(3)動態地址重定位:在程式執行過程中,CPU訪問記憶體之前,將要訪問的程式或資料地址依靠地址變換機構轉換。。可以對記憶體進行非連續分配。

2、分割槽儲存管理
分割槽管理是把記憶體劃分成若干個大小不等的區域,除作業系統佔用一個區域之外,其餘由多道環境下的各併發程序共享。
(1) 固定分割槽:將記憶體大小固定地劃分成若干個大小不等的區域。一旦劃分結束,在整個執行過程中每個分割槽的長度和記憶體的總分割槽個數將保持不變。
(2) 動態分割槽域法:在作業執行前並不建立分割槽,分割槽的建立是在作業的處理過程中進行的,且其大小可隨作業或程序對記憶體的要求而改變,這就改變了固定分割槽法中那種即使是小作業也要佔據大分割槽的浪費現象,從而提高了記憶體的利用率。

3、動態分割槽的分配與回收
主要解決三個問題:
對於請求表中的要求記憶體長度,從可用表或自由鏈中尋找合適的空閒區分配程式;
分配空閒區之後,更新可用表或自由鏈;
程序或作業釋放記憶體資源時,和相鄰的空閒區進行連結合併,更新可用表或自由鏈。
(1) 最先適應法:要求可用表或自由連結按起始地址遞增的次序排列。一旦找到大於或等於所要求記憶體長度的分割槽,則結束探索。然後,從找到的分割槽中劃出所要求的記憶體長度分配給使用者,並把剩餘部分進行合併(如果有相鄰空閒區存在)後留在可用表中,但要修改其相應的表項。
(2) 最佳適應演算法:要求從小到大的次序組成空閒區可用表或自由鏈。當用戶作業或程序聲請一個空閒區時,儲存管理程式從表頭開始查詢,當找到第一個滿足要求的空閒區時,停止查詢。如果該空閒區大於請求表中的請求長度,則與最先適應法相同,將減去剩餘空閒區部分留在可用表中。
(3) 最壞適應演算法:要求空閒區按其大小遞減的順序組成空閒區可用表或自由鏈。

4、動態分割槽時的回收與拼接
當用戶左右或程序執行結束時儲存管理程式要收回已使用完畢的空閒區,並將其插入空閒區可用表或自由鏈,此時會碰到空閒區拼接問題。如果不對空閒區進行拼接,則由於每個作業或程序所要求的記憶體長度不一樣而出現大量分散,較小的空閒區。這就造成了大量的記憶體浪費。

5、分割槽儲存管理的優缺點
優點如下:
(1) 實現了多個作業或程序對記憶體的共享,有助於多道程式設計,從而提高了系統的資源利用率。
(2) 該方法要求的硬體支援少,管理演算法簡單,因而實現容易
缺點如下:
(1) 記憶體利用率仍然不高。和單一連續分配演算法一樣,儲存器中可能含有從未使用過的資訊。而且還存在著嚴重的碎小空閒區(碎片)不能利用的問題,這進一步影響了記憶體的利用率。
(2) 作業或程序的大小受分割槽大小的控制,除非配合採用覆蓋和交換技術。
(3) 無法實現各分割槽間的資訊共享。
6、 覆蓋與交換技術
是在多道環境下用來擴充記憶體的兩種方法。
(1) 覆蓋技術
基於這樣一種思想提出的,即一個程式並不需要一開始就把它的全部指令和資料都裝入記憶體後都執行。在單CPU系統中,每一時刻事實上只能執行一條指令。一次不妨把程式劃分為若干個功能上相對獨立的程式段,按照程式的邏輯結構讓那些不會同時執行的程式段共享同一塊記憶體區。通常,這些程式段都被儲存在外存中,當有關程式段的先頭程式段已經執行結束後,再把後續程式段調入記憶體覆蓋前面的程式段。這使得使用者看來,好像記憶體擴大了,從而達到記憶體擴充的目的。但是,這要求程式設計師提供一個清楚的覆蓋結構。
(2) 交換技術
多道程式環境或分時系統中,同時執行好幾個作業或程序。但是,這些同時存在於記憶體中的作業或程序,有的處於執行狀態或就緒狀態,而有的則處於等待狀態。一般來說,等待時間較長,如果讓這些等待中的程序繼續駐留記憶體,將會造成儲存空間的浪費。交換是指先將記憶體某部分的程式或資料寫入外存交換區,再從外存交換區中調入指定的程式或資料到記憶體中來,並讓其執行的一種記憶體擴充技術。與覆蓋技術相比,交換不要求程式設計師給出程式段之間的覆蓋結構。而且交換主要是在程序或作業之間進行,而覆蓋主要在同一個作業或程序內進行。

頁式管理
分割槽式管理儘管實現方式較為簡單,但存在著嚴重的碎片問題使得記憶體的利用率不高,再者,分割槽式管理時,由於各作業或程序對應於不同的分割槽以及在分割槽各作業或程序連續存放,程序的大小仍受分割槽大小或記憶體可用空間的限制。而且,分割槽式管理也不利於程式段和資料的共享。
頁式管理正是為了減少碎片以及為了只在記憶體存放那些反覆執行或即將執行的程式段與資料部分,而把那些不經常執行的程式段和資料存放於外存待執行時調入,以提高記憶體的利用率而提出來的。
基本原理: 首先,各程序的虛擬空間被劃分成若干個長度相等的頁,頁長的劃分和記憶體外存之間的資料傳輸速度以及記憶體大小等有關,一般每個頁長的大小為1-4K大小,劃分之後,程序的虛地址變為頁號p與頁內地址w所組成。每個頁面之間不再連續。實現了記憶體中碎片的減少,因為任一碎片都會小於一個頁面。實現了連續儲存到非連續儲存的飛躍,為動態儲存打好了基礎。

1、 靜態頁面管理
在作業或程序開始執行之前,把該作業或程序的的程式段和資料全部裝入記憶體的各個頁面中,並通過頁表和硬體地址變換機構實現虛擬地址到記憶體實體地址的地址對映。
(1)記憶體頁面分配與回收
為要求記憶體的作業或程序分配足夠的頁面。系統依靠儲存頁面表、請求表以及頁表來完成記憶體的分配工作。
a. 頁表:頁號+頁面號組成。在記憶體中佔有一塊固定的儲存區。頁表的大小由程序或作業的長度決定。
b. 請求表:確定作業或程序的虛擬空間的各頁在記憶體中的實際位置。為了完成這個任務,系統必須知道每個作業或程序的頁表起始地址和長度,以進行記憶體分配和地址變換。
c. 儲存頁面表:指出記憶體個頁面是否已被分配出去,以及未分配頁面的總數。儲存頁面表有兩種構成方法,一種是在記憶體中劃分一塊固定區域,每個單元的每個位元代表一個頁面,如果頁面已被分配,則對應位元位置1,否則置0,,這種方法是位檢視法。另一種方法是空閒頁面鏈的方法,使用了空閒頁面本身的單元存放指標,不佔據額外的記憶體空間。

(2) 分配演算法(如下圖)
這裡寫圖片描述

(3) 地址變換
怎樣由頁號和頁內相對地址變換到記憶體實體地址的問題。首先需要一個裝置頁表起始地址和頁表長度用的控制暫存器。系統把所排程執行的程序頁表始地址和長度從請求表中取出置入控制暫存器中。然後由控制暫存器的頁表始地址,可以找到頁表所在的位置
靜態頁式管理解決了分割槽管理時的碎片問題。但是,由於靜態頁式管理要求程序或作業在執行前全部裝入記憶體,如果可用頁面數小於使用者要求時,該作業或程序只好等待。而且作業和程序的大小仍受記憶體可用頁面數的限制。

11.3 動態頁式管理
請求頁式管理的地址變換過程與靜態頁式管理時相同,也是通過頁表查出相應的頁面號之後,由頁面號和域內相對地址相加而得到實際實體地址。但是,由於請求頁式管理只讓程序或作業的部分程式和資料駐留在記憶體中,一次,在執行過程中,不可避免地會出現某些虛頁不在記憶體中的問題。
第一個問題可以用擴充頁表的方法解決。即與每個虛頁號相對應,除了頁面號之外,再增設該頁是否在記憶體的中斷位以及該頁在外存中的副本起始地址。
關於虛頁不在記憶體時的處理,涉及到兩個問題。第一,採用何種方法把所缺的頁調入記憶體;第二,如果記憶體中沒有空閒頁面時,把調進來的頁面放在什麼地方,也就是說,採用什麼策略來淘汰已佔據記憶體的頁。
(1) 請求頁式管理中的置換演算法
a. 隨機淘汰演算法
b. 輪轉法和先進先出演算法(FIFO)
FiFO和RR演算法的記憶體利用率不高,FIFO的另一個缺點是陷阱現象(belady現象),有時會出現分配的頁面數增多,缺頁次數反而增加的奇怪現象。
c.最近最久未使用頁面置換演算法(LRU):當需要淘汰某一頁時,選擇離當前時間最近的一段時間內最久沒有使用過的頁先淘汰。

相關推薦

作業系統儲存管理實驗課程設計報告

作業系統報告 儲存管理 姓名: 鄭兆涵                                     專業: 電腦科學與技術(嵌入式方向) 一、設計目的、意義 本次實驗針對:(1)儲存管理實驗,(2)主儲存器空間的分配和回收實驗,兩個實驗進

作業系統-儲存管理

儲存器是由記憶體和外存組成。記憶體由順序編址的塊組成,每塊包含相應的物理單元。CPU要啟動相應的輸入輸出裝置後才能使外存與記憶體交換資訊。 1、虛擬儲存器 儲存管理系統吧程序中那些不經常被訪問的程式段和資料放入外存中,待需要訪問他們時再將他們調入記憶體。對於

作業系統儲存管理之頁式儲存管理深入淺出

用分割槽方式管理的儲存器,每道程式總是要求佔用主存的一個或幾個連續儲存區域,作業或程序的大小仍受到分割槽大小或記憶體可用空間的限制,因此,有時為了接納一個新的作業而往往要移動已在主存的資訊。這不僅不方便,而且開銷不小。採用分頁儲存器既可免去移動資訊的工作,又可儘

作業系統儲存管理之分段儲存

需求 從固定分割槽到動態分割槽,從分割槽方式到分頁方式發展提高了主存空間利用率。 而分段儲存管理的引入,則滿足使用者(程式設計師)程式設計和使用上的要求,這些要求其它各種儲存管理技術難以滿足。 需求解析: 在分頁儲存管理中,經連結編輯處理得到了一維

作業系統儲存管理之分段式與段頁式虛擬儲存系統

分段式虛擬儲存系統 分段式虛擬儲存系統把作業的所有分段的副本都存放在輔助儲存器中,當作業被排程投入執行時,首先把當前需要的一段或幾段裝入主存,在執行過程中訪問到不在主存的段時再把它們裝入。因此,在段表中必須說明哪些段已在主存,存放在什麼位置,段長是多少。哪些段

作業系統 儲存管理

1、儲存器: 速度:暫存器---->主存---->輔存 容量:輔存---->主存---->暫存器 2、快取記憶體和磁碟快取: 快取記憶體:解決cpu與主存之間速度不平衡 磁碟快取:解決主存與磁碟之間速度不平衡,他是記憶體中開闢的一個區間,並不是實際存

作業系統儲存管理問總結

問題一: ⑴ 儲存管理的實質是什麼?(對記憶體的管理,主要對記憶體中使用者區進行管理) ⑵ 多道程式中,為方便使用者和充分利用記憶體以提高記憶體利用率,記憶體管理的任務是什麼?(記憶體空間的分配和回收、記憶體空間的共享、儲存保護、地址對映、記憶體擴充)。 ⑶ 如何實現儲存保

易學筆記-系統分析師考試-第3章 作業系統基本原理/3.3 記憶體管理/3.3.4 虛擬儲存管理

虛擬儲存管理 背景:固定式、分頁式、分段式儲存一個共同的特點是要求的儲存空間必須足夠大裝載入作業的全部資訊,但由於作業在執行過程中,作業中所有的記憶體不是一次全部使用的,甚至有些記憶體塊根本就不是使用,這樣就造成了記憶體資源的極度浪費 虛擬儲存工作過程:當作業載入到記憶體時

易學筆記-系統分析師考試-第3章 作業系統基本原理/3.3 記憶體管理/3.3.2 分割槽儲存管理

記憶體儲存管理方式分類 分割槽儲存管理方式 分頁式儲存管理方式 分段式儲存管理方式 虛擬儲存器 分割槽儲存管理方式 固定分割槽 分割槽方法:在裝入作業前,記憶體被操作管理員分為N個區,分割槽大小和分割槽數量不可以修改

作業系統 第四章 3 分頁、分段、段頁式儲存管理 +作業題

一、分頁儲存管理方式 1、(物理)塊:記憶體劃分成多個小單元,每個單元K大小         頁面:作業也按K單位大小劃分成片         物理劃分塊的大小 = 邏輯劃分的頁的大小

作業系統第四章學習筆記 (2)儲存器管理 連續分配儲存管理方式

連續分配方式:為一個使用者程式分配一個連續的記憶體空間 :單一連續分配                 記憶體分為系統區和使用者區兩部分:        

作業系統之虛擬儲存管理

  虛擬儲存器 邏輯上擴充記憶體 1. 虛擬儲存器的基本概念    所謂“虛擬儲存器”,是指具有請求調入功能和置換功能,能從邏輯上對記憶體容量加以擴充的一種儲存器系統。          (1) 虛擬儲存管理下 &nbs

作業系統 第五章 虛擬儲存管理--筆記

虛擬儲存器的基本概念 常規儲存器管理方式的特徵 一次性:作業在執行前一次性的全部裝入記憶體 駐留性:作業裝入記憶體後,便會一直駐留在記憶體中,直至作業結束 一次性及駐留性在程式執行時是否是必須的? 答:不是,因為程式執行有區域性性 區域性性原理 在一段較短的時間

作業系統儲存管理

3.虛擬記憶體的實現 一. 分頁的概念         大部分虛擬記憶體系統中都是用了一種叫分頁的技術。程序的虛擬地址空間按照固定大小劃分成頁面的若干單元,在實體記憶體中相應的單元稱為頁框,且它們的大小通常是一樣的。頁面與頁框形成一一對映關係,這種對映關係的建立有賴於一種存在於記憶體中的資料結構----頁表

校招季——作業系統儲存管理

第3章 儲存管理 現在的儲存器體系為分層儲存器體系,作業系統的工作是將這個儲存體系抽象為一個有用的模型並進行管理。 3.1無儲存器抽象 每個程式都直接訪問實體記憶體。這種情況下,想在記憶體中同時執行兩個程式是不可能的。這種系統中實現並行的一種方法是使用多執行緒來程式設計。 執行多道程式的方法是作業系統將當

求職筆記-作業系統-分段式儲存管理、分頁式儲存管理的區別?

分頁式儲存管理 使用者程式的邏輯地址空間被劃分為若干個固定大小的地址空間,稱為“頁”,記憶體實體地址空間也分成相對應的若干個物理塊,頁和塊的大小相等,可將使用者程式的任一頁放在任一塊中,實現離散分配 。有效提高記憶體利用率。 分段式儲存管理 將使用者程

作業系統儲存管理的基本原理

儲存管理的基本原理 記憶體管理方法 記憶體管理主要包括記憶體分配和回收、地址變換、記憶體擴充、記憶體共享和保護等功能。 下面主要介紹連續分配儲存管理、覆蓋與交換技術以及頁式與段式儲存管理等基本概念和原理。 1.連續分配儲存管理方式 連續分配是指為一個使用者程式分配連續的記憶體空間。連續分配有單一

作業系統:虛擬頁式儲存管理(缺頁中斷、頁面置換演算法)

1、基本工作原理 1、基本工作原理 在程序開始執行之前,不是全部裝入頁面,而是裝入一個或者零個頁面,之後根據程序執行的需要,動態裝入其他頁面;當記憶體已滿,而又需要裝入 新的頁面時,則根據某種演算法淘

作業系統儲存管理

今天我們來看一下作業系統的儲存管理。 目的 儲存器是計算機結構中必不可少的一部分,每個使用者程式都需要向作業系統申請儲存資源,那麼作業系統在儲存管理髮揮怎樣的作用呢? 主要有一下三點: 1、為使用者使用儲存空間提供方便。使用者只需要在自己的邏輯空間內

軟考-架構師-第二章-作業系統 第三節 儲存管理(讀書筆記)

主要針對希賽出版的架構師考試教程《系統架構設計師教程(第4版)》,作者“希賽教育軟考學院”。完成相關的讀書筆記以便後期自查,僅供個人學習使用,不得用於任何商業用途。 第三節 儲存管理 儲存器是計算機系統中最重要的資源之一。因為任何程式和資料以