儲存器管理

2022-04-28 16:09:03 字數 5321 閱讀 1868

4.1 儲存器的層次結構

4.1.1 儲存器的層次結構

1. 儲存器的層次結構

在現代計算機系統中,儲存器是資訊外理的**與歸宿,佔據重要位置。但是,在現有技術條件下,任何一種儲存裝置,都無法同時從速度與容量兩方面,滿足使用者的需求。實際上它們組成了乙個速度由快到慢,容量由小到大的儲存裝置層次。

2.各種儲存器

● 快取記憶體cache:

少量的、非常快速、昂貴、易變的

● 記憶體ram:

若干兆位元組、中等速度、中等**、易變的

● 磁碟:

數百兆或數千兆位元組、低速、價廉、不易變的

● 由作業系統協調這些儲存器的使用

4.1.2 儲存管理的目的

1)主存的分配和管理:當使用者需要記憶體時,系統為之分配相應的儲存空間;不需要時,及時**,以供其它使用者使用。

2)提高主儲存器的利用率:不僅能使多道程式動態地共享主存,提高主存利用率,最好還能共享主存中某個區域的資訊。

3)「擴充」主存容量:為使用者提供比主存物理空間大得多的位址空間,以至使使用者感覺他的作業是在這樣乙個大的儲存器中執行。

4)儲存保護:確保多道程式都在各自分配到儲存區域內操作,互不干擾,防止一道程式破壞其它作業或系統檔案的資訊。

4.1.3. 基本概念

1.定位(儲存分配):為具體的程式和資料等分配儲存單元或儲存區工作。

2.對映:把邏輯位址轉換為相應的實體地址的過程。

3.隔離:按訪問許可權把合法區與非法區分隔,實現儲存保護。

4.名空間

● 程式設計師在程式中定義的識別符號

● 程式符號集合

● 由程式設計師自定義

● 沒有位址的概念

位址空間及儲存空間

5.位址空間

● 程式用來訪問資訊所用位址單元的集合

● 邏輯(相對)位址的集合

● 由編譯程式生成

6.儲存空間

● 主存中物理單元的集合

● 物理(絕對)位址的集合

● 由裝配程式等生成

7.邏輯位址與實體地址

● 邏輯位址(相對位址,虛位址) :

使用者的程式經過彙編或編譯後形成目標**,目標**通常採用相對位址的形式,其首位址為0,其餘指令中的位址都相對於首位址而編址。

不能用邏輯位址在記憶體中讀取資訊

● 實體地址(絕對位址,實位址)

記憶體中儲存單元的位址,可直接定址

8.儲存共享

● 記憶體共享:兩個或多個程序共用記憶體中相同區域

● 目的:節省記憶體空間,提高記憶體利用率

● 實現程序通訊(資料共享)

● 共享內容:

**共享,要求**為純**

資料共享

9.儲存保護與安全

保護目的:

為多個程式共享記憶體提供保障,使在記憶體中的各道程式, 只能訪問它自己的區域,避免各道程式間相互幹攏,特別是當一道程式發生錯誤時, 不致於影響其他程式的執行。通常由硬體完成保護功能,由軟體輔助實現。(特權指令不能完成儲存保護。

)1) 儲存保護

● 保護系統程式區不被使用者侵犯有意或無意的)

● 不允許使用者程式讀寫不屬於自己位址空間的資料

(系統區位址空間,其他使用者程式的位址空間)

2) 保護過程---防止位址越界

每個程序都有自己獨立的程序空間,如果乙個程序在執行時所產生的位址在其位址空間之外,則發生位址越界。即當程式要訪問某個記憶體單元時,由硬體檢查是否允許,如果允許則執行,否則產生位址越界中斷,由作業系統進行相應處理。

10.記憶體「擴充」

通過虛擬儲存技術實現

● 使用者在編制程式時,不應該受記憶體容量限制,所以要採用一定技術來「擴充」記憶體的容量,使使用者得到比實際記憶體容量大的多的記憶體空間

● 具體實現是在硬體支援下,軟硬體相互協作,將記憶體和外存結合起來統一使用。通過這種方法把記憶體擴充,使使用者在編制程式時不受記憶體限制

4.2 程式的裝入和鏈結

1. 絕對裝入方式

程式中所使用的絕對位址,可在編譯或彙編時給出, 也可由程式設計師直接賦予。 但在由程式設計師直接給出絕對位址時, 不僅要求程式設計師熟悉記憶體的使用情況,而且一旦程式或資料被修改後,可能要改變程式中的所有位址。因此,通常是寧可在程式中採用符號位址,然後在編譯或彙編時,再將這些符號位址轉換為絕對位址。

2. 可重定位裝入方式

3. 動態執行時裝入方式

動態執行時的裝入程式,在把裝入模組裝入記憶體後,並不立即把裝入模組中的相對位址轉換為絕對位址,而是把這種位址轉換推遲到程式真正要執行時才進行。因此, 裝入記憶體後的所有位址都仍是相對位址。

4.2.2 程式的鏈結

1.靜態鏈結方式

2. 裝入時動態鏈結

編譯後得到的目標模組,在裝入記憶體時,邊裝入邊鏈結。

優點: 便於修改和更新。 (2) 便於實現對目標模組的共享。

3. 執行時動態鏈結

這種鏈結方式是將對某些模組的鏈結推遲到執行時才執行,即,在執行過程中,當發現乙個被呼叫模組尚未裝入記憶體時,立即由os去找到該模組並將之裝入記憶體, 把它鏈結到呼叫者模組上。凡在執行過程中未被用到的目標模組,都不會被調入記憶體和被鏈結到裝入模組上,這樣不僅可加快程式的裝入過程,而且可節省大量的記憶體空間。

4.2.3 重定位

把作業位址空間中使用的邏輯位址變換成記憶體空間中的實體地址的過程。又稱位址對映。如下圖,作業i經過重定位,把位址集合對映到以1000為始址的記憶體中,作為作業i的儲存空間。

1. 重定位的型別

1)靜態重定位:當使用者程式被裝入記憶體時,一次性實現邏輯位址到實體地址的轉換,以後不再轉換(一般在裝入記憶體時由軟體完成)作業i在執行前一次變址,直到該作業完成退出記憶體為止。

2)動態重定位:在程式執行過程中要訪問資料時再進行位址變換。由位址變換機構進行的位址變換,硬體上需要重定位暫存器的支援。

2.動態重定位的實現方式

● 重定位暫存器:在執行一條指令取運算元時,要將指令給出的有效位址(500)與重定位暫存器中的內容(1000)相加,得訪問位址(1500),從而實現了位址動態修改。

● 映象方式:採用頁表來描述虛、實頁面的對應關係 。

4.3 連續分配儲存管理 (為乙個使用者程式分配乙個連續的記憶體空間)

4.3.1 單使用者連續分配

● 在單道環境下,不管是單使用者系統還是單道批處理系統,程序(作業)執行時除了系統占用一部分主存外,剩下的主存區域全部歸它占用。主存可以劃分為三部分:系統區、使用者區、空閒區。

使用者占用區是乙個連續的儲存區所以又稱單一連續儲存管理。

● 單使用者系統在一段時間內,只有乙個程序在記憶體,故記憶體分配管理十分簡單,記憶體利用率低。

工作流程

單一連續區分配採用靜態分配和靜態重定位方式,亦即作業或程序一旦進入主存,就一直等到它執行結束後才能釋放主存。 如下圖所示的主存分配與**法。

單使用者系統缺點

● 不支援多道程式。

● 主存利用率不高。

● 程式的執行受主存容量限制。

4.3.2 固定分割槽分配

分割槽式管理是滿足多道程式的最簡單的儲存管理方案。它的基本思想是將記憶體劃分成若干個連續區域,稱為分割槽。每個分割槽只能儲存乙個程式,而且程式也只能在它所駐留的分割槽中執行。

1. 固定分割槽

● 預先把可分配的主儲存器空間分割成若干個連續區域,稱為乙個分割槽。每個分割槽的大小可以相同也可以不同,如圖所示。但分割槽大小固定不變,每個分割槽裝乙個且只能裝乙個作業

● 儲存分配:如果有乙個滿足大小的空閒區, 則分配給程序

2.記憶體分配管理

通過設定固定分割槽使用表,記憶體分配簡單

缺點:記憶體利用率不高

4.3.2 可變分割槽分配

● 基本思想:記憶體不是預先劃分好的,而是當作業裝入時,根據作業的需求和記憶體空間的使用情況來決定是否分配。若有足夠的空間,則按需要分割一部分分割槽給該程序;否則令其等待主存空間。

1. 分割槽分配中的資料結構

(1) 分割槽分配表

(2) 空閒分割槽表(或空閒分割槽鏈)

空閒分割槽鏈

● 為了實現動態分配,系統設立空閒分割槽鍊錶:每個空閒塊的前後兩個單元,放置必要的說明資訊和指標。系統只要設立乙個鏈首指標,指向第乙個空閒塊即可。

分配程式可以依照自由塊鍊錶,來查詢適合的空閒塊進行分配。(如下圖)

2. 分割槽分配操作

1) 分配記憶體

2) **記憶體

3.分割槽分配演算法

按空閒塊鏈結的方式不同,有以下四種演算法:

● 最佳適應法

● 最壞適應法

● 首次適應法

● 下次適應法(迴圈首次適應法)

1)最佳適應演算法

● 接到記憶體申請時,在空閒塊表中找到乙個不小於請求的最小空塊進行分配

● 為作業選擇分割槽時總是尋找其大小最接近於作業所要求的儲存區域。

● 特點:用最小空間滿足要求

2)最壞適應演算法

● 接到記憶體申請時,在空閒塊表中找到乙個不小於請求的最大空塊進行分配,與最佳適應法相反,它在作業選擇儲存塊時,總是尋找最大的空白區。

● 特點:當分割後空閒塊仍為較大空塊

3)首次適應法:

為作業選擇分割槽時總是按位址從高到低搜尋,只要找到可以容納該作業的空白塊,就把該空白塊分配給該作業。

4)下次適應法

類似首次適應法每次分割槽時,總是從上次查詢結束的地方開始,找到乙個足夠大的空白區分配。

4.分割槽式儲存管理的優缺點

優點: 便於動態申請記憶體

便於共享記憶體

便於動態鏈結

缺點: 碎片問題(外碎片),記憶體利用率不高,受實際記憶體容量限制

4.3.3 可重定位分割槽分配

1. 碎片問題

● 經過一段時間的分配**後,記憶體中存在很多很小的空閒塊。它們每乙個都很小,不足以滿足分配要求;但其總和滿足分配要求。這些空閒塊被稱為碎片

● 造成儲存資源的浪費

碎片問題的解決

● 緊湊技術:通過在記憶體移動程式,將所有小的空閒區域合併為大的空閒區域

(緊縮技術,緊緻技術,浮動技術,搬家技術)

● 問題:開銷大;移動時機

2.動態重定位的引入

3. 動態重定位分割槽分配演算法

4.可重定位分割槽的優缺點

● 優點:解決了可變分割槽分配所引入的「外零頭」問題。消除記憶體碎片,提高記憶體利用率。

● 缺點:提高硬體成本,緊湊時花費cpu時間。

5.多重分割槽

以上討論都是基於乙個作業在主存中佔據的是乙個連續分割槽的假定。為了支援結構化程式設計,作業系統往往把一道作業分成若干片段如子程式、主程式、資料組等)。這樣,片段之間就不需要連續了。

只要增加一些重定位暫存器,就可以有效地控制一道作業片段之間的呼叫。

如下圖所示,作業a、b分別被分成兩個片段放進互不相連的儲存區域中。由兩個變址暫存器實現控制。

6.分割槽的保護

為了防止一首作業有意或無意地破壞作業系統或其它作業。一般說來,沒有硬體支援,實現有效的儲存保護是困難的。通常採取:

● 界限暫存器方式

虛擬儲存器管理

淮海工學院計算機工程學院 實驗報告書 課程名 作業系統原理 題目 虛擬儲存器管理 班級學號 姓名一 實驗目的 請求頁式虛存管理是常用的虛擬儲存管理方案之一。通過請求頁式虛存管理中對頁面置換演算法的模擬,有助於理解虛擬儲存技術的特點,並加深對請求頁式虛存管理的頁面排程演算法的理解。實驗環境 turbo...

儲存器管理實驗

實驗名稱 儲存器管理實驗 儀器 裝置 計算機 參考資料 作業系統實驗指導書 實驗目的 設計乙個請求頁式儲存管理方案,並編寫模擬程式實現。實驗內容 編寫程式用來模擬虛擬頁式儲存管理中的頁面置換要求 1.快表頁面固定為4塊 2.從鍵盤輸入n個頁面號 3.輸出每次物理塊中的頁面號和缺頁次數,缺頁率 實驗原...

第15講儲存器管理之虛擬儲存器

系統須設定相應的硬體支援和軟體 1 硬體支援 請求分頁的頁表機制 缺頁中斷機構和位址變換機構。2 軟體 請求調頁功能和頁置換功能的軟體。2.2 分段請求系統 在分段系統的基礎上,增加了請求調段功能及分段置換功能,所形成的段式虛擬儲存器系統。它允許只裝入若干段的使用者程式和資料,便可啟動執行,以後再硬...