操作系統(tǒng)實(shí)驗(yàn)報(bào)告-存儲(chǔ)管理實(shí)驗(yàn)_第1頁(yè)
操作系統(tǒng)實(shí)驗(yàn)報(bào)告-存儲(chǔ)管理實(shí)驗(yàn)_第2頁(yè)
操作系統(tǒng)實(shí)驗(yàn)報(bào)告-存儲(chǔ)管理實(shí)驗(yàn)_第3頁(yè)
操作系統(tǒng)實(shí)驗(yàn)報(bào)告-存儲(chǔ)管理實(shí)驗(yàn)_第4頁(yè)
操作系統(tǒng)實(shí)驗(yàn)報(bào)告-存儲(chǔ)管理實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論