檔案操作課程設計報告

2021-09-21 15:26:04 字數 3330 閱讀 5910

石家莊經濟學院

課程設計報告

學院)系: 華信學院

專業: 電腦科學與技術

姓名: 鄧小新

班級2班

學號: 408417080218

指導教師王培崇

2023年 6月 17日

一、實驗內容

模擬實現採用二級目錄結構的磁碟檔案系統中的檔案操作

二、實驗目的

檔案系統是作業系統中管理和訪問資訊的機構,它具有「按名訪問」的功能,不僅方便使用者,而且能提高系統效率且安全可靠。

在使用者程式中可使用檔案系統提供的一整套檔案操作(檔案類系統呼叫),這類操作一般包括「開啟檔案」、「關閉檔案」、「讀檔案」、「寫檔案」和「撤消檔案」等。本實習模擬檔案操作的實現,通過實習了解各檔案操作的作用。

三、實驗過程

1. 資料結構設計

(1)檔案內容連式儲存結構體

typedef struct character

char,*char_list;

(2)檔案控制塊結構體

typedef struct file

file,*file_l;

(3)使用者檔案目錄ufd結構體

typedef struct ufd

ufd,*ufd_list;

(4)主檔案目錄mfd結構體

typedef struct mfd

mfd,*mfd_list;

2. 演算法設計

(1) 檔案系統使用檔案目錄來實現「按名訪問」,在本實習中採用二級檔案目錄結構,第一級為主檔案目錄mfd,第二級為使用者檔案目錄ufd。假定系統可同時管理n個使用者的檔案,每個使用者最多在磁碟上儲存l個檔案,在模擬實習中約定用哀悼都是採用定長記錄格式組織檔案,那麼,二級目錄結構可用如下形式:

系統中只有一張主檔案目錄表,表中的每一欄與乙個使用者對應,從中可找到使用者檔案目錄表的存放位址。共有n張使用者檔案目錄表,在使用者檔案目錄表中,每一欄與乙個檔案對應。其中「檔案屬性」規定了檔案的使用許可權:

只可讀、可讀可寫;「記錄長度」指組成該檔案的邏輯記錄長度;「檔案位址」指檔案存放在磁碟上的首塊位址。為簡單起見,在模擬實習中約定按ms-dos的鏈結結構組織檔案。

(2) 假定檔案系統提供的檔案操作有,「建立檔案」(create)、「開啟檔案」(open)、「關閉檔案」(close)、「讀檔案」(read)、「寫檔案」(write)、「撤消檔案」(delete)。使用者要儲存乙個新檔案時,必須順序呼叫「建立檔案」、「寫檔案」、「關閉檔案」的操作,使用者要讀、必須順序呼叫「開啟檔案」、「讀/寫檔案」、「關閉檔案」的操作。

圖1(3)在模擬實習中可不斷地從鍵盤輸入檔案操作命令來模擬各使用者程式中所呼叫的各種檔案操作。用乙個結束命令(end)停止程式執行。於是程式的結構可參當使用者想把一批資訊作為乙個檔案存放到磁碟上以備以後使用時,首先向系統提出「建立檔案」的要求,命令的一般格式如下:

create_file(mfd_list *mfd)模擬檔案系統進行「建立檔案」的演算法如圖。

圖2(4) 使用者在使用乙個檔案前,必須提出「開啟檔案」的要求。命令的一般格式為:

open_file(mfd_list *mfd)

其中操作型別指出檔案開啟後,使用者將對檔案進行讀操作還是寫操作。檔案系統必須根據檔案屬性核對操作的合法性,當操作型別與檔案屬性不符合時就不允許開啟。為簡單起見,在本實習中約定對處在建立狀態的檔案不允許開啟。

如圖圖3(5) 檔案系統在執行「寫檔案」操作時要區分兩種情況。第一種情況是在執行「建立檔案」操作後,使用者提出「寫檔案」。第二種情況是在執行「開啟檔案」操作後,使用者提出「寫檔案」。

由於「建立檔案」操作僅完成登記註冊的工作,要把資訊存入磁碟,必須執行「寫檔案」操作,使用者提出「寫檔案」時可要求一次只寫乙個記錄,這時,存放乙個檔案需由多次「寫檔案」來完成,也可要求一次寫乙個檔案,這時,需給出檔案長度。約定在本模擬實習中只討論每次順序寫乙個記錄的方式。

「開啟檔案」後,使用者提出「寫檔案」時,檔案系統認為使用者對乙個已經建立好的檔案進行修改,擴充或插入。約定在本模擬實習中只討論對檔案進行修改的情況,可以順序修改檔案中每個記錄或只修改指定的某個記錄。因此,在本實習中「寫檔案」命令的格式可以是:

write_file(mfd_list *mfd,char name,int m)

其中記錄號是指出需修改的記錄編號,要求順序寫乙個記錄時,可省略記錄號。模擬「寫檔案」操作的工作流程。

圖4(6) 檔案開啟後就可用「讀檔案」操作請求順序讀檔案中的若干記錄,或請求讀檔案中的乙個指定記錄。約定本模擬實習中只討論順序讀檔案中若干記錄的方式。於是命令的格式可為:

read_file(mfd_list *mfd)

其中讀長度表示本次要讀的檔案記錄數。模擬「讀檔案」操作的演算法。

圖5(7) 當對某個檔案不再需要讀或寫時,使用者應關閉檔案,「關閉檔案」的命令格式為:

close_file(mfd_list *mfd)系統進行「關閉檔案」操作的工作是把檔案從已開啟檔案表中除名。模擬演算法。

圖6(8) 當使用者不再需要乙個由自己建立的檔案時,可以向系統提出撤消檔案的要求。「撤消檔案」的一般格式為:

del_file(mfd_list *mfd)

系統執行「撤消檔案」操作時,要將所撤消的檔案在使用者目錄表中除名,且收回該檔案所占用的儲存區域。在實習中可採用的模擬演算法。

3. 程式**及執行結果

(1)程式**

工程/鄧.cpp

(2) 執行結果

開啟檔案

圖1建立檔案

圖2寫檔案

圖3讀檔案

圖4關閉檔案

圖5撤銷檔案

圖6圖7

四、設計總結

本次實習讓我受益匪淺,掌握了多使用者的的檔案系統,檔案的選擇,以及檔案的儲存方式,還有檔案的狀態,是否有許可權寫入,通過檔案是否被開啟確定檔案是否可寫。

在實驗過程中遇到好多麻煩,比如:好不容易能執行成功了,但是讀操作和寫操作總是不能正確的執行出來。每次都是到一半就卡住了,最後發現在程式中乙個迴圈寫的不是正確。

通過老師和同學的幫助使我能按時完成了設計。非常感謝老師和同學的幫助。同時我也也進一步複習了c語言的使用及其相關知識,程式設計能力也有了很大提高,而且在編寫程式與除錯程式過程中也體會到了其中的樂趣。

實習中模擬的檔案操作,要求使用者按「建立」、「寫」、「關閉」和「開啟」、「讀」、「關閉」的步驟來訪問檔案的。在有些系統中允許使用者把「開啟」、「建立」、「關閉」等要求隱含在「讀」和「寫」的要求中,即使用者只要提出「讀」或「寫」的要求即可。它具有「按名訪問」的功能,不僅方便使用者,而且能提高系統效率且安全可靠。

這次課程設計讓我收穫很大。但是在完成的過程中有許多取巧的地方,自身也存在許多不足,有待提高。

通過此次實驗加深了對檔案系統的了解。通過對檔案操作的研究使我對檔案系統有了進一步的認識,對以後從事工作會有很大的幫助。

五、教師評語及成績

評語:成績:年月日

作業系統課程設計報告

上海電力學院 計算機作業系統原理 課程設計報告 題目名稱 編寫程式模擬虛擬儲存器管理 姓名 杜志豪 學號 20121798 班級 2012053班 同組姓名 孫嘉軼 課程設計時間 2014.6.30 2014.7.4 評語成績 一 設計內容及要求4 1.1 設計題目4 1 2 使用演算法分析4 1 ...

作業系統課程設計報告

作業系統 課程設計報告 姓名吳昊學號 20091811042 系別資訊管理與工程系 專業電腦科學與技術班級 09級 課程設計題目模擬檔案管理系統 指導教師崔新會 小組成員吳昊 丁強強 辛夢娟 王放 周洋 2012 年 6 月 11 日 目錄 內容摘要 2 第一章引言 2 第二章需求分析 4 第三章系...

作業系統課程設計報告

課程設計說明書 設計名稱 作業系統課程設計 題目 檔案訪問介面設計 學生姓名 陳小浪 專業 電腦科學與技術 班級 12級1班 學號 2012314118 指導教師 任朝暉 日期 2014 年 9 月 15 日 課程設計任務書 電腦科學與技術專業年級班 一 設計題目 檔案訪問介面設計 二 主要內容 利...