




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、青島理工大學操作系統(tǒng)課程設計報告院系: 計算機工程學院 專業(yè): 計算機科學與技術專業(yè) 學生姓名: 班級:學號: 題目: 多進程并發(fā)與調(diào)度仿真環(huán)境 起迄日期: 設計地點: 指 導 教 師: 20212021年度 第 2 學期完成日期: 2021 年 7 月 13 日課程設計目的操作系統(tǒng)是現(xiàn)代計算機系統(tǒng)中必不可少的根本系統(tǒng)軟件,本課程是工業(yè)自動化、自動控制專業(yè)的選修課程之一,同時也是從事計算機應用人員必不可少的知識課程。選取最新主流操作系統(tǒng)UNIX、Linux和Windows 2000/NT作為實例介紹操作系統(tǒng)的經(jīng)典內(nèi)容和最新開展,同時注意理論聯(lián)系實際,使學生學會分析研究計算機操作系統(tǒng)的原理、特性
2、,建立操作系統(tǒng)的模塊化管理的“硬件相關,應用無關的觀點,并初步掌握操作系統(tǒng)內(nèi)部結(jié)構(gòu)與工作過程以及相關的技術和理論,掌握操作系統(tǒng)是如何管理和控制計算機系統(tǒng)中的所有軟件、硬件資源的,以及操作系統(tǒng)是如何為用戶提供一個方便靈活、平安可靠的工作環(huán)境;通過編程練習來加深對操作系統(tǒng)的理解。學習該課程也是進行復雜操作系統(tǒng)模塊設計的訓練過程,要求對操作系統(tǒng)的所有模塊功能和接口有一個整體的認識和初步的設計能力。進行操作系統(tǒng)課程設計主要是在學習操作系統(tǒng)課程的根底上,在完成操作系統(tǒng)各局部實驗的根底上,對操作系統(tǒng)的整體進行一個模擬,通過實踐加深對各個局部的管理功能的認識,還能進一步分析各個局部之間的聯(lián)系,最后到達對完整
3、系統(tǒng)的理解。同時,可以提高運用操作系統(tǒng)知識解決實際問題的能力;鍛煉實際的編程能力、創(chuàng)新能力及團隊組織、協(xié)作開發(fā)軟件的能力;還能提高調(diào)查研究、查閱技術文獻、資料以及編寫軟件設計文檔的能力。此題的目的是多進程并發(fā)與調(diào)度過程,并且分析比擬各種調(diào)度算法的性能。根據(jù)具體的應用環(huán)境來使用響應的算法。二、課程設計內(nèi)容綜合設計多進程并發(fā)與調(diào)度仿真環(huán)境,分析比擬各種調(diào)度算法的性能。三、系統(tǒng)分析與設計1、系統(tǒng)分析: 在采用多道程序設計的系統(tǒng)中,往往有假設干個進程同時處于就緒狀態(tài)。當就緒狀態(tài)進程個數(shù)大于處理器數(shù)時,就必須依照某種策略來決定哪些進程優(yōu)先占用處理器。本實驗就這一問題給出了四種調(diào)度算法。分別為先來先效勞、
4、短作業(yè)優(yōu)先、高優(yōu)先權調(diào)度和時間片輪轉(zhuǎn)算法。先來先效勞FCFS調(diào)度算法是一種最簡單的調(diào)度算法,該算法既可用于作業(yè)調(diào)度,也可用于進程調(diào)度。FCFS算法比擬有利于長作業(yè)進程,而不利于短作業(yè)進程。短作業(yè)優(yōu)先SJF調(diào)度算法,是指對短作業(yè)或短進程優(yōu)先調(diào)度的算法。它們可以分別用于作業(yè)調(diào)度和進程調(diào)度。缺點: 該算法不利于長作業(yè) 該算法完全未考慮作業(yè)的緊迫程度,因而不能保證緊迫性作業(yè)進程會被及時處理。 由于作業(yè)的長短只是根據(jù)用戶所提供的估計執(zhí)行時間而定的,而用戶又可能會有意或無意地縮短其作業(yè)的估計運行時間,致使該算法不一定能真正做到短作業(yè)優(yōu)先調(diào)度。優(yōu)先權調(diào)度算法是為了照顧緊迫型作業(yè),使之在進入系統(tǒng)后便獲得優(yōu)先處
5、理。優(yōu)先權高的先被調(diào)度。此算法常被用于批處理系統(tǒng)?;跁r間片輪轉(zhuǎn)算法:為保證能及時響應用戶的請求,必須采用基于時間片的輪轉(zhuǎn)式進程調(diào)度算法。2、系統(tǒng)設計: 1設計一個生成有幾個互斥的待處理進程的主界面。 2再設計一個按鈕可實現(xiàn)隨機重新生成這幾個進程的各種屬性這里用到了隨機函數(shù) 3再分別設置四個按鈕分別用四個算法對上訴諸進程進行調(diào)度。 4對于上訴四個算法再分別為每種算法相應對應的對話框,用來加以區(qū)別和獨立。3、模塊設計: 各程序模塊之間的調(diào)用關系: 加載操作界面 重新生成四種調(diào)度算法按鈕 優(yōu)先權調(diào)度先來先效勞 短作業(yè)優(yōu)先 時間片輪轉(zhuǎn)RandH()函數(shù)隨機生成進程首地址指針CRuntime類Clev
6、el類CSJF類CFCFS類 顯示各自對話框就列隊列緒塞阻塞列隊CPU數(shù)據(jù)結(jié)構(gòu)說明: 設計中所用到的數(shù)據(jù)結(jié)構(gòu)或抽象數(shù)據(jù)類型的說明,以及在程序中的作用 1僅有進程調(diào)度的調(diào)度隊列模型: 在分時系統(tǒng)中,通常僅設置了進程調(diào)度,用戶鍵入的命令和數(shù)據(jù)都直接送入內(nèi)存。 模型如下列圖: 時間片完 進程調(diào)度 進程完成 交互用戶 事件出現(xiàn) 等待事件 2具有高級和低級調(diào)度的調(diào)度隊列模型: 在批處理系統(tǒng)中,不僅需要進程調(diào)度,而且還需要有作業(yè)調(diào)度,由后者一定的作業(yè)調(diào)度 算法,從外存的后備隊列中選擇一批作業(yè)調(diào)入內(nèi)存,并為它們建立進程,送入就緒隊列, 然后才由進程調(diào)度按照一定的進程調(diào)度算法選擇一個進程,把處理機分配給進程。
7、 此模型如下列圖: 作業(yè) 時間片完CPU 調(diào)度 后備隊列就列隊列緒 進程調(diào)度 進程完成 事件1出現(xiàn) 等待事件1事件2出現(xiàn) 等待事件2 等待事件n事件n出現(xiàn) 3程序中用到的數(shù)據(jù)結(jié)構(gòu):1抽象數(shù)據(jù)類型的定義: 先來先效勞算法所用的隊列結(jié)構(gòu)體: struct Queue CString Name ; /進程名 int ArriveTime; /到達時間 int NeedTime ; /所需時間 int StartTime; /開始時間 int FinishTime; /完成時間 double ToTime; /周轉(zhuǎn)時間 double nToTime; /帶權周轉(zhuǎn)時間 int Level ; /優(yōu)先權
8、CString State ; /進程狀態(tài) ; Queue Q5; Queue R5; 高優(yōu)先權調(diào)度算法所用的隊列結(jié)構(gòu)體: struct Queue CString Name ; /進程名 int ArriveTime; /到達時間 int NeedTime ; /所需時間 int RealTime ; /已運行時間 int StartTime; /開始時間 int FinishTime; /完成時間 double ToTime; /周轉(zhuǎn)時間 double nToTime; /帶權周轉(zhuǎn)時間 int Level ; /優(yōu)先權 CString State ; /進程狀態(tài) ; Queue R5 ,
9、Q5 ;2用于顯示所用列表所用到的全局結(jié)構(gòu)體:struct ProcessCString Name ; /進程名int ArriveTime; /到達時間int NeedTime ; /效勞時間int RealTime ; /已運行時間int StartTime; /開始時間int FinishTime; /完成時間int Level ; /優(yōu)先權double ToTime; /周轉(zhuǎn)時間double nToTime; /帶權周轉(zhuǎn)時間CString State ; / 作業(yè)狀態(tài);extern Process P5; 5、算法流程圖: 有就緒進程? 開始保護現(xiàn)場,PC=當前進程PCB的斷點現(xiàn)行進程
10、PCB的斷點值=PC將現(xiàn)行進程狀態(tài)改為運行態(tài)隨即選擇就緒進程作為現(xiàn)行進程模擬處理器指令執(zhí)行程序否是 結(jié)束 圖1: 處理器調(diào)度算法流圖 開始 選擇調(diào)度算法判斷調(diào)度算法?時間片輪轉(zhuǎn)算法建立就緒隊列高優(yōu)先權算法建立就緒隊列短作業(yè)優(yōu)先調(diào)度算法建立就緒隊列先來先效勞算法建立就緒隊列調(diào)用高優(yōu)先權算法調(diào)用時間片輪轉(zhuǎn)算法調(diào)用短作業(yè)優(yōu)先算法調(diào)用先來先效勞算法 結(jié)束 圖2:總程序算法流程圖 模塊調(diào)試與系統(tǒng)測試 1、模塊調(diào)試: 輸入的形式和輸入值的范圍: 顯示待處理的進程: 輸出的形式: 顯示退出隊列后的進程調(diào)度結(jié)果此為先來先效勞算法: 程序所能到達的功能: 程序模擬多進程并發(fā)時的調(diào)度過程,共四種調(diào)度算法,根據(jù)進程
11、的特性來選擇適宜的 調(diào)度算法對諸進程進行調(diào)度。 2、系統(tǒng)測試: 測試方法: 由于軟件錯誤的復雜性,軟件測試需要綜合應用測試技術,軟件測試步驟為單元測試、集成測試、確認測試和系統(tǒng)測試。 單元測試是對源程序中每一個程序單元進行測試,檢查各個模塊是否正確實現(xiàn)了規(guī)定的功能,從而發(fā)現(xiàn)模塊在編碼中或算法中的錯誤。該階段涉及編碼和詳細設計的文檔。各模塊經(jīng)過單元測試后,將各模塊組裝起來進行集成測試,以檢查與設計相關的軟件體系結(jié)構(gòu)的有關問題。確認測試主要檢查已實現(xiàn)的軟件是否滿足需求規(guī)格說明書中確定的各種需求。系統(tǒng)測試將已確定的軟件與其他系統(tǒng)元素如硬件、其他支持軟件、數(shù)據(jù)和人工等結(jié)合在一起進行測試。測試數(shù)據(jù)及測試
12、報告: 操作步驟測試用例描述操作過程及數(shù)據(jù)預期結(jié)果實際結(jié)果結(jié)論1有序的產(chǎn)生到達時間,其值為0到5之間的整數(shù)。正確的生成其值 05之間的數(shù) 2符合預期結(jié)果。2有序的產(chǎn)生到達時間,其值為0到5之間的整數(shù)。錯誤的生成值 5的數(shù) 8越界錯誤3提示是否模擬調(diào)度成功設置提示的對話框以此表示彈出模擬成功對話框彈出模擬成功對話框與預期結(jié)果一致。4顯示各種算法的平均周轉(zhuǎn)時間正確結(jié)果一個正確的Double類型的值 26.60000與預期結(jié)果一致。5顯示各種算法的平均周轉(zhuǎn)時間錯誤結(jié)果 錯誤的或越界的數(shù)值 -180459217產(chǎn)生越界錯誤6顯示各種算法的平均帶權周轉(zhuǎn)時間 正確結(jié)果一個正確的Double類型的值 0.5
13、01887符合預期結(jié)果。7顯示各種算法的平均帶權周轉(zhuǎn)時間 錯誤結(jié)果錯誤的或越界的數(shù)值 -180459217產(chǎn)生越界錯誤 3、調(diào)試分析:在剛開始做這道題時,感覺應該不是很麻煩,到設計的時候才發(fā)現(xiàn)問題并不是如此,并不清楚各個算法的具體實現(xiàn)方法,后來經(jīng)過查閱資料,自己的思路逐漸清晰起來。雖然有時還會遇到有些問題,但是經(jīng)過上網(wǎng)查找資料及老師的指導下都很快解決了。 例如設計結(jié)構(gòu)體變量的時候,對其應該有個初始化的聲明過程: Queue Q5;Queue R5; 這樣后面才能夠正確的使用它。 還有:在算平均周轉(zhuǎn)時間和帶權周轉(zhuǎn)時間時,出現(xiàn)了越界錯誤,輸出的結(jié)果為:-180459217后來反復檢查修改,最后改正
14、了過來。用戶手冊 1生成待處理進程界面: 2當點擊重新生成按鈕時,會發(fā)現(xiàn)隨機的在待處理進程一欄中的各個列的內(nèi)容發(fā)生了變化。 執(zhí)行先來先效勞按鈕后彈出的界面,在執(zhí)行開始模擬操作會按此算法對進程進行模擬 調(diào)度。 執(zhí)行短作業(yè)優(yōu)先按鈕彈出的界面,在執(zhí)行開始模擬操作會按此算法對進程進行模擬調(diào) 度。 執(zhí)行優(yōu)先權調(diào)度按鈕彈出的界面,在執(zhí)行開始模擬操作會按此算法對進程進行模擬調(diào) 度。執(zhí)行時間片輪轉(zhuǎn)按鈕彈出的界面,在執(zhí)行開始模擬操作會按此算法對進程進行模擬調(diào) 度。 7每個算法調(diào)度玩之后,都會彈出模擬成功對話框,如圖: 程序清單 先來先效勞算法:void CFCFS:BeginSimulate():EnableW
15、indow(Begin , FALSE);:EnableWindow(End , FALSE);int count = 0;Queue temp = R0 ;for(;)if(R0.NeedTime 0)R0.NeedTime = R0.NeedTime - 1 ;if(R0.NeedTime = 0)R0.State = E;Qcount = R0;for(int i = 0 ; i SetWindowText(NULL);Edit2-SetWindowText(NULL);break;:Sleep(100);:MessageBox(m_hwnd,模擬完成,成功,NULL);:EnableW
16、indow(End , TRUE);void CFCFS:DataSort() /按到達先后排序 Queue temp = R0 ;for(int j = 0 ; j 4 ; j+)for(int i = 0 ; i Ri+1.ArriveTime)temp = Ri;Ri = Ri+1;Ri+1 = temp; 短作業(yè)優(yōu)先算法:void CSJF:DataSort() /短作業(yè)優(yōu)先排序 Queue temp = R0 ;int HighLevel = 0 ;for(int j = 0 ; j 4 ; j+)for(int i = 0 ; i Ri+1.NeedTime)temp = Ri;R
17、i = Ri+1;Ri+1 = temp; 高優(yōu)先權算法: void Clevel:DataSort() /按優(yōu)先級上下排序 Queue temp = R0 ;for(int j = 0 ; j 4 ; j+)for(int i = 0 ; i Ri+1.Level)temp = Ri;Ri = Ri+1;Ri+1 = temp; 時間片輪轉(zhuǎn)算法: void CRunTime:BeginSimulate() :EnableWindow(Begin , FALSE);:EnableWindow(End, FALSE);int count = 0;Queue temp ;for(;)temp =
18、R0 ;for(int i = 0 ; i 4 ; i+)Ri = Ri+1 ;R4-count = temp ;R0.RealTime = R0.RealTime + 1 ;if(R0.NeedTime = R0.RealTime)R0.State = E;Qcount = R0;for(int i = 0 ; i SetWindowText(NULL);Edit2-SetWindowText(NULL);break;:Sleep(50);:MessageBox(m_hwnd,模擬完成,成功,NULL);:EnableWindow(End , TRUE);七、體會與自我評價 通過本次的課程設
19、計,使我能夠正確運用操作系統(tǒng)課程中所學的根本理論和知識,加深了對多用戶文件系統(tǒng)根本概念的理解,以及二級目錄的磁盤文件系統(tǒng)的文件操作,還有讓我感受很深的是對C語言的應用,由于對C語言在平時運用的不夠,在對C語言的使用尤其是在編寫代碼方面很欠缺,在組織語言時出錯不斷。在設計過程中,需要大量的相關資料,為了本次課程設計我在網(wǎng)上和圖書館查閱了大量資料,不斷的發(fā)現(xiàn)問題、提出問題、解決問題。在編程和調(diào)試的過程中,經(jīng)常會出現(xiàn)意想不到的問題,并非每個問題都可以從相關資料中找到解決方法,有些問題是無法預料到的,這就需要通過自己理性的分析得出問題的解決方案。在對自己所編寫的源程序段的糾錯的過程中,使我更好的理解了操作系統(tǒng)中文件系統(tǒng)的理論知識,同時在編程時用到了模塊化的設計思想,這種編程方法可以使我們的編程變的更簡單,可以使我們的查錯與糾錯變的更方便,總的來說通過這次的設計的學習使我學到了很多在平時的學習中學不到的很多東西,通過這次課程設計,使我對操作系統(tǒng)產(chǎn)生了極大的興趣,我想我會在這條路上繼續(xù)前進下去。我相信,只要不斷的嚴格要求自己,注意培養(yǎng)自己的思維能力,就一定會有更大更輝煌
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年河北省定州市輔警招聘考試試題題庫附答案詳解(培優(yōu)a卷)
- 2025年Z世代消費習慣對健康產(chǎn)品新消費品牌的影響報告
- 2024年演出經(jīng)紀人之演出經(jīng)紀實務通關考試題庫完整
- 通信電源啟動沖擊電流與電磁干擾性能優(yōu)化
- 鄉(xiāng)村醫(yī)生培訓試題及答案
- 物流地理模擬試題及答案
- 湖南省常德市澧縣2025屆九年級下學期中考二模地理試卷(含答案)
- 2025電氣設備維護合同
- 完善工程設計企業(yè)的合同管理與履約監(jiān)督
- 2025年中國水性油漆筆行業(yè)市場前景預測及投資價值評估分析報告
- 勞務雇傭免責協(xié)議書范本兩篇
- 2024年學年八年級道德與法治下冊 第二單元 理解權利義務教案 新人教版
- 老舊泵房拆除改造施工方案
- 糖尿病社區(qū)護理與管理
- 《現(xiàn)代農(nóng)業(yè)技術》考試復習題庫
- 水務集團水利安全生產(chǎn)標準化評審報告
- 2024年山東省德州市中考生物試題卷(含答案)
- 2024秋期國家開放大學專科《現(xiàn)代教師學導論》一平臺在線形考(形成性考核任務一至四)+終結(jié)性考核(大作業(yè))試題及答案
- 奔馳購車定金合同模板
- 廣東省佛山市南海區(qū)三水區(qū)2022-2023學年六年級下學期期末考試英語試卷
- (作文指導)狀動人之景抒不盡之情-“沉浸式”課堂作文教學之環(huán)境描寫
評論
0/150
提交評論