操作系統(tǒng) 實(shí)驗(yàn)六 文件系統(tǒng)設(shè)計(jì)試驗(yàn).doc_第1頁(yè)
操作系統(tǒng) 實(shí)驗(yàn)六 文件系統(tǒng)設(shè)計(jì)試驗(yàn).doc_第2頁(yè)
操作系統(tǒng) 實(shí)驗(yàn)六 文件系統(tǒng)設(shè)計(jì)試驗(yàn).doc_第3頁(yè)
操作系統(tǒng) 實(shí)驗(yàn)六 文件系統(tǒng)設(shè)計(jì)試驗(yàn).doc_第4頁(yè)
操作系統(tǒng) 實(shí)驗(yàn)六 文件系統(tǒng)設(shè)計(jì)試驗(yàn).doc_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

寧德師范學(xué)院計(jì)算機(jī)系實(shí)驗(yàn)報(bào)告(20142015學(xué)年 第二學(xué)期)課程名稱(chēng) 操作系統(tǒng) 實(shí)驗(yàn)名稱(chēng) 實(shí)驗(yàn)六 文件系統(tǒng)設(shè)計(jì)試驗(yàn) 專(zhuān) 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)(非師) 年 級(jí) 2012級(jí) 學(xué)號(hào) B2012102147 姓名 王 秋 指導(dǎo)教師 王遠(yuǎn)帆 實(shí)驗(yàn)日期 2015-06-20 實(shí)驗(yàn)?zāi)康呐c要求:通過(guò)設(shè)計(jì)一個(gè)基于索引結(jié)構(gòu)的文件系統(tǒng),加深對(duì)文件系統(tǒng)的基本知識(shí)理解。了解文件系統(tǒng)設(shè)計(jì)的基本概念。(1)熟悉文件系統(tǒng)的物理結(jié)構(gòu);(2)熟悉文件系統(tǒng)的目錄管理;(3)掌握文件系統(tǒng)空閑空間管理的基本方法;(4)進(jìn)一步理解現(xiàn)代操作系統(tǒng)文件管理知識(shí)。實(shí)驗(yàn)設(shè)備(環(huán)境):(1)一臺(tái)安裝有Cygwin Terminal的計(jì)算機(jī)(2) Windows XP操作系統(tǒng)(3)VC+6.0實(shí)驗(yàn)內(nèi)容:(1)熟悉文件系統(tǒng)的物理結(jié)構(gòu);(2)熟悉文件系統(tǒng)的目錄管理;(3)掌握文件系統(tǒng)空閑空間管理的基本方法;(4)進(jìn)一步理解現(xiàn)代操作系統(tǒng)文件管理知識(shí)。實(shí)驗(yàn)步驟、實(shí)驗(yàn)結(jié)果及分析:(1) 設(shè)計(jì)一個(gè)文件系統(tǒng)的索引結(jié)構(gòu),描述邏輯結(jié)構(gòu)與物理索引結(jié)構(gòu)之間的關(guān)系;(2) 設(shè)計(jì)文件目錄,描述文件名與文件物理結(jié)構(gòu)之中的映射關(guān)系;(3) 定義作業(yè);(4) 設(shè)計(jì)文件建立;(5)設(shè)計(jì)文件系統(tǒng)的其它功能;實(shí)驗(yàn)結(jié)論:試驗(yàn)運(yùn)行結(jié)果:圖1程序運(yùn)行結(jié)果4、思考該試驗(yàn)中,從功能能上講,根據(jù)所學(xué)的文件系統(tǒng)管理方面知識(shí),你所設(shè)計(jì)的(模擬)文件還有那些沒(méi)有實(shí)現(xiàn): 對(duì)以后設(shè)計(jì)的修改建議:目前所做的修改及實(shí)際結(jié)果如下:程序清單:#include stdio.h#include stdlib.h/文件索引表的定義struct indexint lr32;int pr32;char st32;*wq;#define JOBN 20/文件目錄的定義struct listchar names32;int size32;struct index*p32;/文件的索引表地址*HEAD;/作業(yè)序列struct quechar name;int size;jobJOBN;int i,j,ly,li;char bb;int NFile=0;/系統(tǒng)的總文件數(shù),模擬開(kāi)始時(shí)為0;int N=0;/工作變量,標(biāo)記當(dāng)前分配文件int M=32;/系統(tǒng)中空閑磁盤(pán)物理塊數(shù),開(kāi)始為32塊int J48;/用位圖表示這些磁盤(pán)物理塊,Jji為0時(shí)標(biāo)記第j*8+i塊空閑,為1標(biāo)記該塊已分配出去FILE *e;/記錄模擬中的相關(guān)數(shù)據(jù)int jobs=0;/作業(yè)數(shù)void run()int x1,y,z; /如果當(dāng)前空閑磁盤(pán)物理塊數(shù)能夠滿(mǎn)足需要,則進(jìn)行分配if(jobN.sizenamesN=jobN.name;/將文件名以及大小,索引地址填寫(xiě)到文件目錄HEAD-sizeN=jobN.size;wq=(struct index *)malloc(sizeof(struct index);HEAD-pN=wq;/對(duì)分配文件的索引表初始化for(z=0;zlrz=z;/邏輯塊號(hào)wq-prz=0;/物理塊地址wq-stz=N;/從位圖中分配,分配出去的塊其狀態(tài)為1。一直到分配完成for(j=0;j4&(lyjobN.size);j+)for(i=0;i8&(lyprly=li;wq-stly=Y;ly+;Jji=1;/找到一個(gè)空閑塊,就分配出去/如果當(dāng)前空閑磁盤(pán)物理塊數(shù)不能夠滿(mǎn)足需要,則出錯(cuò)處理else fprintf(e,n There are no free blocks in the memory now! n);fprintf(e,File %c must wait!n,jobN.name);/報(bào)告目前為止的分配情況,首先報(bào)告文件目錄的部分信息 fprintf(e,.This time ,the file directory: -n);fprintf(e,NAME INDEX_ADDRESSn);for(x1=0;x1namesx1,HEAD-px1);/其次報(bào)告文件索引表的部分信息for(x1=0;x1namesx1); fprintf(e, LOGIC_NUMBER PHYSICAL_NUMBER FLAGn);for(y=0;ysizex1;y+)fprintf(e, %d %d %cn,HEAD-px1-lry,HEAD-px1-pry,HEAD-px1-sty);/第三,報(bào)告位圖信息fprintf(e, This time the bit mapping graph: n);for(j=0;j4;j+)fprintf(e, ); for(i=0;i8;i+)fprintf(e,%d,Jji);fprintf(e,n);void main()int k;e=fopen(results.txt,w);/打開(kāi)保存結(jié)果的文件for(j=0;j4;j+)for(i=0;i8;i+)Jji=0;/初始化位圖HEAD=(struct list*)malloc(sizeof(struct list);for(i=0;inamesi= ; HEAD-sizei=0;HEAD-pi=NULL;/初始化文件目錄printf(Please input number of jobs:);scanf(%d,&jobs);scanf(%c,&bb);int kk=0;/以下輸入建立的文件數(shù)以及文件名字,并將這些信息保存在job數(shù)組之中while(kkjobs)fprintf(e,FILE %d: n,kk);printf(FILE %d: n,kk);printf(Name and Size);scanf(%c,%d,&(),&(jobkk.size);scanf(%c,&bb);fprintf(e,%c,%d,,jobkk.size);kk+;for(k=1;k=jobs;k+)run();/每個(gè)文件進(jìn)行一次分配/回收資源fclose(e);for(i=0;ipi);HEAD-pi=NULL;free(HEAD);HEAD=NULL; 文件系統(tǒng)模擬程序1索引結(jié)構(gòu)和文件目錄12N文件名等塊塊塊2文件目錄模擬struct listchar names32;int size32;struct index*p32;/文件的索引表地址*HEAD;該模擬文件最多只能模擬32個(gè)文件,HEAD 指針指向了該模擬目錄。3文件索引表模擬文件索引表的定義struct indexint lr32;int pr32;char st32;*wq;4位圖int J48。位圖J表示這些磁盤(pán)物理塊的情況。Jji為0時(shí)標(biāo)記塊空閑,為1標(biāo)記該塊已分配出去。各塊號(hào)按行存儲(chǔ)。因此,Jji 表示j*8+i(塊號(hào))塊的分配情況5.run函數(shù)6Main函數(shù)實(shí)驗(yàn)分析:程序要為每個(gè)文件建立一張索引表,索引表中用數(shù)組指出文件信息所在的邏輯塊號(hào)和與之對(duì)應(yīng)的物理塊號(hào)。程序中int Jji表示這些磁盤(pán)物理塊的情況。Jji為0時(shí)標(biāo)記塊空閑,為1標(biāo)記該塊已分配出去。各塊號(hào)按行存儲(chǔ)。實(shí)驗(yàn)總結(jié)(包括過(guò)程總結(jié)、心得體會(huì)及實(shí)驗(yàn)改進(jìn)意見(jiàn)等):1. 在命令提示符中運(yùn)行應(yīng)用程序時(shí)要先轉(zhuǎn)到應(yīng)用程序所在的盤(pán)符下,要把應(yīng)用程序所在目錄位置輸入正確,才能找到相應(yīng)的程序運(yùn)行。2. 文件的物理結(jié)構(gòu)和組織是指邏輯文件在物理存儲(chǔ)空間中存放方法和組織關(guān)系;使用多級(jí)目錄可以解決文件重名問(wèn)題與縮短搜索時(shí)間;現(xiàn)代操作系統(tǒng)文件管理就是對(duì)塊空間的管理,包括空閑塊的分配、回收和組織;索引文件結(jié)構(gòu)中的索引表是用來(lái)指示邏輯記錄和物理塊之間對(duì)應(yīng)關(guān)系的。3. 通過(guò)本次實(shí)驗(yàn)我了解了文件系統(tǒng)的基本概念,物理文件結(jié)構(gòu)有三種結(jié)構(gòu),連續(xù)文件、鏈接文件、索引文件。用戶(hù)能直接處理其中的結(jié)構(gòu)與數(shù)據(jù)的是邏輯結(jié)構(gòu),文件在外存上的存儲(chǔ)組織形式是物理結(jié)構(gòu)。只有合理的進(jìn)行存儲(chǔ)空間的管理,才能保證多用戶(hù)共享外存和快速的實(shí)現(xiàn)文件的按名存取。指導(dǎo)教師評(píng)語(yǔ):完成所有規(guī)定的實(shí)驗(yàn)內(nèi)容,實(shí)驗(yàn)步驟正確,結(jié)果正確;以后需要進(jìn)一步改進(jìn)或注意的是

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論