![2022年實(shí)驗(yàn)四動(dòng)態(tài)分區(qū)分配方式的模擬答案_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/3/841910d9-3da4-4ea6-acf6-1ca51d388c9f/841910d9-3da4-4ea6-acf6-1ca51d388c9f1.gif)
![2022年實(shí)驗(yàn)四動(dòng)態(tài)分區(qū)分配方式的模擬答案_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/3/841910d9-3da4-4ea6-acf6-1ca51d388c9f/841910d9-3da4-4ea6-acf6-1ca51d388c9f2.gif)
![2022年實(shí)驗(yàn)四動(dòng)態(tài)分區(qū)分配方式的模擬答案_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/3/841910d9-3da4-4ea6-acf6-1ca51d388c9f/841910d9-3da4-4ea6-acf6-1ca51d388c9f3.gif)
![2022年實(shí)驗(yàn)四動(dòng)態(tài)分區(qū)分配方式的模擬答案_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/3/841910d9-3da4-4ea6-acf6-1ca51d388c9f/841910d9-3da4-4ea6-acf6-1ca51d388c9f4.gif)
![2022年實(shí)驗(yàn)四動(dòng)態(tài)分區(qū)分配方式的模擬答案_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/3/841910d9-3da4-4ea6-acf6-1ca51d388c9f/841910d9-3da4-4ea6-acf6-1ca51d388c9f5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選學(xué)習(xí)資料 - - - 歡迎下載動(dòng)態(tài)分區(qū)安排方式的模擬第一部分設(shè)計(jì)思想的說明1設(shè)計(jì)目標(biāo)用 c 語言或 c+語言分別實(shí)現(xiàn)采納首次適應(yīng)算法和正確適應(yīng)算法的動(dòng)態(tài)分區(qū)安排過程alloc和回收過程free;其中,閑暇分區(qū)通過閑暇分區(qū)鏈表來治理,在進(jìn)行內(nèi)存安排時(shí),系統(tǒng)優(yōu)先使用閑暇區(qū)低端空間;預(yù)期結(jié)果:假設(shè)初始狀態(tài)如下,可用的內(nèi)存空間為640kb,并有以下懇求序列:作業(yè)1申請(qǐng)130kb作業(yè)2申請(qǐng)60kb作業(yè)3申請(qǐng)100kb作業(yè)2釋放60kb作業(yè)4申請(qǐng)200kb作業(yè)3釋放100kb作業(yè)1釋放130kb作業(yè)5申請(qǐng)140kb作業(yè)6申請(qǐng)60kb作業(yè)7申請(qǐng)50kb作業(yè)6釋放60kb分別用首次適應(yīng)算法和正確適應(yīng)算法進(jìn)
2、行內(nèi)存塊的安排和回收,同時(shí)顯示內(nèi)存塊安排和回收后閑暇內(nèi)存分區(qū)鏈的情形;2.設(shè)計(jì)理論首次適應(yīng)算法(first-fit) :當(dāng)要安排內(nèi)存空間時(shí),就查表,在各閑暇區(qū)中查找滿意大小要求的可用塊;只要找到第一個(gè)足以滿意要球的閑暇塊就停止查找,并把它安排出去;假如該閑暇空間與所需空間大小一樣,就從閑暇表中取消該項(xiàng);假如仍有剩余, 就余下的部分仍留在閑暇表中,但應(yīng)修改分區(qū)大小和分區(qū)始址;正確適應(yīng)算法(best-fit): 當(dāng)要安排內(nèi)存空間時(shí),就查找閑暇表中滿意要求的閑暇塊,并使得剩余塊為最小的;然后把它安排出去,如大小恰好合適,就直按安排;如有剩余 塊,就仍保留該余下的閑暇分區(qū),并修改分區(qū)大小的起始地址;內(nèi)
3、存回收: 將釋放作業(yè)所在內(nèi)存塊的狀態(tài)改為閑暇狀態(tài),刪除其作業(yè)名,設(shè)置為空;并判定該閑暇塊為否與其他閑暇塊相連,如釋放的內(nèi)存空間與閑暇塊相連時(shí),就合并為同一個(gè)閑暇塊,同時(shí)修改分區(qū)大小及起始地址;精品學(xué)習(xí)資料精選學(xué)習(xí)資料 - - - 歡迎下載其次部分程序清單/*/*動(dòng)態(tài)分區(qū)安排方式的模擬*/*#include<iostream.h>#include<stdlib.h>#define free 0 /閑暇狀態(tài)#define busy 1 /已用狀態(tài)#define ok 1/完成#define error 0 /出錯(cuò)#define max_length 640 /最大內(nèi)存空間為
4、640kb typedef int status;typedef struct freearea/定義一個(gè)閑暇區(qū)說明表結(jié)構(gòu)int id;/分區(qū)號(hào)long size;/分區(qū)大小 long address; /分區(qū)地址 int state;/狀態(tài)elemtype;/-線性表的雙向鏈表儲(chǔ)備結(jié)構(gòu)- typedef struct dulnode /double linked listelemtype data;struct dulnode *prior; /前趨指針struct dulnode *next; /后繼指針dulnode、*dulinklist;dulinklist block_first;
5、 /頭結(jié)點(diǎn)dulinklist block_last; /尾結(jié)點(diǎn)status allocint;/內(nèi)存安排status freeint; /內(nèi)存回收status first_fitint、int;/首次適應(yīng)算法status best_fitint、int; /正確適應(yīng)算法void show;/查看安排status initblock;/開創(chuàng)空間表精品學(xué)習(xí)資料精選學(xué)習(xí)資料 - - - 歡迎下載status initblock/開創(chuàng)帶頭結(jié)點(diǎn)的內(nèi)存空間鏈表block_first=dulinklistmallocsizeofdulnode; block_last=dulinklistmallocsiz
6、eofdulnode; 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 allocint chint i
7、d、request;cout<<" 請(qǐng)輸入作業(yè) 分區(qū)號(hào) :" cin>>id;cout<<" 請(qǐng)輸入需要安排的主存大小 單位 :kb : "cin>>request; ifrequest<0 |request=0cout<<" 安排大小不合適,請(qǐng)重試!"<<endl; return error;ifch=2 /挑選正確適應(yīng)算法ifbest_fitid、request=ok cout<<"安排勝利! "<<endl;
8、 else cout<<"內(nèi)存不足,安排失??!"<<endl;return ok;else /默認(rèn)首次適應(yīng)算法iffirst_fitid、request=ok cout<<"安排勝利! "<<endl; else cout<<"內(nèi)存不足,安排失??!"<<endl;return ok;/-首次適應(yīng)算法-status first_fitint id、int request/傳入作業(yè)名及申請(qǐng)量精品學(xué)習(xí)資料精選學(xué)習(xí)資料 - - - 歡迎下載/ 為申請(qǐng)作業(yè)開創(chuàng)新空間且初始化
9、dulinklist temp=dulinklistmallocsizeofdulnode; temp->data.id=id;temp->data.size=request;temp->data.state=busy;dulnode *p=block_first->next; whilepifp->data.state=free && p->data.size=request/ 有大小恰好合適的閑暇塊p->data.state=busy; p->data.id=id; return ok;break;ifp->data.s
10、tate=free && p->data.size>request/ 有閑暇塊能滿意需求且有剩余" temp->prior=p->prior;temp->next=p;temp->data.address=p->data.address; p->prior->next=temp;p->prior=temp;p->data.address=temp->data.address+temp->data.size; p->data.size-=request;return ok; break;
11、p=p->next;return error;/-正確適應(yīng)算法-status best_fitint id、int requestint ch; /記錄最小剩余空間dulinklist temp=dulinklistmallocsizeofdulnode; temp->data.id=id;temp->data.size=request; temp->data.state=busy; dulnode *p=block_first->next;dulnode *q=null; /記錄正確插入位置whilep /初始化最小空間和正確位置精品學(xué)習(xí)資料精選學(xué)習(xí)資料 - -
12、 - 歡迎下載ifp->data.state=free &&p->data.size>request | p->data.size=request q=p;ch=p->data.size-request; break;p=p->next;whilepifp->data.state=free && p->data.size=request/ 閑暇塊大小恰好合適p->data.id=id;p->data.state=busy; return ok;break;ifp->data.state=free
13、&& p->data.size>request/ 閑暇塊大于安排需求ifp->data.size-request<ch/剩余空間比初值仍小ch=p->data.size-request;/更新剩余最小值q=p;/ 更新正確位置指向p=p->next;ifq=null return error;/沒有找到閑暇塊else/找到了正確位置并實(shí)現(xiàn)安排temp->prior=q->prior; temp->next=q;temp->data.address=q->data.address; q->prior->
14、next=temp;q->prior=temp;q->data.address+=request; q->data.size=ch;return ok;/-主 存 回 收-精品學(xué)習(xí)資料精選學(xué)習(xí)資料 - - - 歡迎下載status freeint iddulnode *p=block_first; whilepifp->data.id=idp->data.state=free; p->data.id=free;ifp->prior->data.state=free/與前面的閑暇塊相連p->prior->data.size+=p->
15、;data.size; p->prior->next=p->next;p->next->prior=p->prior;ifp->next->data.state=free/與后面的閑暇塊相連p->data.size+=p->next->data.size; p->next->next->prior=p;p->next=p->next->next;break;p=p->next;return ok;/-顯示主存安排情形-void showcout<<"+n"
16、cout<<"+主 存 分 配 情 況+n" cout<<"+n"dulnode *p=block_first->next; whilepcout<<" 分 區(qū) 號(hào) : "ifp->data.id=free cout<<"free"<<endl; else cout<<p->data.id<<endl;cout<<" 起始地址: "<<p->data.address
17、<<endl;cout<<" 分區(qū)大?。?"<<p->data.size<<" kb"<<endl;cout<<" 狀態(tài): "ifp->data.state=free cout<<"空閑"<<endl;精品學(xué)習(xí)資料精選學(xué)習(xí)資料 - - - 歡迎下載else cout<<"已安排 "<<endl;cout<<" "<<end
18、l;p=p->next;/-主函數(shù)-void mainint ch;/算法挑選標(biāo)記cout<<"動(dòng)態(tài)分區(qū)安排方式的模擬n" cout<<"*n"cout<<"* 1首次適應(yīng)算法2正確適應(yīng)算法*n"cout<<"*n"cout<<" 請(qǐng)?zhí)暨x安排算法:" cin>>ch;initblock; /開創(chuàng)空間表 int choice; /操作挑選標(biāo)記 while1cout<<"*n"cout<<"*1:安排內(nèi)存2:回收內(nèi)存*n" cout<<"*3:查看安排0:退出*n"cout<<"*n"cout&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- DB35T 2238-2024養(yǎng)殖海帶碳匯評(píng)估技術(shù)規(guī)程
- 互利共贏產(chǎn)品供需合同
- 個(gè)人承包綠化工程合同樣本
- 交通設(shè)施工程合同
- 臨街店鋪轉(zhuǎn)租合同范例
- 二手貨車銷售合同標(biāo)準(zhǔn)格式
- 個(gè)人房屋買賣合同標(biāo)準(zhǔn)范本
- 個(gè)人住房抵押消費(fèi)貸款:合同期限有哪些變化
- 上海市國(guó)際物流服務(wù)合同標(biāo)準(zhǔn)模板
- 個(gè)人融資合同標(biāo)準(zhǔn)格式樣本
- 2025河北邯鄲世紀(jì)建設(shè)投資集團(tuán)招聘專業(yè)技術(shù)人才30人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 慈溪高一期末數(shù)學(xué)試卷
- 《基于新課程標(biāo)準(zhǔn)的初中數(shù)學(xué)課堂教學(xué)評(píng)價(jià)研究》
- 貴州省黔東南州2024年七年級(jí)上學(xué)期數(shù)學(xué)期末考試試卷【附答案】
- 醫(yī)院廉潔自律承諾書
- 胚胎移植術(shù)前術(shù)后護(hù)理
- 企業(yè)招聘技巧培訓(xùn)
- 學(xué)校校本課程《英文電影鑒賞》文本
- 中考語文句子排序練習(xí)題(文本版)
- 華為HCSA-Presales-IT售前認(rèn)證備考試題及答案
- 預(yù)算績(jī)效評(píng)價(jià)管理機(jī)構(gòu)入圍投標(biāo)文件(技術(shù)方案)
評(píng)論
0/150
提交評(píng)論