版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課 程 設(shè) 計(jì)</b></p><p><b> ?。ú僮飨到y(tǒng))</b></p><p> 題 目: 磁盤空間管理 / Disk allocation</p><p> 班 級: 計(jì)算機(jī)科學(xué)與技術(shù) </p><p> 姓 名:
2、 </p><p> 指導(dǎo)教師: </p><p> 系主任: </p><p> 2017年09月01日</p><p><b> 目 錄</b></p><p><b> 1 題目分析1</b></p><
3、;p> 2 數(shù)據(jù)結(jié)構(gòu)及函數(shù)2</p><p> 1.1 主要變量參數(shù)2</p><p> 1.2 文件數(shù)據(jù)結(jié)構(gòu)2</p><p> 1.3 主要函數(shù)2</p><p><b> 3 流程圖3</b></p><p><b> 4 實(shí)現(xiàn)技術(shù)4</b>
4、;</p><p> 4.1 命令行程序4</p><p> 4.2 圖形界面程序8</p><p> 5 設(shè)計(jì)結(jié)論和心得12</p><p><b> 1 題目分析</b></p><p> 磁盤空間管理在操作系統(tǒng)中地位至關(guān)重要,由于磁盤具有可直接訪問的特性 ,故當(dāng)利用磁盤來存放
5、文件時(shí),具有很大的靈活性。在為文件分配外存空間時(shí)所要考慮的主要問題是:怎樣才能有效的利用外村空間和如何提高對文件的訪問速度。目前,常用的外存分配方法有連續(xù)分配、 鏈接分配和索引分配三種。通常,在一個(gè)系統(tǒng)中, 僅采用其中的一種方法來為文件分配外存空間。在本次課程設(shè)計(jì)中,主要是針對連續(xù)分配和鏈接分配兩種方式設(shè)計(jì)程序模擬磁盤空間的管理。</p><p> 文件的物理結(jié)構(gòu)與外存分配方式有關(guān)。不同的分配方式會形成不同的文
6、件結(jié)構(gòu),連續(xù)分配會形成順序式的文件結(jié)構(gòu),而鏈接分配則會形成鏈接式文件結(jié)構(gòu)。</p><p> 本次課程設(shè)計(jì)將主要采用C++語言和C#語言,同時(shí)運(yùn)用文件物理結(jié)構(gòu)和磁盤空間管理的相關(guān)知識,開發(fā)出兩個(gè)版本的磁盤空間管理模擬軟件。實(shí)現(xiàn)連續(xù)分配、鏈接分配兩種外存分配方式,能夠顯示文件的邏輯塊地址和物理塊地址映射關(guān)系,能夠?qū)崟r(shí)的顯示文件空間占用情況和磁盤空間的使用情況。同時(shí)為了處理好連續(xù)分配可能帶來的磁盤碎片話問題,為了盡
7、可能最大化的利用磁盤空間,將構(gòu)造磁盤緊湊函數(shù)用來模擬磁盤緊湊功能的實(shí)現(xiàn)。其中C++語言將開發(fā)出簡單的命令行程序,然后用C#語言轉(zhuǎn)成有圖形界面的完整模擬程序。</p><p><b> 2 數(shù)據(jù)結(jié)構(gòu)及函數(shù)</b></p><p><b> 主要變量參數(shù)</b></p><p> int disksum;//磁盤空間
8、大小</p><p> int diskrem;//磁盤剩余空間大小</p><p> int firesum;//文件占據(jù)空間大小</p><p> int fireid;//存儲文件個(gè)數(shù)</p><p> int way;//存儲方式</p><p> int disk[10240];
9、//模擬磁盤存儲塊</p><p> string run="1";//操作選項(xiàng)</p><p><b> 文件數(shù)據(jù)結(jié)構(gòu)</b></p><p> struct Fire{</p><p> string name;//文件名</p><p> int _siz
10、e;//文件大小</p><p> int st,en;//連續(xù)文件首位地址</p><p> int loc[100];//存儲文件物理地址</p><p><b> };</b></p><p><b> 主要函數(shù)</b></p><p> 存儲文件
11、函數(shù):void storefire();</p><p> 刪除文件函數(shù):void storefire();</p><p> 磁盤緊湊函數(shù):void compactdisk();</p><p> 顯示地址函數(shù):void adressshow();</p><p> 顯示空間占用函數(shù):void show();</p>
12、<p> 打印初始化函數(shù):void prin();</p><p><b> 3 流程圖</b></p><p><b> 圖1 總流程圖</b></p><p> 圖2 存儲文件流程圖圖3 刪除文件流程圖</p><p><b> 4 實(shí)現(xiàn)技術(shù)<
13、/b></p><p><b> 命令行程序</b></p><p> 為實(shí)現(xiàn)簡單命令行程序設(shè)計(jì),采用C++語言,VS2017開發(fā)環(huán)境。</p><p> 具體采用的技術(shù)如下:</p><p> (1)字典樹存儲查找算法。在進(jìn)行存儲文件、刪除文件、顯示映射地址時(shí),需要查詢文件名是否存在,當(dāng)文件數(shù)量特別大時(shí),
14、如果采用順序查找,效率十分低,采用字典樹查找算法就能快速高效的查詢文件是否存在;</p><p> ?。?)線段樹算法。進(jìn)行連續(xù)存儲時(shí),需要判斷磁盤是否存在連續(xù)的空間能夠存儲下當(dāng)前文件,采用順序查找判斷同樣是效率低下,采用線段樹算法優(yōu)化可以很大程度上節(jié)省程序運(yùn)行時(shí)間;</p><p> (3)鏈表。進(jìn)行鏈接存儲文件時(shí),采用鏈表存儲更方便,刪除文件時(shí)操作更加便捷。</p>&
15、lt;p><b> 實(shí)現(xiàn)步驟如下:</b></p><p> ?。?)程序初始化,設(shè)置磁盤空間大小,選擇文件存儲方式;</p><p> ?。?)選擇執(zhí)行的操作,存儲、刪除、緊湊及各種信息顯示;</p><p> (3)執(zhí)行操作,輸入需要的相關(guān)信息,如存儲文件時(shí)需要輸入文件名和文件大?。?lt;/p><p> ?。?/p>
16、4)程序內(nèi)部運(yùn)行完成后返回(2),直至選擇退出系統(tǒng)。</p><p><b> 運(yùn)行結(jié)果如下:</b></p><p> ?。?)以下給出多種功能演示的正常情況的運(yùn)行情況,截圖如下:</p><p><b> 圖4 存儲操作</b></p><p><b> 圖5刪除文件</b
17、></p><p> 圖6 磁盤使用情況(刪除文件前)</p><p> 圖7 磁盤使用情況(刪除文件后)</p><p><b> 圖8 磁盤緊湊處理</b></p><p> 圖9 地址映射顯示(緊湊處理前)</p><p> 圖10 地址映射顯示(緊湊處理后)</p&g
18、t;<p> 圖11 鏈接存儲后的地址映射</p><p> ?。?)除了以上正常情況輸入輸出外,考慮到本程序設(shè)計(jì)大量的輸入操作,為了避免人為操作的失誤,導(dǎo)致程序意外終止崩潰的情況發(fā)生,程序內(nèi)部還增加了大量的容錯(cuò)機(jī)制,即使輸入錯(cuò)誤的數(shù)據(jù)類型也能使程序正常運(yùn)行,以下僅給出幾例輸入錯(cuò)誤截圖:</p><p> 圖12 存儲方式選擇錯(cuò)誤示例</p><p&g
19、t; 圖13 操作方式選擇錯(cuò)誤示例</p><p> 圖14 存儲文件輸入重名文件</p><p> 圖15 存儲文件超出剩余空間大小</p><p><b> 圖形界面程序</b></p><p> 為了完成本次課程設(shè)計(jì)的任務(wù)要求,實(shí)現(xiàn)用圖形界面演示,本人又重新采用C#語言,在VS2017開發(fā)環(huán)境下,開發(fā)出第
20、二個(gè)版本的磁盤管理系統(tǒng)。具體采用的技術(shù)如下:</p><p> 采用Lable控件用作顯示文字標(biāo)簽,顯示程序中需要的一些文字提示;</p><p> 采用TextBox控件用作輸入輸出的接口,輸入一些信息或者顯示輸出的信息;</p><p> 采用Button控件用作選擇執(zhí)行操作的按鈕;</p><p> 采用RadioButton控
21、件用來選擇連續(xù)存儲或者鏈接存儲;</p><p> 具體算法運(yùn)用與上述C++程序基本一致。</p><p> 以下是程序運(yùn)行的部分截圖:</p><p> 圖16 登錄界面(密碼:password)</p><p><b> 圖17 初始化界面</b></p><p><b>
22、 圖18 操作主界面</b></p><p><b> 圖19 存儲界面</b></p><p><b> 圖20 刪除界面</b></p><p> 圖21 顯示地址映射</p><p> 對于本程序,同樣也進(jìn)行了容錯(cuò)處理,對于輸入錯(cuò)誤的數(shù)據(jù)也會給出相應(yīng)的提示,具體的示例如下截
23、圖所示:</p><p> 圖22 輸入錯(cuò)誤的用戶名</p><p> 圖23 輸入錯(cuò)誤密碼</p><p><b> 圖24 文件名重名</b></p><p> 圖25 刪除不存在文件</p><p><b> 5 設(shè)計(jì)結(jié)論和心得</b></p>
24、<p> 通過課程設(shè)計(jì)得到如下結(jié)論:</p><p> (1)深入理解了磁盤存儲文件兩種方式不同的內(nèi)部機(jī)制,也理解了為什么不同的外存方式會形成不同物理結(jié)構(gòu)的文件,同時(shí)也對連續(xù)存儲和鏈接存儲的優(yōu)缺點(diǎn)有所了解,如連續(xù)存儲容易使磁盤碎片化的問題更加嚴(yán)重,不能充分的利用磁盤的空間,而鏈接存儲能有效的解決磁盤碎片化的問題,但卻影響了磁盤的訪問速度,兩種方式各有長短,在實(shí)際生活中,應(yīng)該根據(jù)文件的不同類型采用相應(yīng)
25、的外存分配方式;</p><p> ?。?)在算法優(yōu)化方面,測試程序時(shí)由于數(shù)據(jù)量相對較小并不能體現(xiàn)出所用到的字典樹查找、線段樹等算法的優(yōu)勢,但在實(shí)際生活中需要處理的數(shù)據(jù)往往特別大,所以對算法的優(yōu)化還是十分有必要的,這次的課程設(shè)計(jì)也是綜合考察了以前的課程《數(shù)據(jù)結(jié)構(gòu)預(yù)算法分析》,能夠?qū)W(xué)過的知識加以運(yùn)用才是學(xué)習(xí)的最終目的。</p><p> 有如下幾點(diǎn)心得體會:</p><
26、;p> ?。?)本次課程設(shè)計(jì)中,除了運(yùn)用了之前學(xué)習(xí)過的C++語言,還邊看邊學(xué)邊用地挑戰(zhàn)了一下一門新語言C#語言,也提高了自主學(xué)習(xí)的能力,同時(shí)也理解到了編程的精髓所在,只要認(rèn)真地學(xué)好了一門編程語言,打好基礎(chǔ),以后在入門其他編程語言的時(shí)候效率就會非常高,所以說基礎(chǔ)知識非常重要,在學(xué)習(xí)的過程中千萬不能眼高手低,一定要腳踏實(shí)地的靜下心來學(xué)習(xí),才能得到質(zhì)的提升;</p><p> ?。?)在開始本次課程設(shè)計(jì)之前,得知
27、需要實(shí)現(xiàn)圖形界面操作,內(nèi)心其實(shí)是有一些畏懼的,因?yàn)橐郧白龅恼n程設(shè)計(jì)和實(shí)驗(yàn)并沒有要求實(shí)現(xiàn)圖形界面,一直都是用命令行窗口運(yùn)行演示的。由于沒有做過圖形界面,就下意識的以為會非常困難復(fù)雜,畏難情緒油然而生,但通過幾天的了解和學(xué)習(xí),發(fā)現(xiàn)并沒有想象中的那么復(fù)雜,只要沉下心好好學(xué),選對適合做圖形界面的語言,完成課程設(shè)計(jì)所需要的簡單界面也沒有想象中那么難,這也給我本人一個(gè)啟示,凡事不能還沒開始就被自己的畏難情緒打敗了,只有敢于開始才會發(fā)現(xiàn)也許事實(shí)上并沒
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)---操作系統(tǒng)課程設(shè)計(jì)之linux磁盤空間管理
- 操作系統(tǒng)課程設(shè)計(jì)---磁盤調(diào)度報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告----磁盤管理模塊告
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--磁盤調(diào)度算法
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--磁盤調(diào)度算法
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--磁盤調(diào)度算法
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--磁盤調(diào)度算法
- 操作系統(tǒng)磁盤調(diào)度算法課程設(shè)計(jì)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)---磁盤文件操作
- 操作系統(tǒng)課程設(shè)計(jì)---磁盤調(diào)度算法
- 操作系統(tǒng)課程設(shè)計(jì)--磁盤調(diào)度算法實(shí)踐
- 操作系統(tǒng)課程設(shè)計(jì)-磁盤調(diào)度模擬法
- cscan磁盤調(diào)度算法---操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)——操作系統(tǒng)課程設(shè)計(jì)模擬操作系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告--操作系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告
- 內(nèi)存管理(操作系統(tǒng))操作系統(tǒng)課程設(shè)計(jì)
- 《操作系統(tǒng)》課程設(shè)計(jì)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告
評論
0/150
提交評論