實(shí)驗(yàn)報(bào)告_動(dòng)態(tài)分區(qū)分配算法_第1頁
實(shí)驗(yàn)報(bào)告_動(dòng)態(tài)分區(qū)分配算法_第2頁
實(shí)驗(yàn)報(bào)告_動(dòng)態(tài)分區(qū)分配算法_第3頁
實(shí)驗(yàn)報(bào)告_動(dòng)態(tài)分區(qū)分配算法_第4頁
實(shí)驗(yàn)報(bào)告_動(dòng)態(tài)分區(qū)分配算法_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、:y.大學(xué)實(shí)驗(yàn)報(bào)告學(xué)生: 馬江濤 學(xué) 號:8000612091專業(yè)班級:計(jì)算機(jī)軟件121班實(shí)驗(yàn)類型:口驗(yàn)證綜合設(shè)計(jì)創(chuàng)新 實(shí)驗(yàn)日期:2014-05-08實(shí)驗(yàn)成績: 【實(shí)驗(yàn)要求】1、編程實(shí)現(xiàn)首次適應(yīng)算法和最佳適應(yīng)算法的動(dòng)態(tài)分區(qū)分配的分配過程和回 收過程。其中,空閑分區(qū)通過分區(qū)鏈來管理;在進(jìn)行存分配時(shí),系統(tǒng)優(yōu)先使用空 閑區(qū)低端的空間。2、假設(shè)初始狀態(tài)下,可用存空間為640K,并依次有下列請求序列:1)作業(yè)1申請130KB。2)作業(yè)2申請60KB。3)作業(yè)3申請100KB。4)作業(yè)2釋放60KB。5)作業(yè)4申請200KB。6)作業(yè)3釋放100KB。7)作業(yè)1釋放130KB。8)作業(yè)5申請140KB。9

2、)作業(yè)6申請60KB。10)作業(yè)7申請50KB。11)作業(yè)6釋放60KB。請分別用首次適應(yīng)算法和最佳適應(yīng)算法進(jìn)行存塊的分配和回收,要求每次分 配和回收后顯示出空閑存分區(qū)鏈的情況【可參考后文的實(shí)驗(yàn)提示】。3、上機(jī)時(shí)認(rèn)真的進(jìn)行測試,輸入不同的資源分配請求,寫出實(shí)驗(yàn)結(jié)果;4、具體要求:(1)對你的程序關(guān)鍵代碼處進(jìn)行注釋。(2)給出實(shí)驗(yàn)數(shù)據(jù),對結(jié)果進(jìn)行分析,說明對相關(guān)知識點(diǎn)的理解?!緦?shí)驗(yàn)?zāi)康摹苛私鈩?dòng)態(tài)分區(qū)分配方式中使用的數(shù)據(jù)結(jié)構(gòu)和分配算法,并進(jìn)一步加深對動(dòng)態(tài) 分區(qū)存儲管理方式及其實(shí)現(xiàn)過程的理解?!緦?shí)驗(yàn)思路】首次適應(yīng)算法(First-fit):當(dāng)要分配存空間時(shí),就查表,在各空閑區(qū)中查 找滿足大小要求的可

3、用塊。只要找到第一個(gè)足以滿足要球的空閑塊就停止查找, 并把它分配出去;如果該空閑空間與所需空間大小一樣,則從空閑表中取消該項(xiàng); 如果還有剩余,則余下的部分仍留在空閑表中,但應(yīng)修改分區(qū)大小和分區(qū)始址。最佳適應(yīng)算法 (Best-fit):當(dāng)要分配存空間時(shí),就查找空閑表中滿足要求 的空閑塊,并使得剩余塊是最小的。然后把它分配出去,若大小恰好合適,則直 按分配;若有剩余塊,則仍保留該余下的空閑分區(qū),并修改分區(qū)大小的起始地址。存回收:將釋放作業(yè)所在存塊的狀態(tài)改為空閑狀態(tài),刪除其作業(yè)名,設(shè)置為 空。并判斷該空閑塊是否與其他空閑塊相連,若釋放的存空間與空閑塊相連時(shí), 則合并為同一個(gè)空閑塊,同時(shí)修改分區(qū)大小及

4、起始地址?!緦?shí)驗(yàn)結(jié)果分析】【實(shí)驗(yàn)提示】你的動(dòng)態(tài)分區(qū)的分配與回收,程序運(yùn)行結(jié)果要可視化??蓞⒖既缦逻\(yùn)行結(jié)果 的模式。請分析如下這個(gè)結(jié)果來自于哪一種動(dòng)態(tài)分配算法?實(shí)現(xiàn)可變分區(qū)的分配和回收,主要考慮的問題有三個(gè):第一,設(shè)計(jì)記錄存使用情況的數(shù)據(jù)表格,用來記錄空閑區(qū)和作業(yè)占用的區(qū)域; 第二,在設(shè)計(jì)的數(shù)據(jù)表格基礎(chǔ)上設(shè)計(jì)存分配算法; 第三,在設(shè)計(jì)的數(shù)據(jù)表格基礎(chǔ)上設(shè)計(jì)存回收算法。首先,考慮第一個(gè)問題,設(shè)計(jì)記錄存使用情況的數(shù)據(jù)表格,用來記錄空間區(qū) 和作業(yè)占用的區(qū)域。由于可變分區(qū)的大小是由作業(yè)需求量決定的,故分區(qū)的長度是預(yù)先不固定 的,且分區(qū)的個(gè)數(shù)也隨存分配和回收變動(dòng)。總之,所有分區(qū)情況隨時(shí)可能發(fā)生變 化,數(shù)據(jù)表

5、格的設(shè)計(jì)必須和這個(gè)特點(diǎn)相適應(yīng)。由于分區(qū)長度不同,因此設(shè)計(jì)的表 格應(yīng)該包括分區(qū)在存中的起始地址和長度。由于分配時(shí)空閑區(qū)有時(shí)會變成兩個(gè)分 區(qū):空閑區(qū)和己分分區(qū),回收存分區(qū)時(shí),可能會合并空閑分區(qū),這樣如果整個(gè)存 采用一表格記錄己分分區(qū)和空閑區(qū),就會使表格操作繁瑣。分配存時(shí)查找空閑區(qū) 進(jìn)行分配,然后填寫己分配區(qū)表,主要操作在空閑區(qū);某個(gè)作業(yè)執(zhí)行完后,將該 分區(qū)變成空閑區(qū),并將其與相鄰的空閑區(qū)合并,主要操作也在空閑區(qū)。由此可見, 存的分配和回收主要是對空閑區(qū)的操作。這樣為了便于對存空間的分配和回收, 就建立兩分區(qū)表記錄存使用情況,一表格記錄作業(yè)占用分區(qū)的“己分分區(qū)表”; 一是記錄空閑區(qū)的“空閑區(qū)表”。這

6、兩表的實(shí)現(xiàn)方法一般有兩種:一種是鏈表形 式,一種是順序表形式。在實(shí)驗(yàn)中,采用順序表形式,用數(shù)組模擬。由于順序表 的長度必須提前固定,所以無論是“己分分區(qū)表”還是“空閑區(qū)表”都必須事先 確定長度。它們的長度必須是系統(tǒng)可能的最大項(xiàng)數(shù)。+ 主存分配情況 +分區(qū)號:1起始地址:0分區(qū)大?。?30 KB狀 態(tài):已分配 分區(qū)號:Free 起始地址:130 分區(qū)大?。?0 KB 狀 態(tài):空閑 分區(qū)號:3 起始地址:190 分區(qū)大小:100 KB 狀 態(tài):已分配 分區(qū)號:Free 起始地址:290 分區(qū)大?。?50 KB 狀 態(tài):空閑 個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)

7、個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)*1:分配存 2:回收存 *3:查看分配 0:退 出 *“*請輸入您的操作:1請輸入作業(yè)(分區(qū)號):4請輸入需要分配的主存大?。▎挝?KB): 200分配成功! 個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)*1:分配存 2:回收存 *3:查看分配 0:退 出 *“*請輸入您的操作:3+ 主存分配情況 +分區(qū)號:1起始地址:0分區(qū)大?。?30 KB狀 態(tài):已分配 分區(qū)號:Free 起始地址:130 分區(qū)大?。?0 KB 狀 態(tài):空 閑 分區(qū)號:3 起始地址:190 分區(qū)大?。?00 KB 狀 態(tài):已分配 分區(qū)號:4 起始地址:290 分區(qū)

8、大小:200 KB狀 態(tài):已分配 分區(qū)號:Free 起始地址:490 分區(qū)大?。?50 KB 狀 態(tài):空閑 *個(gè) 個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)*1:分配存 2:回收存 1:分配存 2:回收存 *3:查看分配 0:退 出 *“ 個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)請輸入您的操作:2請輸入您要釋放的分區(qū)號:3“*1:分配存 2:回收存 *3:查看分配 0:退 出 *“ 個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)請輸入您的操作:3+ 主存分配

9、情況 +分區(qū)號:1起始地址:0分區(qū)大?。?30 KB狀 態(tài):已分配 分區(qū)號:Free 起始地址:130 分區(qū)大?。?60 KB 狀 態(tài):空 閑 分區(qū)號:4 起始地址:290 分區(qū)大?。?00 KB 狀 態(tài):已分配 分區(qū)號:Free 起始地址:490 分區(qū)大?。?50 KB 狀 態(tài):空 閑*3:查看分配 0:退 出 *1:分配存 2:回收存 *3:查看分配 0:退 出 *“ 個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)請輸入您的操作:1請輸入作業(yè)(分區(qū)號):5請輸入需要分配的主存大小(單位:KB): 140分配成功!*1:分配存 2:回收存 * 3:查

10、看分配 0:退 出 *“ 個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)請輸入您的操作:3+ 主存 分 配情 況 +分區(qū)號:5分區(qū)號:6 起始地址:140 分區(qū)大?。?0 KB 狀 態(tài):已分配 分區(qū)號:7 起始地址:200 分區(qū)號:7 起始地址:200“ 個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)請輸入您的操作:2請輸入您要釋放的分區(qū)號:1*1:分配存 2:回收存 *3:查看分配 0:退 出 *“ 個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)請輸入您的操作:3+

11、主存分配情況 +分區(qū)號:Free起始地址:0分區(qū)大?。?90 KB狀 態(tài):空閑 分區(qū)號:4 起始地址:290 分區(qū)大小:200 KB 狀 態(tài):已分配 分區(qū)號:Free 起始地址:490 分區(qū)大?。?50 KB 狀 態(tài):空 閑 起始地址:0分區(qū)大小:140 KB狀 態(tài):已分配 分區(qū)號:Free 起始地址:140 分區(qū)大?。?50 KB 狀 態(tài):空閑 分區(qū)號:4 起始地址:290 分區(qū)大小:200 KB 狀 態(tài):已分配 分區(qū)號:Free 起始地址:490 分區(qū)大?。?50 KB 狀 態(tài):空 閑 個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)*1:分配存 2

12、:回收存 *3:查看分配 0:退 出 *“*請輸入您的操作:1請輸入作業(yè)(分區(qū)號):6請輸入需要分配的主存大?。▎挝?KB): 60分配成功!*1:分配存 2:回收存 *3:查看分配 0:退 出 *“ 個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)請輸入您的操作:3+ 主存分配情況 +分區(qū)號:5起始地址:0分區(qū)大?。?40 KB狀 態(tài):已分配分區(qū)號:Free 起始地址:200 分區(qū)大小:90 KB 狀 態(tài):空閑 分區(qū)號:4 起始地址:290 分區(qū)大?。?00 KB 狀 態(tài):已分配 分區(qū)號:Free 起始地址:490 分區(qū)大?。?50 KB 狀 態(tài):空

13、閑 *個(gè)*個(gè)*1:分配存 2:回收存 *3:查看分配 0:退 出 *“ 個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)請輸入您的操作:1請輸入作業(yè)(分區(qū)號):7請輸入需要分配的主存大?。▎挝?KB): 50分配成功! 個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)*1:分配存 2:回收存 *3:查看分配 0:退 出 *“*請輸入您的操作:3+ 主存分配情況 +分區(qū)號:5起始地址:0分區(qū)大小:140 KB狀 態(tài):已分配 分區(qū)號:6 起始地址:140 分區(qū)大?。?0 KB 狀 態(tài):已分配分區(qū)大?。?0 KB狀 態(tài):

14、已分配 分區(qū)號:Free 起始地址:250 分區(qū)大小:40 KB 狀 態(tài):空閑 分區(qū)號:4 起始地址:290 分區(qū)大?。?00 KB 狀 態(tài):已分配 分區(qū)號:Free 起始地址:490 分區(qū)大小:150 KB 狀 態(tài):空 閑 *個(gè)*個(gè)*1:分配存 2:回收存 *3:查看分配 0:退 出 *“ 個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)請輸入您的操作:2請輸入您要釋放的分區(qū)號:6“ 個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)*1:分配存 2:回收存 *3:查看分配 0:退 出 *“*請輸入您的操作:3+

15、主存分配情況 +分區(qū)號:5起始地址:0分區(qū)大?。?40 KB狀 態(tài):已分配 分區(qū)號:Free 起始地址:140 分區(qū)大小:60 KB 狀 態(tài):空 閑 分區(qū)大?。?0 KB狀 態(tài):已分配 分區(qū)號:Free 起始地址:250 分區(qū)大小:40 KB 狀 態(tài):空閑 分區(qū)號:4 起始地址:290 分區(qū)大?。?00 KB 狀 態(tài):已分配 分區(qū)號:Free 起始地址:490 分區(qū)大?。?50 KB 狀 態(tài):空 閑口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口 *個(gè)*個(gè)*1:分配存 2:回收存 *3:查看分配0:退 出 *口口口口口口口口口口口口口口口口口口口口口口口

16、口口口口口口口口口口口口口口口口口口口口口 個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)請輸入您的操作:0Press any key to continue【首次適應(yīng)算法】1.作業(yè)1申請130KB。作業(yè)2申請60KB。作業(yè)3申請100KB。. BT:DOOJMENTi: AND SETTrNG5ADMINI5TRATOfiLiBaanHAMJT =1人需夏芬配的主存大小 13S2;巨枚內(nèi)存: :B. 中入您的操作=1 孺斐貓器咨冬小單位= KB1:分配聲T73=查看分酉己去:回枚內(nèi)If?0: R IIIS;:制到:或泌要蠢的仁狂大小燮 己成耘I:ic

17、it:1WM;竺闈清輸入您的操作:分配內(nèi)存 有看分配具體分配情況如下:項(xiàng)八A 三區(qū)纓 二III分相分狀號J1八恐I4r2心-口皂父心 Z地大X地大X地大 3始滿一國始區(qū) 一7妨區(qū) 弁喙?fàn)罘?狀2介IU主任分配情況已分配己分配己分配2.作業(yè)2釋放60KB。-Jnl 吊|1:已;催己竺I和g L:UULU1ti I b nnu hkl ILHLS5UM1PUSI H/kTD心皂面L試會六MJT*動(dòng)贏分區(qū)分配SVebugL動(dòng)態(tài)分.區(qū)戮0人您爰葺J.1X心 r地天 r荷區(qū) *分狀號廿安心 羸5 分起分狀口立?心 A州 K 君區(qū) 分5分狀聲T7分酥319H106 HB己分配3.作業(yè)4申請200KB。1-

18、:. T : i.pnCIJMBNTS AMD SET imGSlEIMirNITRTEIRA,卓畫 試技六MJT%動(dòng)舂分區(qū)分配甘秘|、口帖1311口動(dòng)醒分*查看/古配f*:甚 出 *村*t利*t 利*皺*喋*t 時(shí)*t 隴*時(shí)村村 * M 女 * 利請頊入您的操作.I露父盲眷新牌薦上小博粒我職200分配成功I*tt 村憂 *t*t *t*t *t*t M*村*t 扯*喋*t*t 喋*tKXK 村 *t*t * JtH*1: J?配內(nèi)存2;回收內(nèi)存*心 *查看分配A: -R 出 XX XX XX XX XX XX H XHX * XXX * X JCX * X*CX X XKXK XX XX

19、XX XX XX H 請輸入您的操作=3 + 1- + T + + + + + -t + -t+ + + + + + + + + T -HI- + 1- + 1- + 1- + 1-+ + +主存分配情況+ + + + + + + + + + + + + + + 1- -m- + 1- + 1- +I- + 1-+ + + ! 1 :0 :136 KD :已令配寫N八.恐 :y始區(qū) III分起分狀號p2n 14-11八態(tài) 4r 八-號J1八.態(tài) X地大一* 區(qū)一區(qū)地大 2艮一區(qū)始區(qū)Z始EZ傍 分杞分狀一八S分狀一分超分狀一分起分狀:Free:13B:GB 1:空鬧s 19B=1Q6=已分配2I

20、0己命配:Frees 4典s 15M NB=m rn4.作業(yè)3釋放100KB。主存今配節(jié)況: 一130 KB己分酉己4900 KB已分3己會區(qū)牛Fret 差始堆正& 40 會區(qū)天小e 150 KB請輸入您的操作=3果郭3曜建勇榆兄號,:*K地大 者區(qū)+ + + - + + + i- + i-+-r + -t+ + + + 1- + 1-b-b-t5140 KB 己分配406# KB已分酒己分以斗7起始地山L 209NJI1小舟* 匕始L1號扯尖 z-IHil 分票狀7.作業(yè)6釋放60KB。|n| xC:1DOCUMENTS ftND SETriNCADMINISTRATORl真面業(yè)六MJT 匕

21、動(dòng);分區(qū)導(dǎo)配算Dcbug.+i況-+ +己+ I + +孑+uz + + VE+ .3+B己0 /X4 nl5 0 i E+Z地大+區(qū)始也I+分起分狀Z地人 區(qū)始區(qū) 分起分狀己KR翎9 4,720業(yè)號址塵土XI旃大區(qū)始區(qū)分普狀KB閑02540空BE 淆 0 0/T= 42920已KB鬧0 04915空02X弛大 區(qū)始區(qū) 分起分狀-S-* 態(tài)區(qū)地大區(qū)始區(qū)分起彖區(qū)弛大 區(qū)始區(qū) 分起分狀【最佳適應(yīng)算法.作業(yè)1申請130KB。作業(yè)2申請60KB。作業(yè)3申請100KB。m C DOCUMENTS AND SETTING5ADMINI5TRATOH面、試會六MJT,動(dòng)態(tài)分區(qū)務(wù)配算菽1Dehug,惑+日2心

22、+Z弛大+區(qū)始區(qū)+分起分狀E己K牌0 /T3己0 1 ZL I 口| K口_顯主 區(qū)弛大 區(qū)始區(qū)分起分狀己KB牌0 J7 1360已區(qū)弛大 區(qū)始區(qū) 分起分狀1X1弛大 區(qū)始區(qū) 分起分狀:190:100 KE:E分配;Free:290:359 KB:空閑*1:分配內(nèi)存2:回收內(nèi)存 *.作業(yè)2釋放60KB。作業(yè)4申請200KB。.作業(yè)3釋放100KB。-Inlxi+旦品S+區(qū)地大+區(qū)始區(qū)+分起分狀KE閑 e8 0 0F 3 6 F .|_|F 1 1 .5分起分狀區(qū)地大 區(qū)始區(qū) 分起分就O品 S弛大始區(qū)分起分狀m C DOCUMENTS AND 5ETTING5ADMINISTRATDR建面試裝六

23、田T動(dòng)態(tài)分區(qū)分配宜濕Debug國志分.請輸入您的操作=3+ + + + +-t+fr+t+主存分配清況a顯來區(qū)弛大區(qū)始區(qū)分起分狀R-KB閑290空旦顯4心區(qū)地大區(qū)始區(qū)分起分狀E n_jK 10 0429如己口_品來 區(qū)地大 區(qū)始區(qū)分起分我KE閑eB 0 0F 9 5 FtF 4 1 .5JDlxl42902麗KE 己分配:Free;490:150 KB,空閑痢 1:分配內(nèi)存2:回收內(nèi)存 好d4.作業(yè)1釋放130KB。JOOIJCXJCJtXjtJCICJIJCXXJOOCICJIJCKXJCXitXIOtJCX, 林 1:分配內(nèi)存2:回收內(nèi)存* 3:杏看分a: iH. ti*請輸入您的操作;.

24、作業(yè)5申請140KB。作業(yè)6申請60KB。作業(yè)7申請50KB。07 !_; DULUMLn I 5 ftND SEI I lNL.iADMIN15 I試登六MJTL動(dòng)忘分區(qū)分配尊:桔.1吊。口動(dòng)主存分配情況X地大 區(qū)始區(qū) 分躬茶750 KB己分配KE閉 -Cs B 0FV1118空 一I:來 一 E地大 Ll 分起甚s17始房分票狀490第塵心 區(qū)始區(qū) 分打分狀140 KB己分噌己A地大E始區(qū) 分超蒸M-631Q空6.作業(yè)6釋放60KB。MXMM MMXMMMXMXMM MM MKMMMXXMMKM MM M X M*1:分配內(nèi)存2:回收內(nèi)存 *m u,DULUMtnibftnD bt 11

25、ihusadniNI5TRAT0R臭面、試會亢MJT動(dòng)態(tài)分區(qū)分配算Sbebug動(dòng)毒-|D| x;地大X地大 區(qū)始區(qū) 分起分狀X1W大 備分狀ZM大 區(qū)始區(qū) 分杞分狀Z地大 區(qū)始區(qū) 分起分狀【代碼實(shí)現(xiàn)】/+ */*動(dòng)態(tài)分區(qū)分配方式的模擬*/*制作者:馬江濤*/*學(xué)號: 8000612091*/*班級:計(jì)算機(jī)軟件121班*/+/ /個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)個(gè)#include#include#define Free 0 /空閑狀態(tài)#define Busy 1 /已用狀態(tài)#define OK 1/完成#

26、define ERROR 0 /出錯(cuò)#define MAX_length 640 /最大存空間為 640KBtypedef int Status;typedef struct freearea/定義一個(gè)空閑區(qū)說明表結(jié)構(gòu)int ID;/分區(qū)號long size;/分區(qū)大小long address; /分區(qū)地址int state; /狀態(tài)ElemType;/線性表的雙向鏈表存儲結(jié)構(gòu)typedef struct DuLNode /double linked listElemType data;struct DuLNode *prior; /前趨指針struct DuLNode *next; /后繼指

27、針DuLNode,*DuLinkList;DuLinkList block_first; /頭結(jié)點(diǎn)DuLinkList block_last; /尾結(jié)點(diǎn)Status alloc(int);/存分配Status free(int); /存回收Status First_fit(int,int);/首 次適應(yīng)算法Status Best_fit(int,int); /最佳適應(yīng)算法void show();/查看分配Status Initblock();/開創(chuàng)空間表Status Initblock()/開創(chuàng)帶頭結(jié)點(diǎn)的存空間鏈表block_first=(DuLinkList)malloc(sizeof(Du

28、LNode);block_last=(DuLinkList)malloc(sizeof(DuLNode);block_first-prior=NULL;block_first-next=block_last;block_last-prior=block_first;block_last-next=NULL;block_last-data.address=0;block_last-data.size=MAX_length;block_last-data.ID=0;block_last-data.state=Free;return OK;/分配主存Status alloc(int ch)int I

29、D,request;coutID;coutrequest;if(request0 |request=0)cout分配大小不合適,請重試! endl;return ERROR;if(ch=2) /選擇最佳適應(yīng)算法if(Best_fit(ID,request)=OK) cout分配成功! endl; else cout存不足,分配失?。?endl;return OK;else /默認(rèn)首次適應(yīng)算法if(First_fit(ID,request)=OK) cout分配成功! endl; else cout存不足,分配失??! data.ID=ID;temp-data.size=request;temp-

30、data.state=Busy;DuLNode *p=block_first-next;while(p)if(p-data.state=Free & p-data.size=request)/有大小恰好合適的空閑塊p-data.state=Busy;p-data.ID=ID;return OK;break;if(p-data.state=Free & p-data.sizerequest)/有空閑塊能滿足需求且有剩余temp-prior=p-prior;temp-next=p;temp-data.address=p-data.address;p-prior-next=temp;p-prior=

31、temp;p-data.address=temp-data.address+temp-data.size;p-data.size-=request;return OK;break;p=p-next;return ERROR;/ 最佳適應(yīng)算法 Status Best_fit(int ID,int request)int ch; /記錄最小剩余空間DuLinkList temp=(DuLinkList)malloc(sizeof(DuLNode); temp-data.ID=ID;temp-data.size=request;temp-data.state=Busy;DuLNode *p=bloc

32、k_first-next;DuLNode *q=NULL; /記錄最佳插入位置 while(p) /初始化最小空間和最佳位置 if(p-data.state=Free &(p-data.sizerequest | p-data.size=request) q=p;ch=p-data.size-request;break;p=p-next;while(p)if(p-data.state=Free & p-data.size=request)/空閑塊大小恰好合適 p-data.ID=ID; p-data.state=Busy; return OK; break;if(p-data.state=Fr

33、ee & p-data.sizerequest) /空閑塊大于分配需求if(p-data.size-requestdata.size-request;/更 新剩余最小值 q=p;/更新最佳位置指向p=p-next;if(q=NULL) return ERROR;/沒 有找到空閑塊 else/找到了最佳位置并實(shí)現(xiàn)分配 temp-prior=q-prior; temp-next=q;temp-data.address=q-data.address;q-prior-next=temp;q-prior=temp;q-data.address+=request;q-data.size=ch;return OK;/ 主存回收 Status free(int ID)DuLNode *p=block_first;while(p)if(p-data.ID=ID)p-data.state=Free;p-data.ID=Free;if(p-prior-data.state=Free)/與 前面的空閑塊相連 p-prior-data.size+=p-data.size;p-prior-next=p-next;p-next-prior

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論