淺談操作系統(tǒng)的內(nèi)存分配原則
出處:電子發(fā)燒友網(wǎng) 發(fā)布于:2018-08-13 13:46:38
在多道程序當(dāng)中,如果要讓我們的程序運(yùn)行,必須先創(chuàng)建進(jìn)程。而創(chuàng)建進(jìn)程的步便是要將程序和對(duì)應(yīng)的數(shù)據(jù)裝入內(nèi)存。把用戶的源程序變成可執(zhí)行的程序要經(jīng)歷 編譯 - 鏈接 - 裝入 三個(gè)過(guò)程。
此刻我要說(shuō)的就是的一個(gè)步驟,如何為一個(gè)用戶程序分配相應(yīng)的內(nèi)存空間。
種:?jiǎn)我贿B續(xù)分配方式
適用于單用戶、單任務(wù)的操作系統(tǒng)。沒什么好講的。
第二種:固定分區(qū)分配
此種分配方式把內(nèi)存空間分為固定大小的區(qū)域,每個(gè)分區(qū)允許一個(gè)作業(yè)被裝入。分區(qū)大小可以不相同。通常會(huì)建立一張分區(qū)使用表來(lái)記錄每個(gè)分區(qū)的起始地址、分區(qū)大小、狀態(tài)。沒有足夠大的分區(qū)則拒絕分配內(nèi)存。此種分配方式是早的多道程序的存儲(chǔ)管理方式。
缺點(diǎn):限制了進(jìn)程的數(shù)目,內(nèi)存空間利用率比較低。
第三種:動(dòng)態(tài)分區(qū)分配
此種方式涉及到相應(yīng)的數(shù)據(jù)結(jié)構(gòu)(分區(qū)表、分區(qū)鏈),分區(qū)分配算法和回收操作。
分區(qū)分配算法有:首次適應(yīng)算法 ( 以鏈表結(jié)構(gòu)為例,下同。從鏈?zhǔn)组_始順序查找,找到一個(gè)符合條件的分區(qū)即可進(jìn)行相應(yīng)的分配,沒有符合條件的則分配失敗 ) 、循環(huán)首次適應(yīng)算法(從上符合條件的分區(qū)進(jìn)行循環(huán)查找 ) 、適應(yīng)算法(首先需要把空閑分區(qū)鏈表按容量排序 [ 排序的目的是為了加速查找,否則就要遍歷整個(gè)鏈表 ] ,然后從鏈?zhǔn)走M(jìn)行順序查找 ) 、壞適應(yīng)算法( 選擇的空閑分區(qū),然后進(jìn)行分配 ) 、快速適應(yīng)算法 ( 分類搜索算法,采取分區(qū)表加上相同類別管理的鏈表進(jìn)行記錄,僅需根據(jù)進(jìn)程的長(zhǎng)度,即可分配相應(yīng)的內(nèi)存空間 )。
回收內(nèi)存的方式:只要回收空間與空閑分區(qū)相鄰接,那么僅需與空閑分區(qū)合并即可;否則,需為回收區(qū)單獨(dú)建立一項(xiàng)新的表,然后把回收區(qū)的首地址插入到空閑鏈中相應(yīng)的位置。
缺點(diǎn):相應(yīng)分配的算法比較復(fù)雜,回收空間需要合并分區(qū),系統(tǒng)開銷大。
第四種:伙伴系統(tǒng)
規(guī)定:已分配區(qū)間或空閑區(qū)間的大小均為2的k次冪。
具體:當(dāng)進(jìn)程需要一個(gè)長(zhǎng)度為n的空間時(shí),需要計(jì)算一個(gè)i值,使得2的i-1次方小于n,2的i次方大于等于n。然后根據(jù)計(jì)算結(jié)果,得到空閑分區(qū)鏈表中查找大小為2的i次方的空閑分區(qū),如果不存在這樣的分區(qū),則將2的i+1次方化成兩個(gè)2的i次方的空閑分區(qū),以此類推,總有符合的空閑分區(qū)。回收與分配空間的方式恰好相反。
第五種:哈希算法
在分類搜索算法的基礎(chǔ)上,利用哈希快速查找的優(yōu)點(diǎn),快速到查找相同容量類別的鏈表,實(shí)現(xiàn)的分配策略。
第六種:可重定位分區(qū)分配
此種算法考慮到的情況是:有很多內(nèi)存碎片。對(duì)于一個(gè)進(jìn)程來(lái)說(shuō),沒有任何一個(gè)碎片能夠滿足進(jìn)程所需的容量要求,但是碎片的容量總和能夠滿足一個(gè)或者多個(gè)進(jìn)程的容量要求。
解決方案:①把內(nèi)存中的所有作業(yè)全部移動(dòng),讓他們緊湊在一起,這樣內(nèi)存碎片便集中在一起了。(需要對(duì)移動(dòng)的程序地址進(jìn)行修改才行)
分區(qū)分配算法:與動(dòng)態(tài)分區(qū)分配算法類似,不過(guò)多了“緊湊”的操作。
第七種:對(duì)換
將占用內(nèi)存卻沒有干什么事情的進(jìn)程給放到對(duì)換區(qū)(外存分為文件區(qū)和對(duì)換區(qū))。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 主流存儲(chǔ)技術(shù)核心特性與場(chǎng)景化應(yīng)用概述2026/1/13 11:12:42
- 主流存儲(chǔ)技術(shù)特性與場(chǎng)景化選型指南2026/1/7 10:07:41
- MES系統(tǒng)現(xiàn)場(chǎng)部署與數(shù)據(jù)對(duì)接實(shí)操指南2025/12/29 11:09:41
- eMMC 屬于閃存還是內(nèi)存?從定義到應(yīng)用講透核心區(qū)別2025/9/15 15:24:16
- ddr4和ddr5內(nèi)存接口一樣嗎?全景解析2025/9/8 17:22:03
- 高速PCB阻抗控制核心實(shí)操規(guī)范
- 高速數(shù)字系統(tǒng)(如DDR、SerDes)中的信號(hào)完整性濾波
- MOSFET在UPS電源中的應(yīng)用解析
- 電源管理IC在物聯(lián)網(wǎng)設(shè)備中的應(yīng)用
- SMT連接器焊接缺陷分析
- MOSFET在汽車電子中的應(yīng)用要求
- 通信設(shè)備電源管理IC應(yīng)用解析
- 通信設(shè)備連接器選型與設(shè)計(jì)
- PCB電磁兼容性(EMC)設(shè)計(jì)核心實(shí)操規(guī)范
- 物聯(lián)網(wǎng)節(jié)點(diǎn)低功耗設(shè)計(jì):信號(hào)鏈中的濾波與功耗管理









