操作系統(tǒng)第四章【2】內(nèi)存空間管理---連續(xù)

(1)單一連續(xù)分配

? 內(nèi)存分為系統(tǒng)區(qū)和用戶區(qū)兩部分:

系統(tǒng)區(qū):僅提供給OS使用,通常放在內(nèi)存低址部分

用戶區(qū):除系統(tǒng)區(qū)以外的全部內(nèi)存空間悬蔽,提供給用戶使用奕筐。

最簡單的一種存儲管理方式岛啸,只能用于單用戶泪酱、單任務(wù)的操作系統(tǒng)中派殷。

優(yōu)點:易于管理还最。

缺點:對要求內(nèi)存空間少的程序,造成內(nèi)存浪費毡惜;程序全部裝入憋活,很少使用的程序部分也占用內(nèi)存。

(2)固定分區(qū)分配

把內(nèi)存分為一些大小相等或不等的分區(qū)(partition)虱黄,每個應(yīng)用進程占用一個分區(qū)。操作系統(tǒng)占用其中一個分區(qū)吮成。

u提高:支持多個程序并發(fā)執(zhí)行橱乱,適用于多道程序系統(tǒng)和分時系統(tǒng)。最早的多道程序存儲管理方式粱甫。

劃分為幾個分區(qū)泳叠,便只允許幾道作業(yè)并發(fā)

? 1如何劃分分區(qū)大小:

n分區(qū)大小相等:只適合于多個相同程序的并發(fā)執(zhí)行(處理多個類型相同的對象)茶宵。缺乏靈活性危纫。

n分區(qū)大小不等:多個小分區(qū)、適量的中等分區(qū)乌庶、少量的大分區(qū)种蝶。根據(jù)程序的大小,分配當前空閑的瞒大、適當大小的分區(qū)螃征。

? 2需要的數(shù)據(jù)結(jié)構(gòu)

建立一記錄相關(guān)信息的分區(qū)表(或分區(qū)鏈表),表項有: 起始位置 大小? 狀態(tài)

分區(qū)表中透敌,表項值隨著內(nèi)存的分配和釋放而動態(tài)改變

3程序分配內(nèi)存的過程:

也可將分區(qū)表分為兩個表格:空閑分區(qū)表/占用分區(qū)表盯滚。從而減小每個表格長度。

檢索算法:空閑分區(qū)表可能按不同分配算法采用不同方式對表項排序(將分區(qū)按大小排隊或按分區(qū)地址高低排序)酗电。

過程:檢索空閑分區(qū)表魄藕;找出一個滿足要求且尚未分配的分區(qū),分配給請求程序撵术;若未找到大小足夠的分區(qū)背率,則拒絕為該用戶程序分配內(nèi)存。

固定分配的不足:

內(nèi)碎片(一個分區(qū)內(nèi)的剩余空間)造成浪費

分區(qū)總數(shù)固定荷荤,限制并發(fā)執(zhí)行的程序數(shù)目退渗。

(3)動態(tài)分區(qū)分配

分區(qū)的大小不固定:在裝入程序時根據(jù)進程實際需要,動態(tài)分配內(nèi)存空間蕴纳,即——需要多少劃分多少会油。

空閑分區(qū)表項:從1項到n項:

內(nèi)存會從初始的一個大分區(qū)不斷被劃分、回收從而形成內(nèi)存中的多個分區(qū)古毛。

動態(tài)分區(qū)分配

優(yōu)點:并發(fā)進程數(shù)沒有固定數(shù)的限制翻翩,不產(chǎn)生內(nèi)碎片都许。

缺點:有外碎片(分區(qū)間無法利用的空間)


1)數(shù)據(jù)結(jié)構(gòu)

①空閑分區(qū)表:

?記錄每個空閑分區(qū)的情況。

?每個空閑分區(qū)對應(yīng)一個表目嫂冻,包括分區(qū)序號胶征、分區(qū)始址及分區(qū)的大小等數(shù)據(jù)項。

②空閑分區(qū)鏈:

?每個分區(qū)的起始部分桨仿,設(shè)置用于控制分區(qū)分配的信息睛低,及用于鏈接各分區(qū)的前向指針;

?分區(qū)尾部則設(shè)置一后向指針服傍,在分區(qū)末尾重復設(shè)置狀態(tài)位和分區(qū)大小表目方便檢索钱雷。


2)分區(qū)分配算法

? 動態(tài)分區(qū)方式,分區(qū)多吹零、大小差異各不相同罩抗,此時把一個新作業(yè)裝入內(nèi)存,更需選擇一個合適的分配算法灿椅,從空閑分區(qū)表/鏈中選出一合適分區(qū)

①首次適應(yīng)算法FF

②循環(huán)首次適應(yīng)算法

③最佳適應(yīng)算法

④最差適應(yīng)算法

⑤快速適應(yīng)算法

①首次適應(yīng)算法FF(first-fit)

1.空閑分區(qū)排序:以地址遞增的次序鏈接套蒂。

2.檢索:分配內(nèi)存時,從鏈首開始順序查找直至找到一個大小能滿足要求的空閑分區(qū)茫蛹;

3.分配:從該分區(qū)中劃出一塊作業(yè)要求大小的內(nèi)存空間分配給請求者操刀,余下的空閑分區(qū)大小改變?nèi)粤粼诳臻e鏈中。

u若從頭到尾檢索不到滿足要求的分區(qū)則分配失敗

優(yōu)點:優(yōu)先利用內(nèi)存低址部分麻惶,保留了高地址部分的大空閑區(qū)馍刮;

缺點:但低址部分不斷劃分,會產(chǎn)生較多小碎片窃蹋;而且每次查找從低址部分開始卡啰,會逐漸增加查找開銷。

②循環(huán)首次適應(yīng)算法(next-fit)

1.空閑分區(qū)排序:按地址

2.檢索:從上次找到的空閑分區(qū)的下一個空閑分區(qū)開始查找警没,直到找到一個能滿足要求的空閑分區(qū)匈辱。為實現(xiàn)算法,需要:

?設(shè)置一個起始查尋指針

?采用循環(huán)查找方式

3.分配:分出需要的大小

優(yōu)點:空閑分區(qū)分布均勻杀迹,減少查找開銷

缺點:缺乏大的空閑分區(qū)

③最佳適應(yīng)算法 (best-fit)

? 總是把能滿足要求亡脸、又是最小的空閑分區(qū)分配給作業(yè),避免“大材小用”树酪。

1.空閑分區(qū)排序:所有空閑分區(qū)按容量從小到大排序成空閑分區(qū)表或鏈浅碾。

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

3.分配:分出需要的大小

? 缺點:每次找到最合適大小的分區(qū)割下的空閑區(qū)也總是最小续语,會產(chǎn)生許多難以利用的小空閑區(qū)(外碎片)

④最差適應(yīng)算法/最壞匹配法(worst-fit):基本不留下小空閑分區(qū)垂谢,但會出現(xiàn)缺乏較大的空閑分區(qū)的情況。

⑤快速適應(yīng)算法

n根據(jù)進程常用空間大小進行劃分疮茄,相同大小的串成一個鏈,需管理多個各種不同大小的分區(qū)的鏈表。進程需要時究孕,從最接近大小需求的鏈中摘一個分區(qū)。類似的:伙伴算法

n能快速找到合適分區(qū)蜘澜,但鏈表信息會很多;實際上是空間換時間。

3)分區(qū)分配操作

分配內(nèi)存

找到滿足需要的合適分區(qū),劃出進程需要的空間

s<=size淳地,將整個分區(qū)分配給請求者

s> size,按請求的大小劃出一塊內(nèi)存空間分配出去帅容,余下部分留在空閑鏈中薇芝,將分配區(qū)首址返回給調(diào)用者。

回收內(nèi)存

進程運行完畢釋放內(nèi)存時丰嘉,系統(tǒng)根據(jù)回收區(qū)首址a,在空閑分區(qū)鏈(表)中找到相應(yīng)插入點嚷缭,根據(jù)情況修改空閑分區(qū)信息饮亏,可能會進行空閑分區(qū)的合并:


(4)動態(tài)重定位分區(qū)分配

——有緊湊功能的動態(tài)分區(qū)分配

用戶程序在內(nèi)存中移動,將空閑空間緊湊起來提高空間利用率阅爽。但必然需要地址變化路幸,增加“重定位”工作。


(5)內(nèi)存空間管理之對換

當內(nèi)存空間還是滿足不了需求時付翁,引入“對換”思想:

? 把內(nèi)存中暫時不能運行简肴、或暫時不用的程序和數(shù)據(jù)調(diào)到外存上,以騰出足夠的內(nèi)存百侧;把已具備運行條件的進程和進程所需要的程序和數(shù)據(jù)砰识,調(diào)入內(nèi)存。

u按對換單位分類:

?整體對換(或進程對換):以整個進程為單位(連續(xù)分配)

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


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末佣渴,一起剝皮案震驚了整個濱河市辫狼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌辛润,老刑警劉巖膨处,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異砂竖,居然都是意外死亡真椿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門乎澄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來突硝,“玉大人,你說我怎么就攤上這事三圆∧唬” “怎么了避咆?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長修噪。 經(jīng)常有香客問我查库,道長,這世上最難降的妖魔是什么黄琼? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任樊销,我火速辦了婚禮,結(jié)果婚禮上脏款,老公的妹妹穿的比我還像新娘围苫。我一直安慰自己,他們只是感情好撤师,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布剂府。 她就那樣靜靜地躺著,像睡著了一般剃盾。 火紅的嫁衣襯著肌膚如雪腺占。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天痒谴,我揣著相機與錄音衰伯,去河邊找鬼。 笑死积蔚,一個胖子當著我的面吹牛意鲸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播尽爆,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼怎顾,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了漱贱?” 一聲冷哼從身側(cè)響起杆勇,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎饱亿,沒想到半個月后蚜退,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡彪笼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年钻注,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片配猫。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡幅恋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出泵肄,到底是詐尸還是另有隱情捆交,我是刑警寧澤淑翼,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站品追,受9級特大地震影響玄括,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜肉瓦,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一遭京、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧泞莉,春花似錦哪雕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至挨厚,卻和暖如春孝扛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背幽崩。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留寞钥,地道東北人慌申。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像理郑,于是被迫代替她去往敵國和親蹄溉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1. 基礎(chǔ)知識 1.1您炉、 基本概念柒爵、 功能 馮諾伊曼體系結(jié)構(gòu)1、計算機處理的數(shù)據(jù)和指令一律用二進制數(shù)表示2赚爵、順序執(zhí)...
    yunpiao閱讀 5,253評論 1 22
  • 2棉胀、連續(xù)分配方式 (1)單一連續(xù)分配 內(nèi)存分為系統(tǒng)區(qū)和用戶區(qū)兩部分: 系統(tǒng)區(qū):僅提供給OS使用,通常放在內(nèi)存低址部...
    盆栽木只閱讀 318評論 0 0
  • 存儲器的層次結(jié)構(gòu)‘ 多層結(jié)構(gòu)的存儲器系統(tǒng) 存儲器的多層結(jié)構(gòu)冀膝。 存儲層次至少應(yīng)具有三級:最高層為 CPU 寄存器唁奢,中...
    傻傻傻瓜_d432閱讀 851評論 0 0
  • 一瞬間麻掸,成永遠還未發(fā)覺卻已經(jīng)飄遠。世界上最遙遠的距離赐纱,是眼睛與眼睛的距離脊奋,盡管如此相近熬北,卻用用無法相依。 ----...
    納蘭若殤閱讀 141評論 0 0
  • 2016-09-11 彭小華 彭小華愛聞思修 去年盛夏的一個上午诚隙,我和夫君正驅(qū)車在法國北部鄉(xiāng)間悠游讶隐,接到在跨國公司...
    愛聞思修閱讀 453評論 0 2