資源描述:
《操作系統(tǒng)課程設(shè)計(jì)_linux下的二級(jí)文件系統(tǒng)方案.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、.word可編輯.學(xué)生課程設(shè)計(jì)報(bào)告實(shí)驗(yàn)課名稱:操作系統(tǒng)實(shí)驗(yàn)項(xiàng)目名稱:文件系統(tǒng)設(shè)計(jì)專(zhuān)業(yè)名稱:計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):-----------學(xué)號(hào):-----------學(xué)生姓名:-----------教師姓名:-----------2014年6月30日.專(zhuān)業(yè).專(zhuān)注..word可編輯.一、課程設(shè)計(jì)的目的二、課程設(shè)計(jì)的內(nèi)容及要求內(nèi)容要求三、實(shí)現(xiàn)原理四、關(guān)鍵算法實(shí)現(xiàn)流程圖流程圖關(guān)鍵算法五、軟件運(yùn)行環(huán)境及限制六.結(jié)果輸出及分析七.心得體會(huì).專(zhuān)業(yè).專(zhuān)注..word可編輯.一.課程設(shè)計(jì)的目的本課程設(shè)計(jì)是學(xué)習(xí)完《計(jì)算機(jī)操作系統(tǒng)》課程后,進(jìn)行的一次全面的綜合訓(xùn)練,通過(guò)課程設(shè)計(jì),讓我更好地掌握操作系統(tǒng)的原理及實(shí)現(xiàn)
2、方法,加深對(duì)操作系統(tǒng)基礎(chǔ)理論和重要算法的理解,加強(qiáng)了我的動(dòng)手能力。二.課程設(shè)計(jì)的內(nèi)容及要求1.實(shí)驗(yàn)內(nèi)容通過(guò)一個(gè)簡(jiǎn)單的二級(jí)文件系統(tǒng)設(shè)計(jì),加深對(duì)文件系統(tǒng)的內(nèi)部功能以及內(nèi)部實(shí)現(xiàn)的理解。要求模擬采用二級(jí)目錄結(jié)構(gòu)的磁盤(pán)文件系統(tǒng)的文件操作,能實(shí)現(xiàn)以下幾條命令,用輸入命令來(lái)模擬用戶程序中調(diào)用的文件操作:Login用戶登錄Dir列文件目錄(列出文件名、物理地址、保護(hù)碼和文件長(zhǎng)度)Create創(chuàng)建文件Delete刪除文件Open打開(kāi)文件Close關(guān)閉文件Read讀文件Write寫(xiě)文件源文件可以進(jìn)行讀寫(xiě)保護(hù)2.實(shí)驗(yàn)要求文件系統(tǒng)管理中用到的數(shù)據(jù)結(jié)構(gòu)有:①首先應(yīng)確定文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu):主目錄、子目錄及活動(dòng)文件等。
3、主目錄和子目錄都以文件的形式存放于磁盤(pán),這樣便于查找和修改。②用戶創(chuàng)建的文件,可以編號(hào)存儲(chǔ)于磁盤(pán)上。如:file0,file1,file2…并以編號(hào)作為物理地址,在目錄中進(jìn)行登記。三.實(shí)現(xiàn)原理首先,實(shí)現(xiàn)Login用戶登錄,(用戶名:lhx密碼:12358)必須登錄成功才能進(jìn)入文件系統(tǒng)進(jìn)行查看,進(jìn)入后,通過(guò)樹(shù)狀展示文件目錄(默認(rèn)文件目錄是homelhxkefile),利用命令行的方式進(jìn)行注冊(cè)、登錄、各種各樣的文件操作。.專(zhuān)業(yè).專(zhuān)注..word可編輯.四.關(guān)鍵算法實(shí)現(xiàn)流程圖流程圖:關(guān)鍵算法:1.用戶登錄功能的實(shí)現(xiàn)typedefstructuserMsg{charloginName[20]
4、;charloginPasswd[20];}UserMsg;intlogin(char*name,char*passwd){.專(zhuān)業(yè).專(zhuān)注..word可編輯.UserMsgum;intcount=0,size=sizeof(UserMsg),nres,pres;intfd=open("/home/lhx/study/kefile/login.dat",O_RDONLY);if(fd==-1){return-1;}while(1){if(read(fd,&um,size)5、sswd,um.loginPasswd);if(nres==0&&pres==0){return1;}if(nres==0&&pres!=0){return0;}count++;lseek(fd,SEEK_SET,size*count);}lseek(fd,SEEK_SET,0);close(fd);}2.用戶注冊(cè)具體實(shí)現(xiàn)intregist(char*name,char*passwd){UserMsgum;intcount=0,size=sizeof(UserMsg);intfd=open("/home/lhx/study/kefile/login.dat",O_WRONLY
6、O_APPE
7、ND);if(fd==-1){return-1;}.專(zhuān)業(yè).專(zhuān)注..word可編輯.strcpy(um.loginName,name);strcpy(um.loginPasswd,passwd);lseek(fd,SEEK_END,0);count=write(fd,&um,size);if(count!=size){return-1;}return1;}3.查看目錄下文件intlistdtl(char*pname){structdirent**dlist;inttmp,count;charfpath[50],*fname;count=scandir(pname,&dlist,NULL,al
8、phasort);if(count==-1)return-1;printf("%10st%10st%10st%10st%10s","編號(hào)","類(lèi)型","所有者ID","大小","文件名");for(tmp=0;tmpd_name);stat(fpath,&st);switch(