




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
http://blog.163.eom/zhengjingwei1211@126/blog/static/6149928020108217422645/磁盤存儲(chǔ)空間的分配和回收(空閑表)#defineN5structEmpty//空閑表結(jié)構(gòu)體{intseq;//序號(hào)intstart;//起始?jí)K號(hào)intcount;//空閑塊個(gè)數(shù)charstate;//狀態(tài),F(xiàn)為未分配,E為空表目};structPan//磁盤結(jié)構(gòu)體{intZhuSeq;//柱面號(hào)intLapSeq;//磁道號(hào)intNoteSeq;//物理記錄號(hào)intZhuNum;//柱面?zhèn)€數(shù)intLapNum;〃磁道個(gè)數(shù)intNoteNum;//物理記錄個(gè)數(shù)};classCCiPan{public:EmptyE[N];〃空閑表結(jié)構(gòu)體數(shù)組PanP; 〃磁盤public:voidDisplay(EmptyE[]);〃顯示空閑表voidDeleteFile(EmptyE[],PanP);〃刪除文件,回收磁盤voidCreateFile(EmptyE[],PanP);〃創(chuàng)建文件,分配磁盤空間CCiPan();virtual~CCiPan();};空閑表信息如下表:#include#include#include#include#include#include"CiPan.h”"stdio.h”"iostream.h”#defineN5////////////////////////////////////////////////////////////////////////Construction/Destruction//////////////////////////////////////////////////////////////////////CCiPan::CCiPan()(//初始化空閑表E[0].seq=1;E[0].start=5;E[0].count=6;E[0].state='F';E[1].seq=2;E[1].start=14;E[1].count=3;E[1].state='F';E[2].seq=3;E[2].start=21;E[2].count=30;E[2].state='F';E[3].seq=4;E[3].state='E';E[4].seq=5;E[4].state='E';P.ZhuNum=200;//柱面數(shù)為200P.LapNum=20;〃磁道數(shù)為20P.NoteNum=6;//物理記錄數(shù)為6}CCiPan::~CCiPan()(}voidCCiPan::CreateFile(EmptyE[],PanP)(intBlock;Emptye;inti,j,M;cout<<"請(qǐng)輸入所建立文件的記錄塊數(shù):〃;cin>>Block;for(i=0;i<N;i++)(if(i>=N-1&&E[i].count<Block)(//當(dāng)比較到最后一個(gè)未找到空閑塊大小符合所要分配的文件大小時(shí)cout<<"磁盤空間不足!"<<endl;}if(E[i].count>Block)(//當(dāng)文件大小小于磁盤空閑塊大小時(shí),只改變空閑表中起始?jí)K號(hào)與空閑塊個(gè)數(shù)M=E[i].start/P.NoteNum;P.ZhuSeq=M/P.ZhuNum;//計(jì)算柱面號(hào)P.LapSeq二M%P.ZhuNum;//計(jì)算磁道號(hào)P.NoteSeq=E[i].start%P.NoteNum;//計(jì)算物理記錄號(hào)E[i].start+=Block;//起始?jí)K號(hào)改變,增加量為文件大小E[i].count-二Block;〃空閑塊個(gè)數(shù),減少量為文件大小cout<<endl;cout<<"成功為文件分配了磁盤空間!"<<endl;cout<<〃為文件分配的物理地址為:〃<<endl;//顯示為文件分配的物理地址cout<<"柱面號(hào):"<<P.ZhuSeq<<endl;cout<<"磁道號(hào):"<<P.LapSeq<<endl;cout<<"物理記錄號(hào):"<<P.NoteSeq<<endl;break;}else(if(E[i].count==Block)(//文件大小與空閑塊號(hào)個(gè)數(shù)剛好相等M=E[i].start/P.NoteNum;P.ZhuSeq=M/P.ZhuNum;//計(jì)算柱面號(hào)P.LapSeq二M%P.ZhuNum;〃計(jì)算磁道號(hào)P.NoteSeq=E[i].start%P.NoteNum;//計(jì)算物理記錄號(hào)E[i].seq=N;〃將剛分配出去的空間序號(hào)改為最后一項(xiàng),等待將其插入到表末尾E[i].state='E';〃將狀態(tài)改為“空表目”cout<<endl;cout<<"成功為文件分配了磁盤空間!"<<endl;cout<<〃為文件分配的物理地址為:〃<<endl;//顯示為文件分配的物理地址cout<<"柱面號(hào):"<<P.ZhuSeq<<endl;cout<<"磁道號(hào):"<<P.LapSeq<<endl;cout<<"物理記錄號(hào):"<<P.NoteSeq<<endl;e=E[i];//記錄下剛分配出去的空閑塊j=i;for(i=j;i<N;i++)(//將狀態(tài)為“空表目”的一項(xiàng)插入到表末尾E[i]=E[i+1];--E[i].seq;〃向前移一項(xiàng),序號(hào)減1E[N-1]=e;}break;}}}}voidCCiPan::DeleteFile(EmptyE[],PanP)(inti,j,m,k,n;Emptye,y;cout<<"請(qǐng)輸入柱面號(hào):〃;cin>>P.ZhuSeq;cout<<"請(qǐng)輸入磁道號(hào):〃;cin>>P.LapSeq;cout<<"請(qǐng)輸入物理記錄號(hào):〃;cin>>P.NoteSeq;cout<<"請(qǐng)輸入塊號(hào):〃;cin>>m;for(i=0;i<N;i++)(if(E[i].state=='E')(E[i].start=(P.ZhuSeq*P.LapNum+P.LapSeq)*P.NoteNum+P.NoteSeq;//計(jì)算起始?jí)K號(hào)E[i].count=m;//計(jì)算空閑塊個(gè)數(shù)E[i].state='F';//回收后將狀態(tài)改為“未分配”y=E[i];for(j=0;j<i;j++)if(E[j].start+E[j].count==E[i].start)//上臨{if(E[i].start+E[i].count==E[j+l].start)//既上臨又下臨{E[j].count=E[i].count+E[j].count+E[j+l].count;E[j+1].count二’’;E[j+1].start=,';E[j+1].state二'E';E[j+1].seq=N;E[i].start=,';E[i].count二'';E[i].state二'E';cout<</z既上臨又下臨/z<<endl:cout?/z回收文件后的起始?jí)K號(hào)為:〃空閑塊個(gè)數(shù)為:〃<<E[j].count<<endl:e=E[j+l];k=j+l;for(n=k;n<N;n++){//將狀態(tài)為“空表目”的一項(xiàng)插入到表末尾E[n]=E[n+1];—E[n],seq;〃向前移一項(xiàng),序號(hào)減1E[N-l]=e;else//只上臨{E[j].count+=E[i].count:E[i].start=,';E[i].count二'';E[i].state二'E';cout<〈〃只上臨〃〈<endl;cout?/z回收文件后的起始?jí)K號(hào)為:〃空閑塊個(gè)數(shù)為:〃<<E[j].count<<endl:else{if(E[i].start+E[i].count==E[j+l].start)//只下臨{E[j+1].count+=E[i].count;E[j+1].start=E[i].start:E[i].start=’’;E[i].count='';E[i].state='E';cout<<〃只下臨"<<endl;cout<<"回收文件后的起始?jí)K號(hào)為:〃<<E[j+1].start<<〃空閑塊個(gè)數(shù)為:"<<E[j+1].count<<endl;}else//都不臨(if(E[i].start>E[j].start&&E[i].start<E[j+1].start)(cout<<"既不上臨又不下臨"<<endl;cout<<"回收文件后的起始?jí)K號(hào)為:〃<<E[i].start<<〃空閑塊個(gè)數(shù)為:"<<E[i].count<<endl;for(intt=i;t>j+1;t--)//(E[t]=E[t-1];E[t].seq++;}E[j+1]=y;}else(if(E[i].start==E[j+1].start)(E[j+1].start=E[i].start;E[j+1].count=E[i].count;E[j+1].state=E[i].state;cout<<"既不上臨又不下臨"<<endl;cout<<"回收文件后的起始?jí)K號(hào)為:〃<<E[i].start<<〃空閑塊個(gè)數(shù)為:"<<E[i].count<<endl;}}}}}break;}}}voidCCiPan::Display(EmptyE[])(inti;cout<<"序號(hào)\t〃<<〃起始空閑塊號(hào)\t〃<<〃空閑塊個(gè)數(shù)\t〃<<〃狀態(tài)〃<<endl;for(i=0;i<N;i++
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)合同范本首
- 借用賬戶走賬合同范本
- 廠房分開幾樓出租合同范本
- 大學(xué)籃球教學(xué)中人文素質(zhì)教育的滲透分析
- 公司出資買房合同范本
- 在古詩(shī)文教學(xué)中舒展學(xué)生生命靈性
- 印刷加工銷售合同范本
- 2025年黑龍江省安全員B證(項(xiàng)目經(jīng)理)考試題庫(kù)
- 出口窗簾訂單合同范本
- 樂(lè)隊(duì)授課服務(wù)合同范本
- H3C-CAS虛擬化平臺(tái)詳細(xì)介紹
- 小學(xué)生韻母in、ing常見漢字與區(qū)分練習(xí)
- 藥房品種類別及數(shù)量清單
- 機(jī)關(guān)檔案管理工作培訓(xùn)PPT課件
- 初中物理人教版八年級(jí)下冊(cè) 第1節(jié)牛頓第一定律 課件
- 網(wǎng)站培訓(xùn)內(nèi)容trswcm65表單選件用戶手冊(cè)
- 連續(xù)平壓熱壓機(jī) 三篇 俞敏等
- 空調(diào)系統(tǒng)維保記錄表格模板
- 打印版-圓與二次函數(shù)綜合題精練(帶答案)
- 各種閥門CAD圖
- 工程結(jié)算書標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論