nachos實(shí)驗(yàn)10設(shè)計(jì)并實(shí)現(xiàn)具有二級(jí)索引地文件資料系統(tǒng)

nachos實(shí)驗(yàn)10設(shè)計(jì)并實(shí)現(xiàn)具有二級(jí)索引地文件資料系統(tǒng)

ID:30759857

大?。?4.00 KB

頁數(shù):14頁

時(shí)間:2019-01-03

nachos實(shí)驗(yàn)10設(shè)計(jì)并實(shí)現(xiàn)具有二級(jí)索引地文件資料系統(tǒng)_第1頁
nachos實(shí)驗(yàn)10設(shè)計(jì)并實(shí)現(xiàn)具有二級(jí)索引地文件資料系統(tǒng)_第2頁
nachos實(shí)驗(yàn)10設(shè)計(jì)并實(shí)現(xiàn)具有二級(jí)索引地文件資料系統(tǒng)_第3頁
nachos實(shí)驗(yàn)10設(shè)計(jì)并實(shí)現(xiàn)具有二級(jí)索引地文件資料系統(tǒng)_第4頁
nachos實(shí)驗(yàn)10設(shè)計(jì)并實(shí)現(xiàn)具有二級(jí)索引地文件資料系統(tǒng)_第5頁
資源描述:

《nachos實(shí)驗(yàn)10設(shè)計(jì)并實(shí)現(xiàn)具有二級(jí)索引地文件資料系統(tǒng)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫

1、實(shí)用標(biāo)準(zhǔn)文案實(shí)驗(yàn)?zāi)康腘achos系統(tǒng)原有的文件系統(tǒng)只支持單級(jí)索引,最大能存取NumDirect*SectorSize的大小的文件,本次試驗(yàn)的目的:理解文件系統(tǒng)的組織結(jié)構(gòu)擴(kuò)展原有的文件系統(tǒng),設(shè)計(jì)并實(shí)現(xiàn)具有二級(jí)索引的文件系統(tǒng)。實(shí)驗(yàn)環(huán)境linux操作系統(tǒng),Nachos操作系統(tǒng)實(shí)驗(yàn)分析已知在文件頭的定義中描述了:#defineNumDirect((SectorSize-2*sizeof(int))/sizeof(int))為了說明方便,經(jīng)過實(shí)際計(jì)算,NumDirect=30.二級(jí)索引的文件系統(tǒng)的filehdr首先

2、,通過觀察Nachos原有的filehdr(即上圖左邊的部分),可知Nachos的單級(jí)索引的文件系統(tǒng)最大只支持存取29個(gè)扇區(qū)大小的文件。為了擴(kuò)展二級(jí)索引,取數(shù)組的最后一個(gè)dataSectors[29]作為存取新的dataSectors數(shù)組塊的索引,定義dataSectors[0]-dataSectors[28]存取數(shù)據(jù)所在的塊號(hào),dataSectors[29]==-1表示無二級(jí)索引塊,為正值表示二級(jí)索引dataSectors2所在的索引塊。當(dāng)文件超過原dataSectors數(shù)組所能能夠存取的大小28的時(shí)候

3、,通過bitmap為文件頭的dataSectors2分配空間,返回的Sector號(hào)存在dataSectors[29]中。fileSys每次讀取filehdr的時(shí)候,仍然只讀取原filehdr,如果想要訪問和修改dataSectors2中的內(nèi)容,則在filehdr中先通過dataSectors[29]獲取到dataSectors2的扇區(qū)號(hào),通過調(diào)用synchDisk->ReadSector(dataSectors[lastIndex],(char*)dataSectors2),讀入dataSectors2的

4、內(nèi)容,然后再進(jìn)行dataSectors數(shù)組29-62號(hào)所對(duì)應(yīng)的數(shù)據(jù)塊的讀取。因?yàn)楸敬螌?shí)驗(yàn)是在實(shí)驗(yàn)5的基礎(chǔ)上進(jìn)行更改的,即支持文件的擴(kuò)展,這就要求不僅要有讀取dataSectors2數(shù)組的方法,還要可以重新寫入dataSectors2的方法。實(shí)現(xiàn)方法也就是首先如果需要訪問dataSectors2,那么首先調(diào)用synchDisk->ReadSector(dataSectors[lastIndex],(char*)dataSectors2),讀入dataSectors2的內(nèi)容,然后進(jìn)行各種應(yīng)用程序的讀寫操作,最

5、后調(diào)用synchDisk->WriteSector(dataSectors[lastIndex],(char*)dataSectors2),將更改后的結(jié)果寫回。由分析可知,文件系統(tǒng)的二級(jí)索引功能的擴(kuò)展只針對(duì)filehdr,所有的修改的都只在filehdr.cc中進(jìn)行,連頭文件filehdr.h也不涉及。精彩文檔實(shí)用標(biāo)準(zhǔn)文案關(guān)鍵源代碼及注釋——filehdr.cc?????????????????????????????????????????????????????????????????????????

6、??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????在頭文件中添加dataSectors2的大小定義:#defineNumDirect2(SectorSize/sizeof(int))更改MaxFileSize:#defineMaxFileSize((NumDirect+NumDirect2)*SectorSize)

7、轉(zhuǎn)向filehdr.cc進(jìn)行說明,所有函數(shù)體中綠色部分均為本次實(shí)驗(yàn)的注釋(建議看Allocate和Deallocate就好了,其他的原理類似,appSectors涉及實(shí)驗(yàn)5的部分)://filehdr.cc//省略無數(shù)責(zé)任聲明////@LiZhen17/11/09////Extendsthefilesystemtodoublethemaxfilesizethat//Nachoscanstore#include"copyright.h"#include"system.h"#include"filehdr.h

8、"Allocate//----------------------------------------------------------------------//FileHeader::Allocate//Initializeafreshfileheaderforanewlycreatedfile.//Allocatedatablocksforthefileoutofthemapoffreediskblocks.//Ret

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。