操作系統實驗六 文件系統設計試驗_第1頁
操作系統實驗六 文件系統設計試驗_第2頁
操作系統實驗六 文件系統設計試驗_第3頁
操作系統實驗六 文件系統設計試驗_第4頁
操作系統實驗六 文件系統設計試驗_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、寧德師范學院計算機系實驗報告(20142015學年 第二學期)課程名稱 操作系統 實驗名稱 實驗六 文件系統設計試驗 專 業 計算機科學與技術(非師) 年 級 2012級 學號 B2012102147 姓名 王 秋 指導教師 王遠帆 實驗日期 2015-06-20 實驗目的與要求:通過設計一個基于索引結構的文件系統,加深對文件系統的基本知識理解。了解文件系統設計的基本概念。(1)熟悉文件系統的物理結構;(2)熟悉文件系統的目錄管理;(3)掌握文件系統空閑空間管理的基本方法;(4)進一步理解現代操作系統文件管理知識。實驗設備(環境):(1)一臺安裝有Cygwin Terminal的計算機(2)

2、Windows XP操作系統(3)VC+6.0實驗內容:(1)熟悉文件系統的物理結構;(2)熟悉文件系統的目錄管理;(3)掌握文件系統空閑空間管理的基本方法;(4)進一步理解現代操作系統文件管理知識。實驗步驟、實驗結果及分析:(1) 設計一個文件系統的索引結構,描述邏輯結構與物理索引結構之間的關系;(2) 設計文件目錄,描述文件名與文件物理結構之中的映射關系;(3) 定義作業;(4) 設計文件建立;(5)設計文件系統的其它功能;實驗結論:試驗運行結果:圖1程序運行結果4、思考該試驗中,從功能能上講,根據所學的文件系統管理方面知識,你所設計的(模擬)文件還有那些沒有實現: 對以后設計的修改建議:

3、目前所做的修改及實際結果如下:程序清單:#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;/作業序列struct quechar name;int size;jobJOBN;int i,j,ly,li;char bb;int NFile=0;/系統的

4、總文件數,模擬開始時為0;int N=0;/工作變量,標記當前分配文件int M=32;/系統中空閑磁盤物理塊數,開始為32塊int J48;/用位圖表示這些磁盤物理塊,Jji為0時標記第j*8+i塊空閑,為1標記該塊已分配出去FILE *e;/記錄模擬中的相關數據int jobs=0;/作業數void run()int x1,y,z; /如果當前空閑磁盤物理塊數能夠滿足需要,則進行分配if(jobN.size<=M)ly=0;N=NFile;/標記當前分配文件NFile+;/標記下次分配處理文件M-=jobN.size;HEAD->namesN=jobN.name;/將文件名以及

5、大小,索引地址填寫到文件目錄HEAD->sizeN=jobN.size;wq=(struct index *)malloc(sizeof(struct index);HEAD->pN=wq;/對分配文件的索引表初始化for(z=0;z<32;z+)wq->lrz=z;/邏輯塊號wq->prz=0;/物理塊地址wq->stz='N'/從位圖中分配,分配出去的塊其狀態為1。一直到分配完成for(j=0;j<4&&(ly<jobN.size);j+)for(i=0;i<8&&(ly<jobN.

6、size);i+)if(Jji=0)li=j*8+i;wq->prly=li;wq->stly='Y'ly+;Jji=1;/找到一個空閑塊,就分配出去/如果當前空閑磁盤物理塊數不能夠滿足需要,則出錯處理else fprintf(e,"n There are no free blocks in the memory now! n");fprintf(e,"File %c must wait!n",jobN.name);/報告目前為止的分配情況,首先報告文件目錄的部分信息 fprintf(e,".This time ,t

7、he file directory: -n");fprintf(e,"NAME INDEX_ADDRESSn");for(x1=0;x1<N+1;x1+)fprintf(e," %c %xn",HEAD->namesx1,HEAD->px1);/其次報告文件索引表的部分信息for(x1=0;x1<N+1;x1+)fprintf(e," /The index of FILE%c:/n",HEAD->namesx1); fprintf(e," LOGIC_NUMBER PHYSICAL_N

8、UMBER FLAGn");for(y=0;y<HEAD->sizex1;y+)fprintf(e," %d %d %cn",HEAD->px1->lry,HEAD->px1->pry,HEAD->px1->sty);/第三,報告位圖信息fprintf(e," This time the bit mapping graph: n");for(j=0;j<4;j+)fprintf(e, " "); for(i=0;i<8;i+)fprintf(e,"%d&q

9、uot;,Jji);fprintf(e,"n");void main()int k;e=fopen("results.txt","w");/打開保存結果的文件for(j=0;j<4;j+)for(i=0;i<8;i+)Jji=0;/初始化位圖HEAD=(struct list*)malloc(sizeof(struct list);for(i=0;i<32;i+)HEAD->namesi=' ' HEAD->sizei=0;HEAD->pi=NULL;/初始化文件目錄printf(&

10、quot;Please input number of jobs:");scanf("%d",&jobs);scanf("%c",&bb);int kk=0;/以下輸入建立的文件數以及文件名字,并將這些信息保存在job數組之中while(kk<jobs)fprintf(e,"FILE %d: n",kk);printf("FILE %d: n",kk);printf("Name and Size");scanf("%c,%d",&(jo

11、),&(jobkk.size);scanf("%c",&bb);fprintf(e,"%c,%d",,jobkk.size);kk+;for(k=1;k<=jobs;k+)run();/每個文件進行一次分配/回收資源fclose(e);for(i=0;i<32;i+)free(HEAD->pi);HEAD->pi=NULL;free(HEAD);HEAD=NULL; 文件系統模擬程序1索引結構和文件目錄12N文件名等塊塊塊2文件目錄模擬struct listchar names3

12、2;int size32;struct index*p32;/文件的索引表地址*HEAD;該模擬文件最多只能模擬32個文件,HEAD 指針指向了該模擬目錄。3文件索引表模擬文件索引表的定義struct indexint lr32;int pr32;char st32;*wq;4位圖int J48。位圖J表示這些磁盤物理塊的情況。Jji為0時標記塊空閑,為1標記該塊已分配出去。各塊號按行存儲。因此,Jji 表示j*8+i(塊號)塊的分配情況5.run函數6Main函數實驗分析:程序要為每個文件建立一張索引表,索引表中用數組指出文件信息所在的邏輯塊號和與之對應的物理塊號。程序中int Jji表示這

13、些磁盤物理塊的情況。Jji為0時標記塊空閑,為1標記該塊已分配出去。各塊號按行存儲。實驗總結(包括過程總結、心得體會及實驗改進意見等):1. 在命令提示符中運行應用程序時要先轉到應用程序所在的盤符下,要把應用程序所在目錄位置輸入正確,才能找到相應的程序運行。2. 文件的物理結構和組織是指邏輯文件在物理存儲空間中存放方法和組織關系;使用多級目錄可以解決文件重名問題與縮短搜索時間;現代操作系統文件管理就是對塊空間的管理,包括空閑塊的分配、回收和組織;索引文件結構中的索引表是用來指示邏輯記錄和物理塊之間對應關系的。3. 通過本次實驗我了解了文件系統的基本概念,物理文件結構有三種結構,連續文件、鏈接文件、索引文件。用戶能直接處理其中的結構與數據的是邏輯結構,文件在外存上的存儲組織形式是物理結構。只有合理的進行存儲空間的管理,才能保證多用戶共享外存和快速的實現文件的按名存取。指導教師評語:完

溫馨提示

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

評論

0/150

提交評論