![模擬UNIX系統(tǒng)成組鏈接法實(shí)現(xiàn)磁盤存儲空間的管理_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/b91e2a5c-7d07-4d7d-92cd-c49bdb54ad49/b91e2a5c-7d07-4d7d-92cd-c49bdb54ad491.gif)
![模擬UNIX系統(tǒng)成組鏈接法實(shí)現(xiàn)磁盤存儲空間的管理_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/b91e2a5c-7d07-4d7d-92cd-c49bdb54ad49/b91e2a5c-7d07-4d7d-92cd-c49bdb54ad492.gif)
![模擬UNIX系統(tǒng)成組鏈接法實(shí)現(xiàn)磁盤存儲空間的管理_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/b91e2a5c-7d07-4d7d-92cd-c49bdb54ad49/b91e2a5c-7d07-4d7d-92cd-c49bdb54ad493.gif)
![模擬UNIX系統(tǒng)成組鏈接法實(shí)現(xiàn)磁盤存儲空間的管理_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/b91e2a5c-7d07-4d7d-92cd-c49bdb54ad49/b91e2a5c-7d07-4d7d-92cd-c49bdb54ad494.gif)
![模擬UNIX系統(tǒng)成組鏈接法實(shí)現(xiàn)磁盤存儲空間的管理_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/b91e2a5c-7d07-4d7d-92cd-c49bdb54ad49/b91e2a5c-7d07-4d7d-92cd-c49bdb54ad495.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、要求:模擬UNIX系統(tǒng)的空閑塊成組鏈接法,實(shí)現(xiàn)磁盤存儲空間的管理。提示:(1)假定磁盤存儲空間已被劃分成長度為n的等長塊,共有 M塊可供使用。UNIX系統(tǒng)中采用空閑塊成組鏈接的方法 來管理磁盤存儲空間, 將磁盤中的每 N個空閑塊(N<M)分成一組,最后一組可以不足 N塊, 每組的第一塊中登記了下一組空閑塊的塊數(shù)和塊號,第一組的塊數(shù)和塊號登記在專用塊中,登記的格式如下:0空閑塊數(shù)k1空閑塊號12空閑塊號2MMMMK空閑塊號kMMMM當(dāng)?shù)谝豁?xiàng)內(nèi)容為“0街寸,則第二項(xiàng)起指出的空閑塊是最后一組。(2)現(xiàn)模擬UNIX系統(tǒng)的空閑塊成組鏈接,假定共有8塊可供使用,每3塊為一組,則空閑塊成組鏈接的初始狀
2、態(tài)為:c開始時,空閑 塊號是順序排列的,但經(jīng)若干次的分配和歸還操作后,空閑塊的鏈接就未必按序 排列了。用二維數(shù)組A: array 0 - M-l of array 0門來模擬管理磁盤空間,用Ai表示第I塊,第0塊A0作為專用塊。(3)成組鏈接的分組情況記錄在磁盤物理塊中,為了查找鏈接情況,必須把 它們讀入主存,故當(dāng)磁盤初始化后,系統(tǒng)先將專用塊內(nèi)容復(fù)制到主存中。 定義一 個數(shù)組MAff放專用塊內(nèi)容,即MA: =A0。中請一塊磁盤空間時,查 MA從中 找出空閑塊號,當(dāng)一組的空閑塊只剩第一塊時,則應(yīng)把該塊中指出的下一組的空 閑塊數(shù)和塊號復(fù)制到專用塊中,然后把該塊分配給申請者。當(dāng)一組的空閑塊分配 完后
3、則把專用塊內(nèi)容(下一組鏈接情況)復(fù)制到主存,再為申請者分配。分配算 法如下圖。采用成組鏈接的分配算法(4)歸還一塊時給出歸還的塊號,若當(dāng)前組不滿規(guī)定塊數(shù)時,將歸還塊登記 入該組;若當(dāng)前組已滿,則另建一新組,這時歸還塊作為新一組的第一塊,應(yīng)把 主存中登記的一組鏈接情況 MA復(fù)制到歸還塊中,然后在 MA新登記一個新組 歸還一塊的算法如下圖。采用成組鏈接的回收算法(5)設(shè)計(jì)分配和歸還磁盤空間的程序,能顯示或打印分配的磁盤空間的塊號,在完成一次分配或歸還后能顯示或打印各空閑塊組的情況(各組的空閑塊數(shù) 和塊號)。本實(shí)習(xí)省去了塊號與物理地址之間的轉(zhuǎn)換工作, 而在實(shí)際的系統(tǒng)中必 須進(jìn)行塊號與物理地址的轉(zhuǎn)換工
4、作。(6)運(yùn)行你所設(shè)計(jì)的程序,假定空閑塊鏈接的初始狀態(tài)如提示(2),現(xiàn)先分配4塊,再依次3還第2塊和第6塊。把執(zhí)行后分配到的塊號依次顯示或打印 出來,且顯示或打印空閑塊組的情況。實(shí)驗(yàn)報(bào)告設(shè)計(jì)者日期測試者日期功能描述模才UNIX系統(tǒng)的空閑塊成組鏈接法,實(shí)現(xiàn)磁盤存儲空間的管理。算法描述或流程圖1 .基本思想:首先定義磁盤分配數(shù)組并初始化,9個一維數(shù)組分別表示 9個空閑塊,程序運(yùn)行時,先將專用塊A0復(fù)制到內(nèi)存中,然后進(jìn)行功能選擇,分配時,查MA ,從中找出空閑塊號,當(dāng)一組的空閑塊只剩第一塊時,應(yīng)把該塊中指出的下一組的空閑塊數(shù)和塊號復(fù)制到專用塊這,然后把該塊分配給申請者, 當(dāng)一組的空閑塊分配完后則把專
5、用塊內(nèi)容(下一組鏈接情況)復(fù)制到內(nèi)存,再為申請者分配?;厥諘r,輸入待回收的塊號,查找該塊是否已被分配,若未分配,退出,否則,當(dāng)前組不滿規(guī)定塊數(shù)時,將歸還塊登記入該組,若當(dāng)前組已滿,則另建一新組,這時歸還塊作為新一組的第一塊,應(yīng)把內(nèi)存中登記的一組鏈接情況MA復(fù)制到歸還塊中,然后在 MA這重新登記一個新組。顯示分組情況。2 .程序流程:建立磁盤分配并初始化調(diào)用功能選擇函數(shù)進(jìn)行分配或回收操作。3 .數(shù)據(jù)結(jié)構(gòu)及各子程序(1) int MA4;/*空閑塊數(shù)組 */(2) int A94=3,123,3,4,5,6,0,0,0,0,0,0,0,0,3,0,7,8,0,0,0,0,0,0,0,0,0,0,0
6、,0,0,0,0,0;/*磁盤空間 */(3) int mark9;/*存放已分配的塊*/int No=0;/*已分配的塊數(shù)*/(4) void display():顯示分組情況形參:無返回參數(shù):無;(5) void assign():分配空閑塊形參:無返回參數(shù):無;(6) void callback():回收空閑塊形參:無返回參數(shù):無;(7) void menu():功能選擇函數(shù)形參:無返回參數(shù):無;附:源程序#include<stdio.h>int MA4;/*空閑塊數(shù)組*/int A94=3,123,3,4,5,6,0,0,0,0,0,0,0,0,3,0,7,8,0,0,0,
7、0,0,0,0,0,0,0,0,0,0,0,0,0;/*磁盤空間 */int mark9;/*存放已分配的塊*/int No=0;/*已分配的塊數(shù)*/ void display1() int i,j,temp,count;No=0;if(MA1!=0)i=MA0;printf("ngroup1:");for(j=1;j<=i;j+) printf("%d ",MAj); mark+No=MAj;temp=MA1;count=2;while(Atemp1!=0) printf("ngroup%d:",count);i=Atemp0
8、;for(j=1;j<=i;j+) printf("%d ",Atempj); mark+No=Atempj; count+;temp=Atemp1;printf("ngroup%d:",count);i=Atemp0;for(j=2;j<=i+1;j+)if(Atempj>0) printf("%d ",Atempj); mark+No=Atempj;elsei=MA0;if(i=1)printf("nThe blocks are all assigned"); else printf(&quo
9、t;ngroup1:");for(j=2;j<=i;j+) printf("%d ",MAj);mark+No=MAj;void display() /*顯示分組情況*/ int i,j;if(MA0!=0)display1();elsei=MA1;for(j=0;j<=3;j+) MAj=Aij; display1(); void assign() /* 分配空閑塊 */ int s,i;if(MA0>1)/*若該組不止一個空閑塊 */i=MA0;s=MAi;MA0-;printf("nnumber of the block:%d&q
10、uot;,s);else if(MA0=1)/* 只剩一個空閑塊 */ if(MA1!=0)/*還有其它空閑塊組*/ s=MA1;for(i=0;i<=3;i+)A0i=Asi;MA0-;printf("nnumber of the block:%d",s);else/*沒有其它空閑塊組*/ printf("nThere isn't any space");return;else/*當(dāng)前組已分配完*/ for(i=0;i<=3;i+)MAi=A0i;assign();display。;/*顯示分組情況*/void callback。/
11、* 回收空閑塊 */ int i,j,temp;printf("ninput the No. of the block you want to callback:"); scanf("%d",&j);getchar(); /*得到待回收的空閑塊號*/for(temp=1;temp<=No;temp+) if(marktemp=j) break;if(temp<No+1) /*若該空閑塊已在,退出*/ printf("nThe block is in the disk");return; if(MA0<3)/*
12、當(dāng)前組不滿 3塊*/i=MA0;MAi+1=j;MA0+;else /*已有3塊*/ for(i=0;i<=3;i+)Aji=MAi;MA0=1;MA1=j; display(); /* 顯示 */void menu()/*功能選擇函數(shù)*/ int choice;char judge;printf("ninput your choice:(1-assign,2-callback):");scanf("%d",&choice);getchar();if(choice=1)assign();else if(choice=2)callback。;elseprintf("ninvalid command!");printf("ncontinue or not?(y-Yes,n-Not):"); scanf("%c",&j
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游景區(qū)開發(fā)經(jīng)營權(quán)轉(zhuǎn)讓合同
- 物聯(lián)網(wǎng)技術(shù)在農(nóng)業(yè)智能設(shè)備中的合作協(xié)議
- 城市交通基礎(chǔ)設(shè)施建設(shè)合同
- 廠房施工承包合同
- 別墅工程勞務(wù)承包合同
- 電線電纜項(xiàng)目供貨合同
- 醫(yī)院專業(yè)技術(shù)人員進(jìn)修學(xué)習(xí)協(xié)議書
- 承包建設(shè)房屋合同書
- 電子商務(wù)平臺服務(wù)與商家合作協(xié)議
- 碳排放權(quán)交易主協(xié)議
- 廚房安全知識課件
- 部編版語文四年級下冊第四單元整體教學(xué)設(shè)計(jì)教案
- 2023-2024學(xué)年湖南師大附中高一(下)入學(xué)數(shù)學(xué)試卷(含解析)
- 有色金屬冶金課件
- 公司留人方案
- 乒乓球基礎(chǔ)知識與技巧教案
- 親子教育活動指導(dǎo)課件
- 青島啤酒企業(yè)文化
- 中華民族的形成與發(fā)展(原版)
- 雪鐵龍?jiān)埔軨4說明書
- 《健美操裁判法》課件
評論
0/150
提交評論