版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
操作系統(tǒng)實(shí)驗(yàn)—?jiǎng)討B(tài)分區(qū)分配算法操作系統(tǒng)實(shí)驗(yàn)—?jiǎng)討B(tài)分區(qū)分配算法操作系統(tǒng)實(shí)驗(yàn)—?jiǎng)討B(tài)分區(qū)分配算法操作系統(tǒng)實(shí)驗(yàn)—?jiǎng)討B(tài)分區(qū)分配算法編制僅供參考審核批準(zhǔn)生效日期地址:電話:傳真:郵編:操作系統(tǒng)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)2動(dòng)態(tài)分區(qū)分配算法報(bào)告日期:2016-6-15姓名:學(xué)號(hào):班級(jí):任課教師:實(shí)驗(yàn)2動(dòng)態(tài)分區(qū)分配算法一、實(shí)驗(yàn)內(nèi)容編寫一個(gè)內(nèi)存動(dòng)態(tài)分區(qū)分配模擬程序,模擬內(nèi)存的分配和回收的完整過程。二、實(shí)驗(yàn)?zāi)康囊粋€(gè)好的計(jì)算機(jī)系統(tǒng)不僅要有一個(gè)足夠容量的、存取速度高的、穩(wěn)定可靠的主存儲(chǔ)器,而且要能合理地分配和使用這些存儲(chǔ)空間。當(dāng)用戶提出申請(qǐng)存儲(chǔ)器空間時(shí),存儲(chǔ)管理必須根據(jù)申請(qǐng)者的要求,按一定的策略分析主存空間的使用情況,找出足夠的空閑區(qū)域分配給申請(qǐng)者。當(dāng)作業(yè)撤離或主動(dòng)歸還主存資源時(shí),則存儲(chǔ)管理要收回作業(yè)占用的主存空間或歸還部分主存空間。主存的分配和回收的實(shí)現(xiàn)與主存儲(chǔ)器的管理方式有關(guān)的,通過本實(shí)驗(yàn)幫助學(xué)生理解在可變分區(qū)管理方式下應(yīng)怎樣實(shí)現(xiàn)主存空間的分配和回收。三、實(shí)驗(yàn)原理模擬在可變分區(qū)管理方式下采用最先適應(yīng)算法實(shí)現(xiàn)主存分配和回收。(1)可變分區(qū)方式是按作業(yè)需要的主存空間大小來分割分區(qū)的。當(dāng)要裝入一個(gè)作業(yè)時(shí),根據(jù)作業(yè)需要的主存量查看是否有足夠的空閑空間,若有,則按需要量分割一個(gè)分區(qū)分配給該作業(yè);若無,則作業(yè)不能裝入。隨著作業(yè)的裝入、撤離,主存空間被分成許多個(gè)分區(qū),有的分區(qū)被作業(yè)占用,而有的分區(qū)是空閑的。例如:05k05k10k14k26k32k512k作業(yè)1作業(yè)3空閑區(qū)作業(yè)2空閑區(qū)為了說明哪些區(qū)是空閑的,可以用來裝入新作業(yè),必須要有一張空閑區(qū)說明表,格式如下:起址長(zhǎng)度狀態(tài)第一欄14K12K未分配第二欄32K96K未分配MMMM其中,起址——指出一個(gè)空閑區(qū)的主存起始地址。長(zhǎng)度——指出從起始地址開始的一個(gè)連續(xù)空閑的長(zhǎng)度。狀態(tài)——有兩種狀態(tài),一種是“未分配”狀態(tài),指出對(duì)應(yīng)的由起址指出的某個(gè)長(zhǎng)度的區(qū)域是空閑區(qū)。(2)當(dāng)有一個(gè)新作業(yè)要求裝入主存時(shí),必須查空閑區(qū)說明表,從中找出一個(gè)足夠大的空閑區(qū)。有時(shí)找到的空閑區(qū)可能大于作業(yè)需要量,這時(shí)應(yīng)把原來的空閑區(qū)變成兩部分:一部分分給作業(yè)占用;另一部分又成為一個(gè)較小的空閑區(qū)。為了盡量減少由于分割造成的空閑區(qū),而盡量保存高地址部分有較大的連續(xù)空閑區(qū)域,以利于大型作業(yè)的裝入。為此,在空閑區(qū)說明表中,把每個(gè)空閑區(qū)按其地址順序登記,即每個(gè)后繼的空閑區(qū)其起始地址總是比前者大。(3)采用最先適應(yīng)算法(順序分配算法)分配主存空間。按照作業(yè)的需要量,查空閑區(qū)說明表,順序查看登記欄,找到第一個(gè)能滿足要求的空閑區(qū)。當(dāng)空閑區(qū)大于需要量時(shí),一部分用來裝入作業(yè),另一部分仍為空閑區(qū)登記在空閑區(qū)說明表中。由于本實(shí)驗(yàn)是模擬主存的分配,所以把主存區(qū)分配給作業(yè)后并不實(shí)際啟動(dòng)裝入程序裝入作業(yè),而用輸出“分配情況”來代替。(4)當(dāng)一個(gè)作業(yè)執(zhí)行結(jié)束撤離時(shí),作業(yè)所占的區(qū)域應(yīng)該歸還,歸還的區(qū)域如果與其它空閑區(qū)相鄰,則應(yīng)合成一個(gè)較大的空閑區(qū),登記在空閑區(qū)說明表中。(5)請(qǐng)按最先適應(yīng)算法設(shè)計(jì)主存分配和回收的程序。假設(shè)初始時(shí)主存中沒有作業(yè),現(xiàn)按下面序列進(jìn)行內(nèi)存的申請(qǐng)與釋放:作業(yè)1申請(qǐng)300K,作業(yè)2申請(qǐng)100K,作業(yè)1釋放300K,作業(yè)3申請(qǐng)150K,作業(yè)4申請(qǐng)30K,作業(yè)5申請(qǐng)40K,作業(yè)6申請(qǐng)60K,作業(yè)4釋放30K。請(qǐng)你為它們進(jìn)行主存分配和回收,把空閑區(qū)說明表的初值以及每次分配或回收后的變化顯示出來或打印出來。四、實(shí)驗(yàn)報(bào)告1.畫出算法流程圖。2.源代碼#define_CRT_SECURE_NO_WARNINGS1#include<>#include<>#include<>#include<>#defineN10000intn1;tart-(*(structkongxian*)b).start;}intcmp2(constvoid*a,constvoid*b){ return(*(structzuoye*)a).start-(*(structzuoye*)b).start;}voidinit(){ n1=1;tart=0; kongxian[0].end=511; kongxian[0].length=512;}voidprint1()tart,kongxian[i].end,kongxian[i].length);}voidprint2()tart,zuoye[i].end,zuoye[i].length);}intmain(){ inti,j,t,len,flag,id; intfront,middle,behind; intt1,t2; init(); print1(); printf("輸入1裝入新作業(yè),輸入0回收作業(yè),輸入-1結(jié)束\n"); while(scanf("%d",&t)!=EOF) { if(t==1)ength>=len)tart=kongxian[i].start; zuoye[n2].end=zuoye[n2].start+len; zuoye[n2].length=len; n2++;ength==len)tart=kongxian[j+1].start; kongxian[j].end=kongxian[j+1].end; kongxian[j].length=kongxian[j+1].length; } n1--; } elsetart+=len; kongxian[i].length-=len; } } } elseif(t==0) { printf("輸入要回收的作業(yè)ID"); scanf("%d",&id); front=middle=behind=0; for(i=0;i<n1;i++) { if(kongxian[i].start>zuoye[id].end) break; if(kongxian[i].end==zuoye[id].start)tart==zuoye[id].end)tart=zuoye[id].start; kongxian[n1].end=zuoye[id].end; kongxian[n1].length=zuoye[id].length; n1++;tart=zuoye[j+1].start; zuoye[j].end=zuoye[j+1].end; zuoye[j].length=zuoye[j+1].length; } n2--; } if(front&&behind)nd+=zuoye[id].length; kongxian[t1].length+=zuoye[id].length; for(j=id;j<n2-1;j++)tart=zuoye[j+1].start; zuoye[j].end=zuoye[j+1].end; zuoye[j].length=zuoye[j+1].length; } n2--; } if(middle)nd=kongxian[t2].end; kongxian[t1].length+=(zuoye[id].length+kongxian[t2].length); tart=kongxian[j+1].start; kongxian[j].end=kongxian[j+1].end; kongxian[j].length=kongxian[j+1].length; } n1--; for(j=id;j<n2-1;j++)tart=zuoye[j+1].start; zuoye[j].end=zuoye[j+1].end; zuoye[j].length=zuoye[j+1].length; } n2--; } if(behind&&!middle)tart-=zuoye[id].length; kongxian[t2].length+=zuoye[id].length; for(j=id;j<n2-1;j++)tart=zuoye[j+1].start; zuoye[j].end=zuoye[j+1].end; zuoye[j].length=zuoye[j+1].length; } n2--; } } else { printf("操作結(jié)束\n"); break; } print1(); print2(); } return0;}3.程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度物流倉(cāng)儲(chǔ)承包經(jīng)營(yíng)合同賠償與供應(yīng)鏈管理協(xié)議2篇
- 二零二五版德國(guó)高校博士教師招聘及雇傭服務(wù)合同3篇
- 二零二五年度租賃代理風(fēng)險(xiǎn)控制合同3篇
- 個(gè)人發(fā)起離婚合同書標(biāo)準(zhǔn)模板版B版
- 2024年飛躍:專業(yè)電競(jìng)團(tuán)隊(duì)贊助協(xié)議3篇
- 個(gè)性化汽車抵押貸款協(xié)議樣本(2024版)
- 2024年跨平臺(tái)整合傳播服務(wù)協(xié)議3篇
- 2024版體育賽事代理執(zhí)行合同樣本3篇
- 二零二五年新型環(huán)保建材生產(chǎn)與建筑廢棄物回收合同3篇
- 西南財(cái)經(jīng)大學(xué)天府學(xué)院《半導(dǎo)體芯片技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年長(zhǎng)沙市中考數(shù)學(xué)真題試卷及答案
- SY-T 5333-2023 鉆井工程設(shè)計(jì)規(guī)范
- 蔣詩(shī)萌小品《誰殺死了周日》臺(tái)詞完整版
- TB 10010-2008 鐵路給水排水設(shè)計(jì)規(guī)范
- 黑色素的合成與美白產(chǎn)品的研究進(jìn)展
- 建筑史智慧樹知到期末考試答案2024年
- 金蓉顆粒-臨床用藥解讀
- 社區(qū)健康服務(wù)與管理教案
- 2023-2024年家政服務(wù)員職業(yè)技能培訓(xùn)考試題庫(kù)(含答案)
- 2023年(中級(jí))電工職業(yè)技能鑒定考試題庫(kù)(必刷500題)
- 藏歷新年文化活動(dòng)的工作方案
評(píng)論
0/150
提交評(píng)論