#include#inc">
實驗 可分區(qū)內(nèi)存分配首次適應(yīng)算法模擬.doc

實驗 可分區(qū)內(nèi)存分配首次適應(yīng)算法模擬.doc

ID:55514271

大?。?9.50 KB

頁數(shù):7頁

時間:2020-05-15

實驗  可分區(qū)內(nèi)存分配首次適應(yīng)算法模擬.doc_第1頁
實驗  可分區(qū)內(nèi)存分配首次適應(yīng)算法模擬.doc_第2頁
實驗  可分區(qū)內(nèi)存分配首次適應(yīng)算法模擬.doc_第3頁
實驗  可分區(qū)內(nèi)存分配首次適應(yīng)算法模擬.doc_第4頁
實驗  可分區(qū)內(nèi)存分配首次適應(yīng)算法模擬.doc_第5頁
資源描述:

《實驗 可分區(qū)內(nèi)存分配首次適應(yīng)算法模擬.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、實驗可變分區(qū)內(nèi)存分配首次適應(yīng)算法模擬一、實驗?zāi)康模耗M內(nèi)存分配,了解并掌握動態(tài)分區(qū)分配中所用的數(shù)據(jù)結(jié)構(gòu)、分區(qū)分配算法,深刻理解首次適應(yīng)內(nèi)存分配算法。二、實驗內(nèi)容:#include#include#includeintconsttotal=200;//內(nèi)存總數(shù)intconstbeginaddress=20;//初次分配起始地址structBlock{intaddr;//塊的起始地址intsize;//塊的大小intflag;//塊的分配狀態(tài)1:代表已分配0:代表未分配;}block[100];int

2、count=0;//塊的個數(shù),初值為0,分配一個則加1,減少一個則減1voiddisplay()//顯示所有塊的模塊{inti;printf("目前內(nèi)存情況");printf("--------------------------------------------------------------------------------");printf("塊號起始地址大小分配狀態(tài)");for(i=1;i<=count;i++){printf("%d%d%d",i,block[i].addr,block[i].size);if(block[

3、i].flag==0)printf("未分配");elseprintf("已分配");}printf("--------------------------------------------------------------------------------");}voidjinchengFirstEnter()//首次初始化分配模塊{printf("內(nèi)存總數(shù)為%d第一次分配從%d開始",total,beginaddress);inti=1;intsize;intgeshu;printf("請輸入要初次調(diào)入內(nèi)存的進程的個數(shù):");

4、scanf("%d",&geshu);while(i<=geshu){printf("請輸入第%d個進程的大?。?,i);scanf("%d",&size);count++;if(count==1){block[count].addr=beginaddress;}else{block[count].addr=block[count-1].addr+block[count-1].size;}block[count].size=size;block[count].flag=1;i++;}count++;block[count].addr=block[cou

5、nt-1].addr+block[count-1].size;block[count].flag=0;block[count].size=total-block[count].addr;}voidjinchengEnter(){//自己編寫,采用首次適應(yīng)算法}voidjinchengExit()//作業(yè)調(diào)出內(nèi)存模塊{intkuaihao;printf("請輸入要調(diào)出內(nèi)存的塊號:");scanf("%d",&kuaihao);if(block[kuaihao].flag==0)printf("該塊內(nèi)存是空閑的,無需調(diào)出");else{//將該塊設(shè)為空

6、閑,就是將該塊的flag設(shè)為0,//還考慮了該塊的下一塊如果是空閑的,則將這兩塊合并為一塊,總塊數(shù)減1//如果要考慮該塊的前一塊是空閑,則將這兩塊合并為一塊,總塊數(shù)減1,如何改代碼?block[kuaihao].flag=0;if(block[kuaihao+1].flag==0){block[kuaihao].size=block[kuaihao].size+block[kuaihao+1].size;for(inti=kuaihao+2;i<=count;i++)block[i-1]=block[i];block[count].size=0;blo

7、ck[count].flag=0;block[count].addr=0;count--;}}display();}voidmain(){intflag=0,select;jinchengFirstEnter();display();while(flag==0){printf("請輸入相應(yīng)操作");printf("1.進程進入內(nèi)存");printf("2.進程退出內(nèi)存");printf("3.顯示當前狀態(tài)");printf("4.退出");printf("請選擇:");scanf("%d",&select);switch(sel

8、ect){case1:jinchengEnter();break;case2:jincheng

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

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

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