多進(jìn)程并發(fā)與調(diào)度仿真環(huán)境 實(shí)驗(yàn)報(bào)告_第1頁
多進(jìn)程并發(fā)與調(diào)度仿真環(huán)境 實(shí)驗(yàn)報(bào)告_第2頁
多進(jìn)程并發(fā)與調(diào)度仿真環(huán)境 實(shí)驗(yàn)報(bào)告_第3頁
多進(jìn)程并發(fā)與調(diào)度仿真環(huán)境 實(shí)驗(yàn)報(bào)告_第4頁
多進(jìn)程并發(fā)與調(diào)度仿真環(huán)境 實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、青島理工大學(xué)操作系統(tǒng)課程設(shè)計(jì)報(bào)告院系: 計(jì)算機(jī)工程學(xué)院 專業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)專業(yè) 學(xué)生姓名: 班級:學(xué)號: 題目: 多進(jìn)程并發(fā)與調(diào)度仿真環(huán)境 起迄日期: 設(shè)計(jì)地點(diǎn): 指 導(dǎo) 教 師: 20212021年度 第 2 學(xué)期完成日期: 2021 年 7 月 13 日課程設(shè)計(jì)目的操作系統(tǒng)是現(xiàn)代計(jì)算機(jī)系統(tǒng)中必不可少的根本系統(tǒng)軟件,本課程是工業(yè)自動化、自動控制專業(yè)的選修課程之一,同時(shí)也是從事計(jì)算機(jī)應(yīng)用人員必不可少的知識課程。選取最新主流操作系統(tǒng)UNIX、Linux和Windows 2000/NT作為實(shí)例介紹操作系統(tǒng)的經(jīng)典內(nèi)容和最新開展,同時(shí)注意理論聯(lián)系實(shí)際,使學(xué)生學(xué)會分析研究計(jì)算機(jī)操作系統(tǒng)的原理、特性

2、,建立操作系統(tǒng)的模塊化管理的“硬件相關(guān),應(yīng)用無關(guān)的觀點(diǎn),并初步掌握操作系統(tǒng)內(nèi)部結(jié)構(gòu)與工作過程以及相關(guān)的技術(shù)和理論,掌握操作系統(tǒng)是如何管理和控制計(jì)算機(jī)系統(tǒng)中的所有軟件、硬件資源的,以及操作系統(tǒng)是如何為用戶提供一個(gè)方便靈活、平安可靠的工作環(huán)境;通過編程練習(xí)來加深對操作系統(tǒng)的理解。學(xué)習(xí)該課程也是進(jìn)行復(fù)雜操作系統(tǒng)模塊設(shè)計(jì)的訓(xùn)練過程,要求對操作系統(tǒng)的所有模塊功能和接口有一個(gè)整體的認(rèn)識和初步的設(shè)計(jì)能力。進(jìn)行操作系統(tǒng)課程設(shè)計(jì)主要是在學(xué)習(xí)操作系統(tǒng)課程的根底上,在完成操作系統(tǒng)各局部實(shí)驗(yàn)的根底上,對操作系統(tǒng)的整體進(jìn)行一個(gè)模擬,通過實(shí)踐加深對各個(gè)局部的管理功能的認(rèn)識,還能進(jìn)一步分析各個(gè)局部之間的聯(lián)系,最后到達(dá)對完整

3、系統(tǒng)的理解。同時(shí),可以提高運(yùn)用操作系統(tǒng)知識解決實(shí)際問題的能力;鍛煉實(shí)際的編程能力、創(chuàng)新能力及團(tuán)隊(duì)組織、協(xié)作開發(fā)軟件的能力;還能提高調(diào)查研究、查閱技術(shù)文獻(xiàn)、資料以及編寫軟件設(shè)計(jì)文檔的能力。此題的目的是多進(jìn)程并發(fā)與調(diào)度過程,并且分析比擬各種調(diào)度算法的性能。根據(jù)具體的應(yīng)用環(huán)境來使用響應(yīng)的算法。二、課程設(shè)計(jì)內(nèi)容綜合設(shè)計(jì)多進(jìn)程并發(fā)與調(diào)度仿真環(huán)境,分析比擬各種調(diào)度算法的性能。三、系統(tǒng)分析與設(shè)計(jì)1、系統(tǒng)分析: 在采用多道程序設(shè)計(jì)的系統(tǒng)中,往往有假設(shè)干個(gè)進(jìn)程同時(shí)處于就緒狀態(tài)。當(dāng)就緒狀態(tài)進(jìn)程個(gè)數(shù)大于處理器數(shù)時(shí),就必須依照某種策略來決定哪些進(jìn)程優(yōu)先占用處理器。本實(shí)驗(yàn)就這一問題給出了四種調(diào)度算法。分別為先來先效勞、

4、短作業(yè)優(yōu)先、高優(yōu)先權(quán)調(diào)度和時(shí)間片輪轉(zhuǎn)算法。先來先效勞FCFS調(diào)度算法是一種最簡單的調(diào)度算法,該算法既可用于作業(yè)調(diào)度,也可用于進(jìn)程調(diào)度。FCFS算法比擬有利于長作業(yè)進(jìn)程,而不利于短作業(yè)進(jìn)程。短作業(yè)優(yōu)先SJF調(diào)度算法,是指對短作業(yè)或短進(jìn)程優(yōu)先調(diào)度的算法。它們可以分別用于作業(yè)調(diào)度和進(jìn)程調(diào)度。缺點(diǎn): 該算法不利于長作業(yè) 該算法完全未考慮作業(yè)的緊迫程度,因而不能保證緊迫性作業(yè)進(jìn)程會被及時(shí)處理。 由于作業(yè)的長短只是根據(jù)用戶所提供的估計(jì)執(zhí)行時(shí)間而定的,而用戶又可能會有意或無意地縮短其作業(yè)的估計(jì)運(yùn)行時(shí)間,致使該算法不一定能真正做到短作業(yè)優(yōu)先調(diào)度。優(yōu)先權(quán)調(diào)度算法是為了照顧緊迫型作業(yè),使之在進(jìn)入系統(tǒng)后便獲得優(yōu)先處

5、理。優(yōu)先權(quán)高的先被調(diào)度。此算法常被用于批處理系統(tǒng)?;跁r(shí)間片輪轉(zhuǎn)算法:為保證能及時(shí)響應(yīng)用戶的請求,必須采用基于時(shí)間片的輪轉(zhuǎn)式進(jìn)程調(diào)度算法。2、系統(tǒng)設(shè)計(jì): 1設(shè)計(jì)一個(gè)生成有幾個(gè)互斥的待處理進(jìn)程的主界面。 2再設(shè)計(jì)一個(gè)按鈕可實(shí)現(xiàn)隨機(jī)重新生成這幾個(gè)進(jìn)程的各種屬性這里用到了隨機(jī)函數(shù) 3再分別設(shè)置四個(gè)按鈕分別用四個(gè)算法對上訴諸進(jìn)程進(jìn)行調(diào)度。 4對于上訴四個(gè)算法再分別為每種算法相應(yīng)對應(yīng)的對話框,用來加以區(qū)別和獨(dú)立。3、模塊設(shè)計(jì): 各程序模塊之間的調(diào)用關(guān)系: 加載操作界面 重新生成四種調(diào)度算法按鈕 優(yōu)先權(quán)調(diào)度先來先效勞 短作業(yè)優(yōu)先 時(shí)間片輪轉(zhuǎn)RandH()函數(shù)隨機(jī)生成進(jìn)程首地址指針CRuntime類Clev

6、el類CSJF類CFCFS類 顯示各自對話框就列隊(duì)列緒塞阻塞列隊(duì)CPU數(shù)據(jù)結(jié)構(gòu)說明: 設(shè)計(jì)中所用到的數(shù)據(jù)結(jié)構(gòu)或抽象數(shù)據(jù)類型的說明,以及在程序中的作用 1僅有進(jìn)程調(diào)度的調(diào)度隊(duì)列模型: 在分時(shí)系統(tǒng)中,通常僅設(shè)置了進(jìn)程調(diào)度,用戶鍵入的命令和數(shù)據(jù)都直接送入內(nèi)存。 模型如下列圖: 時(shí)間片完 進(jìn)程調(diào)度 進(jìn)程完成 交互用戶 事件出現(xiàn) 等待事件 2具有高級和低級調(diào)度的調(diào)度隊(duì)列模型: 在批處理系統(tǒng)中,不僅需要進(jìn)程調(diào)度,而且還需要有作業(yè)調(diào)度,由后者一定的作業(yè)調(diào)度 算法,從外存的后備隊(duì)列中選擇一批作業(yè)調(diào)入內(nèi)存,并為它們建立進(jìn)程,送入就緒隊(duì)列, 然后才由進(jìn)程調(diào)度按照一定的進(jìn)程調(diào)度算法選擇一個(gè)進(jìn)程,把處理機(jī)分配給進(jìn)程。

7、 此模型如下列圖: 作業(yè) 時(shí)間片完CPU 調(diào)度 后備隊(duì)列就列隊(duì)列緒 進(jìn)程調(diào)度 進(jìn)程完成 事件1出現(xiàn) 等待事件1事件2出現(xiàn) 等待事件2 等待事件n事件n出現(xiàn) 3程序中用到的數(shù)據(jù)結(jié)構(gòu):1抽象數(shù)據(jù)類型的定義: 先來先效勞算法所用的隊(duì)列結(jié)構(gòu)體: struct Queue CString Name ; /進(jìn)程名 int ArriveTime; /到達(dá)時(shí)間 int NeedTime ; /所需時(shí)間 int StartTime; /開始時(shí)間 int FinishTime; /完成時(shí)間 double ToTime; /周轉(zhuǎn)時(shí)間 double nToTime; /帶權(quán)周轉(zhuǎn)時(shí)間 int Level ; /優(yōu)先權(quán)

8、CString State ; /進(jìn)程狀態(tài) ; Queue Q5; Queue R5; 高優(yōu)先權(quán)調(diào)度算法所用的隊(duì)列結(jié)構(gòu)體: struct Queue CString Name ; /進(jìn)程名 int ArriveTime; /到達(dá)時(shí)間 int NeedTime ; /所需時(shí)間 int RealTime ; /已運(yùn)行時(shí)間 int StartTime; /開始時(shí)間 int FinishTime; /完成時(shí)間 double ToTime; /周轉(zhuǎn)時(shí)間 double nToTime; /帶權(quán)周轉(zhuǎn)時(shí)間 int Level ; /優(yōu)先權(quán) CString State ; /進(jìn)程狀態(tài) ; Queue R5 ,

9、Q5 ;2用于顯示所用列表所用到的全局結(jié)構(gòu)體:struct ProcessCString Name ; /進(jìn)程名int ArriveTime; /到達(dá)時(shí)間int NeedTime ; /效勞時(shí)間int RealTime ; /已運(yùn)行時(shí)間int StartTime; /開始時(shí)間int FinishTime; /完成時(shí)間int Level ; /優(yōu)先權(quán)double ToTime; /周轉(zhuǎn)時(shí)間double nToTime; /帶權(quán)周轉(zhuǎn)時(shí)間CString State ; / 作業(yè)狀態(tài);extern Process P5; 5、算法流程圖: 有就緒進(jìn)程? 開始保護(hù)現(xiàn)場,PC=當(dāng)前進(jìn)程PCB的斷點(diǎn)現(xiàn)行進(jìn)程

10、PCB的斷點(diǎn)值=PC將現(xiàn)行進(jìn)程狀態(tài)改為運(yùn)行態(tài)隨即選擇就緒進(jìn)程作為現(xiàn)行進(jìn)程模擬處理器指令執(zhí)行程序否是 結(jié)束 圖1: 處理器調(diào)度算法流圖 開始 選擇調(diào)度算法判斷調(diào)度算法?時(shí)間片輪轉(zhuǎn)算法建立就緒隊(duì)列高優(yōu)先權(quán)算法建立就緒隊(duì)列短作業(yè)優(yōu)先調(diào)度算法建立就緒隊(duì)列先來先效勞算法建立就緒隊(duì)列調(diào)用高優(yōu)先權(quán)算法調(diào)用時(shí)間片輪轉(zhuǎn)算法調(diào)用短作業(yè)優(yōu)先算法調(diào)用先來先效勞算法 結(jié)束 圖2:總程序算法流程圖 模塊調(diào)試與系統(tǒng)測試 1、模塊調(diào)試: 輸入的形式和輸入值的范圍: 顯示待處理的進(jìn)程: 輸出的形式: 顯示退出隊(duì)列后的進(jìn)程調(diào)度結(jié)果此為先來先效勞算法: 程序所能到達(dá)的功能: 程序模擬多進(jìn)程并發(fā)時(shí)的調(diào)度過程,共四種調(diào)度算法,根據(jù)進(jìn)程

11、的特性來選擇適宜的 調(diào)度算法對諸進(jìn)程進(jìn)行調(diào)度。 2、系統(tǒng)測試: 測試方法: 由于軟件錯(cuò)誤的復(fù)雜性,軟件測試需要綜合應(yīng)用測試技術(shù),軟件測試步驟為單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試。 單元測試是對源程序中每一個(gè)程序單元進(jìn)行測試,檢查各個(gè)模塊是否正確實(shí)現(xiàn)了規(guī)定的功能,從而發(fā)現(xiàn)模塊在編碼中或算法中的錯(cuò)誤。該階段涉及編碼和詳細(xì)設(shè)計(jì)的文檔。各模塊經(jīng)過單元測試后,將各模塊組裝起來進(jìn)行集成測試,以檢查與設(shè)計(jì)相關(guān)的軟件體系結(jié)構(gòu)的有關(guān)問題。確認(rèn)測試主要檢查已實(shí)現(xiàn)的軟件是否滿足需求規(guī)格說明書中確定的各種需求。系統(tǒng)測試將已確定的軟件與其他系統(tǒng)元素如硬件、其他支持軟件、數(shù)據(jù)和人工等結(jié)合在一起進(jìn)行測試。測試數(shù)據(jù)及測試

12、報(bào)告: 操作步驟測試用例描述操作過程及數(shù)據(jù)預(yù)期結(jié)果實(shí)際結(jié)果結(jié)論1有序的產(chǎn)生到達(dá)時(shí)間,其值為0到5之間的整數(shù)。正確的生成其值 05之間的數(shù) 2符合預(yù)期結(jié)果。2有序的產(chǎn)生到達(dá)時(shí)間,其值為0到5之間的整數(shù)。錯(cuò)誤的生成值 5的數(shù) 8越界錯(cuò)誤3提示是否模擬調(diào)度成功設(shè)置提示的對話框以此表示彈出模擬成功對話框彈出模擬成功對話框與預(yù)期結(jié)果一致。4顯示各種算法的平均周轉(zhuǎn)時(shí)間正確結(jié)果一個(gè)正確的Double類型的值 26.60000與預(yù)期結(jié)果一致。5顯示各種算法的平均周轉(zhuǎn)時(shí)間錯(cuò)誤結(jié)果 錯(cuò)誤的或越界的數(shù)值 -180459217產(chǎn)生越界錯(cuò)誤6顯示各種算法的平均帶權(quán)周轉(zhuǎn)時(shí)間 正確結(jié)果一個(gè)正確的Double類型的值 0.5

13、01887符合預(yù)期結(jié)果。7顯示各種算法的平均帶權(quán)周轉(zhuǎn)時(shí)間 錯(cuò)誤結(jié)果錯(cuò)誤的或越界的數(shù)值 -180459217產(chǎn)生越界錯(cuò)誤 3、調(diào)試分析:在剛開始做這道題時(shí),感覺應(yīng)該不是很麻煩,到設(shè)計(jì)的時(shí)候才發(fā)現(xiàn)問題并不是如此,并不清楚各個(gè)算法的具體實(shí)現(xiàn)方法,后來經(jīng)過查閱資料,自己的思路逐漸清晰起來。雖然有時(shí)還會遇到有些問題,但是經(jīng)過上網(wǎng)查找資料及老師的指導(dǎo)下都很快解決了。 例如設(shè)計(jì)結(jié)構(gòu)體變量的時(shí)候,對其應(yīng)該有個(gè)初始化的聲明過程: Queue Q5;Queue R5; 這樣后面才能夠正確的使用它。 還有:在算平均周轉(zhuǎn)時(shí)間和帶權(quán)周轉(zhuǎn)時(shí)間時(shí),出現(xiàn)了越界錯(cuò)誤,輸出的結(jié)果為:-180459217后來反復(fù)檢查修改,最后改正

14、了過來。用戶手冊 1生成待處理進(jìn)程界面: 2當(dāng)點(diǎn)擊重新生成按鈕時(shí),會發(fā)現(xiàn)隨機(jī)的在待處理進(jìn)程一欄中的各個(gè)列的內(nèi)容發(fā)生了變化。 執(zhí)行先來先效勞按鈕后彈出的界面,在執(zhí)行開始模擬操作會按此算法對進(jìn)程進(jìn)行模擬 調(diào)度。 執(zhí)行短作業(yè)優(yōu)先按鈕彈出的界面,在執(zhí)行開始模擬操作會按此算法對進(jìn)程進(jìn)行模擬調(diào) 度。 執(zhí)行優(yōu)先權(quán)調(diào)度按鈕彈出的界面,在執(zhí)行開始模擬操作會按此算法對進(jìn)程進(jìn)行模擬調(diào) 度。執(zhí)行時(shí)間片輪轉(zhuǎn)按鈕彈出的界面,在執(zhí)行開始模擬操作會按此算法對進(jìn)程進(jìn)行模擬調(diào) 度。 7每個(gè)算法調(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() /按到達(dá)先后排序 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)先權(quán)算法: 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; 時(shí)間片輪轉(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);七、體會與自我評價(jià) 通過本次的課程設(shè)

19、計(jì),使我能夠正確運(yùn)用操作系統(tǒng)課程中所學(xué)的根本理論和知識,加深了對多用戶文件系統(tǒng)根本概念的理解,以及二級目錄的磁盤文件系統(tǒng)的文件操作,還有讓我感受很深的是對C語言的應(yīng)用,由于對C語言在平時(shí)運(yùn)用的不夠,在對C語言的使用尤其是在編寫代碼方面很欠缺,在組織語言時(shí)出錯(cuò)不斷。在設(shè)計(jì)過程中,需要大量的相關(guān)資料,為了本次課程設(shè)計(jì)我在網(wǎng)上和圖書館查閱了大量資料,不斷的發(fā)現(xiàn)問題、提出問題、解決問題。在編程和調(diào)試的過程中,經(jīng)常會出現(xiàn)意想不到的問題,并非每個(gè)問題都可以從相關(guān)資料中找到解決方法,有些問題是無法預(yù)料到的,這就需要通過自己理性的分析得出問題的解決方案。在對自己所編寫的源程序段的糾錯(cuò)的過程中,使我更好的理解了操作系統(tǒng)中文件系統(tǒng)的理論知識,同時(shí)在編程時(shí)用到了模塊化的設(shè)計(jì)思想,這種編程方法可以使我們的編程變的更簡單,可以使我們的查錯(cuò)與糾錯(cuò)變的更方便,總的來說通過這次的設(shè)計(jì)的學(xué)習(xí)使我學(xué)到了很多在平時(shí)的學(xué)習(xí)中學(xué)不到的很多東西,通過這次課程設(shè)計(jì),使我對操作系統(tǒng)產(chǎn)生了極大的興趣,我想我會在這條路上繼續(xù)前進(jìn)下去。我相信,只要不斷的嚴(yán)格要求自己,注意培養(yǎng)自己的思維能力,就一定會有更大更輝煌

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論