1. 程式人生 > >連續分配方式 --(單一連續/固定分割槽)

連續分配方式 --(單一連續/固定分割槽)

1、連續分配方式

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

連續分配方式進一步分為:單一連續分配固定分割槽分配動態分割槽分配以及動態重定位分割槽分配

2、單一連續分配

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

採用這種儲存管理方式時,可把記憶體分為系統區使用者區兩部分,系統區僅提供給OS使用,通常是放在記憶體的低址部分;

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

在早期的單使用者、單任務作業系統中,有不少都配置了儲存器保護機構,用於防止使用者程式對作業系統的破壞。但在近年來常見的單使用者作業系統中,

都未採取儲存器保護措施。一方面可以節省硬體,另一方面因為這是可行的。

在單使用者環境下,機器由一使用者獨佔,不可能存在其他使用者干擾的問題,這時可能出現的破壞行為也只是使用者程式自己去破壞作業系統,其後果並不

嚴重,只是會影響該使用者程式的執行,且作業系統也很容易通過系統的再次啟動而重新裝入記憶體。

3、固定分割槽分配

---- 固定分割槽分配是最簡單的一種可執行多道程式的儲存管理方式。這是將記憶體使用者空間劃分為若干個固定大小(不是相等大小)的區域,在每個分割槽

中只裝入一道作業,這樣,把使用者空間劃分為幾個分割槽,便允許有幾道作業併發執行。

---- 當有一空閒分割槽時,便可以再從外存後備作業佇列選擇一個適當大小的作業裝入該分割槽,當該作業結束時,又可再從後備作業佇列中找出另一

作業調入該分割槽。

1)劃分分割槽的方法

可用下述兩種方法將記憶體的使用者空間劃分為若干個固定大小的分割槽:

---- 分割槽大小相等,即所有的記憶體分割槽大小相等。

缺點是缺乏靈活性,即當程式太小時,會造成記憶體空間的浪費;當程式太大時,一個分割槽又不足以裝入該程式,致使該程式無法執行。

儘管如此,這種劃分方式仍被用於利用一臺計算機去控制多個相同物件的場合,因為這些物件所需的記憶體空間是大小相等的。

例如,爐溫群控系統,就是利用一臺計算機去控制多臺相同的冶煉爐。

---- 分割槽大小不等。為了克服分割槽大小相等而缺乏靈活性的這個缺點,可把記憶體區劃分成含有多個較小的分割槽、適量的中等分割槽及少量的大

分割槽。

這樣,便可根據程式的大小為之分配適當的分割槽。

2)記憶體分配

為了便於記憶體分配,通常將分割槽按大小進行排隊,併為之建立一張分割槽使用表,其中各表項包括每個分割槽的起始地址大小狀態(是否已分配)。

當有一使用者程式要裝入時,由記憶體分配程式檢索該表,從中找出一個能滿足要求的、尚未分配的分割槽,將之分配給該程式,然後將該表項中的狀態

置為“已分配”。若未找到大小足夠的分割槽,則拒絕為該使用者程式分配記憶體。由於每個分割槽的大小固定,必然會造成儲存空間的浪費。

下圖是固定分割槽分配示例的分割槽分配表:

 

如上圖所示,有四個固定分割槽,分割槽大小分別是20KB,40KB,100KB,200KB,起始地址分別是100KB,120KB,160KB,260KB。

假設現在有3個作業,作業A(18KB),作業B(37KB),作業C(200KB),根據作業的大小為其選擇合適的分割槽。

---- 作業A是18KB,可以選擇分割槽1是20KB,會產生2KB的內部碎片;(已分配)

---- 作業B是37KB,可以選擇分割槽2是40KB,會產生3KB的內部碎片;(已分配)

---- 作業C是200KB,選擇分割槽4是200KB,無碎片產生。(已分配)

三個作業已分配完畢,留下的分割槽3仍為空閒分割槽,沒有分配。(未分配)

每個分割槽都對應上、下界兩個暫存器用於記憶體越界保護,CPU訪問每個儲存器地址時應滿足:

---- 訪問地址大於等於下界暫存器的內容,小於等於上界暫存器的內容,否則會產生地址越界錯誤,終止作業的執行。

以上三個作業的記憶體分配情況如下:

---- 固定分割槽分配的優缺點如下:

優點:可用於多道程式系統最簡單的儲存分配,無外部碎片。

缺點:不能實現多程序共享一個主存區,所以儲存空間利用率低,有內部碎片。

相關推薦

連續分配方式 --單一連續/固定分割槽

1、連續分配方式 連續分配方式:為一個使用者程式分配一個連續的記憶體空間。 連續分配方式進一步分為:單一連續分配、固定分割槽分配、動態分割槽分配以及動態重定位分割槽分配。 2、單一連續分配 最簡單的一種儲存管理方式,但只能用於單使用者、單任務的作業系統中。 採用這種儲存管理

連續分配方式單一連續/固定分割槽分配

1、連續分配方式 連續分配方式:為一個使用者程式分配一個連續的記憶體空間。 連續分配方式進一步分為:單一連續分配、固定分割槽分配、動態分割槽分配以及動態重定位分割槽分配。 2、單一連續分配 最簡單的一種儲存管理方式,但只能用於單使用者、單任務的作業系統中。 採用這種儲存管理

連續分配方式 -- 動態分割槽分配

連續分配方式,是指為一個使用者程式分配一個連續的記憶體空間。 -------  動態分割槽分配:又稱為可變分割槽分配,是根據程序的實際需要動態地為之分配記憶體空間,使分割槽的大小剛好與作業的大小相等。 動態分割槽分配並不預先將記憶體劃分成一塊塊的分割槽,而是在作業進入記憶體

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

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

記憶體連續分配方式採用的幾種演算法及各自優劣。

連續分配方式,是指為一個使用者程式分配一個連續的記憶體空間。它主要包括單一連續分配、固定分割槽分配和動態分割槽分配。 單一連續分配 記憶體在此方式下分為系統區和使用者區,系統區僅提供給作業系統使用,通常在低地址部分;使用者區是為使用者提供的、除系統區之外的記憶體空間。這

洛谷P1147 連續自然數和方法1 暴力列舉

題目描述 對一個給定的自然數 M,求出所有的連續的自然數段,這些連續的自然數段中的全部數之和為 M 。 例子: 1998+1999+2000+2001+2002 = 100001998+1999+2000+2001+2002=10000 ,所以從 1998199

Android中不同方向嵌套滑動的解決方式ListView為樣例

!= anim button wpa ktr text boolean adapter repeat 前言: 就像手機QQ的聊天消息列表。一個縱向滑動的ListView列舉全部消息,但每一條消息能夠橫向滑動。 而默認情況下,僅僅能有一個地方消化處理觸摸事件,要麽Lis

垃圾收集器與內存分配策略 深入理解JVM二

nali noclass eth 清理 full gc 原因 商業 jit編譯器 代碼 1.概述 垃圾收集(Garbage Collection,GC). 當需要排查各種內存溢出、內存泄露問題時,當垃圾收集成為系統達到更高並發量的瓶頸時,我們就需要對這些&ldquo

jqueryValidator自定義校驗規則的一種方式不覆蓋源碼

|| util isdigit tgt car col bug 特殊字符 new 1.封裝自定義驗證方法-validate-methods.js /**************************************************************

Oracle Grid Infrastructure SCAN單一客戶訪問名稱

代理 公網 選擇 實例 有一個 服務 準備 本地 並且 SCAN的主要作用是簡化客戶端連接數據庫的配置,無論集群增加還是刪除節點SCAN名稱會一直保持不變,客戶端不需要做任何的修改。SCAN是一個名稱,通過DNS被解析成最多3個IP地址(SCAN VIP)SCAN VIP必

oracle 11g 分割槽表建立自動按年分割槽

前言:工作中有一張表一年會增長100多萬的資料,量雖然不大,可是表字段多,所以一年下來也會達到 1G,而且只增不改,故考慮使用分割槽表來提高查詢效能,提高維護性。   oracle 11g 支援自動分割槽,不過得在建立表時就設定好分割槽。   如果已經存在的表需要改分割槽表,就需要將當前表 re

Map集合遍歷的方式以HashMap為例

color reac pri 循環 next code 方式 new 利用 環境:jdk1.8 HashMap的遍歷方式有多種,下面將會一一列出。 首先我們先在HashMap中添加幾個鍵值對。 HashMap<Integer, String> map = ne

XML解析——Java中XML的四種解析方式轉載 by 龍清揚

很大的 throws 獲得 input 大名 tst tag ttr 技術 XML是一種通用的數據交換格式,它的平臺無關性、語言無關性、系統無關性、給數據集成與交互帶來了極大的方便。XML在不同的語言環境中解析方式都是一樣的,只不過實現的語法不同而已。

CSS實現水平垂直居中的10種方式史上最全

劃重點,這是一道面試必考題,很多面試官都喜歡問這個問題,我就被問過好幾次了 要實現上圖的效果看似很簡單,實則暗藏玄機,本文總結了一下CSS實現水平垂直居中的方式大概有下面這些,本文將逐一介紹一下,我將本文整理成了一個github倉庫,歡迎大家star 僅居中元素定

百度網盤不限速 目前最靠譜的下載方式親測完美使用2018.12月更新

眾所周知,百度網盤的檔案已經對非會員進行了各種限速。不過由於國內其他網盤基本都殘廢了,百度網盤作為僅存的少數幾個,需求還是很大的,經常會碰到別人分享的百度網盤資料夾。今天介紹的這種方法就是通過 這款軟體)進行不限速下載。這種方法是目前僅存下來的高速下載網盤資源的方式。 連結:https:

CSS實現水平垂直居中的1010種方式史上最全

劃重點,這是一道面試必考題,很多面試官都喜歡問這個問題,我就被問過好幾次了 要實現上圖的效果看似很簡單,實則暗藏玄機,本文總結了一下CSS實現水平垂直居中的方式大概有下面這些,本文將逐一介紹一下,我將本文整理成了一個github倉庫,歡迎大家star 僅居中元素定寬高

超詳細的安卓ndk編譯的兩種方式ndk-build和cmake

一、概述         搞安卓的工作中難免需要使用native的方法,高效,安全。。。優點就不說了。以前使用到native方法的時候,都是臨時抓起來一種方式就用了,也沒詳細整理兩種方式的差別和詳細的使用方式,雖然不復雜,但是中間還是有很多小細節需要注意的。雖然ndk-bu

Vue.js學習筆記——請求資料的幾種方式v-resource,axios

一、 v-resource 1. 在搭建好腳手架之後,安裝v-resource ——npm/cnpm install v-resource --save 2. 在main.js中進行註冊               import VueResource from 'vu

zabbix設定郵件告警的兩種方式內部mail和指令碼

說明: Zabbix監控服務端、客戶端都已經部署完成,被監控主機已經新增,Zabiix監控執行正常。 實現目的: 在Zabbix服務端設定郵件報警,當被監控主機宕機或者達到觸發器預設值時,會自動傳送報警郵件到指定郵箱。 具體操作: 以下操作在Zabbix監控服務

python建立子程序的幾種常用方式fork, Process,程序池

linux下使用fork()建立子程序 Linux 作業系統提供了一個 fork() 函式用來建立子程序,這個函式很特殊,呼叫一次,返回兩次,因為作業系統是將當前的程序(父程序)複製了一份(子程序),然後分別在父程序和子程序內返回。子程序永遠返回0,而父程