檔案系統的設計與實現 作業系統課程設計 概念篇

2021-10-08 07:33:20 字數 2738 閱讀 6331

哈嘍,歡迎來到小朱課堂,下面開始你的學習吧!

檔案系統的設計與實現:作業系統課程設計(概念篇)1.通過模擬檔案系統的實現,深入理解作業系統中檔案系統的理論知識, 加深對教材中的重要演算法的理解。同時通過程式設計實現這些演算法,更好地掌握作業系統的原理及實現方法,提高綜合運用各專業課知識的能力。

2.意義:本檔案系統採用多級目錄,其中第一級對應於使用者賬號,第二級對應於使用者賬號下的檔案,第**對應資料夾下的檔案,以此類推。另外,為了簡單本檔案系統未考慮檔案共享、檔案系統安全以及管道檔案與裝置檔案等特殊內容。

① 使用者登入

使用者分為超級管理員、管理員和普通使用者。超級管理員具有建立使用者並設定許可權的許可權;

管理員與超級管理員許可權基本相同。

② 建立檔案

模擬檔案系統進行「建立檔案」的處理。

③ 開啟檔案

約定操作型別與檔案屬性不符合和正處在「建立」狀態的檔案不允許開啟。

④ 關閉檔案

對某個檔案不需要再讀或寫的時候,使用者應關閉該檔案。

⑤ 讀檔案

檔案開啟後可順序讀檔案中的記錄,讀長度表示本次操作需讀的記錄個數。

⑥ 寫檔案

執行寫檔案操作時要區分兩種情況,第一種是在執行create後要求寫,第二種是執行open後要求寫。對第二種情況可認為使用者要對乙個已建立好的檔案進行修改。乙個檔案可以分多次寫,既可按記錄順序寫也可隨機寫乙個記錄,採用順序寫時可省略記錄號。

⑦ 刪除檔案

把請求撤消的檔案從擁護檔案目錄表中除名,收回該檔案站用的儲存區域。

⑧ 檔案列表

將目前本使用者本路徑的檔案列出,並列出相關的屬性。

⑨ 結束

退出程式,返回原有作業系統。

3.1:主要的資料結構

通過分析課程設計要求,具體設計出如下資料結構:

//使用者型別定義

struct user

char name[10];//使用者名稱

int pride;//使用者許可權,1為管理員,0為普通使用者

char pass[10];//使用者密碼

//定義空白區項

struct freeb

int number;

struct freeb * next;

//定義檔案開啟項

struct fileb

int parent;//所在父節點

char name[15];//檔名

int pride;//讀寫許可權,0唯讀,1讀寫

int rex;//讀寫狀態,0為沒有,1讀2寫

struct fileb * next;

//定義檔案索引項

struct findex

char name[15];

int number;

int parent;

char kind;

struct findex * next;

//定義目錄表項

struct dreitem

char name[25];//目錄或者檔名稱

int share; //共享數

int parent;//上層目錄

int pride;//檔案操作許可權,0唯讀,1讀寫

int empty;//是否是空閒塊,0為空閒塊,1為非空

char kind;//型別,檔案為f,資料夾為d

4.1 login登陸:

使用者輸入使用者名稱和密碼,在user檔案中查詢是否有此使用者,核對密碼。正確則登陸成功,當前目錄設定到當前使用者資料夾下。

4.2 createuser()新建使用者:

先根據提示輸入使用者名稱,再判斷此使用者名稱是否已存在,若存在則重新輸入,若沒有,則使用者建立成功。函式結束。

4.3intlist()初始化空閒區鍊錶以及檔案索引鏈:

本函式在程式用執行後,對空閒區進行初始化。

4.4 newdrec()新建目錄:

輸入引數為要建立的型別,f為檔案,d為資料夾。並輸入許可權(0唯讀,1讀寫)。在建立目錄時,並檢測是否有重名的目錄,若有則建立失敗;沒有重名的就在空閒區新增,否則,直接在檔案中新增。

4.5 lsfile()列出當前路徑下的檔案:

查詢當前目錄下的各種檔案並列舉出來。

4.6 back()目錄後退

檢測當前是否處於根目錄下,不是則返回到上一目錄;若當前處於根目錄下,則無法後退。

1:磁碟格式化後進入登入介面

2:先用超級管理員登陸後顯示幫助資訊並建立使用者

3使用者登陸後並列出當前目錄下的內容

4.開啟檔案

5.關閉檔案

6,當前路徑

第一、作業系統這次課程設計讓我學習到了很多計算機方面的知識,在一定程度上對以前的所學知識進一步加深,更讓我有了乙個系統的了解。作業系統是計算機的軟體的系統的基礎,具有一定平台性。掌握好這門課程對我們以後學習計算機知識有乙個很大的幫助。

第二、本次課程設計讓我明白了編寫程式一定要動手去寫**,進行實際操作方可進取得一定性的進步,還要進行與組內人員之間的團結與協作。共同學習,共同克服困難,取得共同進步。

搬磚路上,希望對你有幫助!可以關注一下喲,持續更新喲! 有問題可以私聊博主,快發表一下你的看法吧!

作業系統 檔案系統

5.2開啟檔案 在作業系統中就是確定程序操作哪個檔案。這個確定過程由兩個事件構成 1.將使用者程序task struct中的 filp 20 與核心中的file table 64 進行掛接。2.將使用者程序需要開啟的檔案對應的i節點在file table 64 中進行登記。filp 20 掌控乙個程...

作業系統 檔案系統

通過設計乙個基於索引結構的檔案系統,了解檔案系統設計以及物理塊分配的基本概念。硬體環境 計算機一台,區域網環境 軟體環境 windows 作業系統 visual studio2019 1 設計乙個檔案系統的索引結構,描述邏輯結構與物理索引結構之間的關係 2 檔案建立等基本功能 段 問1 這個標頭檔案...

作業系統 目錄與檔案系統

這個本來是打算寒假在家看的,對作業系統有乙個大概的了解,沒想到受疫情影響,就一直呆在家了,這個系列也算是更新完了 而這花了二個星期的時間把王道的作業系統也看了一遍,主要是看書,做後面的習題,主要是選擇,大題略看了一下,接下來就是再複習繼續寫題了。乙個檔案對應這一堆的磁碟塊 使用者按照這種結構去訪問檔...