操作系統(tǒng)課程設計指導書_第1頁
操作系統(tǒng)課程設計指導書_第2頁
操作系統(tǒng)課程設計指導書_第3頁
操作系統(tǒng)課程設計指導書_第4頁
操作系統(tǒng)課程設計指導書_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、計算機操作系統(tǒng)課程設計指導書一、課程設計的目的和意義本課程設計是學生學習完 計算機操作系統(tǒng) 課程后,進行的一次全面的綜合訓練,通 過課程設計, 讓學生更好地掌握操作系統(tǒng)的原理及實現方法, 加深對操作系統(tǒng)基礎理論和重 要算法的理解,加強學生的動手能力。二、總體要求:1、 課程設計總時間為五天。2、 課程設計地點是實驗樓 616機房。3、 一個班分若干個組,每組 2人,個別可以 3人組(自由組合課程設計題目由任課 老師指定;4、 人員分工:組長 1人、組員 1到 2人。組長可由小組人員自行選出或自薦,組長的 職責是負責與老師交流,合理安排分配本組的各項任務,任務有:系統(tǒng)總體設計、 編碼、測試、寫文

2、檔。三、設計要求:本課程設計以 Linux 操作系統(tǒng)為實驗平臺, 進行源代碼分析和修改或應用。 通過該課程 設計, 使學生掌握 Linux 操作系統(tǒng)各部分結構、實現機理和各種典型算法; 或使學生進行網 絡管理和系統(tǒng)管理, 系統(tǒng)地了解操作系統(tǒng)的設計和實現思路, 運用內核開發(fā)環(huán)境實現對內核 的修改,培養(yǎng)學生的系統(tǒng)設計能力,并了解操作系統(tǒng)的發(fā)展動向和趨勢。 。要求如下:1、要充分認識課程設計對培養(yǎng)自己的重要性,認真做好設計前的各項準備工作。2、既要虛心接受老師的指導,又要充分發(fā)揮主觀能動性。結合課題,獨立思考,努力 鉆研,勤于實踐,勇于創(chuàng)新。3、獨立按時完成規(guī)定的工作任務,不得弄虛作假,不準抄襲他人

3、內容,否則成績以不 及格計。4、課程設計期間,無故缺席按曠課處理;缺席時間達四分之一以上者,其成績按不及 格處理。5、在設計過程中,要嚴格要求自己,樹立嚴肅、嚴密、嚴謹的科學態(tài)度,必須按時、 按質、按量完成課程設計。6、小組成員之間,分工明確,但要保持聯系暢通,密切合作,培養(yǎng)良好的互相幫助和 團隊協(xié)作精神。四、成績評定1、同學平時表現占總成績 30%,若遲到扣 5分,無故曠課每次扣 10 分,二次不 到者總成績以 0分計。2、課程設計報告占總成績 70%,在規(guī)定時間內上交。3、嚴禁抄襲,復制設計內容,查出后相關同學設計成績以零分處理。五、設計內容(除特別注明外,每組 2人,先自由組合,并選定

4、1個題目,再由老師作適當調整課題一、 Linux 下 C 編程實現銀行家算法銀行家算法的思路:1. 進程一開始向系統(tǒng)提出最大需求量 .2. 進程每次提出新的需求 (分期貸款 都統(tǒng)計是否超出它事先提出的最大需求量 .3. 若正常 , 則判斷該進程所需剩余量 (包括本次申請 是否超出系統(tǒng)所掌握的剩余資源量 , 若不超出 , 則分配 , 否則等待 .4. 銀行家算法的數據結構 .1 系統(tǒng)剩余資源量 Vn,其中 Vn表示第 I 類資源剩余量 .2 已分配資源量 Amn,其中 Aji表示系統(tǒng) j 程已得到的第 i 資源的數量 .3 剩余需求量 .Cmn,其中 Cji對第 i 資源尚需的數目 .5. 銀行

5、家算法流程 :當某時刻 , 某進程時 , 提出新的資源申請 , 系統(tǒng)作以下操作 :1 判定 En是否大于 Cjn,若大于 , 表示出錯 .2 判定 En是否大于系統(tǒng)剩余量 Vn,若大于 , 則該進程等待 .3 若以上兩步沒有問題 , 嘗試分配 , 即各變量作調整 .4 按照安全性推測算法 , 判斷 , 分配過后 , 系統(tǒng)是否安全 , 若安全 , 則實際分配 , 否則 , 撤消分 配 , 讓進程等待 .6." 安全性檢測 " 算法對進程逐個掃描,先判斷 flag ,看進程是否完成,如果完成則繼續(xù)掃描,如果沒有再判 斷當前系統(tǒng)是否滿足進程所需要的分配額, 如果滿足則分配并當進程

6、完成后回收資源, 如果 沒有則掃描下一個進程。掃描所有進程,如果所有的進程都能完成就表明是安全分配序列, 如果沒有,則分配不成功,不存在著安全序列。課題二、處理機調度算法的實現設計目的 :在多道程序和多任務系統(tǒng)中, 系統(tǒng)內同時處于就緒狀態(tài)的進程可能有若干個。 也就是說能運行的進程數大于處理機個數。 為了使系統(tǒng)中的進程能有條不紊地工作, 必須選 用某種調度策略, 選擇一進程占用處理機。 要求學生設計一個模擬處理機調度算法, 以鞏固 和加深處理機調度的概念。設計要求 :1先由用戶輸入進程數量 (至少 5個進程 ,再由系統(tǒng)隨機生成一個進程序列 (包括到 達時間和服務時間 。2然后顯示進程調度算法由用

7、戶選擇,包括:時間片輪轉法,短作業(yè)優(yōu)先算法,動態(tài) 優(yōu)先級算法。3顯示結果包括每個進程的開始時間、完成時間、周轉時間以及帶權周轉時間,顯示 界面可參考書本的例子以表格形式但可不要表格線。課題三、生產者消費者問題設計目的 :通過研究 Linux 的進程機制和信號量實現生產者消費者問題的并發(fā)控制 .說明:有界緩沖區(qū)內設有 20個存儲單元,放入 /取出的數據項設定為 1-20這 20個整型 數。設計要求 :(1每個生產者和消費者對有界緩沖區(qū)進行操作后,實時顯示有界緩沖區(qū)的全部內容、 當前指針位置和生產者 /消費者的標識符。(2生產者和消費者各有兩個以上。(3多個生產者或多個消費者之間須有共享對緩沖區(qū)進

8、行操作的函數代碼。提示:(1 有界緩沖區(qū)可用數組實現。課題四:基于 Linux 的二級文件系統(tǒng)。要求做到以下幾點:1、 可以實現下列幾條命令,但可不用參數。注意,必須真正實現,不能模擬實現,如 Dir 類似于 Linux 的 ls 命令。Login 用戶登錄Dir 列出文件夾內容Create 創(chuàng)建文件Delete 刪除文件Open 打開文件Close 關閉文件Read 讀文件Write 寫文件2、列目錄時要列出文件名、物理地址、保護碼和文件長度。3、設計提示實現虛擬文件系統(tǒng)的一般思路是調用系統(tǒng)的文件創(chuàng)建(如 c 中的 fopen 函數的 w 方式 即可 一個新文件, 將此文件作為虛擬磁盤, 在

9、完成本設計要求的內容時, 要求所生成的文 件目錄以及文件等內容都是存儲在此磁盤中。4、源文件可以進行讀寫保護。主要需完成以下子過程,但不一定全部要用到。1、 i 節(jié)點內容獲取函數 iget( 2、 i 節(jié)點內容釋放函數 iput( 3、目錄創(chuàng)建函數 mkdir( 4、目錄搜索函數 namei( 5、磁盤塊分配函數 balloc( 6、磁盤塊釋放函數 bfree( 7、分配 i 節(jié)點區(qū)函數 ialloc( 8、釋放 i 節(jié)點區(qū)函數 ifree( 9、搜索當前目錄下文件的函數 iname( 10、訪問控制函數 access( 11、顯示目錄和文件用函數 _dir( 12、改變當前目錄用函數 chd

10、ir( 13、打開文件函數 open( 14、創(chuàng)建文件函數 create( 15、讀文件用函數 read( 16、寫文件用函數 write( 17、用戶登錄函數 login( 18、用戶退出函數 logout( 19、文件系統(tǒng)格式化函數 format( 20、進入文件系統(tǒng)函數 install( 21、關閉文件系統(tǒng)函數 close( 22、退出文件系統(tǒng)函數 halt( 23、文件刪除函數 delete( 課題五:存儲管理動態(tài)分區(qū)分配算法的模擬:要求設計主界面以靈活選擇某算法,以下算法都要實現:1、 首 次適應算法2、 循 環(huán)首次適應算法3、 最 佳適應算法;4、 最 壞適應算法;5、 快 速適應

11、算法具體要求:1 首先由系統(tǒng)生成當前的內存狀態(tài),按照課本 P122圖 4-5(a 所示,要求未分配的 分區(qū)數量不少于 3個,且空間大小隨機,然后隨機生成一個數,表示等待分配進 程的大小。2 然后顯示上述算法由用戶選擇,結果顯示分配后的狀態(tài)。課題六:三種存儲管理方式的地址換算1、分頁方式的地址換算。具體要求:1隨機生成頁面大小,但一定為 2的冪,系統(tǒng)隨機生成一個至少有 10行的頁表, 頁號、塊號從 0開始。2用戶給定一個邏輯地址,首先顯示此地址的頁號和頁內地址,然后顯示是第幾 塊,最后顯示其物理地址。2、分段方式的地址換算。具體要求:1由系統(tǒng)隨機生成 5個左右的段,并隨機生成一個段表并顯示。2由

12、用戶給定一個邏輯地址,包括段號和段內地址,最后顯示其物理地址。3、段頁式的地址換算。具體要求:1先由系統(tǒng)隨機生成 5個左右的段,然后再由系統(tǒng)隨機生成頁面大小,但一定為2的冪。然后生成段表和頁表,具體內容參照課本 P140的圖 4-22。2由用戶給定一個邏輯地址,包括段號和段內地址,最后顯示其物理地址。課題七:進程調度模擬程序設計要求:編寫一個進程調度程序,允許多個進程共享進程調度程序。進程調度算法:采用(1最高優(yōu)先數優(yōu)先的調度算法(即把處理機分配給優(yōu)先數 最高的進程 , (2時間片輪轉法, (3先來先服務算法。每個進程有一個進程控制塊(PCB 表示。進程控制塊可以包含如下信息:進程 名、優(yōu)先數

13、、到達時間、需要運行時間、已用 CPU 時間、進程狀態(tài)等等。進程的優(yōu)先數、到達時間、時間片以及需要的運行時間由隨機數產生。1、設計內容1設計進程控制塊 PCB 表結構,分別適用于優(yōu)先權調度算法、時間片輪轉調度算 法和先來先服務算法。2 PCB 結構包括以下信息:進程名、進程優(yōu)先數(或輪轉時間片 ,進程所占用 的 CPU 時間,進程的狀態(tài),當前隊列指針等。根據調度算法的不同, PCB 結構的內容 可以作適當的增刪。3建立進程就緒隊列。對兩種不同算法編制入鏈子程序。4編制三種進程調度算法:A 、優(yōu)先數調度; B 、循環(huán)輪轉調度; C 、先來先服務。 2、具體設計要求及有關說明選用優(yōu)先數算法和簡單時

14、間片輪轉法對五個進程進行調度, 每個進程可有三種狀態(tài):運 行狀態(tài)(RUN 、就緒狀態(tài)(READY 和完成狀態(tài)。并假定初始狀態(tài)為就緒狀態(tài)。設計進程控制塊結構如下:PCB:NAMEPRIO/ROUNDCPUTIMECOUNTNEEDTIMESTATENEXT其中:NAME 進程標識符;PRIO 進程優(yōu)先數;ROUND 進程輪轉時間片;CPUTIME 進程占用 CPU 時間;COUNT 計數器;NEEDTIME 進程到完成還要的 CPU 時間;STATE 進程的狀態(tài);NEXT鏈指針。 進程控制塊鏈結構如插圖。其中: RUN當前運行進程指針; READY就緒隊列頭指針; TAIL就緒隊列尾指針; FI

15、NISH完成隊列頭指針。 為了便于處理,程序中進程的運行時間以時間片為單位計算。各進程的優(yōu)先數或輪轉 時間片數以及進程需運行的時間片數的初值均由用戶給定。 RUN TAIL READ FINISH 3、程序設計算法: 、程序設計算法: 設計算法 (1)在優(yōu)先數算法中,進程每執(zhí)行一次,優(yōu)先數減 3,CPU 時間片數加 1,進程還需 要的時間片數減 1。在輪轉法中,采用固定時間片,時間片數為 2,進程每執(zhí)行一次,CPU 時間片數加 2,進程還需要的時間片數減 2,并排到就緒隊列的尾上。 (2)程序結構說明如下: 整個程序由 INSERT1, INSERT2, FIRSTIN, PRINT, CRE

16、ATE, PRISCH 和 ROUNDSCH 過程組 成。其中: INSERT1 的功能是把還未完成且優(yōu)先數小于別的進程 PCB 按進程優(yōu)先數的順序插入到 就緒隊列中。 INSERT2 是輪轉法使用的過程,將執(zhí)行了一個單位時間片數(為 2)且還未完成的進程 的 PCB 插入到就緒隊列的隊尾。 FIRSTIN 的功能是將就緒隊列中的第一個進程投入運行。 PRINT 打印每執(zhí)行一次后的所有進程的狀態(tài),這里,就緒(等待)用“W”代表。 CREATE 的功能是創(chuàng)建新的進程,即創(chuàng)立進程的 PCB,并將此 PCB 鏈入到就緒隊列中 去。 6 PRISCH 按優(yōu)先數算法調度進程。 ROUNDSCH 按時間片

17、輪轉法調度進程。 主程序中定義了 PCB 的結構和其它變量 NUMBER進程數,ALGO 為 10 個字符長 的字符串,存放要求輸入的算法的名,PRIORITY 為優(yōu)先數算法,ROUNDROBIN 為循環(huán)輪 轉法,在程序運行時輸入其中的一個。 課題八: 課題八:多道程序緩沖區(qū)協(xié)調操作 如下圖所示,有 10 個 PUT 操作要不斷循環(huán)地向 Buffer1 送數據,有一個 Move 操作要 不斷地將 Buffer1 的數據取到 Buffer2, 20 個 GET 操作要不斷地從 Buff2 中取數據。 有 BUFF1 是 10,BUFF2 的容量是 20, PUT、 MOVE、 GET 每次操作一

18、個數據,為了在操作的過程中 要保證數據不丟失,每個 Buffer 每次只能接受一個 PUT 或一個 Move 或一個 Get,多個操作 不能同時操作同一 BUFFER。設計一個多道程序完成上述操作。 試用、原語協(xié)調 PUT、 MOVE、GET 的操作,并說明每個信號量的含義、初值和 值的范圍。 PUT 1、基本功能要求 、 (1 顯示 Buffer 的操作過程; MOVE GET (2 可以確定 Buffer 的容量、PUT、GET、MOVE 操作的個數; (3 自行確定放數據的速度,取數據的速度; (4 實時顯示每個 Buffer 中數據的個數,已放入 Buffer 的數據個數,已取的數據個

19、數; (5 程序運行結束,顯示匯總數據: a b c d e f 總的運行時間; Buffer 中數據的個數; 已放入 BUFFER 的數據個數; 已放已取的數據個數; 平均 buffer 中的數據個數。 。 。 7 課題九、磁盤調度算法 課題九、磁盤調度算法 1、設計要求: 、設計要求: 要求設計一個程序,該程序模擬操作系統(tǒng)的磁盤調度。模擬仿真 FCFS、SSTF、SCAN、 CSCAN 等磁盤調度算法,并對各算法進行性能分析。應提供良好的測試界面及測試方法 應提供良好的測試界面及測試方法。 應提供良好的測試界面及測試方法 提供全面的輸出結果。 2、實驗原理 、 磁盤可供多個進程共享,當有多個進程要求訪問磁盤時,應采用一種調度算法,以使進 程對磁盤的平均訪問時間最小,由于在訪問磁盤的時間中,主要是尋道時間,因此磁盤調度 的目標就是使磁盤的平均尋道時間最短。 說明: 說明: 可以根據題目的基本要求進行豐富的創(chuàng)意和想象。 可以根據題目的基本要求進行豐富的創(chuàng)意和想象。 沒有特別指定, 環(huán)境, 沒有特別指定,可以采用 Windows 環(huán)境也可采用 Linux 環(huán)境,選

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論