歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

操作系統(tǒng)課程設(shè)計(jì)報(bào)告 虛擬文件系統(tǒng)的實(shí)現(xiàn)

  • 資源ID:28612107       資源大?。?span id="0up7aw5" class="font-tahoma">417.17KB        全文頁(yè)數(shù):46頁(yè)
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

操作系統(tǒng)課程設(shè)計(jì)報(bào)告 虛擬文件系統(tǒng)的實(shí)現(xiàn)

武漢工程大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院綜合設(shè)計(jì)報(bào)告設(shè)計(jì)名稱: 操作系統(tǒng)綜合設(shè)計(jì) 設(shè)計(jì)題目: 虛擬文件系統(tǒng)的實(shí)現(xiàn) 學(xué)生學(xué)號(hào): 專業(yè)班級(jí): 計(jì)工02 學(xué)生姓名: 學(xué)生成績(jī): 指導(dǎo)教師(職稱): 蔡瓊(副教授) 課題工作時(shí)間: 12年2月13日 至 12年2 月24日 說(shuō)明:1、報(bào)告中的第一、二、三項(xiàng)由指導(dǎo)教師在綜合設(shè)計(jì)開(kāi)始前填寫并發(fā)給每個(gè)學(xué)生;四、五兩項(xiàng)(中英文摘要)由學(xué)生在完成綜合設(shè)計(jì)后填寫。2、學(xué)生成績(jī)由指導(dǎo)教師根據(jù)學(xué)生的設(shè)計(jì)情況給出各項(xiàng)分值及總評(píng)成績(jī)。3、指導(dǎo)教師評(píng)語(yǔ)一欄由指導(dǎo)教師就學(xué)生在整個(gè)設(shè)計(jì)期間的平時(shí)表現(xiàn)、設(shè)計(jì)完成情況、報(bào)告的質(zhì)量及答辯情況,給出客觀、全面的評(píng)價(jià)。4、所有學(xué)生必須參加綜合設(shè)計(jì)的答辯環(huán)節(jié),凡不參加答辯者,其成績(jī)一律按不及格處理。答辯小組成員應(yīng)由2人及以上教師組成。5、報(bào)告正文字?jǐn)?shù)一般應(yīng)不少于5000字,也可由指導(dǎo)教師根據(jù)本門綜合設(shè)計(jì)的情況另行規(guī)定。6、平時(shí)表現(xiàn)成績(jī)低于6分的學(xué)生,其綜合設(shè)計(jì)成績(jī)按不及格處理。7、此表格式為武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院提供的基本格式(適用于學(xué)院各類綜合設(shè)計(jì)),各教研室可根據(jù)本門綜合設(shè)計(jì)的特點(diǎn)及內(nèi)容做適當(dāng)?shù)恼{(diào)整,并上報(bào)學(xué)院批準(zhǔn)。成績(jī)?cè)u(píng)定表學(xué)生姓名: 學(xué)號(hào): 班級(jí): 09計(jì)算機(jī)2班 類別合計(jì)分值各項(xiàng)分值評(píng)分標(biāo)準(zhǔn)實(shí)際得分合計(jì)得分備注平時(shí)表現(xiàn)1010按時(shí)參加綜合設(shè)計(jì),無(wú)曠課、遲到、早退、違反實(shí)驗(yàn)室紀(jì)律等情況。完成情況3020按設(shè)計(jì)任務(wù)書(shū)的要求完成了全部任務(wù),能完整演示其設(shè)計(jì)內(nèi)容,符合要求。10能對(duì)其設(shè)計(jì)內(nèi)容進(jìn)行詳細(xì)、完整的介紹,并能就指導(dǎo)教師提出的問(wèn)題進(jìn)行正確的回答。報(bào)告質(zhì)量3510報(bào)告文字通順,內(nèi)容翔實(shí),論述充分、完整,立論正確,結(jié)構(gòu)嚴(yán)謹(jǐn)合理;報(bào)告字?jǐn)?shù)符合相關(guān)要求,工整規(guī)范,整齊劃一。5課題背景介紹清楚,綜述分析充分。5設(shè)計(jì)方案合理、可行,論證嚴(yán)謹(jǐn),邏輯性強(qiáng),具有說(shuō)服力。5符號(hào)統(tǒng)一;圖表完備、符合規(guī)范要求。5能對(duì)整個(gè)設(shè)計(jì)過(guò)程進(jìn)行全面的總結(jié),得出有價(jià)值的結(jié)論或結(jié)果。5參考文獻(xiàn)數(shù)量在3篇以上,格式符合要求,在正文中正確引用。答辯情況2510在規(guī)定時(shí)間內(nèi)能就所設(shè)計(jì)的內(nèi)容進(jìn)行闡述,言簡(jiǎn)意明,重點(diǎn)突出,論點(diǎn)正確,條理清晰。15在規(guī)定時(shí)間內(nèi)能準(zhǔn)確、完整、流利地回答教師所提出的問(wèn)題??傇u(píng)成績(jī): 分 補(bǔ)充說(shuō)明: 指導(dǎo)教師: 蔡瓊 (簽字)日 期: 2012 年 2 月 24 日答辯記錄表學(xué)生姓名: 學(xué)號(hào): 班級(jí): 09計(jì)算機(jī)2班 答辯地點(diǎn): L403號(hào)機(jī)房 答辯內(nèi)容記錄:答辯成績(jī)合計(jì)分值各項(xiàng)分值評(píng)分標(biāo)準(zhǔn)實(shí)際得分合計(jì)得分備注2510在規(guī)定時(shí)間內(nèi)能就所設(shè)計(jì)的內(nèi)容進(jìn)行闡述,言簡(jiǎn)意明,重點(diǎn)突出,論點(diǎn)正確,條理清晰。15在規(guī)定時(shí)間內(nèi)能準(zhǔn)確、完整、流利地回答教師所提出的問(wèn)題。答辯小組成員(簽字): 2012 年 2 月 24 日指導(dǎo)教師評(píng)語(yǔ)指導(dǎo)教師: 蔡瓊 (簽字)日 期: 2012 年 2 月 24 日一、綜合設(shè)計(jì)目的、條件、任務(wù)和內(nèi)容要求:操作系統(tǒng)在計(jì)算機(jī)科學(xué)中是一門核心專業(yè)基礎(chǔ)課,涉及較多硬件和軟件知識(shí)。在計(jì)算機(jī)軟、硬件課程的設(shè)置上,它起著承上啟下的作用。其特點(diǎn)是概念多、較抽象、涉及的知識(shí)面廣。操作系統(tǒng)綜合設(shè)計(jì)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生的一門實(shí)踐課程,是學(xué)習(xí)完操作系統(tǒng)課程后的課程設(shè)計(jì),本課程的教學(xué)目的是,通過(guò)學(xué)習(xí),使學(xué)生了解計(jì)算機(jī)操作系統(tǒng)的發(fā)展特點(diǎn);理解操作系統(tǒng)的基本概念、組成和各部分的功能;掌握計(jì)算機(jī)操作系統(tǒng)設(shè)計(jì)的基本原理和方法;理解常見(jiàn)操作系統(tǒng)的結(jié)構(gòu)原理并能熟練使用。虛擬文件系統(tǒng)的實(shí)現(xiàn)課題,要求學(xué)生了解文件類型及文件系統(tǒng)模型,理解文件的邏輯結(jié)構(gòu)類型及特點(diǎn),理解文件外存的分配方式,掌握文件的目錄管理及存儲(chǔ)空間管理,理解文件的安全性和數(shù)據(jù)一致性。培養(yǎng)學(xué)生的抽象思維能力、邏輯推理能力和形式化思維方法,增強(qiáng)分析問(wèn)題和解決問(wèn)題的能力。設(shè)計(jì)任務(wù)和內(nèi)容要求:在Windows或者Linux下設(shè)計(jì)一個(gè)二級(jí)(或者樹(shù)型)結(jié)構(gòu)文件系統(tǒng),要求至少實(shí)現(xiàn)以下功能:login 用戶登錄、dir 列出文件目錄、create 創(chuàng)建文件、del 刪除文件、open 打開(kāi)文件、close 關(guān)閉文件、read 讀文件、write 寫文件、cd 進(jìn)入子目錄、rd 刪除子目錄、md 創(chuàng)建子目錄等。設(shè)計(jì)提示:實(shí)現(xiàn)虛擬文件系統(tǒng)的一般思路是調(diào)用系統(tǒng)的文件創(chuàng)建(如c中的fopen函數(shù)的w方式即可)一個(gè)新文件,將此文件作為虛擬磁盤,在完成本設(shè)計(jì)要求的內(nèi)容時(shí),要求所生成的文件目錄以及文件等內(nèi)容都是存儲(chǔ)在此磁盤中。 指導(dǎo)教師簽字: 蔡 瓊 2012 年 1 月 8 日二、進(jìn)度安排:第1周(2.13-2.14) : 學(xué)生熟悉課題的任務(wù)和要求,查閱相關(guān)文獻(xiàn)和資料,并做好編碼準(zhǔn)備第1周 (2.15-2.17) :程序編碼、調(diào)試第2周 (2.20-2.22) :程序編碼、調(diào)試和測(cè)試,書(shū)寫報(bào)告第2周 (2.23-2.24): 答辯、檢查、驗(yàn)收、遞交設(shè)計(jì)報(bào)告三、應(yīng)收集資料及主要參考文獻(xiàn):應(yīng)收集的資料:面向?qū)ο蟪绦蛟O(shè)計(jì)思想和方法高級(jí)程序設(shè)計(jì)語(yǔ)言參考手冊(cè)操作系統(tǒng)、軟件工程方面參考書(shū)籍主要參考文獻(xiàn):(1) 李小林,張俊 .程序設(shè)計(jì)基礎(chǔ)Z.北京:中國(guó)鐵道出版社,2008.(2) 湯小丹等.計(jì)算機(jī)操作系統(tǒng)Z.西安:西安電子科技大學(xué)出版社,2007.(3) 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)Z.北京:清華大學(xué)出版社,2007.四、綜合設(shè)計(jì)摘要:操作系統(tǒng)在計(jì)算機(jī)科學(xué)中是一門核心專業(yè)基礎(chǔ)課,涉及較多硬件和軟件知識(shí)。在計(jì)算機(jī)軟、硬件課程的設(shè)置上,它起著承上啟下的作用。其特點(diǎn)是概念多、較抽象、涉及的知識(shí)面廣。操作系統(tǒng)綜合設(shè)計(jì)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生的一門實(shí)踐課程,是學(xué)習(xí)完操作系統(tǒng)課程后的課程設(shè)計(jì),本課程的教學(xué)目的是,通過(guò)學(xué)習(xí),使學(xué)生了解計(jì)算機(jī)操作系統(tǒng)的發(fā)展特點(diǎn);理解操作系統(tǒng)的基本概念、組成和各部分的功能;掌握計(jì)算機(jī)操作系統(tǒng)設(shè)計(jì)的基本原理和方法;理解常見(jiàn)操作系統(tǒng)的結(jié)構(gòu)原理并能熟練使用。本此課程設(shè)計(jì)的課題是設(shè)計(jì)一二級(jí)結(jié)構(gòu)文件系統(tǒng),要求學(xué)生了解文件類型及文件系統(tǒng)模型,理解文件的邏輯結(jié)構(gòu)類型及特點(diǎn),理解文件外存的分配方式,掌握文件的目錄管理及存儲(chǔ)空間管理,理解文件的安全性和數(shù)據(jù)一致性。培養(yǎng)學(xué)生的抽象思維能力、邏輯推理能力和形式化思維方法,增強(qiáng)分析問(wèn)題和解決問(wèn)題的能力。關(guān)鍵詞:操作系統(tǒng);虛擬文件;二級(jí)結(jié)構(gòu)5、 綜合設(shè)計(jì)Abstract:The operating system in computer science is a core fundamental course, involves more hardware and software knowledge. In computer software and hardware of the course setting, it plays the role of the link. Its characteristic is more, more abstract concept, involving a wider range of knowledge.The operating system is integrated design of computer science and technology major students a practical courses, is after studying the operating system of the course design curriculum, the teaching purpose of this course is, through the study, make students understand the development of the computer operating system characteristics; Understanding the basic concept of the operating system, composition and the functions of the parts of the; Good computer operating system the basic principle of design and the method; Understand common operating system structure theory and be familiar with.The course design of the subject is to design the structure of 12 file system, students are required to understand file type and file system model, understand the logic structure type and file characteristics, understand documents allocation of CRT, master file directory management and storage space management, understand the security of documents and data consistency. The cultivation of the students ability to think abstractly, logical reasoning ability and formal thinking method, strengthen the ability to analyze and solve problems.Keywords: operating system; Virtual file; The secondary structure武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 綜合設(shè)計(jì)報(bào)告目 錄摘 要 . 2Abstract . 2第一章 課題背景.31.1 課題簡(jiǎn)介 .3 1.1.1 課題背景 .3 1.1.2 課題目的 .3 1.1.3 要求及內(nèi)容 .31.2 原理與內(nèi)容 .3 1.2.1 理論依據(jù) .3 1.2.2 課題內(nèi)容 .3第二章設(shè)計(jì)簡(jiǎn)介及設(shè)計(jì)方案論述 .42.1 設(shè)計(jì)簡(jiǎn)介 .4 2.2 設(shè)計(jì)方案論述 .4 2.3 概要設(shè)計(jì) .4 2.3.1 數(shù)據(jù)結(jié)構(gòu) .4 2.3.2 主要操作函數(shù) .5第三章詳細(xì)設(shè)計(jì) .63.1 系統(tǒng)分析 .6 3.2 文件基本操作 .6 3.3 算法流程圖 .7第四章設(shè)計(jì)結(jié)果及分析. 84.1 文件系統(tǒng)功能 .84.2 系統(tǒng)測(cè)試 .8 4.3 運(yùn)行結(jié)果分析 .10 總 結(jié) .11 致 謝 .12 參考文獻(xiàn) .13附錄 主要程序代碼 .14 摘 要操作系統(tǒng)在計(jì)算機(jī)科學(xué)中是一門核心專業(yè)基礎(chǔ)課,涉及較多硬件和軟件知識(shí)。在計(jì)算機(jī)軟、硬件課程的設(shè)置上,它起著承上啟下的作用。其特點(diǎn)是概念多、較抽象、涉及的知識(shí)面廣。操作系統(tǒng)綜合設(shè)計(jì)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生的一門實(shí)踐課程,是學(xué)習(xí)完操作系統(tǒng)課程后的課程設(shè)計(jì),本課程的教學(xué)目的是,通過(guò)學(xué)習(xí),使學(xué)生了解計(jì)算機(jī)操作系統(tǒng)的發(fā)展特點(diǎn);理解操作系統(tǒng)的基本概念、組成和各部分的功能;掌握計(jì)算機(jī)操作系統(tǒng)設(shè)計(jì)的基本原理和方法;理解常見(jiàn)操作系統(tǒng)的結(jié)構(gòu)原理并能熟練使用。本此課程設(shè)計(jì)的課題是設(shè)計(jì)一二級(jí)結(jié)構(gòu)文件系統(tǒng),要求學(xué)生了解文件類型及文件系統(tǒng)模型,理解文件的邏輯結(jié)構(gòu)類型及特點(diǎn),理解文件外存的分配方式,掌握文件的目錄管理及存儲(chǔ)空間管理,理解文件的安全性和數(shù)據(jù)一致性。培養(yǎng)學(xué)生的抽象思維能力、邏輯推理能力和形式化思維方法,增強(qiáng)分析問(wèn)題和解決問(wèn)題的能力。關(guān)鍵詞:操作系統(tǒng);虛擬文件;二級(jí)結(jié)構(gòu)AbstractThe operating system in computer science is a core fundamental course, involves more hardware and software knowledge. In computer software and hardware of the course setting, it plays the role of the link. Its characteristic is more, more abstract concept, involving a wider range of knowledge.The operating system is integrated design of computer science and technology major students a practical courses, is after studying the operating system of the course design curriculum, the teaching purpose of this course is, through the study, make students understand the development of the computer operating system characteristics; Understanding the basic concept of the operating system, composition and the functions of the parts of the; Good computer operating system the basic principle of design and the method; Understand common operating system structure theory and be familiar with.The course design of the subject is to design the structure of 12 file system, students are required to understand file type and file system model, understand the logic structure type and file characteristics, understand documents allocation of CRT, master file directory management and storage space management, understand the security of documents and data consistency. The cultivation of the students ability to think abstractly, logical reasoning ability and formal thinking method, strengthen the ability to analyze and solve problems.Keywords:operating system; Virtual file; The secondary structure第一章 課題背景1.1 課題簡(jiǎn)介1.1.1 課題背景操作系統(tǒng)在計(jì)算機(jī)科學(xué)中是一門核心專業(yè)基礎(chǔ)課,涉及較多硬件和軟件知識(shí)。在計(jì)算機(jī)軟、硬件課程的設(shè)置上,它起著承上啟下的作用。其特點(diǎn)是概念多、較抽象、涉及的知識(shí)面廣。1.1.2 課題目的通過(guò)學(xué)習(xí),使學(xué)生了解計(jì)算機(jī)操作系統(tǒng)的發(fā)展特點(diǎn);理解操作系統(tǒng)的基本概念、組成和各部分的功能;掌握計(jì)算機(jī)操作系統(tǒng)設(shè)計(jì)的基本原理和方法;理解常見(jiàn)操作系統(tǒng)的結(jié)構(gòu)原理并能熟練使用。1.1.3 要求及意義了解文件類型及文件系統(tǒng)模型,理解文件的邏輯結(jié)構(gòu)類型及特點(diǎn),理解文件外存的分配方式,掌握文件的目錄管理及存儲(chǔ)空間管理,理解文件的安全性和數(shù)據(jù)一致性。培養(yǎng)學(xué)生的抽象思維能力、邏輯推理能力和形式化思維方法,增強(qiáng)分析問(wèn)題和解決問(wèn)題的能力。1.2 原理與內(nèi)容1.2.1 理論依據(jù) 文件系統(tǒng)是Linux操作系統(tǒng)的重要組成部分,Linux文件具有強(qiáng)大的功能。文件系統(tǒng)中的文件是數(shù)據(jù)的集合,文件系統(tǒng)不僅包含著文件中的數(shù)據(jù)而且還有文件系統(tǒng)的結(jié)構(gòu),所有Linux 用戶和程序看到的文件、目錄、軟連接及文件保護(hù)信息等都存儲(chǔ)在其中。1.2.2 課題內(nèi)容在Windows或者Linux下設(shè)計(jì)一個(gè)二級(jí)(或者樹(shù)型)結(jié)構(gòu)文件系統(tǒng),要求至少實(shí)現(xiàn)以下功能:login 用戶登錄、dir 列出文件目錄、create 創(chuàng)建文件、del 刪除文件、open 打開(kāi)文件、close 關(guān)閉文件、read 讀文件、write 寫文件、cd 進(jìn)入子目錄、rd 刪除子目錄、md 創(chuàng)建子目錄等。第二章 設(shè)計(jì)簡(jiǎn)介及設(shè)計(jì)方案論述2.1 設(shè)計(jì)簡(jiǎn)介本系統(tǒng)是模擬實(shí)現(xiàn)多用戶多目錄的文件系統(tǒng),在系統(tǒng)出現(xiàn)登錄后 ,輸入用戶與口令,在用戶登錄系統(tǒng)后,可建立文件卷,將用戶輸入的文件保存在指定的文件中。系統(tǒng)的命令與其命令的具體實(shí)現(xiàn),此模擬系統(tǒng)共提供了上述命令,并根據(jù)命令的含義與要求,用C+編程來(lái)完成所有具體操作。該系統(tǒng)可以模擬完成用戶的登陸和驗(yàn)證,列出文件和目錄,新建目錄,改變目錄,創(chuàng)立和編寫文件,刪除文件和退出系統(tǒng)等功能2.2 設(shè)計(jì)方案論述 本文件系統(tǒng)采用兩級(jí)目錄,其中第一級(jí)對(duì)應(yīng)于用戶賬號(hào),第二級(jí)對(duì)應(yīng)于用戶帳號(hào)下的文件。另外,為了簡(jiǎn)便文件系統(tǒng)未考慮文件共享,文件系統(tǒng)安全以及管道文件與設(shè)備文件等特殊內(nèi)容。 首先應(yīng)確定文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu):主目錄、子目錄及活動(dòng)文件等。主目錄和子目錄都以文件的形式存放于磁盤,這樣便于查找和修改。 用戶創(chuàng)建的文件,可以編號(hào)存儲(chǔ)于磁盤上。如:file0,file1,file2并以編號(hào)作為物理地址,在目錄中進(jìn)行登記。2.3 概要設(shè)計(jì)2.3.1 數(shù)據(jù)結(jié)構(gòu)struct fatitem /* size 8*/ int item; /*存放文件下一個(gè)磁盤的指針*/ char em_disk; /*磁盤塊是否空閑標(biāo)志位0 空閑*/ ; struct direct /*-文件控制快信息-*/ struct FCB char name9; /*文件/目錄名8位*/ char property; /*屬性1位目錄0位普通文件*/ int size; /*文件/目錄字節(jié)數(shù)、盤塊數(shù))*/ int firstdisk; /*文件/目錄起始盤塊號(hào)*/ int next; /*子目錄起始盤塊號(hào)*/ int sign; /*1是根目錄0不是根目錄*/ directitemMSD+2; ; struct opentable struct openttableitem char name9; /*文件名*/ int firstdisk; /*起始盤塊號(hào)*/ int size; /*文件的大小*/ openitemMOFN; int cur_size; /*當(dāng)前打文件的數(shù)目*/ ; 2.3.2 主要操作函數(shù)int create(char *name); int open(char *name); int close(char *name); int write(int fd,char *buf,int len); int read(int fd,char *buf); int del(char *name); int mkdir(char *name); int rmdir(char *name); void dir(); int cd(char *name); void print(); void show(); 第3章 詳細(xì)設(shè)計(jì)3.1 系統(tǒng)分析 本次設(shè)計(jì)的“模擬二級(jí)文件管理系統(tǒng)”利用的是二級(jí)目錄管理方式,分別由用戶文件目錄FAT、主文件目錄Root構(gòu)成。其中FAT由用戶的所有文件塊組成,在FAT中每個(gè)用戶目錄文件占用一個(gè)目錄項(xiàng),其中目錄項(xiàng)中包含用戶名、用戶密碼以及指向用戶文件目錄文件鏈表的指針。3.2 文件基本操作 創(chuàng)建文件:創(chuàng)建一個(gè)新文件時(shí),系統(tǒng)首先要為新文件申請(qǐng)必要的外存空間,并在FAT中為文件分配一個(gè)目錄項(xiàng)。目錄項(xiàng)中應(yīng)記錄新建文件的文件名、文件總?cè)萘俊?dāng)前已經(jīng)使用的容量、文件屬性、文件在磁盤中的起始位置。 刪除文件:當(dāng)已不在需要某文件時(shí),可將它從文件系統(tǒng)中刪除。在刪除時(shí),首先在FAT的文件鏈表中找到與該文件對(duì)應(yīng)的文件結(jié)點(diǎn),然后確認(rèn)文件是否處于關(guān)閉狀態(tài),若以上條件都滿足,則系統(tǒng)就可以把結(jié)點(diǎn)從文件鏈表中刪除,然后回收改結(jié)點(diǎn)對(duì)應(yīng)的磁盤空間。 打開(kāi)文件:只有處于打開(kāi)狀態(tài)的文件才能被讀取、寫入、重復(fù)關(guān)閉且不能被刪除。 關(guān)閉文件:只有處于關(guān)閉狀態(tài)的文件才能被刪除,且不能被重復(fù)關(guān)閉。 列文件目錄:用戶只能獲取自己建立的文件或其他用戶共享的文件的列表,并可以查看所用戶建立的文件列表。 寫文件:用戶可以把相關(guān)數(shù)據(jù)寫入到用戶自定義的文件中(磁盤上);待寫文件必須處于打開(kāi)狀態(tài),且不能是其他用戶共享的文件。讀文件:用戶可以把文件中存儲(chǔ)的數(shù)據(jù)讀取出來(lái);待讀文件必須處于打開(kāi)狀態(tài);用戶既可以讀取自己建立的文件,也可以讀取其他用戶共享的文件。建子目錄:輸入目錄名,若存在于該文件名相同的目錄,這創(chuàng)建失??;若無(wú),則查找空閑的磁盤,將該磁盤置為分配狀態(tài),填寫目錄項(xiàng),分配地址后,子目錄創(chuàng)建成功。刪除目錄:輸入名字,查找是否存在該文件或目錄,若為文件,則不能刪除;若存在,找到起始盤塊號(hào),并將其釋放,修改目錄項(xiàng),刪除成功。3.3 算法流程圖 開(kāi)始初始化磁盤有無(wú)該用戶?登錄/注冊(cè)?注冊(cè)新用戶注冊(cè)登錄分析命令Y顯示:無(wú)此用戶N創(chuàng)建文件打開(kāi)文件關(guān)閉文件讀文件寫文件列文件目錄刪除文件注銷用戶退出系統(tǒng)end提示錯(cuò)誤指令成功執(zhí)行?YN框圖1:程序整體框架第四章 設(shè)計(jì)結(jié)果及分析4.1 文件系統(tǒng)功能 系統(tǒng)具有如下基本功能:login 用戶登錄dir 列目錄create 創(chuàng)建文件delete 刪除文件open 打開(kāi)文件close 關(guān)閉文件read 讀文件write 寫文件cd 進(jìn)出目錄 mkdir 創(chuàng)建子目錄rmdir 刪除子目錄4.2 系統(tǒng)測(cè)試(1)login 用戶登錄(2)mkdir創(chuàng)建子目錄(3)cd進(jìn)出目錄(4)create創(chuàng)建文件(5)close關(guān)閉文件(6)open打開(kāi)文件(7)write寫文件(8) read讀文件(9) dir列目錄(10)delete刪除文件(11)rmdir刪除子目錄4.3 運(yùn)行結(jié)果分析從上述運(yùn)行過(guò)程可以看出,用戶登錄系統(tǒng)后,界面將顯示文件或目錄的基本操作,然后根據(jù)相應(yīng)操作,完成系統(tǒng)的基本要求。本次程序的運(yùn)行結(jié)果與預(yù)期結(jié)果最終達(dá)到了一致。自運(yùn)行階段,雖然每次都能得到運(yùn)行結(jié)果,但是操作界面有時(shí)不是很完美,于是通過(guò)修改程序代碼,不斷執(zhí)行程序,進(jìn)行完善,直到得出滿意的操作界面為止。在該過(guò)程中,驗(yàn)證了本次課程設(shè)計(jì)所要求的基本功能,雖然有些操作不是很完善,但大體上都能實(shí)現(xiàn)。其中最令我不滿意的是dir功能。該功能只是列出目錄名,不能顯示目錄其他信息,是本次課程設(shè)計(jì)最大敗筆。總 結(jié)課程設(shè)計(jì)是對(duì)我們平時(shí)學(xué)習(xí)的一種考察,我們要正確地對(duì)待。不斷地鍛煉自己動(dòng)手動(dòng)腦的能力、把知識(shí)賦予實(shí)踐就是我們學(xué)習(xí)的目標(biāo)!既然學(xué)校給我們這么好的機(jī)會(huì),讓我們自己在實(shí)驗(yàn)室作操作,我們應(yīng)該好好抓住機(jī)會(huì),把我們平時(shí)學(xué)習(xí)的東西用自己的作品展現(xiàn)出來(lái)。這次,我做的是模擬linux二級(jí)文件系統(tǒng)設(shè)計(jì)的課程主題,這給了我充分鍛煉的機(jī)會(huì)。我會(huì)用自己學(xué)到的東西的設(shè)計(jì)出一副好的作品。 Linux系統(tǒng)中的文件系統(tǒng)是人們最感興趣的,也是最成功的一部分。它既有很強(qiáng)的功能,又非常靈活,而且在具體的實(shí)現(xiàn)技術(shù)上也有許多獨(dú)到之處,致使后來(lái)有不少操作系統(tǒng)的設(shè)計(jì)者都仿效了Liux操作系統(tǒng)中的文件系統(tǒng)去開(kāi)發(fā)自己的文件系統(tǒng)。而對(duì)于我來(lái)說(shuō),這種最靈活的知識(shí)卻是最難掌握的。也因?yàn)閷?duì)其基本知識(shí)掌握的不好,在這一次的設(shè)計(jì)過(guò)程中遇到很多的困難,特別是物理盤塊和邏輯文件之間的對(duì)應(yīng)。在經(jīng)過(guò)與同學(xué)進(jìn)行溝通和交流并反復(fù)的測(cè)試之后,才明白了設(shè)計(jì)的函數(shù),而且完善了部分函數(shù)的主要功能。通過(guò)兩星期的操作系統(tǒng)課程設(shè)計(jì)實(shí)習(xí),讓我對(duì)Linux文件系統(tǒng)有了深層次的了解和掌握,也通過(guò)了自己的能力體會(huì)到了編程的樂(lè)趣。最重要的是學(xué)會(huì)了關(guān)于設(shè)計(jì)分析和以前C+語(yǔ)言學(xué)習(xí)過(guò)程中沒(méi)有及時(shí)鞏固的知識(shí),對(duì)C+程序設(shè)計(jì)又有了更進(jìn)一步的認(rèn)識(shí),對(duì)一些細(xì)節(jié)的結(jié)構(gòu)體語(yǔ)句有了更深刻的理解。所以這是一次很難得的實(shí)踐機(jī)會(huì),讓我真正用心編程,學(xué)到了課本以外更深刻更重要的實(shí)踐經(jīng)驗(yàn)。非常感謝老師提供這次機(jī)會(huì),在這個(gè)課程設(shè)計(jì)過(guò)程中我受益匪淺,希望以后在這樣的鍛煉中不斷成長(zhǎng),提高自己各方面的能力我相信通過(guò)我以后很加刻苦的學(xué)習(xí),我會(huì)更加熱愛(ài)我的專業(yè)課程。致 謝在本次課程設(shè)計(jì)的整個(gè)過(guò)程中,要特別感謝自始至終給我提供幫助和指導(dǎo)的劉黎志老師,是他耐心的指導(dǎo)才使得本次設(shè)計(jì)得以順得完成,同時(shí),也要感謝其他同學(xué)的無(wú)私幫助,在此還要特別感謝為我們提供良好上機(jī)環(huán)境的學(xué)校。如果沒(méi)有以上老師,同學(xué)和學(xué)校的幫助和支持,本次設(shè)計(jì)實(shí)難完成。再次感謝老師的精心輔導(dǎo)和同學(xué)的相互幫助,使我們順利完成此次設(shè)計(jì)以及為學(xué)習(xí)以后的科目打下良好的基礎(chǔ)。參考文獻(xiàn) (1)李小林,張俊 .程序設(shè)計(jì)基礎(chǔ)Z.北京:中國(guó)鐵道出版社,2008. (2)湯小丹等.計(jì)算機(jī)操作系統(tǒng)Z.西安:西安電子科技大學(xué)出版社,2007. (3)嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)Z.北京:清華大學(xué)出版社,2007.附錄主要代碼源程序:#include<stdio.h> #include<string.h> #include<stdlib.h> #define MEM_D_SIZE 1024*1024 /總磁盤空間為M#define DISKSIZE 1024/磁盤塊的大小K#define DISK_NUM 1024/磁盤塊數(shù)目K#define FATSIZE DISK_NUM*sizeof(struct fatitem)/FAT表大小#define ROOT_DISK_NO FATSIZE/DISKSIZE+1/根目錄起始盤塊號(hào)#define ROOT_DISK_SIZE sizeof(struct direct)/根目錄大小#define DIR_MAXSIZE 1024/路徑最大長(zhǎng)度為KB#define MSD 5/最大子目錄數(shù)#define MOFN 5/最大文件深度為#define MAX_WRITE 1024*128/最大寫入文字長(zhǎng)度KB struct fatitem /* size 8*/ int item; /*存放文件下一個(gè)磁盤的指針*/ char em_disk; /*磁盤塊是否空閑標(biāo)志位0 空閑*/ ; struct direct /*-文件控制快信息-*/ struct FCB char name9; /*文件/目錄名8位*/ char property; /*屬性1位目錄0位普通文件*/ int size; /*文件/目錄字節(jié)數(shù)、盤塊數(shù))*/ int firstdisk; /*文件/目錄起始盤塊號(hào)*/ int next; /*子目錄起始盤塊號(hào)*/ int sign; /*1是根目錄0不是根目錄*/ directitemMSD+2; ; struct opentable struct openttableitem char name9; /*文件名*/ int firstdisk; /*起始盤塊號(hào)*/ int size; /*文件的大小*/ openitemMOFN; int cur_size; /*當(dāng)前打文件的數(shù)目*/ ; struct fatitem *fat; /*FAT表*/ struct direct *root; /*根目錄*/ struct direct *cur_dir; /*當(dāng)前目錄*/ struct opentable u_opentable; /*文件打開(kāi)表*/ int fd=-1; /*文件打開(kāi)表的序號(hào)*/ char *bufferdir; /*記錄當(dāng)前路徑的名稱*/ char *fdisk; /*虛擬磁盤起始地址*/ void initfile(); void format(); void enter(); void halt(); int create(char *name); int open(char *name); int close(char *name); int write(int fd,char *buf,int len); int read(int fd,char *buf); int del(char *name); int mkdir(char *name); int rmdir(char *name); void dir(); int cd(char *name); void print(); void show(); void initfile() fdisk = (char *)malloc(MEM_D_SIZE*sizeof(char); /*申請(qǐng)1M空間*/ format(); void format() int i; FILE *fp; fat = (struct fatitem *)(fdisk+DISKSIZE); /*計(jì)算FAT表地址,引導(dǎo)區(qū)向后偏移1k)*/ /*-初始化FAT表-*/ fat0.item=-1; /*引導(dǎo)塊*/ fat0.em_disk=1; for(i=1;i<ROOT_DISK_NO-1;i+) /*存放FAT表的磁盤塊號(hào)*/ fati.item=i+1; fati.em_disk=1; fatROOT_DISK_NO.item=-1; /*存放根目錄的磁盤塊號(hào)*/ fatROOT_DISK_NO.em_disk=1; for(i=ROOT_DISK_NO+1;i<DISK_NUM;i+) fati.item = -1; fati.em_disk = 0; /*-*/ root = (struct direct *)(fdisk+DISKSIZE+FATSIZE); /*根目錄的地址*/ /*初始化目錄*/ /*-指向當(dāng)前目錄的目錄項(xiàng)-*/ root->directitem0.sign = 1; root->directitem0.firstdisk = ROOT_DISK_NO; strcpy(root->directitem0.name,"."); root->directitem0.next = root->directitem0.firstdisk; root->directitem0.property = 1; root->directitem0.size = ROOT_DISK_SIZE; /*-指向上一級(jí)目錄的目錄項(xiàng)-*/ root->directitem1.sign = 1; root->directitem1.firstdisk = ROOT_DISK_NO; strcpy(root->directitem1.name,"."); root->directitem1.next = root->directitem0.firstdisk; root->directitem1.property = 1; root->directitem1.size = ROOT_DISK_SIZE; if(fp = fopen("disk.dat","wb")=NULL) printf("Error:n Cannot open file n"); return; for(i=2;i<MSD+2;i+) /*-子目錄初始化為空-*/ root->directitemi.sign = 0; root->directitemi.firstdisk = -1; strcpy(root->directitemi.name,""); root->directitemi.next = -1; root->directitemi.property = 0; root->directitemi.size = 0; if(fp = fopen("disk.dat","wb")=NULL) printf("Error:n Cannot open file n"); return; if(fwrite(fdisk,MEM_D_SIZE,1,fp)!=1) /*把虛擬磁盤空間保存到磁盤文件中*/ printf("Error:n File write error! n"); fclose(fp); void enter() FILE *fp; int i; fdisk = (char *)malloc(MEM_D_SIZE*sizeof(char); /*申請(qǐng)1M空間*/ if(fp=fopen("disk.dat","rb")=NULL) printf("Error:nCannot open filen"); return; if(!fread(fdisk,MEM_D_SIZE,1,fp) /*把磁盤文件disk.dat 讀入虛擬磁盤空間(內(nèi)存)*/ printf("Error:nCannot read filen"); exit(0); fat = (struct fatitem *)(fdisk+DISKSIZE); /*找到FAT表地址*/ root = (struct direct *)(fdisk+DISKSIZE+FATSIZE);/*找到根目錄地址*/ fclose(fp); /*-初始化用戶打開(kāi)表-*/ for(i=0;i<MOFN;i+) strcpy(u_opentable.openitemi.name,""); u_opentable.openitemi.firstdisk = -1; u_opentable.openitemi.size = 0; u_opentable.cur_size = 0; cur_dir = root; /*當(dāng)前目錄為根目錄*/ bufferdir = (char *)malloc(DIR_MAXSIZE*sizeof(char); strcpy(bufferdir,"Root:"); void halt() FILE *fp; int i; if(fp=fopen("disk.dat","wb")=NULL) printf("Error:nCannot open filen"); return; if(!fwrite(fdisk,MEM_D_SIZE,1,fp) /*把虛擬磁盤空間(內(nèi)存)內(nèi)容讀入磁盤文件disk.dat */ printf("Error:nFile write error!n"); fclose(fp); free(fdisk); free(bufferdir); return;int create(char *name) int i,j; if(strlen(name)>8) /*文件名大于8位*/ return(-1); for(j=2;j<MSD+2;j+) /*檢查創(chuàng)建文件是否與已存在的文件重名*/ if(!strcmp(cur_dir->directitemj.name,name) break; if(j<MSD+2) /*文件已經(jīng)存在*/ return(-4); for(i=2;i<MSD+2;i+) /*找到第一個(gè)空閑子目錄*/ if(cur_dir->directitemi.firstdisk=-1) break; if(i>=MSD+2) /*無(wú)空目錄項(xiàng)*/ return(-2); if(u_opentable.cur_size>=MOFN) /*打開(kāi)文件太多*/ return(-3); for(j=ROOT_DISK_NO+1;j<DISK_NUM;j+) /*找到空閑盤塊j 后退出*/ if(fatj.em_disk=0) break; if(j>=DISK_NUM) return(-5); fatj.em_disk = 1; /*將空閑塊置為已經(jīng)分配*/ /*-填寫目錄項(xiàng)-*/ strcpy(cur_dir->directitemi.name,name); cur_dir->directitemi.firstdisk = j; cur_dir->directitemi.size = 0; cur_dir->directitemi.next = j; cur_dir->directitemi.property = 0; /*-*/ fd = open(name); return 0; int open(char *name) int i, j; for(i=2;i<MSD+2;i+) /*文件是否存在*/ if(!strcmp(cur_dir->directitemi.name,name) break; if(i>=MSD+2) return(-1); /*-是文件還是目錄-*/ if(cur_dir->directitemi.property=1)return(-4); /*-文件是否打開(kāi)-*/ for(j=0;j<MOFN;j+) if(!strcmp(u_opentable.openitemj.name,name) break; if(j<MO

注意事項(xiàng)

本文(操作系統(tǒng)課程設(shè)計(jì)報(bào)告 虛擬文件系統(tǒng)的實(shí)現(xiàn))為本站會(huì)員(仙***)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!