freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

某學院操作系統(tǒng)課程設(shè)計報告(文件管理系統(tǒng))(原創(chuàng))(已修改)

2024-11-28 21:16 本頁面
 

【正文】 城院 03 軟件工程( 1)班第一組 指導(dǎo)老師:古新生(教授) 組長:馮 XX 學號: 20204931104 組員:聶 XX 學號: 20204931108 陳 XX 學號: 20204931111 林 XX 學號: 20204931113 葉 XX 學號: 20204931115 秦 XX 學號: 20204931121 提交日期: 2020 年 6 月 18 日 文件管理系統(tǒng) 文件系統(tǒng)實驗 【實驗?zāi)康摹? 1.理解重要數(shù)據(jù)結(jié)構(gòu)的意義。 2.掌握文件系統(tǒng)的工作機理。 3.學習較為復(fù)雜的 linux下的編程。 【 準備知識 】 這是相對來說有一定難度的實驗,它含蓋了一個簡單的二級文件系統(tǒng)的設(shè)計以及相關(guān)的接口命令編寫的內(nèi)容,也鑒于此把它放在了最后一個實驗?!耙环指?,一分收獲”,在完整的完成本實驗,你將獲得的收益是:對文 件系統(tǒng)工作的機理,特別是 linux的 ext2文件系統(tǒng)工作機理了如指掌; linux下較強的編程能力。好了,從此開始: 一.外存管理 其實很早人們設(shè)計操作系統(tǒng)的時候就意識到一個問題:所有的程序和數(shù)據(jù)不可能都放在內(nèi)存當中。所以為了騰出寶貴的內(nèi)存空間,也為了方便用戶管理外存上的文件,文件系統(tǒng)應(yīng)運而生。文件系統(tǒng)是一個含有大量的文件及其屬性,對文件進行操作、管理的軟件,以及向用戶提供使用文件的接口的一個集合。在邏輯上它的層次結(jié)構(gòu)是這樣的: 文件系統(tǒng)接口 對對象的操作和管理的軟件集合 邏輯文件系統(tǒng) 基本 I/O管理 程序(文件組織模塊) 基本文件系統(tǒng)(物理 I/O層) I/O控制層(設(shè)備驅(qū)動程序) 對象及其屬性說明 作為產(chǎn)品的操作系統(tǒng)目前種類已經(jīng)很多了,一般來勢它們有各自的文件系統(tǒng)。比如 MS的 WINDOWS系列使用的是 FAT1 FAT32或 NTFS的文件系統(tǒng)、 LINUX使用的是 EXT EXT3文件系統(tǒng)等等。 二. linux的 EXT2 文件系統(tǒng) linux使用一個叫虛擬文件系統(tǒng)的技術(shù)從而可以支持多達幾十種的不同文件系統(tǒng),而 EXT2是 linux自己的文件系統(tǒng)。它有幾個重要的數(shù)據(jù)結(jié)構(gòu),一個是超級 塊,用來描述目錄和文件在磁盤上的物理位置、文件大小和結(jié)構(gòu)等信息。 inode也是一個重要的數(shù)據(jù)結(jié)構(gòu)。文件系統(tǒng)中的每個目錄和文件均由一個 inode描述。它包含:文件模式(類型和存取權(quán)限)、數(shù)據(jù)塊位置等信息。如果希望詳細學習 EXT2文件系統(tǒng)可以參看 linux內(nèi)核代碼 include/linux/、 include/linux/。 一個文件系統(tǒng)除了重要的數(shù)據(jù)結(jié)構(gòu)之外,還必須為用戶提供有效的接口操作。比如 EXT2 提供的OPEN/CLOSE接口操作。 三.可能用到的編程技術(shù) 1. fopen,打開文件 格式: FILE *fopen(const char *filename,const char *mode) 需要頭文件 filename:待打開的文件名,如果不存在就創(chuàng)建改文件。 mode:打開方式,常用的有 “ w”寫方式打開,文件不存在就被創(chuàng)建,否則清除原來內(nèi)容; “ r”讀方式打開,文件必須存在; “ a”添加方式打開; “ w+”讀寫方式打開,有清楚功能; “ r+”讀寫方式打開,文件必須存在; “ a+” “ t” TEXT 方式打開; “ b”二進制方式打開 2. fwhite 和 fread,讀寫文件 size_t fwite(const void *buffer,size_t size,size_t count,FILE *stream); size_t fread( void *buffer, size_t size, size_t count, FILE *stream ); buffer:待讀寫的內(nèi)容; size:一次讀寫的量; count:需讀寫 buffer 的次數(shù); stream:打開的文件指針 3. fseek,定位文件 int fseek( FILE *stream, long offset, int origin ); stream:文件指針; offset:偏移量; origin:初始位置,有三個常量, SEEK_CUR是當前位置, SEEK_SET 文件開頭, SEEK_END 文件尾。 四.用內(nèi)存來模擬外存 真正的文件系統(tǒng)對外存進行管理,涉及到許多硬件、設(shè)備管理方面的底層技術(shù),一方面這些技術(shù)不屬于操作系統(tǒng)核心內(nèi)容,一方面過多的內(nèi)容不免造成實驗者顧此失彼,所以這里推薦一種使用內(nèi)存來模擬外存的方式,可以跳過這些硬件技術(shù)而直接把精力放在數(shù)據(jù)結(jié)構(gòu)設(shè)計和操作算法設(shè)計上面。 假定 pInode是一個指向 inode結(jié)構(gòu)的指針,而且它已經(jīng)放入的需要放入的數(shù)值了,現(xiàn)在需要將其寫入到特定位置??捎萌缦麓a: ?? fd=fopen(“ filesystem” ,” w+b” ); //fd是 FILE指針類型, w便是寫方式, b表示二進制 fseek(fd, specific_area,SEEK_SET); // fd是文件指針; specific_area為整形, // 為需要入 pInode的位置 fwrite(pInode,1,sizeof(inode),fd); // 寫 入 pInode信息 ?? 【 實驗內(nèi)容 】 1.根據(jù)前面的提示設(shè)計一個一級(單用戶)文件系統(tǒng)程序,要求實現(xiàn)功能: 1)提供文件創(chuàng)建 /刪除接口命令 create/delete、目錄創(chuàng)建 /刪除接口命令 midair/rmdir、顯示目錄內(nèi)容命令 ls 2)創(chuàng)建的文件不要求格式和內(nèi)容。 2.在 1 基礎(chǔ)上設(shè)計一個二級的文件系統(tǒng),要求實現(xiàn)功能: 1)提供用戶登錄 2)文件、目錄要有權(quán)限 【 實驗指導(dǎo) 】 ? 實實 驗驗 內(nèi)內(nèi) 容容 ? 實實 驗驗 指指 導(dǎo)導(dǎo) ? 文文 件件 系系 統(tǒng)統(tǒng) 的的 數(shù)數(shù) 據(jù)據(jù) 結(jié)結(jié) 構(gòu)構(gòu) ? struct inode { ? struct inode*i_forw。 ? struct inode*i_back。 ? char i_flag。 ? unsigned int i_ino。 ? unsigned int i_count。 ? unsigned int di_addr[NADDR] 。 ? unsigned short di_number。 ? unsigned short di_mode。 ? unsigned short di_uid。 ? unsigned short di_gid。 ? unsigned short di_size。 ? }。 ? struct filsys { ? unsigned short s_isize。 ? unsigned long s_fsize。 ? ? unsigned int s_nfree。 ? unsigned short s_pfree。 ? unsigned int s_free[NICFREE] 。 ? unsigned int s_
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1