操作系統(tǒng)課程設(shè)計(jì)(文件系統(tǒng)管理)_第1頁
操作系統(tǒng)課程設(shè)計(jì)(文件系統(tǒng)管理)_第2頁
操作系統(tǒng)課程設(shè)計(jì)(文件系統(tǒng)管理)_第3頁
操作系統(tǒng)課程設(shè)計(jì)(文件系統(tǒng)管理)_第4頁
操作系統(tǒng)課程設(shè)計(jì)(文件系統(tǒng)管理)_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、操作系統(tǒng)課程設(shè)計(jì) 文件系統(tǒng)管理 學(xué) 院 計(jì)算機(jī)學(xué)院 專計(jì)算機(jī)科學(xué)與技術(shù)班級姓名學(xué)號201318廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院制文件系統(tǒng)管理一、實(shí)驗(yàn)?zāi)康哪M文件系統(tǒng)的實(shí)現(xiàn)的基本功能,了解文件系統(tǒng)的基本結(jié)構(gòu)和文件系統(tǒng)的管理方法看,加深了解文件 系統(tǒng)的內(nèi)部功能的實(shí)現(xiàn)。通過高級語言編寫和實(shí)現(xiàn)一個(gè)簡單的文件系統(tǒng),模擬文件管理的工作過程,從而 對各種文件操作系統(tǒng)命令的實(shí)質(zhì)內(nèi)容和執(zhí)行過程有比較深入的了解。二、實(shí)驗(yàn)內(nèi)容和要求編程模擬一個(gè)簡單的文件系統(tǒng),實(shí)現(xiàn)文件系統(tǒng)的管理和控制功能。在用戶程序中通過使用文件系統(tǒng)提 供的create, open, read, write, close, delete等文件命令,對文件進(jìn)行

2、操作。 以下報(bào)告主要包括:1 .可行性分析2 .需求分析3 .概要設(shè)計(jì)4 .詳細(xì)設(shè)計(jì)5 .測試6 .總結(jié)三、可行性分析1、技術(shù)可行性對于圖形編程還不了解,但是經(jīng)過本學(xué)期的三次實(shí)驗(yàn)的練習(xí),可以設(shè)計(jì)好命令操作界面。利用大二期間學(xué) 習(xí)的數(shù)據(jù)結(jié)構(gòu)可以模擬出此課程設(shè)計(jì)的要求。2、經(jīng)濟(jì)可行性課程設(shè)計(jì)作為本課程的練習(xí)及進(jìn)一步加深理解。與經(jīng)濟(jì)無關(guān),可以不考慮。(零花費(fèi),零收益)3.法律可行性自己編寫的程序,僅為練習(xí),不作其他用途,與外界沒什么聯(lián)系,可行。四、需求分析編寫程序?qū)崿F(xiàn)文件系統(tǒng),主要有以下幾點(diǎn)要求:1、實(shí)現(xiàn)無窮級目錄管理及文件管理基本操作2、實(shí)現(xiàn)共享“別名”3、加快了文件檢索五、概要設(shè)計(jì)為了克服單級目

3、錄所存在的缺點(diǎn),可以為每一位用戶建立一個(gè)單獨(dú)的用戶文件目錄UFD (User FileDirectory)。這些文件目錄可以具有相似的結(jié)構(gòu),它由用戶所有文件的文件控制塊組成。此外,在系統(tǒng)中 再建立一個(gè)主文件目錄MFD (Master File Directory );在主文件目錄中,每個(gè)用戶目錄文件都占有一個(gè)目錄項(xiàng),其目錄項(xiàng)中包括用戶名和指向該用戶目錄的指針。本設(shè)計(jì)主要實(shí)現(xiàn)下面幾個(gè)數(shù)據(jù)結(jié)構(gòu):M D FU F DA F D用戶名文件名打開文件名文件目錄指針保護(hù)碼打開保護(hù)碼用戶名文件長度讀寫的文件目錄指針文件名總體的流程圖如下:六、詳細(xì)設(shè)計(jì)主要數(shù)據(jù)結(jié)構(gòu):(Master File Directory

4、 ),主要用以存放用戶,可以增加存放密碼的字符數(shù)組,本設(shè)計(jì)沒有保密安全方面 的憂慮,為了使用時(shí)操作更簡單省去密碼。所以, MFD結(jié)構(gòu)僅包括用戶名和指向子目錄的一個(gè)指針,以 及指向下一用戶的連接點(diǎn),為線性結(jié)構(gòu)。struct MFDchar name20; UFD (User File Directory ),用于存放文件的數(shù)據(jù)結(jié)構(gòu)。由于本設(shè)計(jì)為了加快檢 索速度,使用了二叉排序樹的結(jié)構(gòu),所以UFD結(jié)構(gòu)中相應(yīng)加入了用于樹結(jié)構(gòu)的parent , leftchild ,和rightchild記錄鏈接情況。當(dāng)本文件為普通文件時(shí),為下級記錄申請AFD (file) , folder為空。同樣,當(dāng)本文件為文件

5、夾時(shí),為它申請相應(yīng)的空間, AFD為空。以此來達(dá)到無窮級別目錄的存儲(chǔ)。struct UFDUFD *parent;UFD *leftchild;UFD *rightchild;UFD *folder;");printf("n");temp=temp->link;void BSTtraverse(UFD *fileBST) 以區(qū)分文件夾 printf(".t");elseprintf("t");if(fileBST->leftchild!=NULL)創(chuàng)建文件n");printf("2.創(chuàng)建文件夾

6、n");printf("3.取消n");printf("請選擇:n");scanf("%c",&s);fflush(stdin);if(s='3')return;if(s!='1'&&s!='2')printf(" 輸入錯(cuò)誤,請重新輸入! n");while(s!='1'&&s!='2');n");n");if(strcmp(fileBST->name,&quo

7、t;NULL")=0) 追加printf("2.重寫n");printf("3.取消printf(" 請選擇: n");scanf("%c",&s);fflush(stdin);if(s='3')return;if(s!='1'&&s!='2')printf(" 輸入錯(cuò)誤,請重新輸入! n");while(s!='1'&&s!='2');printf(" 請輸入要重寫

8、或追加的內(nèi)容( <100): ");scanf("%s",newfile);fflush(stdin);if(s='1')t");stemp=stemp->link;printf("n 是否嘗試在共享文件夾中打開(y/n) : ");dos=getchar();if(s='n'|s='N')return NULL;else if(s='y'|s='Y')break;else printf(" 輸入錯(cuò)誤,請重新輸入: ");w

9、hile(s!='y'&&s!='n'&&s!='Y'&&s!='N');stemp=share_file;while(stemp!=NULL) if(strcmp(stemp->file->name,name)=0) temp=stemp->file;break; stemp=stemp->link;return temp;UFD *operations(UFD *fileBST)while(1)char s;system("cls");

10、if(open_file!=NULL)printf(" 已打開文件,請及時(shí)關(guān)閉! n");printf(" 文件名 t 文件長度 t 讀寫 t 共享 t 內(nèi)容 ");printf("n");print_open_file();printf("n");printf(" 當(dāng)前路徑 :");print_path(fileBST);printf("n");if(strcmp(fileBST->name,"NULL")=0)printf(" 本層文件

11、為空! n");else printf(" 本文件夾包含以下文件:BSTtraverse(fileBST);n");printf("n");printf("1.創(chuàng)建文件createn");printf("2.刪除文件deleten");printf("3.打開文件openn");printf("4.關(guān)閉文件closen");printf("5.讀文件readn");printf("6.寫文件writen");printf(&q

12、uot;0.返回上一層/ 注銷nn");printf(" 請選擇: ");printf("");scanf("%c",&s); fflush(stdin);switch(s) case '1':fcreate(fileBST);break;case '2':fileBST=fdelete(fileBST);break;case '3':fopen(fileBST);break;case '4':fclose();break;case '5'

13、;:case '6':fread_write(fileBST,s);break; case '0':return fileBST; default:break; void Log_in() MFD *temp=NULL;char name30;char flag='0' if(mfd_link=NULL) ,請創(chuàng)建后再登陸!");printf(" 目前還沒有創(chuàng)建用戶 getch();return; do printf(" 請輸入用戶名 :");scanf("%s",name); fflu

14、sh(stdin);登錄n");2.添加新用戶n");3.查看已注冊用戶n");0.退出nn")if(strcmp(name,"cancel")=0) return;printf(" printf(" printf(" printf(" 請選擇 : ");printf(""); scanf("%c",&s);fflush(stdin);if(s!='0'&&s!='1'&&s

15、!='2'&&s!='3') printf(" 輸入錯(cuò)誤,請重新輸入: ");getch();fflush(stdin);continue;switch(s)case '1':Log_in();break;case '2':Init_user();break;case '3':Check_user();break;case '0':return 1; default:break;return 0;七、測試登錄操作: 以下為對文件的六個(gè)基本操作:無窮級文件、文件路徑

16、的顯示,以及打開一個(gè)不存在的文件的示例: 打開普通文件后的情況,此時(shí)不能刪除文件:本系統(tǒng)未能實(shí)現(xiàn)級聯(lián)刪除,操作被禁止: 關(guān)閉文件后刪除操作成功: 逐個(gè)刪除后“文件系統(tǒng)”文件夾也可以刪除了:八、總結(jié)本次課程設(shè)計(jì)設(shè)計(jì)的知識比較廣,需要較好的理解能力和編程能力。在本次設(shè)計(jì)中,花費(fèi)時(shí)間比較多的應(yīng)該是數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)與更改了。在開始時(shí)僅僅按照實(shí)驗(yàn)指導(dǎo)書上的 MDF 、 UFD、 AFD 做了相應(yīng)的數(shù)據(jù)結(jié)構(gòu),而且里面包含的數(shù)據(jù)比較少。初衷是在以后的實(shí)現(xiàn)時(shí)需要再加進(jìn)去。但是,在以后加進(jìn)去的時(shí)候發(fā)現(xiàn)有不少細(xì)節(jié)需要增加,例如創(chuàng)建一個(gè)文件,需要對里面的各個(gè)變量進(jìn)行初始化,在結(jié)構(gòu)體中增加變量的時(shí)候就忘記了其他地方的初始化,顧此失彼。另外,在設(shè)計(jì)之初是想在 MFD和UFD中增加一個(gè)BST鏈接以加快檢索的,代碼打了一半之后有覺得麻煩,代碼過長而把 它刪除改變,變動(dòng)比較大。所以,經(jīng)過這次教訓(xùn),我覺得以后再設(shè)計(jì)程序之前就應(yīng)該考慮到具體的數(shù)據(jù)結(jié)構(gòu),盡量想得全面一點(diǎn),這樣后面的修改就可以省不少時(shí)間,還有就是,盡量不要改數(shù)據(jù)結(jié)構(gòu)。以上是關(guān)于數(shù)據(jù)結(jié)構(gòu)的。設(shè)計(jì)了一個(gè)號的數(shù)據(jù)結(jié)構(gòu),本課程設(shè)計(jì)的實(shí)現(xiàn)就容易多了,但是某些操作還是需要取舍的。例如在建立共享鏈的時(shí)候,本來是在 UFD 中再加入一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論