


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、操作系統原理課程設計報告書題 目 進程控制模塊的設計與實現專業:網絡工程學號:131007111學生姓名:李亞豪指導教師:劉雙紅完成日期:2015-12-05目錄第1章課題概述31.1設計要求31.2設計理論依據.3第2章設計簡介和內容.6.2.1設計簡介62.2設計內容6 第3章詳細設計3.1 設計流程圖73.2 主要程序代碼 9第4章設計結果及分析1.0.10.4.2運行結果分析錯誤.未定義書簽4.1運行結果截圖1.5.總結第1章課題描述1.1設計要求1敘述要詳細。2. 要有條理。3. 各個功能分開闡述。4. 自己可以增加題目要求的功能模塊。5. 可以增加自己對題目的理解。1.2設計理論依
2、據根據作業控制塊中的信息,審查系統能否滿足用戶作業的資源需求,以及按照一定的算 法,從外存的后備隊列中選取某些作業調入內存 ,并為它們創建進程、分配必要的資源。 短作業優先調度算法,從后備隊列中選擇一個或若干個估計運行時間最短的作業,將它們調 入內存運行。第2章 設計簡介和內容2.1設計簡介在多道程序環境下,將系統中的作業組織起來,為每個進入系統的作業建立檔案以記錄 和作業相關的信息,按要求輸入作業名、到達時間和服務時間,并為其建立作業控制塊(JCB)掛入后備隊列。進行作業調度時,在其后計算出各個作業的開始執行時間 、完成時 間、周轉時間和平均周轉時間,利用短作業優先算法進行作業調度,并按照由
3、小到大的順序 顯示出來。2.2設計內容1)編寫程序完成批處理系統中的作業調度,要求采用短作業優先的作業調度算法。實驗具體包括:首先確定作業控制塊的內容,作業控制塊的組成方式;然后完成作業調度;最 后編寫主函數對所作工作進程測試。2) 創建作業控制塊JCB,定義為結構體,為進入系統的作業建立檔案,其中定義了作 業名,作業到達時間,作業服務時間,作業開始執行時間,作業完成時間,作業周轉時間, 作業平均周轉時間。3)首先按各個作業完成時間由小到大排序 。再用輸入的到達時間與服務時間按一定算 法算出各個作業的開始執行時間、完成時間、周轉時間和作業平均周轉時間。第3章詳細設計3.1設計流程圖按完成時間由
4、小到大輸出結果,并由小到大輸出作業名,作業到達時間,作業服務時間,作業開始執行時間, 作業 完成時間,作業周轉時間,作業平均周轉時間結束3.2主要代碼/ 789.cpp : Defines the en try point for the con sole applicati on./#in clude "stdafx.h"#i nclude<stdio.h>#in clude<c oni o.h>#i ncludevwi ndows.h>#defi ne MAX 100/最多能管理的作業數目struct jcb /作業控制塊JCB定義為結構體
5、char n ame10;/作業名float arrivetime; /作業到達時間float servicetime;/作業服務時間float starttime;/作業開始執行時間float fini shtime; /作業完成時間float zztime;/作業周轉時間float avezztime;/作業平均周轉時間;jcb aMAX;void in put(jcb *p,i nt N)int i;printf("請分別輸入:nt作業名,到達時間,服務時間(如:JOB1 5 10)nn");for(i=0;i<=N-1;i+) printf("請輸入
6、第%d個作業信息:",i+1);sca nf("%s%f%f",&pi. name,&pi.arrivetime,&pi.servicetime);prin tf("n");starttime,floatvoidPrin t(jcb*p,float arrivetime,float servicetime,floatfinishtime,float zztime,float avezztime,int N)int k;printf("調度順序:");prin tf("%s",pO.
7、 name);for(k=1;k<N;k+)prin tf("->%s",pk. name);prin tf("nn");printf("ttt作業信息:n");prin tf("nn ametarrivetservicetstarttfi nishtzztavezzn ”);for(k=0;k<=N-1;k+)prin tf("%st%-.2ft%-.2ft%-.2ft%-.2ft%-.2ft%-.2ftn",pk. name,pk.arrivetime,pk.servicetime,
8、pk.starttime,pk.fi nishtime,pk.zztime,pk.avezztime);void sort(jcb *p,i nt N) for(int i=0;i<=N-1;i+)for(i nt j=0;j<=i;j+)if(pi.arrivetime<pj.arrivetime)jcb temp;temp=pi; pi=pj;pj=temp;starttime,floatvoid deal(jcb *p, float arrivetime,float servicetime,float finishtime,float &zztime,float
9、 &avezztime,int N)int k;for(k=0;k<=N-1;k+)if(k=0)pk.starttime=pk.arrivetime;pk.fi nishtime=pk.arrivetime+pk.servicetime;else pk.starttime=pk-1.fi ni shtime;pk.fi nishtime=pk-1.fi nishtime+pk.servicetime;for(k=0;k<=N-1;k+)pk.zztime=pk.fi nishtime-pk.arrivetime; pk.avezztime=pk.zztime/pk.ser
10、vicetime;void jcbf(jcb *p,i nt N)floatarrivetime=0,servicetime=0,starttime=0,fi ni shtime=0,zztime=0,avezztime=0;sort(p,N);for(int m=0;m<N-1;m+)if(m=0)pm.fi nishtime=pm.arrivetime+pm.servicetime;elsepm.fi nishtime=pm-1.fi nishtime+pm.servicetime;int i=0;for(i nt n=m+1; n<=N-1; n+)if(p n.arrive
11、time<=pm.fi nishtime)i+;float mi n=pm+1.servicetime;int n ext=m+1;/m+1= nfor(i nt k=m+1;k<m+i;k+)if(pk+1.servicetime<mi n)mi n=pk+1.servicetime;n ext=k+1;jcb temp;temp=pm+1;pm+1=p next;pn ext=temp;deal(p,arrivetime,servicetime,starttime,fi nishtime,zztime,avezztime,N);Prin t(p,arrivetime,se
12、rvicetime,starttime,fi nishtime,zztime,avezztime,N); int mai n()while(1)int N;printf("ttt短作業優先調度算法n");printf("請輸入作業數目:");seanf("%d",&N);char ch;if(N>MAX)printf("t!輸入的作業數目太大,請輸入不大于%d的整數n",MAX); printf("按Q或者q退出程序,按其他任意鍵繼續測試.");ch = getch();if(ch
13、=Q|ch='q')break; else con ti nue;in put(a,N);jcb *b=a;jcbf(b,N);printf(”按Q或者q退出程序,按其他任意鍵繼續測試.");ch = getch();if(ch='Q'|ch='q')break;return 0;第4章 設計結果及分析4.1運行結果截圖1) 初始化界面圖1-1初始化初始化作業輸入作業的數目,但不可超過進程設置的最大值。如果輸入的作業數超過作 業數的最大值,程序就會退出。輸入如果在正確范圍的話,程序就會執行,并會出現相應的 提示信息,執行情況如下圖所示。
14、2)輸入進程數目承接上面的頁面,輸入相應的作業數,輸入作業數后程序會給出相應的提示,用戶可根據相應的提示,進行操作,進行下一步,如下圖所示3) 輸入進程名、到達時間、服務時間|' "G:Microscift Visual StudioMyProjects756Debug756.exe*ars:s作業名,到達時間,服務時間(如J0B1 5 10)青輸入第1個作業信息浪0 3請輸人第2個作業信息匕1 4請輸入第3個作業信息n 2 2WS-hlk .圖1-3輸入進程各信息用戶進入這個界面后,根據相應的提示,輸入用戶所構造的作業信息。如作業名、到達 時間、服務時間。根據用戶輸入相應的
15、值,程序會給出相應的處理,如下圖所示。4) 運行結果 "G:Microsoft Visual StudioMyProjects756Debug756.exe"短作業優先調度算法請輸入作業數目:3 請夯另淪入:作業名倒達時間,服務時間(如:J0B1 5 10)命AM 1個作業信息荷o 3請輸入第2個作業宿息此1 4請輸入第玲作業信息:C 2 2調度順序:自一>u>b作業信息:namearrive0, 002. 001. 90service3. 00 2r 004.00start0. 003, 005. 00finish3.005.009.00o o O o o O
16、 Z - * « Z 3 3 8avezzLOOL 502.00按Q或者q退岀程序,按其他任意鍵繼續測試.圖1-4運行結果相應的程序對用戶輸入的作業信息,做出了相應的處理。如程序的執行順序,對應的程 序的名字、到達時間、服務時間、開始服務時間、完成時間、周轉時間、平均周轉時間。用 戶可根據執行情況,了解相應的進程的執行情況??偨Y1.列出開發過程中遇到的主要困難,并寫出解決方法把完成的模塊組合到主程序上。組合簡單,但是要讓各個部分沒有分歧地融為 一體,卻是很難。往往組合之后會有很多錯誤的地方,我們要一個一個地去解決。 有些錯誤很容易修正,但有些卻是絞盡腦汁都弄不明白的。比如說,有個顯示
17、的模 塊,程序寫的是對的,但不知道為什么,總是出錯。改了許多次,才發現是頭文件 沒有聲明。2總結所系統的功能和不足,包括自己沒有實現的部分。如果自己有時間和能力,系 統應該做成什么樣子的。系統只簡單地實現了進程調度(短作業優先)的基本功能:輸入進程數目、輸 入進程服務時間、輸入進程到達時間、簡單的進程短作業優先排序以及計算平均周 轉時間和平均帶權周轉時間。但沒有實現界面應用,和相應的界面優化。3在課程設計中自己的收獲與感受通過本次課程設計對用短作業的優先調度算法有了更深入的理解和掌握,進一步鞏固和復習操作系統的基礎知識,更進一步的了解了結構化模塊化程序設計的方法 , 提高了調試程序的技巧,提高了自己的動手能力。 通過模擬進程的調度問題,將課 本上的理論知識和實際有機的結合起來,獨立分析和解決實際問題。更加深了我對于 操作系統理
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年 湛江市雷州市教育系統招聘教師考試試題附答案
- 2025年中國充氣混凝土行業市場發展監測及投資前景展望報告
- 2025年中國固體顆粒物料炒鍋行業市場調查研究及發展戰略規劃報告
- 2025年中國塑鋼窗行業市場發展監測及投資戰略規劃研究報告
- 中國工業氯化銨行業調查報告
- 2025年中國鹵味休閑食品市場競爭格局及投資戰略規劃報告
- 中國橡膠線機頭行業市場發展前景及發展趨勢與投資戰略研究報告(2024-2030)
- 中國渦輪式粉碎機行業市場前景預測及投資戰略研究報告
- 中國汽車空氣彈簧行業市場全景評估及發展戰略規劃報告
- 中國精密鑄鐵件行業市場規模及未來投資方向研究報告
- 體檢機構服務流程
- 地下礦山常見安全隱患的排查和處置
- 水工混凝土建筑物修補加固技術規程
- 招標程序和《必須招標的工程項目規定》解讀-必須招標的項目課件
- (完整版)QQ三國副職及日常物品成本計算表v1.0
- 電極的界面雙電層性質課件
- 【語文】福建省廈門市演武小學小學二年級下冊期末試題
- 竣工驗收階段的質量控制
- 2021-2022學年山東省東營市廣饒縣七年級(下)期末英語試卷(五四學制)(附答案詳解)
- 湖北十堰燃氣爆炸事故案例
- 阿奇舒勒矛盾矩陣表
評論
0/150
提交評論