版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗二 主存空間的分配和回收一、實驗內(nèi)容 主存儲器空間的分配和回收二、實驗?zāi)康?幫助了解在不同的存儲管理方式下,應(yīng)怎樣實現(xiàn)主存空間的分配和回收。三、實驗題目 在可變分區(qū)管理方式下,采用最先適應(yīng)算法實現(xiàn)主存空間的分配和回收。提示及要求 1、自行假設(shè)主存空間大小,預設(shè)操作系統(tǒng)所占大小并構(gòu)造未分分區(qū)表; 表目內(nèi)容:起址、長度、狀態(tài)(未分/空表目)2、結(jié)合實驗一,PCB增加為: PID,要求運行時間,優(yōu)先權(quán),狀態(tài),所需主存大小,主存起始位置,PCB指針3、采用最先適應(yīng)算法分配主存空間;4、進程完成后,回收主存,并與相鄰空閑分區(qū)合并。 源代碼:#include #include using namesp
2、ace std;typedef struct PARTITIONint iBegAddr;/分區(qū)起始地址int iSize;/分區(qū)大小bool bState;/分區(qū)狀態(tài)parti;#define ARRAY_SIZE 100parti parTableARRAY_SIZE+1;/分區(qū)表,包含未分配和已分配#define MINSIZE 2int MemAlloc(int allocSize);void InitParTable(int size);void InsertPar(int i,parti pElem);void MemRecycle(int p);/回收p指向地址的內(nèi)存void M
3、ergePar(int x,int y);/將分區(qū)y合并到分區(qū)x中void dispTable();/打印分區(qū)表信息int main()InitParTable(256);dispTable();int inSize;coutinSize;coutThe alloc addr:MemAlloc(inSize)endl;dispTable();coutinSize;coutThe alloc addr:MemAlloc(inSize)endl;dispTable();coutinSize;coutThe alloc addr:MemAlloc(inSize)endl;dispTable();co
4、utinSize;coutThe alloc addr:MemAlloc(inSize)endl;dispTable();coutinSize;MemRecycle(inSize);dispTable();coutinSize;coutThe alloc addr:MemAlloc(inSize)endl;dispTable();return 0;void InitParTable(int size)coutThe first 20 is reserved for osendl;parTable1.iBegAddr = 20;parTable1.iSize = size-20;parTable
5、1.bState = 0;parTable0.iSize = 1;int MemAlloc(int allocSize)for(int i=1;iallocSize)/分區(qū)i符合要求if(parTablei.iSize - allocSize)=i;-j)parTablej+1 = parTablej;parTablei = pElem;+parTable0.iSize;void MemRecycle(int p)/回收p指向地址的內(nèi)存int i;for(i=1;i=parTable0.iSize;+i)/找到待回收地址對應(yīng)的塊號if(parTablei.iBegAddr = p)break;
6、if(parTable0.iSize + 1) = i | parTablei.bState = 0)coutError!該地址不是一個有效的可回收地址1 & iparTable0.iSize)if(parTablei+1.bState = 0)/待回收分區(qū)的前一分區(qū)是空閑分區(qū)if(parTablei+1.iBegAddr=(parTablei.iBegAddr+parTablei.iSize)MergePar(i,i+1);/合并分區(qū)i和i-1if(parTablei-1.bState = 0)if(parTablei.iBegAddr=(parTablei-1.iBegAddr+parTa
7、blei-1.iSize)MergePar(i-1,i);else if(1 = i)if(parTablei+1.bState = 0)/待回收分區(qū)的前一分區(qū)是空閑分區(qū)if(parTablei+1.iBegAddr=(parTablei.iBegAddr+parTablei.iSize)MergePar(i,i+1);/合并分區(qū)i和i-1else if(parTable0.iSize = i)if(parTablei-1.bState = 0)if(parTablei.iBegAddr=(parTablei-1.iBegAddr+parTablei-1.iSize)MergePar(i-1,i);void MergePar(int x,int y)/將分區(qū)y合并到分區(qū)x中parTablex.iSize += parTabley.iSize;for(int i=y;iparTable0.iSize;+i)parTablei = parTablei+1;-parTable0.iSize;void dispTable()cout塊號 begAddr size stateendl;for(int i=1;i=parTable0.iSize;+i)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年航空職業(yè)技能鑒定考試-飛機維修執(zhí)照考試近5年真題集錦(頻考類試題)帶答案
- 2024年知識競賽-洗染委知識考試近5年真題集錦(頻考類試題)帶答案
- 2024年知識競賽-原子熒光知識競賽考試近5年真題集錦(頻考類試題)帶答案
- 2024年10月東莞水鄉(xiāng)特色發(fā)展經(jīng)濟區(qū)管理委員會下半年公開招考9名聘員筆試歷年典型考點(頻考點試卷)解題思路附帶答案詳解
- 江西省導游基礎(chǔ)知識真題匯編3
- 中班主題《小草的本領(lǐng)》課件
- 品牌的創(chuàng)新與可持續(xù)發(fā)展計劃
- 培養(yǎng)節(jié)約意識的實踐方法計劃
- 教學成果展示策劃計劃
- 倡導全面素質(zhì)教育的教研理念計劃
- 廣東省學校安全條例知識競賽題庫(附答案)安全知識考試題庫
- “德能勤績廉”考核測評表
- 幼兒園:中班社會《桌子底下的動物園》
- LME金屬交易規(guī)則
- 《大腸息肉中醫(yī)臨床診療指南(制訂)》公開征求意見稿
- 建筑容積率與建筑密度建筑層數(shù)關(guān)系表
- 地下室高分子自粘膠膜防水卷材施工工法-詳細
- 常用郵政儲蓄銀行匯款單(樣本)
- 泛光照明專項施工組織方案內(nèi)容(完整版)
- JL19工程價款月付款證書及審核匯總表
- 電子及印制線路板(PCB)項目可行性研究報告模板
評論
0/150
提交評論