操作系統實驗5簡易文件管理系統

NO IMAGE

說明:由於我這次作業完成的很敷衍,所以我在這裡暫時不貼出我的代碼,關鍵部分其實是找到getblk和putblk對應的系統調用函數即可

功能要求
①至少支持普通文件和目錄文件兩種類型
②創建新文件,刪除已有文件
③根據文件名(絕對路徑)檢索到相應的文件(/d0/d1/filename)
④支持的操作:open、close、read、write
⑤至少支持三層目錄(/d0/d1/filename)
⑥能讀取外部提供的文件並存入到文件系統中(即從模擬的磁盤空間之外拷貝文件)
⑦提供命令行界面,能夠顯示目錄內容和文件內容

實現要求
①使用一個空文件模擬一塊磁盤,大小為 1MB,可預先創建好。磁盤大致結構如下:
Boot
block
Super
block
Data block
bitmap
Inode
bitmap
Inode
table
Data
block
……
Super block 包含有關文件系統的屬性和信息,基本塊大小、/目錄 inode 的位置等
Data block bitmap 標記塊的使用情況,每一 bit 對應相應位置的塊(1=使用,0=空 閒)
Inode bitmap 標記 inode 的使用情況,每一 bit 對應一個 inode(1=使用,0=空閒) Inode table 存放 inode,多塊(inode table 大小固定,即 inode 的最大數量固定)
Data block 存放文件內容,多塊
②以塊為存取的基本單位,大小為 1KB
③每個文件最多佔有 8 塊,即文件的最大大小為 8KB
④文件名最長 8B ⑤簡易文件系統支持最多 80 個文件(含目錄文件)
⑥索引節點(inode):
 每個索引節點大小 64B(1 個塊可以存放 16 個 inode)
 系統需要維護 inode bitmap,記錄每個索引節點分配與否
 每個索引節點至少包含:文件標識符、文件涉及的塊(地址或塊號)、文件 創建時間等
 採用直接索引方式獲取塊位置
 根節點已知(即/目錄對應的索引節點位置已知)
⑦需要實現兩個基本函數:
GETBLK(buf, blk_no);
PUTBLK(buf, blk_no);
 兩個函數用於讀取和寫入指定塊。buf 為內存緩衝區,大小與基本塊大小相同,用於存放讀取或待寫入的塊內容;blk_no 為物理塊號
 文件系統的其他功能函數實現在這兩個基本函數的上層,即其他函數不直接訪問磁盤

相關文章

數據庫實驗3數據定義語言DDL

網絡身份認證——Kerberos配置及認證

Problem_2MajorityProblem

計算機網絡實驗3:網絡設備基本配置