實(shí)驗(yàn)四可變分區(qū)存儲(chǔ)管理方式的內(nèi)存分配和回收

實(shí)驗(yàn)四可變分區(qū)存儲(chǔ)管理方式的內(nèi)存分配和回收

ID:14279299

大小:1.59 MB

頁(yè)數(shù):8頁(yè)

時(shí)間:2018-07-27

實(shí)驗(yàn)四可變分區(qū)存儲(chǔ)管理方式的內(nèi)存分配和回收_第1頁(yè)
實(shí)驗(yàn)四可變分區(qū)存儲(chǔ)管理方式的內(nèi)存分配和回收_第2頁(yè)
實(shí)驗(yàn)四可變分區(qū)存儲(chǔ)管理方式的內(nèi)存分配和回收_第3頁(yè)
實(shí)驗(yàn)四可變分區(qū)存儲(chǔ)管理方式的內(nèi)存分配和回收_第4頁(yè)
實(shí)驗(yàn)四可變分區(qū)存儲(chǔ)管理方式的內(nèi)存分配和回收_第5頁(yè)
資源描述:

《實(shí)驗(yàn)四可變分區(qū)存儲(chǔ)管理方式的內(nèi)存分配和回收》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、實(shí)驗(yàn)四實(shí)驗(yàn)四可變分區(qū)存儲(chǔ)管理方式的內(nèi)存分配和回收一.實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)編寫和調(diào)試存儲(chǔ)管理的模擬程序以加深對(duì)存儲(chǔ)管理方案的理解,熟悉可變分區(qū)存儲(chǔ)管理的內(nèi)存分配和回收。二.實(shí)驗(yàn)屬性設(shè)計(jì)三.實(shí)驗(yàn)內(nèi)容1.確定內(nèi)存空間分配表;2.采用最優(yōu)適應(yīng)算法完成內(nèi)存空間的分配和回收;3.編寫主函數(shù)對(duì)所做工作進(jìn)行測(cè)試。四.實(shí)驗(yàn)背景材料實(shí)現(xiàn)可變分區(qū)的分配和回收,主要考慮的問(wèn)題有三個(gè):第一,設(shè)計(jì)記錄內(nèi)存使用情況的數(shù)據(jù)表格,用來(lái)記錄空閑區(qū)和作業(yè)占用的區(qū)域;第二,在設(shè)計(jì)的數(shù)據(jù)表格基礎(chǔ)上設(shè)計(jì)內(nèi)存分配算法;第三,在設(shè)計(jì)的數(shù)據(jù)表格基礎(chǔ)上設(shè)計(jì)內(nèi)存回收算法。首先,考慮第一個(gè)問(wèn)題,設(shè)計(jì)記錄內(nèi)存使用情況的數(shù)據(jù)表格,用來(lái)

2、記錄空間區(qū)和作業(yè)占用的區(qū)域。由于可變分區(qū)的大小是由作業(yè)需求量決定的,故分區(qū)的長(zhǎng)度是預(yù)先不固定的,且分區(qū)的個(gè)數(shù)也隨內(nèi)存分配和回收變動(dòng)??傊蟹謪^(qū)情況隨時(shí)可能發(fā)生變化,數(shù)據(jù)表格的設(shè)計(jì)必須和這個(gè)特點(diǎn)相適應(yīng)。由于分區(qū)長(zhǎng)度不同,因此設(shè)計(jì)的表格應(yīng)該包括分區(qū)在內(nèi)存中的起始地址和長(zhǎng)度。由于分配時(shí)空閑區(qū)有時(shí)會(huì)變成兩個(gè)分區(qū):空閑區(qū)和已分分區(qū),回收內(nèi)存分區(qū)時(shí),可能會(huì)合并空閑分區(qū),這樣如果整個(gè)內(nèi)存采用一張表格記錄己分分區(qū)和空閑區(qū),就會(huì)使表格操作繁瑣。分配內(nèi)存時(shí)查找空閑區(qū)進(jìn)行分配,然后填寫己分配區(qū)表,主要操作在空閑區(qū);某個(gè)作業(yè)執(zhí)行完后,將該分區(qū)變成空閑區(qū),并將其與相鄰的空閑區(qū)合并,主要操作

3、也在空閑區(qū)。由此可見,內(nèi)存的分配和回收主要是對(duì)空閑區(qū)的操作。這樣為了便于對(duì)內(nèi)存空間的分配和回收,就建立兩張分區(qū)表記錄內(nèi)存使用情況,一張表格記錄作業(yè)占用分區(qū)的“己分分區(qū)表”;一張是記錄空閑區(qū)的“空閑區(qū)表”。這兩張表的實(shí)現(xiàn)方法一般有兩種:一種是鏈表形式,一種是順序表形式。在實(shí)驗(yàn)中,采用順序表形式,用數(shù)組模擬。由于順序表的長(zhǎng)度必須提前固定,所以無(wú)論是“已分分區(qū)表”還是“空閑區(qū)表”都必須事先確定長(zhǎng)度。它們的長(zhǎng)度必須是系統(tǒng)可能的最大項(xiàng)數(shù)。“已分分區(qū)表”的結(jié)構(gòu)定義#definen10//假定系統(tǒng)允許的最大作業(yè)數(shù)量為nstruct{floataddress;//已分分區(qū)起始地址fl

4、oatlength;//已分分區(qū)長(zhǎng)度、單位為字節(jié)intflag;//已分分區(qū)表登記欄標(biāo)志,“0”表示空欄目,實(shí)驗(yàn)中只支持一個(gè)字符的作業(yè)名}used_table[n];//已分分區(qū)表“空閑區(qū)表”的結(jié)構(gòu)定義#definem10//假定系統(tǒng)允許的空閑區(qū)最大為mstruct{floataddress;//空閑區(qū)起始地址floatlength;//空閑區(qū)長(zhǎng)度、單位為字節(jié)intflag;//空閑區(qū)表登記欄標(biāo)志,“0”表示空欄目,“1”表示未分配}used_table[n];//空閑區(qū)表第二,在設(shè)計(jì)的數(shù)據(jù)表格基礎(chǔ)上設(shè)計(jì)內(nèi)存分配。裝入一個(gè)作業(yè)時(shí),從空閑區(qū)表中查找滿足作業(yè)長(zhǎng)度的未分配區(qū)

5、,如大于作業(yè),空閑區(qū)劃分成兩個(gè)分區(qū),一個(gè)給作業(yè),一個(gè)成為小空閑分區(qū)。實(shí)驗(yàn)中內(nèi)存分配的算法采用“最優(yōu)適應(yīng)”算法,即選擇一個(gè)能滿足要求的最小空閑分區(qū)??勺兎謪^(qū)方式的內(nèi)存分配流程如圖。第三,在設(shè)計(jì)的數(shù)據(jù)表格基礎(chǔ)上設(shè)計(jì)內(nèi)存回收問(wèn)題。內(nèi)存回收時(shí)若相鄰有空閑分區(qū)則合并空閑區(qū),修改空閑區(qū)表。可變分區(qū)方式的內(nèi)存回收流程如圖。五.實(shí)驗(yàn)報(bào)告1.寫出你編寫的C語(yǔ)言程序。2.描述可變分區(qū)存儲(chǔ)管理的算法和思路。3.總結(jié)體會(huì)可變分區(qū)存儲(chǔ)管理方法。六、參考程序#definen10//假定系統(tǒng)允許的最大作業(yè)數(shù)量為n#definem10//假定系統(tǒng)允許的空閑區(qū)最大為m#defineminisize10

6、0struct{floataddress;//已分分區(qū)起始地址floatlength;//已分分區(qū)長(zhǎng)度、單位為字節(jié)intflag;//已分分區(qū)表登記欄標(biāo)志,“0”表示空欄目,實(shí)驗(yàn)中只支持一個(gè)字符的作業(yè)名}used_table[n];//已分分區(qū)表struct{floataddress;//空閑區(qū)起始地址floatlength;//空閑區(qū)長(zhǎng)度、單位為字節(jié)intflag;//空閑區(qū)表登記欄標(biāo)志,“0”表示空欄目,“1”表示未分配}used_table[n];//空閑區(qū)表allocate(J,xk)//采用最優(yōu)分配算法分配xk大小的空間charJ;floatxk;{inti

7、,k;floatad;k=-1;for(i=0;i=xk&&free_table[i].flag==1)if(k==-1

8、

9、free_table[i].length

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。