08级操作系统课程设计报告书(共39页).doc
《08级操作系统课程设计报告书(共39页).doc》由会员分享,可在线阅读,更多相关《08级操作系统课程设计报告书(共39页).doc(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上课程设计报告书2011 / 2012 学年 第 1 学期课程名称:操作系统实践课程设计 专业班级:学 号:姓 名: 指导教师: 课程设计指导教师评语 成 绩:_ 指导教师签字:_题目1 进程调度算法的模拟11 题目的主要研究内容及预期达到的目标(1)编程序模拟实现进程调度算法中的FCFS、SJF和高响应比优先算法。(2)基本完成了模拟实现FCFS、SJF 和HRN调度算法。12 题目研究的工作基础或实验条件(1)硬件环境:windows系统(2)软件环境:Visual C+ 13 设计思想 (1)FCFS:将系统中所有的就绪进程按照FCFS原则,排成一个队列。每次调度
2、时将CPU分派给队首进程,让其执行一个时间片。时间片的长度从几个ms到几百ms。 在一个时间片结束时,发生时钟中断。 调度程序据此暂停当前进程的执行,将其送到就绪队列的末尾,并通过上下文切换执行当前的队首进程。 进程可以未使用完一个时间片,就出让CPU(如阻塞)。(2)SJF:对预计执行时间短的作业(进程)优先分派处理机。通常后来的短作业不抢先正在执行的作业。(3)HRN:HRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。 响应比R定义如下: R =(W+T)/T = 1+W/T 其中T为该作业估计需要的执行时间,W为作业在后备状态队列中的
3、等待时间。14 流程图15 主要程序代码#include#include#include#define N 100typedef struct JCBint ID; /*作业标识数*/int requesttime; /*作业运行所需时间*/int runtime; /*作业实际运行所需时间*/int priority; /*作业优先数*/int quick; /*作业紧迫程度*/JCB;JCB jcbN;int jcbnum; /*后备作业数*/void init(); /*赋值函数*/void FCFS(); /*定义FCFS函数*/void SJF();/*定义SJF函数*/void H
4、RN();/*定义HRN函数*/void main() /*main函数*/int i=0;init();cout=endl;cout| 1:FCFS 2:SJF |endl;cout| 3:HRN |endl;cout=endl;while(i=5) /*while循环选择算法*/coutPlease select a number(1,2,3,4):i;switch(i) /*switch语句选择执行函数*/ case 1:FCFS();break;case 2:SJF();break;case 3:HRN();break;void init() /*对定义的变量进行赋值的函数*/int
5、i=0;while(i=2000)coutInput the JCB number:(1-2000)i;jcbnum=i;for(i=0;ijcbnum;i+) /*for循环赋值语句*/jcbi.ID=i+1;jcbi.priority=rand()%100+1;jcbi.quick=rand()%5+1;jcbi.requesttime=rand()%1000+1;void FCFS()/*FCFS函数*/int i;int w=0,t=0; int Waittime=0;/*给waitime赋值*/coutThis is frist come fist server:endl;for(i
6、=0;ijcbnum;i+)/*for循环语句*/coutThe NO.jcbi.IDJCB enter Memory.endl;Waittime+=jcbi.requesttime;w=(Waittime-t)/(jcbi.requesttime);cout带权周转时间为:wendl; t+;void SJF()/*SJF函数*/int i,j,dest ,Waittime,w,t=0;/*定义的变量*/coutThis is shortest job first:0)dest=0;for(i=0;ijcbi.requesttime)/*条件语句*/dest=i;coutThe NO.jcb
7、dest.IDJCB enter Mermoryendl; Waittime+=jcbdest.requesttime;w=(Waittime-t)/(jcbdest.requesttime);cout带权周转时间为:wendl;t+;for(j=dest;jjcbnum-1;j+)/*用for语句进行赋值*/jcbj.ID=jcbj+1.ID;jcbj.requesttime=jcbj+1.requesttime;jcbnum-;void HRN()/*HRN函数*/int i,j,dest;/*定义的变量*/int waittime=0;/*给waitime赋值*/coutThis is
8、Highest responseratio first0)dest=0;for(i=0;i(waittime/(jcbi.requesttime)/*条件语句*/dest=i;coutThe NO.jcbdest.IDJCB enter Memory.endl;waittime+=jcbdest.requesttime;/*给waittime赋新值*/for(j=dest;j Needij出错返回:return(error)Requestij Availablej出错返回:(进程阻塞)return(error)Availablej = Availablej RequestijAllocatio
9、nij= Allocationij + RequestijNeedij = Needij Requestij假定分配:输入初始参数(资源分配及请求情况)开始 假定分配之后,系统安全吗?申请成功。输出各种数据的变化银行家算法流程图14 流程图15 主要程序代码#include using namespace std;#define MAXPROCESS 50 /*最大进程数*/#define MAXRESOURCE 100 /*最大资源数*/int AVAILABLEMAXRESOURCE; /*可用资源数组*/int MAXMAXPROCESSMAXRESOURCE; /*最大需求矩阵*/in
10、t ALLOCATIONMAXPROCESSMAXRESOURCE; /*分配矩阵*/int NEEDMAXPROCESSMAXRESOURCE; /*需求矩阵*/int REQUESTMAXPROCESSMAXRESOURCE; /*进程需要资源数*/bool FINISHMAXPROCESS; /*系统是否有足够的资源分配*/int pMAXPROCESS; /*记录序列*/int m,n; /*m个进程,n个资源*/void Init();bool Safe();void Dijkstra();int main() Init(); Safe(); Dijkstra();void Init
11、() /*初始化算法*/ int i,j; coutm; coutn; cout请输入每个进程最多所需的各资源数,按照mxn矩阵输入endl; for(i=0;im;i+) for(j=0;jMAXij; cout请输入每个进程已分配的各资源数,也按照mxn矩阵输入endl; for(i=0;im;i+) for(j=0;jALLOCATIONij; NEEDij=MAXij-ALLOCATIONij; if(NEEDij0) cout您输入的第i+1个进程所拥有的第j+1个资源数错误,请重新输入:endl; j-; continue; cout请输入各个资源现有的数目:endl; for(i
12、=0;iAVAILABLEi; void Dijkstra() /*银行家算法*/ int i,cusneed; char again; while(1) cout请输入要申请资源的进程号(注:第1个进程号为0,依次类推)cusneed; cout请输入进程所请求的各资源的数量endl; for(i=0;iREQUESTcusneedi; for(i=0;iNEEDcusneedi) cout您输入的请求数超过进程的需求量!请重新输入!AVAILABLEi) cout您输入的请求数超过系统有的资源数!请重新输入!endl; continue; for(i=0;in;i+) AVAILABLEi
13、-=REQUESTcusneedi; ALLOCATIONcusneedi+=REQUESTcusneedi; NEEDcusneedi-=REQUESTcusneedi; if(Safe() cout同意分配请求!endl; else cout您的请求被拒绝!endl; for(i=0;in;i+) AVAILABLEi+=REQUESTcusneedi; ALLOCATIONcusneedi-=REQUESTcusneedi; NEEDcusneedi+=REQUESTcusneedi; for(i=0;im;i+) FINISHi=false; cout您还想再次请求分配吗?是请按y/Y
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 08 操作系统 课程设计 报告书 39
限制150内