




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
存儲(chǔ)管理實(shí)驗(yàn)一.實(shí)驗(yàn)?zāi)康募耙螅和ㄟ^(guò)編寫(xiě)和調(diào)試存儲(chǔ)管理的模擬程序以加深對(duì)存儲(chǔ)管理方案的理解。熟悉虛存管理的各種頁(yè)面淘汰算法。通過(guò)編寫(xiě)和調(diào)試地址轉(zhuǎn)換過(guò)程的模擬程序以加強(qiáng)對(duì)地址轉(zhuǎn)換過(guò)程的了解。二.實(shí)驗(yàn)環(huán)境:操作系統(tǒng):WindowsXP編譯環(huán)境:VisualC++6.0三.算法描述由于在單道批處理系統(tǒng)中,作業(yè)一投入運(yùn)行,它就占有計(jì)算機(jī)的一切資源直到作業(yè)完成為止,因此調(diào)度作業(yè)時(shí)不必考慮它所需要的資源是否得到滿(mǎn)足,它所占用的CPU時(shí)限等因素。作業(yè)調(diào)度算法:采用先來(lái)先服務(wù)(FCFS)調(diào)度算法,即按作業(yè)提交的先后次序進(jìn)行調(diào)度??偸鞘紫日{(diào)度在系統(tǒng)中等待時(shí)間最長(zhǎng)的作業(yè)。每個(gè)作業(yè)由一個(gè)作業(yè)控制塊JCB表示,JCB可以包含如下信息:作業(yè)名、提交時(shí)間、所需的運(yùn)行時(shí)間、所需的資源、作業(yè)狀態(tài)、鏈指針等等。作業(yè)的狀態(tài)可以是等待W(Wait)、運(yùn)行R(Run)和完成F(Finish)三種狀態(tài)之一。每個(gè)作業(yè)的最初狀態(tài)總是等待W。各個(gè)等待的作業(yè)按照提交時(shí)刻的先后次序排隊(duì),總是首先調(diào)度等待隊(duì)列中隊(duì)首的作業(yè)。每個(gè)作業(yè)完成后要打印該作業(yè)的開(kāi)始運(yùn)行時(shí)刻、完成時(shí)刻、周轉(zhuǎn)時(shí)間和帶權(quán)周轉(zhuǎn)時(shí)間,這一組作業(yè)完成后要計(jì)算并打印這組作業(yè)的平均周轉(zhuǎn)時(shí)間、帶權(quán)平均周轉(zhuǎn)時(shí)間。四.實(shí)驗(yàn)步驟:核心源碼:voidacceptment2(RECT*head,RECT*back1){RECT*before,*after;intinsert;insert=0;before=head;after=head->next;if(head->next==NULL)/*如果可利用區(qū)表為空*/{head->size=back1->size;head->next=back1;maxblocknum++;back1->next=NULL;}else{while(after!=NULL)/*與上一塊合并*/if(back1->address==after->size+after->address){before->next=after->next;back->size=after->size+back1->size;free(after);after=NULL;}else{after=after->next;before=before->next;}before=head;after=head->next;while(after!=NULL)if(after->address==back1->size+back1->address)/*與下一塊合并*/{back1->size=back1->size+after->size;before->next=after->next;free(after);after=NULL;}else{before=before->next;after=after->next;}before=head;/*將回收結(jié)點(diǎn)插入到合適的位置*/after=head->next;do{if(after==NULL||(after->size>back1->size)){before->next=back1;back1->next=after;insert=1;}else{before=before->next;after=after->next;}}while(!insert);if(head->size<back1->size)/*修改最大塊值和最大塊數(shù)*/{head->size=back1->size;maxblocknum++;}elseif(head->size==back1->size)maxblocknum++;}}/*分配函數(shù)*/RECT*assignment(RECT*head,intapplication){RECT*after,*before,*assign;assign=(RECT*)malloc(sizeof(RECT));/*分配申請(qǐng)空間*/assign->size=application;assign->next=NULL;if(application>head->size||application<=0)assign->address=-1;/*申請(qǐng)無(wú)效*/else{before=head;after=head->next;while(after->size<application)/*查找適應(yīng)的結(jié)點(diǎn)*/{before=before->next;after=after->next;}if(after->size==application)/*結(jié)點(diǎn)大小等于申請(qǐng)大小則完全分配*/{if(after->size==head->size)maxblocknum--;before->next=after->next;assign->address=after->address;free(after);}else{if(after->size==head->size)maxblocknum--;after->size=after->size-application;/*大于申請(qǐng)空間則截取相應(yīng)大小分配*/assign->address=after->address+after->size;if(tolower(way)=='b')/*如果是最佳適應(yīng),將截取后剩余結(jié)點(diǎn)重新回收到合適位置*/{before->next=after->next;back=after;acceptment2(head,back);}}if(maxblocknum==0)/*修改最大數(shù)和頭結(jié)點(diǎn)值*/{before=head;head->size=0;maxblocknum=1;while(before!=NULL){if(before->size>head->size){head->size=before->size;maxblocknum=1;}elseif(before->size==head->size)maxblocknum++;before=before->next;}}}assign1=assign;returnassign1;/*返回分配給用戶(hù)的地址*/}voidacceptment1(RECT*head,RECT*back1)/*首先適應(yīng)*/{RECT*before,*after;intinsert;before=head;after=head->next;insert=0;while(!insert)/*將回收區(qū)插入空閑區(qū)表*/{if((after==NULL)||((back1->address<=after->address)&&(back1->address>=before->address))){before->next=back1;back1->next=after;insert=1;}else{before=before->next;after=after->next;}}if(back1->address==before->address+before->size)/*與上一塊合并*/{before->size=before->size+back1->size;before->next=back1->next;free(back1);back1=before;}if(after!=NULL&&(after->address==back1->address+back1->size)){/*與下一塊合并*/back1->size=back1->size+after->size;back1->next=after->next;free(after);}if(head->size<back1->size)/*修改最大塊值和最大塊個(gè)數(shù)*/{head->size=back1->size;maxblocknum=1;}elseif(head->size==back1->size)maxblocknum++;}/*檢查回收塊的合法性,back1為要回收的結(jié)點(diǎn)地址*/intbackcheck(RECT*head,RECT*back1){RECT*before,*after;intcheck=1;if(back1->address<0||back1->size<0)check=0;/*地址和大小不能為負(fù)*/before=head->next;while((before!=NULL)&&check)/*地址不能和空閑區(qū)表中結(jié)點(diǎn)出現(xiàn)重疊*/if(((back1->address<before->address)&&(back1->address+back1->size>before->address))
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 湄洲灣職業(yè)技術(shù)學(xué)院《中醫(yī)文化傳播》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東舞蹈戲劇職業(yè)學(xué)院《演出經(jīng)營(yíng)與管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖北工業(yè)職業(yè)技術(shù)學(xué)院《工程力學(xué)(Ⅱ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西省忻州市忻府區(qū)2024-2025學(xué)年數(shù)學(xué)五下期末達(dá)標(biāo)測(cè)試試題含答案
- 湖南現(xiàn)代物流職業(yè)技術(shù)學(xué)院《現(xiàn)代漢語(yǔ)詞匯研究A》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海電機(jī)學(xué)院《公共藝術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 公共交通車(chē)輛檢測(cè)評(píng)估制度
- 第9課 遼、西夏與北宋并立 教案2024-2025學(xué)年七年級(jí)歷史下冊(cè)新課標(biāo)
- 寶娜美容會(huì)所客戶(hù)滿(mǎn)意度調(diào)查
- 木本炭泥施工方案
- 施工方案-15、建筑垃圾外運(yùn)施工方案
- 護(hù)理美學(xué)-第六章 護(hù)士的儀態(tài)美
- 2024年全國(guó)公共營(yíng)養(yǎng)師之三級(jí)營(yíng)養(yǎng)師考試重點(diǎn)試題(附答案)
- 管道工(三級(jí))高級(jí)工題庫(kù)(電子題庫(kù))附有答案
- 小學(xué)預(yù)防性侵害主題班會(huì)
- DZ∕T 0080-2010 煤炭地球物理測(cè)井規(guī)范(正式版)
- 《微波法原油含水率在線(xiàn)檢測(cè)儀》
- 第1課 立足時(shí)代 志存高遠(yuǎn) (課件+視頻)- 【中職專(zhuān)用】高一思想政治《心理健康與職業(yè)生涯》(高教版2023·基礎(chǔ)模塊)
- 19S406建筑排水管道安裝-塑料管道
- MOOC 人工智能基礎(chǔ)-國(guó)防科技大學(xué) 中國(guó)大學(xué)慕課答案
- 裝配式建筑預(yù)制構(gòu)件安裝-水平構(gòu)件安裝技術(shù)
評(píng)論
0/150
提交評(píng)論