1. 程式人生 > >第4章 儲存器管理 連續分配儲存管理方式

第4章 儲存器管理 連續分配儲存管理方式

一,連續分配儲存管理方式

1,連續分配方式

為一個使用者程式分配一個連續的記憶體空間

(1)單一連續分配

記憶體分為系統區和使用者區兩部分:

系統區:僅提供給OS使用,通常放在記憶體低址部分

使用者區:除系統區以外的全部記憶體空間,提供給使用者使用。

最簡單的一種儲存管理方式,只能用於單使用者、單任務的作業系統中。

優點:易於管理。 缺點:對要求記憶體空間少的程式,造成記憶體浪費;程式全部裝入,很少使用的程式部分也佔用記憶體。

(2)固定分割槽分配

把記憶體分為一些大小相等或不等的分割槽(partition),每個應用程序佔用一個分割槽。作業系統佔用其中一個分割槽。

提高:

支援多個程式併發執行,適用於多道程式系統和分時系統。最早的多道程式儲存管理方式。

1)如何劃分分割槽大小

分割槽大小相等:只適合於多個相同程式的併發執行(處理多個型別相同的物件)。缺乏靈活性。

分割槽大小不等:多個小分割槽、適量的中等分割槽、少量的大分割槽。根據程式的大小,分配當前空閒的、適當大小的分割槽。

2)需要的資料結構

建立一記錄相關資訊的分割槽表(或分割槽連結串列),表項有: | 起始位置 | 大小 | 狀態 |

分割槽表中,表項值隨著記憶體的分配和釋放而動態改變

3)固定分配的不足:

內碎片(一個分割槽內的剩餘空間)造成浪費

分割槽總數固定,限制併發執行的程式數目

(3)動態分割槽分配

分割槽的大小不固定:在裝入程式時根據程序實際需要,動態分配記憶體空間,即——需要多少劃分多少。 、

空閒分割槽表項:從1項到n項:記憶體會從初始的一個大分割槽不斷被劃分、回收從而形成記憶體中的多個分割槽。

優點:併發程序數沒有固定數的限制,不產生內碎片。

缺點:有外碎片(分割槽間無法利用的空間)

具體實現:

①資料結構

空閒分割槽表: 記錄每個空閒分割槽的情況。 每個空閒分割槽對應一個表目,包括分割槽序號、分割槽始址及分割槽的大小等資料項。

空閒分割槽鏈: 每個分割槽的起始部分,設定用於控制分割槽分配的資訊,及用於連結各分割槽的前向指標; 分割槽尾部則設定一後向指標,在分割槽末尾重複設定狀態位和分割槽大小表目方便檢索。

②分割槽分配演算法

動態分割槽方式,分割槽多、大小差異各不相同,此時把一個新作業裝入記憶體,更需選擇一個合適的分配演算法,從空閒分割槽表/鏈中選出一合適分割槽

首次適應演算法FF(first-fit):

空閒分割槽排序:以地址遞增的次序連結。

檢索:分配記憶體時,從鏈首開始順序查詢直至找到一個大小能滿足要求的空閒分割槽; 分配:從該分割槽中劃出一塊作業要求大小的記憶體空間分配給請求者,餘下的空閒分割槽大小改變仍留在空閒鏈中。 若從頭到尾檢索不到滿足要求的分割槽則分配失敗

優點:優先利用記憶體低址部分,保留了高地址部分的大空閒區;

缺點:但低址部分不斷劃分,會產生較多小碎片;而且每次查詢從低址部分開始,會逐漸增加查詢開銷。

迴圈首次適應演算法 (next-fit)

空閒分割槽排序:按地址

檢索:從上次找到的空閒分割槽的下一個空閒分割槽開始查詢,直到找到一個能滿足要求的空閒分割槽。為實現演算法,需要: 設定一個起始查尋指標 採用迴圈查詢方式

分配:分出需要的大小

優點:空閒分割槽分佈均勻,減少查詢開銷    缺點:缺乏大的空閒分割槽

最佳適應演算法 (best-fit)

總是把能滿足要求、又是最小的空閒分割槽分配給作業,避免“大材小用”。

空閒分割槽排序:所有空閒分割槽按容量從小到大排序成空閒分割槽表或鏈。

檢索:從表或鏈的頭開始,找到的第一個滿足的就分配

分配:分出需要的大小  

缺點:每次找到最合適大小的分割槽割下的空閒區也總是最小,會產生許多難以利用的小空閒區(外碎片)

最差適應演算法/最壞匹配法(worst-fit):

基本不留下小空閒分割槽,但會出現缺乏較大的空閒分割槽的情況。

快速適應演算法

根據程序常用空間大小進行劃分,相同大小的串成一個鏈,需管理多個各種不同大小的分割槽的連結串列。程序需要時,從最接近大小需求的鏈中摘一個分割槽。類似的:夥伴演算法

能快速找到合適分割槽,但連結串列資訊會很多;實際上是空間換時間。

相關推薦

4 儲存器管理 連續分配儲存管理方式

一,連續分配儲存管理方式 1,連續分配方式 為一個使用者程式分配一個連續的記憶體空間 (1)單一連續分配 記憶體分為系統區和使用者區兩部分: 系統區:僅提供給OS使用,通常放在記憶體低址部分 使用者區:除系統區以外的全部記憶體空間,提供給使用者使用。 最簡單的一種儲存管

4 儲存器管理 連續分配儲存管理方式

一,連續分配儲存管理方式 1,連續分配方式 為一個使用者程式分配一個連續的記憶體空間 (1)單一連續分配 記憶體分為系統區和使用者區兩部分: 系統區:僅提供給OS使用,通常放在記憶體低址部分 使用者區:除系統區以外的全部記憶體空間,提供給使用者使用。 最簡單的

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

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

4 儲存器管理

      分頁和分段的主要區別  ★ ★ ★ 1.需求:分頁是出於系統管理的需要,是一種資訊的物理劃分單位,分段是出於使用者應用的需要,是一種邏輯單位,通常包含一組意義相對完整的資訊。  

4.2連續分配儲存管理方式

1.單一連續分配:記憶體分為系統區和使用者區兩部分 優點:易於管理。 2.固定分割槽分配:把記憶體分為一些大小相等或不等的分割槽,每個應用程序佔用一個分割槽。作業系統佔用其中一個分割槽。(劃分為幾個分割槽,便只允許幾道作業併發)    建立一記錄相關資訊的分割槽表(或分割

作業系統4 儲存器管理

2、連續分配方式 為一個使用者程式分配一個連續的記憶體空間 (1)單一連續分配 記憶體分為系統區和使用者區兩部分: 系統區:僅提供給OS使用,通常放在記憶體低址部分 使用者區:除系統區以外的全部記憶體空間,提供給使用者使用。 最簡單的一種儲存管理方式,只能用於單

作業系統 2 儲存器管理 連續分配方式

1)單一連續分配: 記憶體分為系統區和使用者區兩部分 2)固定分割槽分配: 把記憶體分為一些大小相等或不等的分割槽,每個應用程序佔用一個分割槽。作業系統佔用其中一個分割槽。(劃分為幾個分割槽,便只允許幾道作業併發)    建立一記錄相關資訊的分割槽表(或分割槽連結

【Linux學習筆記】4 Linux磁盤管理

linux centos 磁盤 格式化 LVM 4.1df命令df 查看文件系統磁盤空間使用情況。文件系統 磁盤總大小(kB) 已使用 可用 已用% 掛載點(目錄)Linux磁盤不能直接訪問,必須要有一個掛載點。參數:-h 可根據磁盤大小顯示適當的單位。帶有tmpfs代表臨時的

RTthread學習筆記————4 執行緒管理

什麼是執行緒 執行緒,有時被稱為輕量級程序(Lightweight Process,LWP),是程式執行流的最小單元。一個標準的執行緒由執行緒ID,當前指令指標(PC),暫存器集合和堆疊組成。 RT-Thread 的執行緒排程器是搶佔式的,主要的工作

儲存器管理 程式的裝入和連結

一,程式的裝入和連結 1,程式進記憶體的一般過程: 1)編譯compiler:編譯程式:將使用者原始碼編譯成若干個目標模組。 2)連結link:連結程式:將形成的一組目標模組,及它們需要的庫函式連結在一起,形成一個完整的裝入模組。 3)   裝入load:由裝入程

作業系統--儲存器管理_1

程式進記憶體的一般過程: 編譯compiler:編譯程式:將使用者原始碼編譯成若干個目標模組。 連結link:連結程式:將形成的一組目標模組,及它們需要的庫函式連結在一起,形成一個完整的裝入模組。 裝入load:由裝入程式將裝入模組裝入記憶體,構造PCB,形成程序,開始執行(使用實體地址)。

作業系統--儲存器管理_2

儲存管理的離散分配方式 基本分頁儲存管理方式 離散分配記憶體: 作業按規定大小劃分成小份;記憶體也按同樣大小劃分成小份 作業的任一小份可分散放入記憶體任意未使用的小份 分頁的目的:更細粒度的處理空間,減少粗放管理的浪費或開銷問題。 "頁"的概念:記憶體劃分成多個小單元,每個單元K

儲存器管理

儲存部件的層次 1.CPU暫存器 2.快取記憶體 3.主存 4.磁碟快取 5.磁碟 6.可移動儲存介質   儲存器管理 1.儲存器資源的分配和回收 2.地址變換 3.儲存共享和保護 4.虛擬儲存的排程演算法   程式進記憶體

儲存器管理

1.程式的裝入和連結 程式進記憶體的一般過程: 編譯compiler:編譯程式:將使用者原始碼編譯成若干個目標模組。 連結link:連結程式:將形成的一組目標模組,及它們需要的庫函式連結在一起,形成一個完整的裝入模組。 裝入load:由裝入程式將裝入模組裝入記憶體,構造PCB,形成程序,開始

儲存器管理(2)

** 基本分頁儲存管理 ** 1.頁面的概念 記憶體劃分成多個小單元,每個單元K大小,稱(物理)塊。 作業也按K單位大小劃分成片,稱為頁面。 ①物理劃分塊的大小 = 邏輯劃分的頁的大小 ②頁面大小要適中 太大,(最後一頁)內碎片增大,類似連續分配的問題。 太小的話,頁面碎片總空間

儲存器管理(1)

儲存部件層 ** 程式的裝入和連結 ** 程式進記憶體的一般過程: 1)編譯compiler:編譯程式:將使用者原始碼編譯成若干個目標模組。 2)連結link:連結程式:將形成的一組目標模組,及它們需要的庫函式連結在一起,形成一個完整的裝入模組。 3)裝入load:由裝入程

儲存器管理2

4-4分頁儲存管理方式 分頁目的:更細粒度的處理空間,減少粗放管理的浪費或開銷問題。 記憶體劃分成多個小單元,每個單元K大小,稱(物理)塊。作業也按K單位大小劃分成片,稱為頁面。 物理劃分塊的大小 = 邏輯劃分的頁的大小。 為了找到被離散分配到記憶體中的作業,記錄每個作業各頁對映到哪個物理塊

儲存器管理 + 分頁 + 分段

主存:儲存程序執行時的程式和資料 暫存器:速度最快,價格昂貴容量不大,一般以字為單位,只要存放指令一次操作的資料就夠了 。 快取記憶體:總之:速度快、存放部分記憶體資料、硬體自動處理 磁碟快取:記憶體的一部分,將頻繁使用的一部分磁碟資料資訊預讀入在磁碟快取,減少磁碟

儲存器管理(二)

4.5 分頁儲存管理方式 1.連續分配方式:一個程序連續的裝進記憶體一個大小合適的區。->“碎片”->“緊湊”->增大開銷 2.如果允許一個程序直接分散裝入多個不相鄰分割槽中,則無需“緊湊”->產生儲存管理的離散分配方式。 3.離散分配三種方式:

儲存器管理(一)

4.1 儲存器的層次結構 1.計算機的儲存層次:最高層為CPU暫存器,中間為主存,最底層是輔存。 2.根據功能劃分:暫存器、快取記憶體、主儲存器、磁碟快取、固定磁碟、可移動儲存介質等6層。 暫存器、快取記憶體、主儲存器和磁碟快取均屬於作業系統儲存管理的管轄範疇,掉電後儲存的資訊不