(完整版)操作系統(tǒng)畢業(yè)課程設(shè)計指導(dǎo)書_第1頁
(完整版)操作系統(tǒng)畢業(yè)課程設(shè)計指導(dǎo)書_第2頁
(完整版)操作系統(tǒng)畢業(yè)課程設(shè)計指導(dǎo)書_第3頁
已閱讀5頁,還剩56頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、操作系統(tǒng)課程設(shè) 計指導(dǎo)書(試用版)內(nèi)蒙古工業(yè)大學(xué)信息工程學(xué)院計算機系2009 12操作系統(tǒng)課程設(shè)計教學(xué)大綱 3第一章 設(shè)計規(guī)范與說明511設(shè)計規(guī)范51. 2報告的整理與形成.* 6第二章設(shè)計內(nèi)容 72. 1文件系統(tǒng)的設(shè)計與實現(xiàn)722銀行家算法的設(shè)計與實現(xiàn)92. 3主存空間的分配與回收11:2.4外理機管理 16內(nèi)蒙古工業(yè)大學(xué)課程設(shè)計任務(wù)書(一) 19內(nèi)蒙古工業(yè)大學(xué)課程設(shè)計任務(wù)書(二) 20內(nèi)蒙古工業(yè)大學(xué)課程設(shè)計任務(wù)書(三) 21內(nèi)蒙古工業(yè)大學(xué)課程設(shè)計任務(wù)書(四)” 22內(nèi)蒙古工業(yè)大學(xué)課稈設(shè)計(論文)說明書書寫規(guī)范 卡 23附錄一模擬文件系統(tǒng)實踐示例: 26附錄二 銀行家算法實踐示例: 43附錄

2、三 可變式分區(qū)的分配與回收實踐示例: 49附錄四時間片輪轉(zhuǎn)法進行 CPU 調(diào)度的示例:; 54操作系統(tǒng)課程設(shè)計教學(xué)大綱課程類別:技術(shù)基礎(chǔ)課開出單位 (系):計算機課程英文名稱: Operating System of computer開出學(xué)期: 第五學(xué)期 系適用專業(yè):軟件工程制定人:趙俊生、馬志強一、制定依據(jù)根據(jù)內(nèi)蒙古工業(yè)大學(xué) 2006 版培養(yǎng)方案、操作系統(tǒng)課程教學(xué)大綱等制訂本課程設(shè)計教學(xué)大綱。二、目的與基本要求1 目的操作系統(tǒng)課程設(shè)計是操作系統(tǒng)課程的重要實踐性環(huán)節(jié)。 通過小型文件系統(tǒng)、 銀行家算法、 主存空間的分配與回收和處理機管理的設(shè)計與實現(xiàn), 可以加深學(xué)生對課堂中所講 授內(nèi)容的理解, 培

3、養(yǎng)學(xué)生的系統(tǒng)開發(fā)能力, 加強學(xué)生的項目經(jīng)驗, 使學(xué)生初步具有研究、 設(shè)計、編制和調(diào)試操作系統(tǒng)模塊的能力。2 基本要求根據(jù)操作系統(tǒng)課程設(shè)計任務(wù)書所確定的設(shè)計內(nèi)容, 每位同學(xué)選擇其中一個設(shè)計題 目進行一周的設(shè)計, 針對設(shè)計內(nèi)容查閱相關(guān)資料、 進行理論分析、 確定相應(yīng)算法并編程實現(xiàn) 原型系統(tǒng); 完成原型系統(tǒng)后, 按照內(nèi)蒙古工業(yè)大學(xué)課程設(shè)計說明書書寫規(guī)范, 編寫操 作系統(tǒng)課程設(shè)計說明書;最后進行課程設(shè)計答辯。三、基本內(nèi)容和安排1. 基本內(nèi)容題目一:文件系統(tǒng)的設(shè)計與實現(xiàn)題目二:銀行家算法的設(shè)計與實現(xiàn)題目三:主存空間的分配與回收題目四:處理機管理2. 安排周一:布置、講解題目,收集資料;周二:系統(tǒng)分析,算

4、法設(shè)計;周三:編制、調(diào)試程序;周四:測試系統(tǒng),形成設(shè)計結(jié)論,編寫課設(shè)報告; 周五:系統(tǒng)及材料驗收,課設(shè)答辯。四、組織及指導(dǎo)方式1. 學(xué)生的組織本課設(shè)安排四個題目, 學(xué)號為單號學(xué)生選擇題目一或三進行設(shè)計, 學(xué)號為雙號學(xué)生選擇題目二或四進行設(shè)計,一人一組,設(shè)計過程中可以相互討論。2. 指導(dǎo)方式每班指導(dǎo)教師兩人,每人指導(dǎo)一題,跟班指導(dǎo)。五、考核方式及成績評定1. 考核方式成績考核采取面試答辯形式。2. 成績評定由指導(dǎo)教師根據(jù)學(xué)生在設(shè)計中的表現(xiàn)、任務(wù)的完成情況、課程設(shè)計報告的質(zhì)量等綜合評定。評分標(biāo)準(zhǔn)為:1)完成基本功能占 60% ; 2)設(shè)計報告占 20% ;3)出勤率占 10% ; 4 )回答指導(dǎo)教

5、師提問占 10% 。根據(jù)以上四個標(biāo)準(zhǔn),課程設(shè)計成績按優(yōu)秀、良 好、中等、及格和不及格五級記分制評定。六、教材及主要參考資料1. 教材1 張堯?qū)W主編計算機操作系統(tǒng)教程(第三版) 北京 : 清華大學(xué)出版社, 20062. 主要參考書1 張堯?qū)W編計算機操作系統(tǒng)教程(第三版)習(xí)題解答與實驗指導(dǎo)北京 清華大學(xué)出版社, 20062 湯子瀛主編計算機操作系統(tǒng)(第三版) 西安 : 西安電子科技大學(xué)出版 社, 20013 張坤等編操作系統(tǒng)實驗教程北京 : 清華大學(xué)出版社, 20084 張麗芬等編操作系統(tǒng)實驗教程北京 : 清華大學(xué)出版社, 20065 Andrew S.Tanenbaum. Modern Oper

6、ating Systems, SecondEdition.Englewood Cliffs,N.J,Prentice Hall, 20016 屠祁等編 . 操作系統(tǒng)基礎(chǔ)(第三版) 北京 : 清華大學(xué)出版社, 20007 馮耀霖等編 . 操作系統(tǒng) . 西安 : 西安電子科技大學(xué)出版社, 20018 左萬歷計算機操作系統(tǒng)教程(第二版)北京:高等教育出版社,2004第一章 設(shè)計規(guī)范與說明11 設(shè)計規(guī)范一、問題分析與系統(tǒng)結(jié)構(gòu)的設(shè)計 充分地分析和理解問題本身。 本階段主要解決 “要作什么, 限制條件是 什么 ”。首先從問題中抽取合適的數(shù)據(jù)結(jié)構(gòu),作為整個系統(tǒng)的底層,解決問題 的算法作為上層。定義數(shù)據(jù)的存儲

7、結(jié)構(gòu)及其在這些結(jié)構(gòu)上的操作,使得在上層的應(yīng)用中 可以通過這些操作完成對數(shù)據(jù)結(jié)構(gòu)層的訪問。在這個過程中,要綜合考慮 系統(tǒng)功能,使所設(shè)置的操作要易于系統(tǒng)整體功能的實現(xiàn)。最后寫出每個函數(shù)的規(guī)格說明,包括形參個數(shù)和類型、函數(shù)的返回類 型、函數(shù)的前提條件是什么、以及函數(shù)的功能。列出函數(shù)間的調(diào)用關(guān)系, 可以使用調(diào)用關(guān)系圖表示則更加清晰,這樣便完成了系統(tǒng)結(jié)構(gòu)設(shè)計。二、詳細設(shè)計和編碼詳細設(shè)計的目的是對函數(shù)的進一步求精。用if 、while 和賦值語句等類語言寫出算法的框架。利用類語言的目的是避免陷入細節(jié)。在編碼時, 可以對詳細設(shè)計的結(jié)果進一步求精,用高級語言表示出來。應(yīng)注意以下事 項。1程序的每一行最好不超過

8、 60 個字符。每個函數(shù)通常不要太長,以 40 行為宜。函數(shù)包含的程序行數(shù)太多,易于造成閱讀困難。2變量定義為:名 + 類型。如: LinkList *firstLinkListPointer;其中first 為名 , 后面的 LinkListPointer 說明是鏈表指針類。3控制 if 、while 等語句的嵌套深度,最多不超過 5 層。4對每一段程序完成的作用,除非常明顯的除外(如: x = x + 1; 注 釋為 x 加 1,沒有什么意義),都應(yīng)加以注釋。這會對程序的調(diào)試提供很 多 方便。5對每個數(shù)據(jù)結(jié)構(gòu)和其函數(shù)要進行單元測試。6根據(jù)情況可以設(shè)立若干調(diào)試點, 即輸出若干信息, 用于驗證

9、和你的 設(shè)想是否一致。另外,對于輸入輸出語句,必須對它們的作用加以說明。 否則,在調(diào)試程序時, 無法了解系統(tǒng)需要輸入說明, 系統(tǒng)輸出的又是什么。三、靜態(tài)檢查 自己用一組數(shù)據(jù)手動執(zhí)行程序;或和同學(xué)一起閱讀自己的程序,以全 面地了解該程序的邏輯。12 報告的整理與形成一、調(diào)試報告 包括的內(nèi)容有問題是如何解決的,討論與分析、改進設(shè)想、經(jīng)驗與體 會、時空復(fù)雜度等。二、源程序清單和結(jié)果 打印的源程序清單和測試結(jié)果附在設(shè)計報告的后面。源程序必須有注 釋,以及必要的測試數(shù)據(jù)和運行結(jié)果數(shù)據(jù)。注釋提倡用英文描述。三、文檔及資料的形成在程序開發(fā)過程中,逐步形成各種必要的文檔及資料第二章 設(shè)計內(nèi)容21 文件系統(tǒng)的設(shè)

10、計與實現(xiàn)一、設(shè)計目的 通過設(shè)計一個小型文件系統(tǒng),進一步掌握文件管理的方法和技術(shù),使 學(xué)生初步具有研究、設(shè)計、編制和調(diào)試操作系統(tǒng)模塊的能力。二、設(shè)計要求與提示1問題描述在任一 OS 下,建立一個大文件,把它假想成一張盤,在其中實現(xiàn)一 個簡單的小型文件系統(tǒng)。2基本要求該文件系統(tǒng)沒有子目錄機制, 文件連續(xù)分配, 不考慮換 “盤” 和分區(qū)。 做一個簡單的操作界面,提供五條簡單的命令:dir 、 mkfile 、 type 、 copy 、delfile ,分別用于顯示文件目錄、建立文件、顯示文件內(nèi)容、復(fù)制和刪除 一個文件。三、設(shè)計思想、環(huán)境說明和使用工具1設(shè)計思想 建立一個系統(tǒng)文件(模擬盤) ,并對此

11、進行盤塊的劃分,第一個盤塊 存放文件目錄,第二盤塊存放盤塊位示圖,自第三個盤塊開始存放各具體 文件的內(nèi)容,文件目錄存放文件的名字,文件的擴展名,開始盤塊號,所 占用的盤塊數(shù)目,文件的大小;盤塊位示圖用來標(biāo)記盤塊是否被占用。2環(huán)境說明工具: C 語言。在 WINDOWS 環(huán)境下使用 VC+ 進行編譯及運行四、主要的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)說明:struct filename char name9; char ext4; int i;號int Amount;數(shù)long int size; ;struct empty int map100;int filenum;五、課程設(shè)計應(yīng)提交的主要內(nèi)容文件目錄項結(jié)構(gòu)體

12、文件名擴展名文件所占用磁盤塊的第一個磁盤塊文件所占用磁盤塊的塊文件大小盤塊結(jié)構(gòu)體盤塊位示圖文件數(shù)量1寫出實現(xiàn)文件管理的數(shù)據(jù)結(jié)構(gòu)、算法和算法流程圖2打印出程序清單。3寫出程序調(diào)試及運行情況。4寫出課程設(shè)計出現(xiàn)的問題及解決的方法。5課程設(shè)計的體會。22 銀行家算法的設(shè)計與實現(xiàn)一、設(shè)計目的通過銀行家算法設(shè)計與實現(xiàn),可以加深學(xué)生對死鎖的理解,掌握死鎖 的預(yù)防、避免、檢測和解除的基本原理,重點掌握死鎖的避免方法銀行 家算法。使學(xué)生初步具有研究、設(shè)計、編制和調(diào)試操作系統(tǒng)模塊的能力。二、設(shè)計要求1問題描述系統(tǒng)在進行資源分配的過程中,允許進程動態(tài)的申請資源,為了避免 發(fā)生死鎖,在分配資源前要進行安全性檢查,若

13、此次分配不會導(dǎo)致系統(tǒng)進 入不安全狀態(tài),便將資源分配給進程,否則,進程等待。2基本要求設(shè)計一個進程動態(tài)請求資源的模擬系統(tǒng),實現(xiàn)隨機產(chǎn)生進程請求資源 的數(shù)量;資源安全性檢查算法;資源的分配算法;以及輸出顯示每次請求 的結(jié)果和系統(tǒng)資源的狀態(tài)。三、設(shè)計思想、環(huán)境說明和使用工具1設(shè)計思想輸入當(dāng)前進程資源的使用情況以及整個系統(tǒng)的資源使用情況,并進行 初始化安全性檢查;如果是不安全狀態(tài),重新初始化系統(tǒng);否則,從等待 隊列中提取一個等待進程,使用銀行家算法進行檢測,輸出當(dāng)前系統(tǒng)的狀 態(tài)和安全序列;如果是安全狀態(tài),系統(tǒng)繼續(xù)從等待隊列中提取等待進程進 行檢查;如果是不安全狀態(tài),進程回到等待隊列,系統(tǒng)從等待隊列中提

14、取 等待進程進行檢查。系統(tǒng)中申請資源的進程全部進入等待隊列等候處理。2環(huán)境說明工具: C 語言。在 WINDOWS 環(huán)境下使用 VC+6.0 進行開發(fā)。四、主要的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)說明:#define MAX_RESOURCE_TYPE10 定義最大的系統(tǒng)資源類數(shù)struct task_struct 進程控制塊intintpid;maxMAX_RESOURCE_TYPE;進程編號進程對資源的最大需求intallocMAX_RESOURCE_TYPE;進程已經(jīng)分配的資源intrequestMAX_RESOURCE_TYPE;進程本次申請的資源數(shù);等待隊列采用鏈表結(jié)構(gòu)進行設(shè)計。五、課程設(shè)計應(yīng)提交的主

15、要內(nèi)容 1寫出實現(xiàn)銀行家算法的數(shù)據(jù)結(jié)構(gòu)、算法和算法流程圖 2打印出程序清單。3寫出程序調(diào)試及運行情況。4寫出系統(tǒng)設(shè)計中出現(xiàn)的問題及解決的方法。5課程設(shè)計的體會。23 主存空間的分配與回收一、設(shè)計目的本設(shè)計題目主要讓大家熟悉主存的各種分配與回收。所謂分配,就是 解決多道作業(yè)或多進程如何共享主存空間的問題。所謂回收,就是當(dāng)作業(yè) 運行完成時,將作業(yè)或進程所占用的主存空間歸還給系統(tǒng)。主存的分配與 回收的實現(xiàn)是與主存儲器的管理方式有關(guān)的。通過本次設(shè)計,幫助學(xué)生理 解在不同的存儲管理方式下,如何實現(xiàn)主存空間的分配與回收。使學(xué)生初 步具有研究、設(shè)計、編制和調(diào)試操作系統(tǒng)模塊的能力。二、設(shè)計要求1問題描述采用可

16、變式分區(qū)管理,使用首次或最佳適應(yīng)算法實現(xiàn)主存的分配與回 收??梢圆捎梅謪^(qū)說明表或空閑區(qū)鏈來進行??勺兪椒謪^(qū)管理是指在處理作業(yè)過程中建立分區(qū),使分區(qū)大小正好適 合作業(yè)的需要,并且分區(qū)個數(shù)是可以調(diào)整的。當(dāng)要裝入一個作業(yè)時,根據(jù) 作業(yè)需要的主存量,查看是否有足夠的空閑空間,若有,則按需求量分割 一部分給作業(yè);若無;則作業(yè)等待。隨著作業(yè)的裝入、完成,主存空間被 分割成許多大大小小的分區(qū)。有的分區(qū)被作業(yè)占用,有的分區(qū)空閑。2基本要求設(shè)計多個作業(yè)或進程動態(tài)請求內(nèi)存資源的模擬系統(tǒng),使用首次或最佳 適應(yīng)算法實現(xiàn)內(nèi)存的分配與回收,實現(xiàn)可變式分區(qū)管理;設(shè)計相應(yīng)的內(nèi)存 分配算法,定義相關(guān)數(shù)據(jù)結(jié)構(gòu),以及輸出顯示每次請

17、求分配內(nèi)存的結(jié)果和 內(nèi)存的已分配和未分配的狀況。三、設(shè)計思想、環(huán)境說明和使用工具1 設(shè)計思想初始化系統(tǒng)的內(nèi)存分區(qū)說明表;輸入當(dāng)前作業(yè)或進程的使用內(nèi)存情 況,檢索系統(tǒng)內(nèi)的內(nèi)存分區(qū)說明表,判斷是否可分配,也就是查看是否有 足夠的空閑空間,若有,則按需求量分割一部分給作業(yè);若無;則作業(yè)等 待。隨著作業(yè)的裝入、完成,主存空間被分割成許多大大小小的分區(qū)。有 的分區(qū)被作業(yè)占用,有的分區(qū)空閑。使用內(nèi)存的分配和回收算法進行,完 成所有作業(yè)或進程的內(nèi)存使用請求,作業(yè)完成后回收其所占用的內(nèi)存給系 統(tǒng);并可輸出查看內(nèi)存的當(dāng)前使用狀況。例如,某時刻主存空間占用情況如圖3-1所示。(1) 為了說明哪些分區(qū)是空閑的,可以

18、用來裝入新作業(yè),必須要有 張空閑區(qū)說明表,如表3-1所示。操作系統(tǒng)(10KB)圖3-1主存空間占用情況3_1 空閑區(qū)說作業(yè) 1(10KB)作業(yè) 4(25KB)空閑區(qū)1(20KB)表作業(yè) 2(45KB)明表空閑區(qū)2(146KB)45K20KB110K146KB其中,起始地址指出各空閑區(qū)的主存起始地址,長度指出空閑區(qū)大小。狀態(tài)有:未分配:該欄目是記錄的有效空閑區(qū)。空表目:沒有登記信息。由于分區(qū)個數(shù)不定,所以空閑區(qū)說明表中應(yīng)有足夠的空表目項。否則 造成溢出,無法登記。同樣,再設(shè)一個已分配區(qū)表,記錄作業(yè)或進程的主存占用情況。(2) 當(dāng)有一個新作業(yè)要求裝入主存時,必須查空閑區(qū)說明表,從中找出 一個足夠大

19、的空閑區(qū)。有時找到的空閑區(qū)可能大于作業(yè)需求量,這時應(yīng)將空 閑區(qū)一分為二。 一個分給作業(yè); 另一個仍作為空閑區(qū)留在空閑區(qū)表中。為 了盡量減少由于分割造成的碎片,盡可能分配低地址部分的空閑區(qū),將較大 空閑區(qū)留在高地址端,以利于大作業(yè)的裝入。為此在空閑區(qū)表中,按空閑區(qū) 首地址從低到高進行登記。為了便于快速查找,要不斷地對表格進行緊縮,即讓“空表目”項留在表的后部。其分配框圖如圖3-2所示(3) 當(dāng)一個作業(yè)執(zhí)行完成時,作業(yè)所占用的分區(qū)應(yīng)歸還給系統(tǒng)。在歸 還時要考慮相鄰空閑區(qū)合并的問題。作業(yè)的釋放區(qū)與空閑區(qū)的鄰接分以下4 種情況考慮:A釋放區(qū)下鄰(低地址鄰接)空閑區(qū);B 釋放區(qū)上鄰(高地址鄰接)空閑區(qū);

20、C 釋放區(qū)上下都與空閑區(qū)鄰接;D 釋放區(qū)與空閑區(qū)不鄰接。首次適應(yīng)算法回收框圖如圖33 所示。2 .環(huán)境說明工具: C 語言。在 WINDOWS 環(huán)境下使用 VC+6.0 進行開發(fā)。四、主要的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)說明: #define N 5 structfreearea * 定義一個空閑區(qū)說明表結(jié)構(gòu),并初始化變量* int startaddress; *空閑區(qū)始址 *int size ; * 空閑區(qū)大小 *int state ; * 空閑區(qū)狀態(tài): 0 為空表目, 1 為可用空閑塊 * freeblockN=20 , 20,1, 80, 50,1, 150 , 100 , 1,300,五、課程設(shè)計應(yīng)

21、提交的主要內(nèi)容1 寫出實現(xiàn)主存的分配和回收程序的數(shù)據(jù)結(jié)構(gòu)、算法和算法流程圖。2 打印出程序清單。3 寫出程序調(diào)試及運行情況。4 .寫出系統(tǒng)設(shè)計中出現(xiàn)的問題及解決的方法。5 .課程設(shè)計的體會。6自我評價與總結(jié)。24 處理機管理一、設(shè)計目的在多道程序或多任務(wù)系統(tǒng)中,系統(tǒng)同時處于就緒態(tài)的進程有若干個。也就是說能運行的進程數(shù)遠遠大于處理機個數(shù)。為了使系統(tǒng)中的各進程能 有條不紊地運行,必須選擇某種調(diào)度策略,以選擇一進程占有處理機。要 求學(xué)生設(shè)計一個模擬單處理機調(diào)度的算法,以鞏固和加深處理機調(diào)度的概 念。二、設(shè)計要求1、問題描述 處理機管理是操作系統(tǒng)中非常重要的部分。為深入理解處理機調(diào)度部 分的功能,設(shè)計

22、一個按時間片輪轉(zhuǎn)調(diào)度 CPU 的算法,模擬實現(xiàn)處理機的 調(diào)度。2基本要求時間片輪轉(zhuǎn)調(diào)度 CPU 的算法是分時系統(tǒng)采用的典型算法,把 CPU 的 執(zhí)行時間分成若干個一定大小的時間片輪流的分配給就緒隊列的各個進 程,讓各就緒進程按指定的順序分別占用 CPU 的一個時間片輪流執(zhí)行下 去,直至完成。要求定義進程控制塊 PCB 的結(jié)構(gòu),并為每個進程任意確定 一個要求運行時間和到達時間,按照進程到達的先后順序排成一個循環(huán)隊 列。設(shè)計按時間片輪轉(zhuǎn)的進程調(diào)度算法。三、設(shè)計思想、環(huán)境說明和使用工具1設(shè)計思想(1) 假設(shè)系統(tǒng)有 5 個進程,每個進程用一個進程控制塊 PCB 來代表。 PCB 的格式如圖 4-1 所

23、示。其中,進程名即進程標(biāo)識。鏈接指針:指出下一個到達進程的進程控制塊首地址。按照進程到達 的順序排隊。系統(tǒng)設(shè)置一個隊頭和隊尾指針分別指向第一個和最后一個進 程。新生成的進程放隊尾。估計運行時間、到達時間以及進程狀態(tài)與圖3-1中相同。(2) 為每個進程任意確定一個要求運行時間和到達時間。(3) 按照進程到達的先后順序排成一個循環(huán)隊列。再設(shè)一個隊首指針 指向第一個到達進程的首址。(4) 執(zhí)行處理機調(diào)度時,開始選擇隊首的第一個進程運行。另外再設(shè) 一個當(dāng)前運行進程指針,指向當(dāng)前正運行的進程。(5) 由于本實踐是模擬算法,所以對被選中進程并不實際啟動運行, 而只是執(zhí)行: 估計運行時間減1 ; 輸出當(dāng)前運

24、行進程的名字。用這兩個操作來模擬進程的一次運行。(6) 進程運行一次后,以后的調(diào)度則將當(dāng)前指針依次下移一個位置,指向下一個進程,即調(diào)整當(dāng)前運行指針指向該進程的鏈接指針?biāo)高M程,以指示應(yīng)運行進程。同時還應(yīng)判斷該進程的剩余運行時間是否為0。若不為0,則等待下一輪的運行;若該進程的剩余運行時間為0,則將該進程的狀態(tài)置為完成態(tài) C,并退出循環(huán)隊列(7) 若就緒隊列不空, 則重復(fù)上述的 (5) 和 (6) 步驟直到所有進程都運行 完為止。(8) 在所設(shè)計的調(diào)度程序中,應(yīng)包含顯示或打印語句。以便顯示或打 印每次選中進程的名稱及運行一次后隊列的變化情況。2環(huán)境說明 工具: C 語言。在 WINDOWS 環(huán)境

25、下使用 VC+6.0 進行編譯及運行。四、主要的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)說明:typedef struct pcb進程控制塊定義 char pnameN;進程名int runtime;運行時間int arrivetime;到達時間char state;進程狀態(tài)struct pcb *next;鏈接指針PCB;五、課程設(shè)計應(yīng)提交的主要內(nèi)容1寫出實現(xiàn)文件管理的數(shù)據(jù)結(jié)構(gòu)、算法和算法流程圖2打印出程序清單。3寫出程序調(diào)試及運行情況。4寫出課程設(shè)計出現(xiàn)的問題及解決的方法。5課程設(shè)計的體會。6自我評價與總結(jié)。內(nèi)蒙古工業(yè)大學(xué)課程設(shè)計任務(wù)書(一)學(xué)院(系):信息學(xué)院計算機系課程名稱:操作系統(tǒng)課程設(shè)計指導(dǎo)教師(簽名):

26、專業(yè)班級:軟件工程 09 學(xué)生姓名:學(xué)號:一、課程設(shè)計題目文件系統(tǒng)的設(shè)計與實現(xiàn)二、課程設(shè)計的目的通過設(shè)計一個小型文件系統(tǒng),進一步掌握文件管理的方法和技術(shù),使學(xué)生初步具有研究、設(shè)計、編制和調(diào)試操作系統(tǒng)模塊的能力三、課程設(shè)計的主要內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)參數(shù)、設(shè)計要求、工作量要求等)原始數(shù)據(jù):文件目錄項結(jié)構(gòu)體,盤塊結(jié)構(gòu)體。技術(shù)參數(shù): Windows XP系統(tǒng),VC+6.0開發(fā)工具。設(shè)計要求:1 .設(shè)計基于位示圖的文件連續(xù)分配算法;2 .設(shè)計顯示文件目錄、 建立文件、顯示文件內(nèi)容、復(fù)制和刪除文件算法;3 .畫出以上算法流程圖;4 .編程實現(xiàn)算法功能;5 編寫課程設(shè)計說明書。工作量要求:完成以上

27、設(shè)計要求中的所有算法功能。四、工作進度安排周一:布置、講解題目,收集資料;周二:系統(tǒng)分析,算法設(shè)計;周三:編制、調(diào)試程序;周四:測試系統(tǒng),形成設(shè)計結(jié)論,編寫課設(shè)報告; 周五:系統(tǒng)及材料驗收,課設(shè)答辯。五、主要參考文獻1 張堯?qū)W編.計算機操作系統(tǒng)教程(第三版)習(xí)題解答與實驗指導(dǎo).北京:清華大學(xué)出版社,20062 湯子瀛主編.計算機操作系統(tǒng)(第三版).西安:西安電子科技大學(xué)出版社,20013 張坤等編操作系統(tǒng)實驗教程北京:清華大學(xué)出版社,2008審核批準(zhǔn)意見系(教研室)主任(簽字) 內(nèi)蒙古工業(yè)大學(xué)課程設(shè)計任務(wù)書(二)學(xué)院(系):信息學(xué)院計算機系課程名稱:操作系統(tǒng)課程設(shè)計 指導(dǎo)教師(簽名): 專業(yè)班

28、級: 軟件工程 09 學(xué)生姓名: 學(xué)號:一、課程設(shè)計題目銀行家算法的設(shè)計與實現(xiàn)二、課程設(shè)計的目的通過銀行家算法設(shè)計與實現(xiàn),可以加深學(xué)生對死鎖的理解,掌握死鎖的預(yù)防、避免、 檢測和解除的基本原理,重點掌握死鎖的避免方法一銀行家算法。使學(xué)生初步具有研究、設(shè)計、編制和調(diào)試操作系統(tǒng)模塊的能力三、課程設(shè)計的主要內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)參數(shù)、設(shè)計要求、工作量要求等)技術(shù)參數(shù):Windows XP 系統(tǒng),VC+6.0開發(fā)工具。設(shè)計要求:1 .設(shè)計銀行家算法的核心數(shù)據(jù)結(jié)構(gòu)、安全性檢查算法;2 .畫出銀行家算法流程圖;3. 編程實現(xiàn)算法功能;4 .編寫課程設(shè)計說明書。工作量要求:完成以上設(shè)計要求中的所有算

29、法功能。四、工作進度安排周一:布置、講解題目,收集資料;周二:系統(tǒng)分析,算法設(shè)計;周三:編制、調(diào)試程序;周四:測試系統(tǒng),形成設(shè)計結(jié)論,編寫課設(shè)報告;周五:系統(tǒng)及材料驗收,課設(shè)答辯。五、主要參考文獻1 張堯?qū)W編.計算機操作系統(tǒng)教程(第三版)習(xí)題解答與實驗指導(dǎo). 北 京:清華大學(xué)出版社,20062 湯子瀛主編.計算機操作系統(tǒng)(第三版) .西安:西安電子科技大學(xué) 出版社,20013 張坤等編操作系統(tǒng)實驗教程北京:清華大學(xué)出版社,2008審核批準(zhǔn)意見系(教研室)主任(簽字)內(nèi)蒙古工業(yè)大學(xué)課程設(shè)計任務(wù)書(三)學(xué)院(系):信息學(xué)院計算機系課程名稱:操作系統(tǒng)課程設(shè)計指導(dǎo)教師(簽名):專業(yè)班級:軟件工程 09

30、 學(xué)生姓名:學(xué)號:一、課程設(shè)計題目主存空間的分配與回收二、課程設(shè)計的目的通過該課程設(shè)計使學(xué)生理解在不同的存儲管理方式下,如何實現(xiàn)主存空間的分配與回收。使學(xué)生初步具有研究、設(shè)計、編制和調(diào)試操作系統(tǒng)模塊的能力。三、課程設(shè)計的主要內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)參數(shù)、設(shè)計要求、工作量要求等)原始數(shù)據(jù):空閑區(qū)說明表結(jié)構(gòu)體。技術(shù)參數(shù): Windows XP系統(tǒng),VC+6.0開發(fā)工具。設(shè)計要求:1 .設(shè)計基于空閑區(qū)說明表的可變分區(qū)分配與回收算法;2 .或設(shè)計基于空閑區(qū)鏈表的可變分區(qū)分配與回收算法;3 .畫出以上算法流程圖;4 .編程實現(xiàn)算法功能;5 編寫課程設(shè)計說明書。工作量要求:完成以上設(shè)計要求中的所有算

31、法功能。四、工作進度安排周一:布置、講解題目,收集資料;周二:系統(tǒng)分析,算法設(shè)計;周三:編制、調(diào)試程序;周四:測試系統(tǒng),形成設(shè)計結(jié)論,編寫課設(shè)報告; 周五:系統(tǒng)及材料驗收,課設(shè)答辯。五、主要參考文獻1 張堯?qū)W編.計算機操作系統(tǒng)教程(第三版)習(xí)題解答與實驗指導(dǎo).北京:清華大學(xué)出版社,20062 湯子瀛主編.計算機操作系統(tǒng)(第三版).西安:西安電子科技大學(xué)出版社,20013 張坤等編操作系統(tǒng)實驗教程北京:清華大學(xué)出版社,2008審核批準(zhǔn)意見系(教研室)主任(簽字) 內(nèi)蒙古工業(yè)大學(xué)課程設(shè)計任務(wù)書(四)學(xué)院(系):信息學(xué)院計算機系課程名稱:操作系統(tǒng)課程設(shè)計指導(dǎo)教師(簽名): 專業(yè)班級: 軟件工程 09

32、 學(xué)生姓名: 學(xué)號:一、課程設(shè)計題目處理機管理二、課程設(shè)計的目的學(xué)生通過設(shè)計一個模擬單處理機調(diào)度的算法,以鞏固和加深處理機調(diào)度的概念。使學(xué)生初步具有研究、設(shè)計、編制和調(diào)試操作系統(tǒng)模塊的能力三、課程設(shè)計的主要內(nèi)容和要求(包括原始數(shù)據(jù)、 技術(shù)參數(shù)、設(shè)計要求、工作量要求等)原始數(shù)據(jù):進程控制塊 PCB結(jié)構(gòu)體。技術(shù)參數(shù): Windows XP系統(tǒng),VC+6.0開發(fā)工具。設(shè)計要求:1 .設(shè)計基于時間片輪轉(zhuǎn)法的處理機調(diào)度算法;2 .或設(shè)計基于先來先服務(wù)或基于優(yōu)先權(quán)的處理機調(diào)度算法;3 .畫出以上算法流程圖;4 .編程實現(xiàn)算法功能;5 編寫課程設(shè)計說明書。工作量要求:完成以上設(shè)計要求中的所有算法功能。四、工

33、作進度安排周一:布置、講解題目,收集資料;周二:系統(tǒng)分析,算法設(shè)計;周三:編制、調(diào)試程序;周四:測試系統(tǒng),形成設(shè)計結(jié)論,編寫課設(shè)報告;周五:系統(tǒng)及材料驗收,課設(shè)答辯。五、主要參考文獻1 張堯?qū)W編.計算機操作系統(tǒng)教程(第三版)習(xí)題解答與實驗指導(dǎo).北京:清華大學(xué)出版社,20062 湯子瀛主編.計算機操作系統(tǒng)(第三版).西安:西安電子科技大學(xué)出版社,20013 張坤等編操作系統(tǒng)實驗教程北京:清華大學(xué)出版社, 2008審核批準(zhǔn)意見系(教研室)主任(簽字) 內(nèi)蒙古工業(yè)大學(xué)課程設(shè)計(論文)說明書書寫規(guī)范一、說明書(論文)基本格式說明書或論文一般不應(yīng)少于 30005000字。說明書(論文)手寫或打 印均可,

34、手寫要書寫工整。1、題目:題目要對論文的內(nèi)容有高度的概括性,簡明、易讀。2、 摘要:中文在前,外文在后。中文摘要在200400字以內(nèi)。關(guān)鍵 詞35個,以分號相隔。3、目錄:設(shè)計說明書(論文)目錄應(yīng)包括論文全部章節(jié)的標(biāo)題(要求編到3級標(biāo)題)和參考文獻、附錄(可選擇)、頁碼右對齊。4、 正文:正文應(yīng)按照目錄所定的順序依次撰寫,要求計算準(zhǔn)確,論述 清楚、簡練、通順,插圖清晰,書寫整潔。文中圖、表及公式應(yīng)規(guī)范地繪制和書寫。5、插圖:插圖包括曲線圖, 流程圖,工藝圖、設(shè)備圖、框圖,示意圖, 圖片等。插圖序號用阿拉伯?dāng)?shù)字分章依序連續(xù)編排,每一插圖都應(yīng)有簡短 確切的題名,連同圖序置于圖下,圖序與圖名之間空一

35、格,圖名中不允許 使用標(biāo)點符號,圖名后不加標(biāo)點符號。6、 插表:插表序號用阿拉伯?dāng)?shù)字分章依序連續(xù)編排,每一插表都應(yīng)有簡短確切的題名,表序與表名書寫于表的正上方,表序與表名之間空一格,表名不允許使用標(biāo)點符號,表名后不加標(biāo)點符號。7、參考文獻:著作圖書文獻書寫格式如下:序號 作者姓名書名出版地出版者出版年:引用部分起止頁 碼學(xué)術(shù)刊物文獻書寫格式如下:序號 作者姓名文章名學(xué)術(shù)刊物名年,卷(期) :引用部分起止 頁碼序號 作者姓名論文題目(學(xué)位授予單位)學(xué)位論文年序號 發(fā)明者姓名專利名稱專利公開號年二、打印要求1、 紙張及頁面原則上用打印機打印輸出。設(shè)計說明書(論文)紙張用 A4 標(biāo)準(zhǔn)紙, 版心尺寸為

36、:左邊距 30mm ,右邊距 25mm ,上邊距 30mm ,下邊距 25mm 。 行間距為 22 磅,即每頁 32 行,每行 37 字。2、字體與字號 各章題序及標(biāo)題為小二號黑體;各節(jié)的一級題序與標(biāo)題為小三號黑 體,各節(jié)的二級題序及標(biāo)題為四號黑體,各節(jié)的三級題序及標(biāo)題為小四號 黑體,正文用小四號宋體。摘要、參考文獻、等部分按章處理,即標(biāo)題小 二號黑體,內(nèi)容小四號宋體。目錄的標(biāo)題采用小二號黑體,內(nèi)容為小四號 宋體。3、頁碼 設(shè)計說明書(論文)頁碼一律用阿拉伯?dāng)?shù)字連續(xù)編碼,頁碼由第一章 的首頁開始作為第 1 頁,摘要、目錄等不編排頁碼。三、裝訂順序1、封面;(見附件)2、任務(wù)書;僅對論文)3、中

37、文摘要、英文摘要;4、目錄5、正文;6、參考文獻。 附件:課程設(shè)計封面課程設(shè)計題目: XXX學(xué)生姓名: XXX院:信息工程學(xué)院系別:計算機系專業(yè):軟件工程班級:軟件 08-X指導(dǎo)教師: XXXXXX 副教授(或講師) 教授(或講師)200X 年 XX 月 XX 日附錄一 模擬文件系統(tǒng)實踐示例:#include "iostream. "C" void exit(int); struct filenamechar name9;char ext4;int i;文件目錄項結(jié)構(gòu)體文件名擴展名文件所占用磁盤塊的第一個磁盤塊號file11; int num;struct emp

38、ty int map11;int filenum;emptytable;模塊說明:void SystemInit() for(int i=2;i<10;i+)emptytable.mapi=0;emptytable.map0=1;emptytable.map1=1;emptytable.filenum=0;FILE *fp;if(fp=fopen("filesys","wb+")=NULL) 系統(tǒng)文件將文件目錄盤塊和盤塊結(jié)構(gòu)體盤塊位示圖文件數(shù)量模擬磁盤文件初始化函數(shù)初始化存放位示圖的盤塊wb+: 為讀寫建立一個位示圖盤塊寫入系統(tǒng)文件新 "

39、 文件;打開printf("can not open file n"); exit(0);fseek(fp,512L,0);fwrite(&emptytable,sizeof(struct empty),1,fp);fclose(fp);printf("! 初始化系統(tǒng)成功 !");void WriteFile() 將目錄以及空閑盤塊表寫入磁盤FILE *fp;if(fp=fopen("filesys","rb+")=NULL)printf("can not open file n");e

40、xit(0);rewind(fp);for(int i=0;i<num;i+)fwrite(&filei,sizeof(struct filename),1,fp);文件目錄fseek(fp,512L,0);fwrite(&emptytable,sizeof(struct empty),1,fp);位示圖fclose(fp);void dir() 顯示文件目錄 int i,j;FILE *fp;if(fp=fopen("filesys","rb")=NULL) printf("can not open file n&quo

41、t;);exit(0);fseek(fp,512L,0);fread(&emptytable,sizeof(struct empty),1,fp); rewind(fp);num=emptytable.filenum;for(i=0;i<num;i+)fread(&filei,sizeof(struct filename),1,fp);if (num!=0) printf(" 系統(tǒng)文件目錄結(jié)構(gòu) :n");for(i=0,j=1;i<num;i+,j+)printf("%s.%sn",,filei.ext);

42、if(j=5) printf("n");j=1;printf("n 文件數(shù)量為 %d ",num);fclose(fp);void type()空閑盤塊表的定位文件目錄表的定位顯示文件內(nèi)容FILE *fp;int i,j;if(fp=fopen("filesys","rb")=NULL) printf("can not open file n");exit(0);fseek(fp,512L,0);fread(&emptytable,sizeof(struct empty),1,fp);r

43、ewind(fp);num=emptytable.filenum;for(i=0;i<num;i+)fread(&filei,sizeof(struct filename),1,fp);printf("%s.%sn",,filei.ext);char name9,ext14;printf(" 請輸入文件名 :n");gets(name); scanf("%s",name);getchar();printf(" 請輸入擴展名 :");gets(ext1); scanf("%

44、s",ext1);getchar();if(*(name+0)='0')printf(" 文件名不能為空 ! n");return;if(*ext1='0')strcpy(ext1,"txt");int sign=0;for(i=0;i<num;i+)if(strcmp(,name)=0) && (strcmp(filei.ext,ext1)=0)printf("- 找到第 %d 個文件 (從 0 開始 )n",i);sign=1;break;if(s

45、ign=0) printf(" 無此文件 n");return;顯示文件int b,m,n ;b=filei.i;n=filei.size;printf("- 該文件位于第 %d( 從第 0 塊開始 ) 塊 n",b);printf("- 從文件讀出的文件長度為:%dn-",n);fseek(fp,b*512L,0);char cc;printf("- 文件內(nèi)容長度為 :%ldn",n);printf("- 文件內(nèi)容為 :-n");for( m=0,j=1; m<n; m+,j+)fsee

46、k(fp,b*512L+m,0);fread(&cc,sizeof(char),1,fp);cc=fgetc(fp);printf("%c",cc);if(j%80=0)printf("n");printf("n");fclose(fp);刪除一個文件void delfile()FILE *fp; int i;if(fp=fopen("filesys","r")=NULL)printf("can not open file n");exit(0); fseek(fp,

47、512L,0);fread(&emptytable,sizeof(struct empty),1,fp);rewind(fp);num=emptytable.filenum;for(i=0;i<num;i+)fread(&filei,sizeof(struct filename),1,fp);char name9,ext13;printf(" 請輸入文件名 :n");gets(name);scanf("%s",name);getchar();printf(" 請輸入擴展名 :n");gets(ext1);scan

48、f("%s",ext1);getchar();if(*name='0') printf(" 文件名不能為空 ! n"); return; if(*ext1='0') strcpy(ext1,"txt");char judge;printf(" 是否刪除文件 %s.%s yn",name,ext1);scanf("%c",&judge); getchar(); if(judge='y')|(judge='Y') printf(

49、" 準(zhǔn)備刪除文件 %s.%s !n",name,ext1); else if(judge='n')|(judge='N') return;elseprintf(" 系統(tǒng)默認放棄 !n");return;int sign=0;for(i=0;i<num;i+)if(strcmp(,name)=0)&&(strcmp(filei.ext,ext1)=0) sign=1;break;if(sign=0) printf(" 文件名錯 n");return;回收空間int

50、 b=filei.i;int Amount=filei.Amount;int j;for(j=0;j<Amount;j+)emptytable.mapb+=0;for( j=i;j<num-1;j+) strcpy(,filej+1.name);strcpy(filej.ext,filej+1.ext); filej.i=filej+1.i;filej.size=filej+1.size; filej.Amount=filej+1.Amount;emptytable.filenum=emptytable.filenum-1; num=emptytable.fil

51、enum;WriteFile();fclose(fp);復(fù)制一個文件void copy() FILE *fq; int i,j;if(fq=fopen("filesys","rb+")=NULL) printf("can not open file n");exit(0);fseek(fq,512l,0); fread(&emptytable,sizeof(struct empty),1,fq); rewind(fq);num=emptytable.filenum;for(i=0;i<num;i+) fread(&

52、;filei,sizeof(struct filename),1,fq);char SourceName9,DestName9,ext14,ext24;printf(" 請輸入源文件名 :");gets(SourceName);printf(" 請輸入源文件擴展名 :");gets(ext1);printf(" 請輸入目標(biāo)文件名 :"); gets(DestName);printf(" 請輸入目標(biāo)擴展文件名 ");gets(ext2);if(*ext2='0') strcmp(ext2,"

53、txt");scanf("%s",SourceName);getchar();scanf("%s",ext1);getchar();scanf("%s",DestName);getchar();scanf("%s",ext2);getchar();if(*SourceName)='0' | (*DestName)='0')cout<<" 錯誤 ! 文件名不能為空 !n" return;if(strcmp(SourceName,DestName

54、)=0)cout<<" 錯誤 ! 兩個文件名不能相等 !n" return;for(i=0;i<num;i+)if(strcmp(SourceName,)=0)strcpy(,DestName);strcpy(filenum.ext,ext2);filenum.i=filei.i;filenum.size=filei.size;filenum.Amount=filei.Amount;break;if (i<num)(i 從 0 開始 )n",i);printf(" 輸入的文件名與第 %d 個源文件相等elseprintf(" 不存在源文件 n");return;空間分配int sign=0;for(int m=2 ; m<=10-filenum.Amount ; m+)if(emptytable.mapm=0)尋找一連續(xù)的空閑盤塊for( j=filei.Amount; j>0; j-)if(emptytable.mapm+j-1=1)sign=1;break;if(sign=0) break; m+=j-1;sign=0;if (m <= 10-fi

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論