




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、河北大學(xué)2009屆本科生學(xué)年論文(設(shè)計)目 錄1 引言11.1 操作系統(tǒng)課程設(shè)計的性質(zhì)11.2 操作系統(tǒng)課程設(shè)計的目的11.3 操作系統(tǒng)課程設(shè)計的具體內(nèi)容和要求11.4 操作系統(tǒng)課程設(shè)計的意義11.5 論文的結(jié)構(gòu)安排12 系統(tǒng)分析與設(shè)計22.1 系統(tǒng)要求22.2 模塊說明22.2.1 文件的邏輯結(jié)構(gòu)22.2.2 文件、目錄的物理結(jié)構(gòu)32.2.3 磁盤塊的分配與回收32.2.4 用戶接口43 系統(tǒng)實現(xiàn)43.1 磁盤管理43.1.1 全局變量43.1.2 初始化43.1.3 磁盤塊的分配53.1.4 磁盤塊的回收63.2文件63.2.1 查找同名文件63.2.2 移動文件73.3目錄93.2.1
2、刪除目錄94體會與收獲1011河北大學(xué)2009屆本科生學(xué)年論文(設(shè)計)1 引言1.1 操作系統(tǒng)課程設(shè)計的性質(zhì)操作系統(tǒng)是計算機科學(xué)與技術(shù)專業(yè)的主要專業(yè)基礎(chǔ)課和主干課。操作系統(tǒng)對計算機系統(tǒng)資源實施管理,是所有其他軟件與計算機硬件的唯一接口,所有用戶在使用計算機時都要得到操作系統(tǒng)提供的服務(wù)。操作系統(tǒng)課程設(shè)計有助于學(xué)生對操作系統(tǒng)的地位,作用產(chǎn)生更全面更詳盡的認(rèn)識、理解。1.2 操作系統(tǒng)課程設(shè)計的目的 1、通過模擬操作系統(tǒng)原理的實現(xiàn),加深對操作系統(tǒng)工作原理和操作系統(tǒng)實現(xiàn)方法的理解;2、通過模擬操作系統(tǒng)原理的實現(xiàn)練習(xí)編程。1.3 操作系統(tǒng)課程設(shè)計的具體內(nèi)容和要求1、文件管理和用戶接口;2、存儲管理;3、設(shè)
3、備管理;4、進(jìn)程管理。1.4 操作系統(tǒng)課程設(shè)計的意義通過模擬操作系統(tǒng)原理的實現(xiàn),加深對操作系統(tǒng)工作原理和操作系統(tǒng)實現(xiàn)方法的理解,掌握了初步分析實際問題的能力,為其今后在相關(guān)領(lǐng)域開展工作打下堅實的基礎(chǔ)。同時使學(xué)生系統(tǒng)科學(xué)地受到分析問題和解決問題的訓(xùn)練,提高運用理論知識解決實際問題的能力。1.5 論文的結(jié)構(gòu)安排本論文主要闡述四部分內(nèi)容。一、引言部分,主要說明本次操作系統(tǒng)課程設(shè)計的性質(zhì)、教學(xué)目的、教學(xué)任務(wù)與要求、意義以及論文的結(jié)構(gòu)安排;二、系統(tǒng)分析與設(shè)計部分,主要闡述系統(tǒng)的主要功能模塊以及每個模塊計劃采用的實現(xiàn)方法和原理;三、系統(tǒng)實現(xiàn)部分,主要通過pdl等工具描述主要模塊的實現(xiàn)流程;四、結(jié)束語部分,
4、主要書寫已經(jīng)實現(xiàn)的本系統(tǒng)存在的不足、改進(jìn)方案和在課程設(shè)計中的體會與收獲。2 系統(tǒng)分析與設(shè)計2.1 系統(tǒng)要求1、文件管理和用戶接口部分實現(xiàn)的主要是單用戶的磁盤文件管理部分,包括:(1)、文件的邏輯結(jié)構(gòu)(2)、文件的物理結(jié)構(gòu)(3)、目錄結(jié)構(gòu)(4)、文件與目錄操作(5)、磁盤塊分配與回收2、磁盤模擬(1)、磁盤是斷電后內(nèi)容不丟失的,因此用文件模擬磁盤。要求模擬系統(tǒng)存在兩塊硬盤:(2)、用一個文件disk1模擬磁盤(3)、磁盤的每個盤塊128字節(jié),模擬磁盤共有256塊。(4)、磁盤中第0塊存放專用塊內(nèi)容,第1、2塊存放根目錄,其余存放子目錄和文件。2.2 模塊說明2.2.1 文件的邏輯結(jié)構(gòu)1、文件的邏
5、輯結(jié)構(gòu)采用流式結(jié)構(gòu);2、文件的內(nèi)容:文件的內(nèi)容均采用文本文件,系統(tǒng)中有兩種文件:(1)、一種是存放任意字符的文件(2)、一種是可執(zhí)行文件:可執(zhí)行文件的內(nèi)容就是系統(tǒng)內(nèi)進(jìn)程的程序體。3、文件中要有一種特定命令的“可執(zhí)行”文件,文件中的命令非常簡單,僅僅包括以下幾種指令:(1)、x=?: 給i賦值一位數(shù)。(2)、x+: i加1。(3)、x-: i減1。(4)、!?: 第一個?為a,b,c中某個設(shè)備,第二個?為一位數(shù),表示使用設(shè)備的時間(由于沒有實際設(shè)備,所以無法知道設(shè)備何時工作完成,所以假定一個數(shù),這個數(shù)隨著系統(tǒng)時間增加而遞減,減到0時,認(rèn)為是設(shè)備工作完成)。(5)、end: 表示文件結(jié)束,同時將結(jié)
6、果寫入文件out,其中包括文件路徑名和i的值。2.2.2 文件、目錄的物理結(jié)構(gòu)文件的物理結(jié)構(gòu)采用索引文件方式。索引文件由三張表組成,第一張表為一個256*6的二維表,每一行記錄文件的索引信息,包括文件名(目錄名)、文件目錄、文件屬性;第二張表是一個256*128的二維表,存放著文件的索引塊號;第三張表是一個長度為256的一維表,第i個單元代表第一張表與第二張表的第i行信息是否為有效信息。目錄采用三級目錄,最多能實現(xiàn)“我的電腦c:folderfolder文件”。采用目錄項分解法,即把目錄分為兩部分:符號目錄項(文件名即相應(yīng)的盤塊號)和基本目錄項(包含除了文件名外的其余全部信息)。具體方式如圖2-
7、1:圖2-1 目錄分項分解圖2.2.3 磁盤塊的分配與回收磁盤使用情況用空閑塊成組鏈接法來記錄:把空閑塊分成若干組,把指向一組中各空閑塊的指針集中在一起,每一組的第一個空閑塊中登記下一組空閑塊的塊號和空閑塊數(shù),余下不足一組塊數(shù)的空閑塊的塊號級快數(shù)登記在一個專用塊中,這樣既可方便查找,又可減少為修改指針而啟動的磁盤的次數(shù),在本系統(tǒng)中將第0塊作為專用塊,其余的存放在一個二維數(shù)組中。每一個空閑塊可索引32項,一共有四個空閑塊,可索引128塊。圖2-2是空閑塊成組鏈接示意圖:圖2-2 空閑塊成組鏈接示意圖2.2.4 用戶接口用戶接口提供用戶命令接口,具體實現(xiàn)以下命令:1.創(chuàng)建文件:create 文件名
8、2.拷貝文件:copy 源文件名 目標(biāo)文件名 3.刪除文件:delete 文件名4.移動文件:move 源文件名 目標(biāo)文件名(磁盤內(nèi)和磁盤間文件移動不同,磁盤內(nèi)的移動實際只是目錄的改變,并不需要真的移動文件;磁盤間的文件移動實際上是先拷貝文件到目標(biāo)磁盤,然后再刪除源文件。)5.編輯文件:edit 文件名(此命令完成對文件的編輯,只讀文件不可以修改。)6.改變文件屬性:change 文件名 屬性(將文件在只讀和非只讀、隱藏和非隱藏之間轉(zhuǎn)換。)7.磁盤格式化命令:format8建立目錄:makdir 目錄名(建立目錄,若有同名目錄存在,則建立失敗。)9.刪除目錄:deldir 目錄名(既可以刪除空
9、目錄,又可以刪除非空目錄,對與非空目錄,首先要刪除其下文件和目錄,然后才能刪除其本身。)3 系統(tǒng)實現(xiàn)3.1 磁盤管理3.1.1 全局變量public byte menu = new byte256; /根目錄,兩個盤塊public byte disk = new byte32768; /每個盤塊128字節(jié),每個磁盤128塊。兩個盤塊 public int zmy_point = 31; /空閑首地址指針public int zmy_get = 31; /得到的空閑區(qū)域指針public int zmy_num = new int4;public int zmy_sum = 0; /分出的空閑塊數(shù)
10、static int zmy_k = 0; /回收時回收區(qū)的第二維角標(biāo)public byte, zmy_block = new byte32, 3; /空閑塊3.1.2 初始化根據(jù)成組連接法,將磁盤的空閑塊進(jìn)行鏈接,具體如下:public void create() zmy_num0 = 32; /專用塊剩余塊數(shù) zmy_num1 = 32; zmy_num2 = 64; zmy_num3 = 96; for (int i = 3; i 32; i+)/專用塊 diski = convert.tobyte(i); /索引快 for (int i = 0; i 32; i+) zmy_block
11、i, 0 = convert.tobyte(zmy_num1+); for (int i = 0; i 32; i+) zmy_blocki, 1 = convert.tobyte(zmy_num2+); for (int i = 0; i 1 i=l+空閑塊數(shù); 從i單元得到一個空閑塊號; 把該塊分配給申請者; 空閑塊數(shù)減一;當(dāng)空閑塊數(shù)=1 取出l+1單元內(nèi)容(第一塊塊號或0); 其值=0無空閑塊,申請失敗提示; 其值!=0 把該塊內(nèi)容復(fù)制到專用塊內(nèi);把該塊分配給申請者;專用塊的內(nèi)容讀到內(nèi)存l開始的區(qū)域。3.1.4 磁盤塊的回收釋放空閑塊的時候與回收正好相反,從后往前分配,先將釋放的空閑塊放
12、到第一組,第一組滿了,在第一組前再開辟一組,之前的第一組變成第二組。具體算法如下:查詢l單元內(nèi)容(空閑塊數(shù))當(dāng)空閑塊數(shù)32 空閑塊數(shù)加一;j=l+空閑塊數(shù); 歸還該塊給j單元; 當(dāng)空閑塊數(shù)=32 把內(nèi)存中登記的信息寫入歸還塊中; 把歸還號填入l+1單元; 把l單元置1。3.2 文件3.2.1 查找同名文件查找是否存在同名文件只需查詢索引表即可。具體算法如下:分割路徑;如果路徑長度為6,代表三級文件for(int i=0;i256;i+)找尋表zmy_path的第一列,看是否與目標(biāo)文件符合;如果符合,繼續(xù)查找zmy_path的第二列,看是否與目標(biāo)文件符合;如果符合,繼續(xù)查找zmy_path的第三
13、列,看是否與目標(biāo)文件符合;如果符合,繼續(xù)查找zmy_path的第四、五列,看是否與目標(biāo)文件符合;如果符合,返回找到的行號i;如果不符合,返回-1;如果路徑長度為5,代表二級文件for(int i=0;i256;i+)找尋表zmy_path的第一列,看是否與目標(biāo)文件符合;如果符合,繼續(xù)查找zmy_path的第二列,看是否與目標(biāo)文件符合;如果符合,繼續(xù)查找zmy_path的第三、四列,看是否與目標(biāo)文件符合;如果符合,返回找到的行號i;如果不符合,返回-1;如果路徑長度為4,代表根級文件for(int i=0;i256;i+)找尋表zmy_path的第一列,看是否與目標(biāo)文件符合;如果符合,繼續(xù)查找z
14、my_path的第二、三列,看是否與目標(biāo)文件符合;如果符合,返回找到的行號i;如果不符合,返回-1;該算法既可以用來找是否存在同名文件,也可以用于查找目標(biāo)文件是否存在。3.2.2 移動文件由于該系統(tǒng)的目錄為三級目錄,故移動文件時會出現(xiàn)5種情況:(1)、兩個一級目錄下文件;(2)、一個一級目錄下文件,一個二級目錄下文件;(3)、兩個二級目錄下文件;(4)、一個二級目錄下文件,一個三級目錄下文件;(5)、兩個三級目錄下文件。每種情況又分為同目錄下文件,不同目錄下文件。具體算法如下:查找目標(biāo)文件是否存在;如果目標(biāo)文件不存在出錯提示;如果目標(biāo)文件存在返回源文件在目錄表中的位置,以修改目錄登記項;如果是
15、兩個一級目錄下文件如果是相同目錄下的文件修改目錄項;如果是不同目錄下的文件調(diào)用copy函數(shù),將源文件復(fù)制到目標(biāo)處;調(diào)用delete函數(shù),刪除源文件;修改目錄項;如果是一個一級目錄下文件,一個二級目錄下文件如果是“move x:a.txt y:foldera.txt”情況如果是不同根目錄查找目標(biāo)文件夾是否存在,源文件在目標(biāo)文件夾中是否存在同名文件;如果不存在同名文件如果目標(biāo)文件夾不存在,創(chuàng)建目標(biāo)文件夾;刪除源文件;修改目錄項;如果是同一根目錄查找目標(biāo)文件夾是否存在,源文件在目標(biāo)文件夾中是否存在同名文件;如果目標(biāo)文件夾存在,無重名文件修改登記項;否則創(chuàng)建目標(biāo)文件夾;修改目錄項;如果是“move y
16、:foldera.txt x:a.txt”情況如果是同一根目錄修改登記項;如果是不同根目錄調(diào)用拷貝函數(shù)復(fù)制文件;修改登記項;如果是兩個二級目錄下文件如果是同目錄下文件修改登記項;如果是不同目錄下文件查看目標(biāo)文件夾是否存在;如果不存在創(chuàng)建目標(biāo)文件夾;修改登記項;如果是一個二級目錄下文件,一個三級目錄下文件查看是否是“move y:folder a.txt x: folder folder a.txt”情況如果是不同根目錄查找目標(biāo)文件夾是否存在,源文件在目標(biāo)文件夾中是否存在同名文件;如果不存在同名文件如果目標(biāo)文件夾不存在,創(chuàng)建目標(biāo)文件夾;刪除源文件;修改目錄項;如果是同一根目錄查找目標(biāo)文件夾是否存
17、在,源文件在目標(biāo)文件夾中是否存在同名文件;如果目標(biāo)文件夾存在,無重名文件修改登記項;否則創(chuàng)建目標(biāo)文件夾;修改目錄項;查看是否是“move x: folder folder a.txt y:folder a.txt”情況如果是同一根目錄修改登記項;如果是不同根目錄調(diào)用拷貝函數(shù)復(fù)制文件;修改登記項;如果是兩個三級目錄下文件如果是同目錄下文件修改登記項;如果是不同目錄下文件查看目標(biāo)文件夾是否存在;如果不存在創(chuàng)建目標(biāo)文件夾;修改登記項;其他文件命令由本組另一個組員完成。3.3 目錄該系統(tǒng)支持三級目錄結(jié)構(gòu)。目錄操作包括創(chuàng)建目錄,刪除目錄。3.2.1 刪除目錄刪除目錄要考慮目錄中內(nèi)容的刪除。具體算法如下:查看目標(biāo)目錄是否存在如果目標(biāo)存在查看該目錄是幾級目錄如果是三級目錄查找該目錄下的文件;調(diào)用delete函數(shù)刪除文件;如果是二級目錄查找該目錄下是否還存在目錄如果還存在目錄,查找次目錄下的文件,調(diào)用delete函數(shù)刪除文件如果不存在其他目錄,查找目標(biāo)目錄下的文件,調(diào)用delete函數(shù)刪除文件。如果目標(biāo)不存在出錯提示;4 體會與收獲通過本次實驗
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025文具采購合同范文
- 《人類文明起源》課件
- 2025寧夏農(nóng)民工勞動合同書
- 2025年山東省臨沂市平邑縣八年級生物一模試題(含答案)
- 玉米芯收購合同協(xié)議
- 電力勞務(wù)施工合同協(xié)議
- 環(huán)保機械出租合同協(xié)議
- 白灰水泥供貨合同協(xié)議
- 玻璃材料采購合同協(xié)議
- 甲醛試驗箱采購合同協(xié)議
- 肝硬化護(hù)理新進(jìn)展
- 2025年征信業(yè)務(wù)合規(guī)培訓(xùn)
- 2025年全國國家版圖知識競賽題庫及答案(中小學(xué)組)
- 2025項目部與供應(yīng)商安全生產(chǎn)物資供應(yīng)合同
- DB15-T 1339-2025 風(fēng)電場機組布置技術(shù)規(guī)范
- 統(tǒng)借統(tǒng)還合同協(xié)議
- 2025年上半年中國十五冶金建設(shè)集團(tuán)限公司公開招聘中高端人才易考易錯模擬試題(共500題)試卷后附參考答案
- 養(yǎng)老院護(hù)理九防內(nèi)容課件
- CNASGL011-202X實驗室和檢驗機構(gòu)內(nèi)部審核指南征求意見稿
- XX鎮(zhèn)衛(wèi)生院綜治信訪維穩(wěn)工作方案
- 2023年河南單招語文模擬試題
評論
0/150
提交評論