1. 程式人生 > >4.2連續分配儲存管理方式

4.2連續分配儲存管理方式

1.單一連續分配:記憶體分為系統區和使用者區兩部分

  • 優點:易於管理。

2.固定分割槽分配:把記憶體分為一些大小相等或不等的分割槽,每個應用程序佔用一個分割槽。作業系統佔用其中一個分割槽。(劃分為幾個分割槽,便只允許幾道作業併發

   建立一記錄相關資訊的分割槽表(或分割槽連結串列)記錄劃分的分割槽

     表項有: | 起始位置 | 大小 | 狀態 |

缺點:

  • 內碎片(一個分割槽內的剩餘空間)造成浪費
  • 分割槽總數固定,限制併發執行的程式數目

3.動態分割槽分配:

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

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

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

4.分割槽分配演算法:

  • 首次適應演算法FF:以地址遞增的次序連結。

            檢索:分配記憶體時,從鏈首開始順序查詢直至找到一個大小能滿足要求的空閒分割槽;

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

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

  • 迴圈首次適應演算法 :空閒分割槽排序:按地址

            檢索:從上次找到的空閒分割槽的下一個空閒分割槽開始查詢,直到找到一個能滿足要求的空閒分割槽。

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

           缺點:缺乏大的空閒分割槽

  • 最佳適應演算法 :所有空閒分割槽按容量從小到大排序成空閒分割槽表或鏈。

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

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

  • 最差適應演算法 :基本不留下小空閒分割槽,但會出現缺乏較大的空閒分割槽的情況。
  • 快速適應演算法 (夥伴演算法):根據程序常用空間大小進行劃分,相同大小的串成一個鏈,需管理多個各種不同大小的分割槽的連結串列。程序需要時,從最接近大小需求的鏈中摘一個分割槽

5.分配記憶體

  • 找到滿足需要的合適分割槽,
    劃出程序需要的空間
  • if s<=size,將整個分割槽分配給請求者
  • if s> size,按請求的大小劃出一塊記憶體空間分配出去,餘下部分留在空閒鏈中,將分配區首址返回給呼叫者。

6.回收記憶體

  • 程序執行完畢釋放記憶體時,系統根據回收區首址a,在空閒分割槽鏈()中找到相應插入點,根據情況修改空閒分割槽資訊,可能會進行空閒分割槽的合併

7.動態重定位分割槽分配 :

緊湊功能的動態分割槽分配

8.記憶體空間管理之對換

把記憶體中暫時不能執行、或暫時不用的程式和資料調到外存上,以騰出足夠的記憶體;把已具備執行條件的程序和程序所需要的程式和資料,調入記憶體。

9.按對換單位分類:

整體對換(或程序對換):以整個程序為單位(連續分配)

頁面對換或分段對換:以頁或段為單位(離散分配)

10.對換空間的管理

相關推薦

4.2連續分配儲存管理方式

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

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

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

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

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

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

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

2.7 Linux儲存管理-物理頁面分配

程序需要的連續的頁面,通過alloc_pages來完成 該函式在mm/numa.c和mm/page_alloc.h中都有定義 NUMA和UMA分配記憶體的函式是不併存的,根據CONFIG_DISCONTIGMEM的勾選與否選擇其中一個

4.2.2分配儲存結構

 /* c4-2.h 串的堆分配儲存 */  typedef struct  {    char *ch; /* 若是非空串,則按串長分配儲存區,否則ch為NULL */    int length; /* 串長度 */  }HString;                

3.1.4.1 基本分頁儲存管理方式

非連續分配允許一個程式分散地裝入到不相鄰的記憶體分割槽中,根據分割槽的大小是否固定分為分頁儲存管理方式和分段儲存管理方式。 分頁儲存管理方式中,又根據執行作業時是否要把作業的所有頁面都裝入記憶體才能執行分為基本分頁儲存管理方式和請求分頁儲存管理方式。 1、基本分頁儲存管理方

分頁儲存管理方式介紹及例題

一、引入   在儲存器管理中連續分配方式會形成許多“碎片”,雖然可以通過“緊湊”方法將許多碎片拼接成可用的大塊空間,但須為之付出很大的開銷,如果一個程序能夠直接分散地裝入到許多不相鄰接的分割槽中,便可充分的利用空間,無需再進行緊湊。基於這一思想便產生了離散分配方式,根據在離散分配時所分配地址空間的基本單位不

段頁式儲存管理方式

基本分頁儲存管理方式 (1)頁面與頁表:頁面將一個程序的邏輯地址空間分成若干個大小相等的片,分頁地址中頁號和頁內地址的計算P=INT[A/L],d=[A] MOD L;頁表:系統為每個程序建立了一張頁面映像表簡稱頁表; (2)地址變換機構:實現從邏輯地址到實體地址的轉換  

第四章 分頁儲存管理方式

一,儲存管理的離散分配方式 基本分頁儲存管理 基本分段儲存管理 段頁式儲存管理 二,基本分頁儲存管理 離散分配記憶體: 作業規定大小劃分成小份;記憶體也按同樣大小劃分成小份 作業的任一小份可分散放入記憶體任意未使用的小份 1)頁面的概念 記憶體劃分成多個小單元,

2.9 linux儲存管理-頁面的換入

線性地址-->實體地址 若對映已經建立,但相應頁表|頁目錄的P(present)位為0,表示相應的物理頁面不再記憶體,從而無法訪問記憶體。 對於這種情況和未建立對映的情況,CPU的MMU硬體不對其進行區分,都進行“頁面異常”處理

2.6 Linux儲存管理-物理頁面的使用和週轉

說明一些概念: 虛擬頁面:指虛擬空間中,一段固定大小、邊界與頁面大小對齊的區間及其內容。 物理頁面:虛擬頁面對映到的介質上,可以在記憶體上( 記憶體頁面),也可以在磁碟上( 盤上頁面)。 頁面的換進換出指的是頁面內容

請求調頁儲存管理方式的模擬-python實現

1實驗目的 通過對頁面、頁表、地址轉換和頁面置換過程的模擬,加深對請求調頁系統的原理和實現過程的理解。 2實驗內容 (1)假設每個頁面中可存放10條指令,分配給一個作業的記憶體塊數為4。 (2)模擬一個作業的執行過程。該作業共有320條指令,即它的地址空間為32頁,目前它的所有頁都還未調入記憶

基本分段儲存管理方式

一、分段系統的基本原理 1、程式通過分段(segmentation)劃分為多個模組,每個段定義一組邏輯資訊。如程式碼段(主程式段main,子程式段X)、資料段D、棧段S等。 2、每段有自己的名字(一般用段號做名),都從0編址,可分別編寫和編譯。 3、裝入記憶體時

[chromium][browser][idea][closed]可獨立安裝的Android4.4.2 Browser + AwContent(SurfaceView方式 高效能模式)

由於soft canvas方式的效能問題,需要修改成Chromium_testshell的SurfaceView渲染模式後才能整體提升效能 思路: 1、把AwContent和chrome_shell編譯成一個so 2、AwContent中的渲染模式改為SurfaceView方式,同

儲存管理之分頁儲存管理方式C語言模擬(實驗五)

       分頁儲存管理方式,將程式劃分為若干個大小固定的區域(頁),也把實體記憶體劃分為大小和頁相等的塊,通過頁表完成頁到塊的對映。 分頁儲存管理之C語言模擬: #include <stdio.h> #include <string.h> #i

基本分頁儲存管理方式

連續分配儲存管理方式產生的問題 在分割槽儲存管理中,要求把程序放在一個連續的儲存區中,因而會產生許多碎片。 碎片問題的解決方法 (1)拼接/緊湊技術----代價較高。 (2)離散分配方式---允許將作業/程序離散放到多個不相鄰接的分割槽中,就可以避免拼接。 離散分配

基本分頁儲存管理方式中關於邏輯地址和實體地址的轉換

分析頁式儲存管理的地址結構是一維的,即邏輯地址(或實體地址)只用一個數值即可表示。若給定邏輯地址A,頁面的大小為L,則頁號p和頁內地址d可按照下式求得:   p=int [A/L]d=A mod L   其中,int是取整函式(取數值的整數部分),mod是取餘函式

作業系統——請求調頁儲存管理方式的各種模擬

1.設計目的 通過對頁面、頁表、地址轉換和頁面置換過程的模擬,加深對請求調頁系統的原理和實現過程的理解。 2.設計內容   1)假設每個頁面中可存放10條指令,分配給作業的記憶體塊數為4。   2)用c語言模擬一個作業的執行過程,該作業共有320條指令,即它的地址空間為32

【作業系統】請求分頁儲存管理方式

請求頁表機制 狀態位 P:指示該頁是否已調入記憶體。 供程式訪問時參考 訪問欄位 A:記錄本頁在一段時間內被訪問的次數或最近未被訪問的時間。 供選擇頁面換出時參考 修改位 M:表示該頁在調入記憶體後是否被修改過。若修改過,則置換該頁時需重寫該頁至外存。