




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、要求:模擬UNIX系統(tǒng)的空閑塊成組鏈接法,實現(xiàn)磁盤存儲空間的管理。提示:(1) 假定磁盤存儲空間已被劃分成長度為n的等長塊,共有M塊可供使用。UNIX系統(tǒng)中采用空閑塊成組鏈接的方法 來管理磁盤存儲空間,將磁盤中的每N個空閑塊(NM)分成一組,最后一組可以不足N塊,每組的第一塊中登記了下一組空閑塊的塊數(shù)和塊號,第一組的塊數(shù)和塊號登記在專用塊中,登記的格式如下:0空閑塊數(shù)k1空閑塊號12空閑塊號2MMMMK空閑塊號kMMMM當?shù)谝豁梼?nèi)容為“0”時,則第二項起指出的空閑塊是最后一組。(2) 現(xiàn)模擬UNIX系統(tǒng)的空閑塊成組鏈接,假定共有8塊可供使用,每3塊為一組,則空閑塊成組鏈接的初始狀態(tài)為:開始時,
2、空閑塊號是順序排列的,但經(jīng)若干次的分配和歸還操作后,空閑塊的鏈接就未必按序排列了。用二維數(shù)組A:array 0M-1 of array 0n-1來模擬管理磁盤空間,用Ai表示第I塊,第0塊A0作為專用塊。(3) 成組鏈接的分組情況記錄在磁盤物理塊中,為了查找鏈接情況,必須把它們讀入主存,故當磁盤初始化后,系統(tǒng)先將專用塊內(nèi)容復(fù)制到主存中。定義一個數(shù)組MA存放專用塊內(nèi)容,即MA: =A0。申請一塊磁盤空間時,查MA,從中找出空閑塊號,當一組的空閑塊只剩第一塊時,則應(yīng)把該塊中指出的下一組的空閑塊數(shù)和塊號復(fù)制到專用塊中,然后把該塊分配給申請者。當一組的空閑塊分配完后則把專用塊內(nèi)容(下一組鏈接情況)復(fù)制
3、到主存,再為申請者分配。分配算法如下圖。 采用成組鏈接的分配算法(4) 歸還一塊時給出歸還的塊號,若當前組不滿規(guī)定塊數(shù)時,將歸還塊登記入該組;若當前組已滿,則另建一新組,這時歸還塊作為新一組的第一塊,應(yīng)把主存中登記的一組鏈接情況MA復(fù)制到歸還塊中,然后在MA重新登記一個新組。歸還一塊的算法如下圖。 采用成組鏈接的回收算法(5) 設(shè)計分配和歸還磁盤空間的程序,能顯示或打印分配的磁盤空間的塊號,在完成一次分配或歸還后能顯示或打印各空閑塊組的情況(各組的空閑塊數(shù)和塊號)。本實習省去了塊號與物理地址之間的轉(zhuǎn)換工作,而在實際的系統(tǒng)中必須進行塊號與物理地址的轉(zhuǎn)換工作。(6) 運行你所設(shè)計的程序,假定空閑塊
4、鏈接的初始狀態(tài)如提示(2),現(xiàn)先分配4塊,再依次歸還第2塊和第6塊。把執(zhí)行后分配到的塊號依次顯示或打印出來,且顯示或打印空閑塊組的情況。實驗報告設(shè)計者日期測試者日期功能描述模擬UNIX系統(tǒng)的空閑塊成組鏈接法,實現(xiàn)磁盤存儲空間的管理。算法描述或流程圖1. 基本思想: 首先定義磁盤分配數(shù)組并初始化,9個一維數(shù)組分別表示9個空閑塊,程序運行時,先將專用塊A0復(fù)制到內(nèi)存中,然后進行功能選擇,分配時,查MA,從中找出空閑塊號,當一組的空閑塊只剩第一塊時,應(yīng)把該塊中指出的下一組的空閑塊數(shù)和塊號復(fù)制到專用塊這,然后把該塊分配給申請者,當一組的空閑塊分配完后則把專用塊內(nèi)容(下一組鏈接情況)復(fù)制到內(nèi)存,再為申請
5、者分配。 回收時,輸入待回收的塊號,查找該塊是否已被分配,若未分配,退出,否則,當前組不滿規(guī)定塊數(shù)時,將歸還塊登記入該組,若當前組已滿,則另建一新組,這時歸還塊作為新一組的第一塊,應(yīng)把內(nèi)存中登記的一組鏈接情況MA復(fù)制到歸還塊中,然后在MA這重新登記一個新組。顯示分組情況。 2. 程序流程: 建立磁盤分配并初始化 調(diào)用功能選擇函數(shù)進行分配或回收操作。3. 數(shù)據(jù)結(jié)構(gòu)及各子程序(1)int MA4; /*空閑塊數(shù)組*/(2)int A94=3,1,2,3,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,0,0,0,0,0; /*磁盤空間*
6、/(3)int mark9; /*存放已分配的塊*/int No=0; /*已分配的塊數(shù)*/(4)void display( ):顯示分組情況 形參:無 返回參數(shù):無;(5)void assign( ):分配空閑塊 形參:無 返回參數(shù):無;(6)void callback( ):回收空閑塊 形參:無 返回參數(shù):無;(7)void menu( ):功能選擇函數(shù) 形參:無 返回參數(shù):無;附:源程序#includeint MA4; /*空閑塊數(shù)組*/int A94=3,1,2,3,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,0,0,0
7、,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; for(j=1;j=i;j+) printf(%d ,Atempj); mark+No=Atemp
8、j; count+; temp=Atemp1; printf(ngroup%d:,count); i=Atemp0; for(j=2;j0) printf(%d ,Atempj); mark+No=Atempj; else i=MA0; if(i=1) printf(nThe blocks are all assigned); else printf(ngroup1:); for(j=2;j=i;j+) printf(%d ,MAj); mark+No=MAj; void display() /*顯示分組情況*/ int i,j; if(MA0!=0) display1(); else i=M
9、A1; for(j=0;j1) /*若該組不止一個空閑塊*/ i=MA0; s=MAi; MA0-; printf(nnumber of the block:%d,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 isnt any space); return; else /*當前組已分配完*/ for(i=0;i=3;i+)
10、MAi=A0i; assign(); display(); /*顯示分組情況*/ void callback() /*回收空閑塊*/ 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(tempNo+1) /*若該空閑塊已在,退出*/ printf(nThe block is in the disk); return; i
11、f(MA03) /*當前組不滿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(); else printf(ninvalid command!); printf(ncontinue or not?(y-Yes,n-Not):); scanf(%c,&judg
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆河南省三門峽市化學高一下期末復(fù)習檢測模擬試題含解析
- 內(nèi)蒙古自治區(qū)赤峰市2025年高二化學第二學期期末綜合測試模擬試題含解析
- 桐柏危房排查管理辦法
- 杭州電子印章管理辦法
- 材料命名規(guī)則管理辦法
- 村級廁所后期管理辦法
- 填料技術(shù)創(chuàng)新方向-洞察及研究
- 醫(yī)保應(yīng)急賬戶管理辦法
- 廢舊鋰離子電池回收處理綜合利用項目的環(huán)境保護評估報告
- 河源住房維修管理辦法
- 跨學科實踐調(diào)研橋梁建筑中的力平衡-滬科版物理八年級下冊教學課件
- 鋼筋工培訓(xùn)課件
- 2025年福建信息職業(yè)技術(shù)學院高職單招語文2019-2024歷年真題考點試卷含答案解析
- (高清版)DB11∕T2274-2024水務(wù)工程施工現(xiàn)場安全生產(chǎn)管理導(dǎo)則
- ISO 37001-2025 反賄賂管理體系要求及使用指南(中文版-雷澤佳譯-2025)
- GB/T 45133-2025氣體分析混合氣體組成的測定基于單點和兩點校準的比較法
- 2025年1月國家開放大學行管專科《行政組織學》期末紙質(zhì)考試試題及答案
- 《種衣劑知識培訓(xùn)》課件
- 人教版八年級英語上冊 Unit 2 Section A 教案(同步教學設(shè)計)
- 臨床輸血護理指南
- 2025年中遠海運集團招聘筆試參考題庫含答案解析
評論
0/150
提交評論