




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、中北大學(xué)操作系統(tǒng)課程設(shè)計說 明 書 學(xué) 院、系:軟件學(xué)院專 業(yè):軟件工程學(xué) 生 姓 名:xxx學(xué) 號:設(shè) 計 題 目:磁盤存儲空間管理的算法模擬 起 迄 日 期:指 導(dǎo) 教 師:xxx 1.需求分析本設(shè)計題目主要熟悉磁盤空間的管理,實(shí)現(xiàn)磁盤空間的分配和回收操作。通過本次設(shè)計,幫助我們理解在磁盤中的分配方法,以及如何充分有效地利用磁盤空間,使我們初步具有研究、設(shè)計、編制和調(diào)試操作系統(tǒng)模塊的能力。在這次實(shí)驗(yàn)中我所負(fù)責(zé)的設(shè)計內(nèi)容是:采用空白塊成組鏈接結(jié)構(gòu)實(shí)現(xiàn)磁盤空間的分配和回收,基本要求有兩點(diǎn)分別是:(1) 具有創(chuàng)建文件、空間分配、刪除文件、釋放空間等基本功能;(2
2、) 把個文件目錄、磁盤空間管理的數(shù)據(jù)結(jié)構(gòu)變化情況顯示出來。最后,在linux系統(tǒng)中,實(shí)現(xiàn)了采用空白塊成組鏈接結(jié)構(gòu)實(shí)現(xiàn)磁盤空間的分配和回收。2.總體設(shè)計磁盤空間回收的流程磁盤空間分配的流程整個程序分為兩個模塊,分別是分配和回收。(1)分配時,查MA,從中找出空閑塊號,當(dāng)一組的空閑塊只剩第一塊時,應(yīng)把該塊中指出的下一組的空閑塊數(shù)和塊號復(fù)制到專用塊這,然后把該塊分配給申請者,當(dāng)一組的空閑塊分配完后則把專用塊內(nèi)容(下一組鏈接情況)復(fù)制到內(nèi)存,再為申請者分配。 (2)回收時,輸入待回收的塊號,查找該塊是否已被分配,若未分配,退出,否則,當(dāng)前組不滿規(guī)定塊數(shù)時,將歸還塊登記入該組,若當(dāng)前組已滿,
3、則另建一新組,這時歸還塊作為新一組的第一塊,應(yīng)把內(nèi)存中登記的一組鏈接情況MA復(fù)制到歸還塊中,然后在MA這重新登記一個新組。顯示分組情況。3詳細(xì)設(shè)計(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)的空閑塊成
4、組鏈接,假定共有8塊可供使用,每3塊為一組,則空閑塊成組鏈接的初始狀態(tài)為:開始時,空閑塊號是順序排列的,但經(jīng)若干次的分配和歸還操作后,空閑塊的鏈接就未必按序排列了。用二維數(shù)組A:array 0M-1 of array 0n-1來模擬管理磁盤空間,用Ai表示第I塊,第0塊A0作為專用塊。(3) 成組鏈接的分組情況記錄在磁盤物理塊中,為了查找鏈接情況,必須把它們讀入主存,故當(dāng)磁盤初始化后,系統(tǒng)先將專用塊內(nèi)容復(fù)制到主存中。定義一個數(shù)組MA存放專用塊內(nèi)容,即MA: =A0。申請一塊磁盤空間時,查MA,從中找出空閑塊號,當(dāng)一組的空閑塊只剩第一塊時,則應(yīng)把該塊中指出的下一組的空閑塊數(shù)和塊號復(fù)制到專用塊中,
5、然后把該塊分配給申請者。當(dāng)一組的空閑塊分配完后則把專用塊內(nèi)容(下一組鏈接情況)復(fù)制到主存,再為申請者分配。分配算法如圖6-1。圖6-1 采用成組鏈接的分配算法(4) 歸還一塊時給出歸還的塊號,叵當(dāng)前組不滿規(guī)定塊數(shù)時,將歸還塊登記入該組;若當(dāng)前組已滿,則另建一新組,這時歸還塊作為新一組的第一塊,應(yīng)把主存中登記的一組鏈接情況MA復(fù)制到歸還塊中,然后在MA重新登記一個新組。歸還一塊的算法如圖6-2。圖6-2 采用成組鏈接的回收算法(5) 設(shè)計分配和歸還磁盤空間的程序,能顯示或打印分配的磁盤空間的塊號,在完成一次分配或歸還后能顯示或打印各空閑塊組的情況(各組的空閑塊數(shù)和塊號)。本實(shí)習(xí)省去了塊號與物理地
6、址之間的轉(zhuǎn)換工作,而在實(shí)際的系統(tǒng)中必須進(jìn)行塊號與物理地址的轉(zhuǎn)換工作。(6) 運(yùn)行你所設(shè)計的程序,假定空閑塊鏈接的初始狀態(tài)如提示(2),現(xiàn)先分配4塊,再依次歸還第2塊和第6塊。把執(zhí)行后分配到的塊號依次顯示或打印出來,且顯示或打印空閑塊組的情況。在上次執(zhí)行的基礎(chǔ)上繼續(xù)分配3塊,然后歸還第1塊,再申請5塊,顯示或打印依次分配到的塊號及空閑塊組情況。4. 代碼#include<stdio.h>int 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,0,0;
7、/*磁盤空間*/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
8、;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; else i=MA0; if(i=1) printf("n所有的塊分配"); else printf("ngroup1:"); for(j=2;j
9、<=i;j+) printf("%d ",MAj); mark+No=MAj; void display() /*顯示分組情況*/ int i,j; if(MA0!=0) display1(); else i=MA1; for(j=0;j<=3;j+) MAj=Aij; display1(); void assign() /*分配空閑塊*/ int s,i; if(MA0>1) /*若該組不止一個空閑塊*/ i=MA0; s=MAi; MA0-; printf("n空閑塊的塊數(shù):%d",s); else if(MA0=1) /*只剩一個
10、空閑塊*/ if(MA1!=0) /*還有其它空閑塊組*/ s=MA1; for(i=0;i<=3;i+) A0i=Asi; MA0-; printf("n空閑塊的塊數(shù):%d",s); else /*沒有其它空閑塊組*/ printf("n沒有任何空間"); return; else /*當(dāng)前組已分配完*/ for(i=0;i<=3;i+) MAi=A0i; assign(); display(); /*顯示分組情況*/ void callback() /*回收空閑塊*/ int i,j,temp; printf("n輸入你想回收的
11、塊號:"); scanf("%d",&j); getchar(); /*得到待回收的空閑塊號*/ for(temp=1;temp<=No;temp+) if(marktemp=j) break; if(temp<No+1) /*若該空閑塊已在,退出*/ printf("n該空閑塊已存在"); return; if(MA0<3) /*當(dāng)前組不滿3塊*/ i=MA0; MAi+1=j; MA0+; else /*已有3塊*/ for(i=0;i<=3;i+) Aji=MAi; MA0=1; MA1=j; displa
12、y(); /*顯示*/ void menu() /*功能選擇函數(shù)*/ int choice; char judge; printf("n輸入您的選擇:(1 -分配,2 -回收):"); scanf("%d",&choice); getchar(); if(choice=1) assign(); else if(choice=2) callback(); else printf("n無效命令!"); printf("n繼續(xù)還是結(jié)束?(Y -繼續(xù),N-返回)"); scanf("%c",&judge); getchar(); if(judge='y') menu(); else printf("n現(xiàn)在,該圖是:"); display(); printf(
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 心悸的護(hù)理措施及健康教育
- 2025年超高速切削機(jī)床合作協(xié)議書
- 成都市樹德實(shí)驗(yàn)中學(xué)2025屆高考沖刺押題(最后一卷)化學(xué)試卷含解析
- 大班社會蝴蝶課件
- 2025年酞菁顏料合作協(xié)議書
- 2025年閉式冷卻塔項(xiàng)目發(fā)展計劃
- 2025年水楊酸鋅改性樹脂(無碳復(fù)寫紙顯色劑)項(xiàng)目建議書
- 幼兒園交通安全小知識
- 四年級數(shù)學(xué)(上)計算題專項(xiàng)練習(xí)及答案
- 陜西財經(jīng)職業(yè)技術(shù)學(xué)院《測繪綜合課程設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025《初中數(shù)學(xué)》專題突破專題60 二次函數(shù)背景下的特殊平行四邊形存在性問題(含答案及解析)
- 讀后續(xù)寫課題研究開題報告
- 基于深度學(xué)習(xí)的視頻加密算法研究
- 中層管理干部團(tuán)隊-執(zhí)行力與領(lǐng)導(dǎo)力提升培訓(xùn)課件
- 2024年物業(yè)管理師(中級四級)考試題庫大全-上(單選、多選題)
- 2025屆高考語文復(fù)習(xí):歌曲《孤勇者》素材運(yùn)用 課件
- 中醫(yī)四季養(yǎng)生之道課件
- 《無人機(jī)法律法規(guī)知識》課件-第7章 無人機(jī)運(yùn)行管理
- 醫(yī)學(xué)影像檢查資料互認(rèn)項(xiàng)目清單
- -構(gòu)建我國個人破產(chǎn)法律制度研究
- 中外飲食文化智慧樹知到答案2024年三亞航空旅游職業(yè)學(xué)院
評論
0/150
提交評論