文件資料系統(tǒng)的實(shí)驗(yàn)報(bào)告材料

文件資料系統(tǒng)的實(shí)驗(yàn)報(bào)告材料

ID:29919180

大小:111.00 KB

頁(yè)數(shù):25頁(yè)

時(shí)間:2018-12-25

文件資料系統(tǒng)的實(shí)驗(yàn)報(bào)告材料_第1頁(yè)
文件資料系統(tǒng)的實(shí)驗(yàn)報(bào)告材料_第2頁(yè)
文件資料系統(tǒng)的實(shí)驗(yàn)報(bào)告材料_第3頁(yè)
文件資料系統(tǒng)的實(shí)驗(yàn)報(bào)告材料_第4頁(yè)
文件資料系統(tǒng)的實(shí)驗(yàn)報(bào)告材料_第5頁(yè)
資源描述:

《文件資料系統(tǒng)的實(shí)驗(yàn)報(bào)告材料》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、實(shí)用標(biāo)準(zhǔn)文案實(shí)驗(yàn)二文件系統(tǒng)實(shí)驗(yàn)報(bào)告精彩文檔實(shí)用標(biāo)準(zhǔn)文案一.實(shí)驗(yàn)簡(jiǎn)介本實(shí)驗(yàn)要求在假設(shè)的I/O系統(tǒng)之上開發(fā)一個(gè)簡(jiǎn)單的文件系統(tǒng),這樣做既能讓實(shí)驗(yàn)者對(duì)文件系統(tǒng)有整體了解,又避免了涉及過多細(xì)節(jié)。用戶通過create,open,read等命令與文件系統(tǒng)交互。文件系統(tǒng)把磁盤視為順序編號(hào)的邏輯塊序列,邏輯塊的編號(hào)為0至L-1。I/O系統(tǒng)利用內(nèi)存中的數(shù)組模擬磁盤。實(shí)際物理磁盤的結(jié)構(gòu)是多維的:有柱面、磁道、扇區(qū)等概念。I/O系統(tǒng)的任務(wù)是隱藏磁盤的結(jié)構(gòu)細(xì)節(jié),把磁盤以邏輯塊的面目呈現(xiàn)給文件系統(tǒng)。邏輯塊順序編號(hào),編號(hào)取值范圍為0至L..1,其中L表示磁盤的存儲(chǔ)塊總數(shù)。實(shí)驗(yàn)中,我們可以利用字符

2、數(shù)組ldisk[L][B]構(gòu)建磁盤模型,其中B表示每個(gè)存儲(chǔ)塊的長(zhǎng)度。I/O系統(tǒng)從文件系統(tǒng)接收命令,根據(jù)命令指定的邏輯塊號(hào)把磁盤塊的內(nèi)容讀入命令指定的內(nèi)存區(qū)域,或者把命令指定的內(nèi)存區(qū)域內(nèi)容寫入磁盤塊。我設(shè)計(jì)的文件系統(tǒng)擁有三個(gè)用戶。二.具體說明1.文件系統(tǒng)的組織:磁盤的前k個(gè)塊是保留區(qū),其中包含如下信息:位圖和文件描述符。位圖用來描述磁盤塊的分配情況。位圖中的每一位對(duì)應(yīng)一個(gè)邏輯塊。創(chuàng)建或者刪除文件,以及文件的長(zhǎng)度發(fā)生變化時(shí),文件系統(tǒng)都需要進(jìn)行位圖操作。前k個(gè)塊的剩余部分包含一組文件描述符。每個(gè)文件描述符包含如下信息:?文件長(zhǎng)度,單位字節(jié)?文件分配到的磁盤塊號(hào)數(shù)組。該數(shù)組

3、的長(zhǎng)度是一個(gè)系統(tǒng)參數(shù)。在實(shí)驗(yàn)中我們可以把它設(shè)置為一個(gè)比較小的數(shù),例如3。2.目錄:我們的文件系統(tǒng)中僅設(shè)置一個(gè)目錄,該目錄包含文件系統(tǒng)中的所有文件。除了不需要顯示地創(chuàng)建和刪除之外,目錄在很多方面和普通文件相像。目錄對(duì)應(yīng)0號(hào)文件描述符。初始狀態(tài)下,目錄中沒有文件,所有,目錄對(duì)應(yīng)的描述符中記錄的長(zhǎng)度應(yīng)為0,而且也沒有分配磁盤塊。每創(chuàng)建一個(gè)文件,目錄文件的長(zhǎng)度便增加一分。目錄文件的內(nèi)容由一系列的目錄項(xiàng)組成,其中每個(gè)目錄項(xiàng)由如下內(nèi)容組成:精彩文檔實(shí)用標(biāo)準(zhǔn)文案?文件名?文件描述符序號(hào)3.對(duì)文件的操作:文件系統(tǒng)需提供如下函數(shù);create,destroy,open,read,wr

4、ite。?create(filename):根據(jù)指定的文件名創(chuàng)建新文件。?destroy(filename):刪除指定文件。?open(filename):打開文件。該函數(shù)返回的索引號(hào)可用于后續(xù)的read,write,lseek,或close操作。?close(index):關(guān)閉制定文件。?read(index,mem_area,count):從指定文件順序讀入count個(gè)字節(jié)mem_area指定的內(nèi)存位置。讀操作從文件的讀寫指針指示的位置開始。?write(index,mem_area,count):把mem_area指定的內(nèi)存位置開始的count個(gè)字節(jié)順序?qū)懭胫?/p>

5、定文件。寫操作從文件的讀寫指針指示的位置開始。?lseek(index,pos):把文件的讀寫指針移動(dòng)到pos指定的位置。pos是一個(gè)整數(shù),表示從文件開始位置的偏移量。文件打開時(shí),讀寫指針自動(dòng)設(shè)置為0。每次讀寫操作之后,它指向最后被訪問的字節(jié)的下一個(gè)位置。lseek能夠在不進(jìn)行讀寫操作的情況下改變讀寫指針能位置。?directory:列表顯示所有文件及其長(zhǎng)度。三.實(shí)驗(yàn)過程精彩文檔實(shí)用標(biāo)準(zhǔn)文案創(chuàng)建文件create:此時(shí)顯示文件中的文件:文件的刪除delete:打開文件(open):精彩文檔實(shí)用標(biāo)準(zhǔn)文案文件的寫操作(write):讀文件(read):關(guān)閉文件(close

6、):退出系統(tǒng)(exit):精彩文檔實(shí)用標(biāo)準(zhǔn)文案四.實(shí)驗(yàn)代碼#include#include#include#include#defineNULL0typedefstructmdf{//MDF結(jié)構(gòu)體charusername[20];//用戶名charfilename[20];//文件名structmdf*next;}MDF;typedefstructufd{//UFD結(jié)構(gòu)體charfilename[20];//文件名intprotect;//文件保護(hù)碼unsignedintlength;//

7、文件長(zhǎng)度structufd*next;精彩文檔實(shí)用標(biāo)準(zhǔn)文案}UFD;typedefstructafd{//AFD結(jié)構(gòu)體charfilename[20];//文件名intprotect;//文件保護(hù)碼unsignedintpoint;//文件讀寫指針structafd*next;}AFD;MDF*pmdf;//全局鏈表頭指針UFD*pufd;AFD*pafd;charUserUFD[20];//已經(jīng)登陸成功的用戶名voidinitMDF()//初始化MDF表{FILE*fp;pmdf=(MDF*)malloc(sizeof(MDF));MDF*p=pmdf;if(

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。