4.1程序的裝入和鏈接
1团赏、創(chuàng)建進(jìn)程的第一件事:將程序和數(shù)據(jù)裝入內(nèi)存复凳。
2、程序的裝入和鏈接
1)編譯
2)鏈接
3)裝入
3刃永、地址的概念
1)邏輯地址(相對地址,虛地址)
2)物理地址(絕對地址羊精,實(shí)地址)
4斯够、程序裝入中的地址處理
邏輯地址? ======?? 物理地址:
1)絕對裝入方式
邏輯地址 ->重定位->物理地址:
2)靜態(tài)可重定位裝入方式
3)動(dòng)態(tài)運(yùn)行時(shí)(重定位)裝入方式
5、不同的程序鏈接裝入方式(使用內(nèi)存的時(shí)機(jī))
根據(jù)鏈接時(shí)間的不同园匹,分成三種:
①靜態(tài)鏈接:裝入運(yùn)行前將多個(gè)目標(biāo)模塊及所需庫函數(shù)鏈接成一個(gè)整體雳刺,以后不再拆開。
②裝入時(shí)動(dòng)態(tài)鏈接:裝入內(nèi)存時(shí)裸违,邊裝入邊鏈接的鏈接方式掖桦。
③運(yùn)行時(shí)動(dòng)態(tài)鏈接:對某些目標(biāo)模塊的鏈接,在執(zhí)行中需要該目標(biāo)模塊時(shí)供汛,才對它進(jìn)行鏈接枪汪。
4.2連續(xù)分配存儲(chǔ)管理方式
1涌穆、連續(xù)分配方式
(1)單一連續(xù)分配
(2)固定分區(qū)分配
? ? ? ? 具體實(shí)現(xiàn):
? ? ? ? 1)如何劃分分區(qū)大小
? ? ? ? 2)需要的數(shù)據(jù)結(jié)構(gòu)
? ? ? ? 3)分配回收操作
(3)動(dòng)態(tài)分區(qū)分配
優(yōu)點(diǎn):并發(fā)進(jìn)程數(shù)沒有固定數(shù)的限制,不產(chǎn)生內(nèi)碎片雀久。
缺點(diǎn):有外碎片
具體實(shí)現(xiàn):
1)分區(qū)分配中的數(shù)據(jù)結(jié)構(gòu)
2)分區(qū)分配算法
①首次適應(yīng)算法FF
優(yōu)點(diǎn):優(yōu)先利用內(nèi)存低址部分宿稀,保留了高地址部分的大空閑區(qū);
缺點(diǎn):但低址部分不斷劃分赖捌,會(huì)產(chǎn)生較多小碎片祝沸;而且每次查找從低址部分開始,會(huì)逐漸增加查找開銷越庇。
②循環(huán)首次適應(yīng)算法
優(yōu)點(diǎn):空閑分區(qū)分布均勻罩锐,減少查找開銷
缺點(diǎn):缺乏大的空閑分區(qū)
③最佳適應(yīng)算法
缺點(diǎn):每次找到最合適大小的分區(qū)割下的空閑區(qū)也總是最小,會(huì)產(chǎn)生許多難以利用的小空閑區(qū)
④最差適應(yīng)算法
基本不留下小空閑分區(qū)卤唉,但會(huì)出現(xiàn)缺乏較大的空閑分區(qū)的情況涩惑。
⑤快速適應(yīng)算法
能快速找到合適分區(qū),但鏈表信息會(huì)很多桑驱;實(shí)際上是空間換時(shí)間竭恬。
3)分區(qū)分配操作
(4)動(dòng)態(tài)重定位分區(qū)分配
動(dòng)態(tài)重定位分區(qū)分配算法與動(dòng)態(tài)分區(qū)分配算法基本相同,差別在于增加了緊湊的功能熬的。
(5)內(nèi)存空間管理之對換