操作系统实验报告(1)各种算法C++程序(共11页).doc
《操作系统实验报告(1)各种算法C++程序(共11页).doc》由会员分享,可在线阅读,更多相关《操作系统实验报告(1)各种算法C++程序(共11页).doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上操作系统实验报告姓名: 班级: 学号: 实验时间:2010.10.21 一、先来先服务算法1 程序简介先来先服务算法按照作业进入系统后备作业队列的先后次序挑选作业,先进入系统的作业将优先被挑选进入主存,创建用户进程,分配所需资源,然后,移入就绪队列.这是一种非剥夺式调度算法,易于实现,但效率不高.只顾及作业的等候时间,未考虑作业要求服务时间的长短,不利于短作业而优待长作业,不利于I/O繁忙型作业而有利于CPU繁忙型作业.有时为了等待场作业执行结束,短作业的周转时间和带全周转时间将变得很大,从而若干作业的平均周转时间和平均带权周转时间也变得很大。2 设计分析1 先定义一
2、个数组代表各作业运行的时间,再定义一个数组代表各作业到达系统的时间,注意到达系统的时间以第一个作业为0基础(注意:若各程序都同时到达系统,则到达系统时间都为0)。2 输入作业数。3 然后运用循环结构累积作业周转时间和带权周转时间。4 最后,作业周转时间和带权周转时间分别除以作业数即可得到平均作业周转时间和平均带权周转时间。3 详细设计源程序如下:#include#includeusing namespace std;int main()int n,a100,b100;double s100,m100,T=0,W=0;cout请输入作业数:n;cout请分别输入各作业到达系统的时间:endl;f
3、or(int i=0;ibi;cout请分别输入各作业所运行的时间:endl;for(i=0;iai;s0=0; si+1=si+ai; mi+1=(si+1-bi)/ai; T=T+si+1-bi; W=W+mi+1;cout平均周转时间为:T/nendl;cout平均带权周转时间为:W/nendl;return 0;4 运行与测试1 运行程序,输入作业数,如A.1所示。A1 启动界面2 输入各作业到达系统的时间,如A.2所示。A2 输入各作业到达系统的时间3 输入各作业所运行的时间,如A.3所示。A3 输入各作业运行的时间5 调试总结此次调试还算成功,各部分功能都能实现,不过有待进一步优化
4、。 此程序运用数组编程,各部分协调一致,总体上简单易于实现,但界面还需优化。二、最短作业优先算法1. 程序简介最短作业优先算法以进入系统的作业所要求的CPU运行时间的长短为标准,总是选取预计计算时间最短的作业投入运行。这是一种非剥夺式调度算法,能克服FCFS算法偏爱长作业的缺点,易于实现,但执行效率也不高。2. 设计分析1. 分两种情况来介绍这种算法,一是各作业到达系统的时间都相同,二是各作业到达系统的时间不同,且以第一个作业到达系统的时间为0作基础。2. 到达系统时间都相同的情况只要累积CPU运行的时间,最后加一个排序函数即可。3. 到达系统时间不相同的情况则是要在前面FCFS的基础上加一个
5、排序函数即可。4. 注意本程序认为第一个作业完成后,其它作业都已经到达系统了。3. 详细设计源程序如下:/SJF(到达系统时间都相同的情况)#includeusing namespace std;void B(float a,int size) float t;for(int i=1;isize;i+)for(int j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;int main(void) float n,a100;double s100,m100,T=0,W=0;cout请输入作业数:n;cout请分别输入各作业所运行的时间:endl;for(int i=0;iai;B(a,
6、n);cout作业调度顺序为:endl;for(i=0;in;i+)coutai ;s0=0; si+1=si+ai; mi+1=si+1/ai; T=T+si+1; W=W+mi+1;coutendl;cout平均周转时间为:T/nendl;cout平均带权周转时间为:W/nendl;return 0;/SJF(到达系统时间不相同的情况)#includeusing namespace std;void B(float a,int size) float t;for(int i=2;isize;i+)for(int j=1;jaj+1)t=aj;aj=aj+1;aj+1=t;int main(
7、void) float n,a100,b100;double s100,m100,T=0,W=0;cout请输入作业数:n;cout请分别输入各作业所运行的时间:endl;for(int i=0;iai;B(a,n);cout作业调度顺序为:endl;for(i=0;in;i+)coutai ;coutendl; cout请分别输入各作业到达系统的时间:endl;for(i=0;ibi;for(i=0;in;i+)s0=0; si+1=si+ai; mi+1=(si+1-bi)/ai; T=T+si+1-bi; W=W+mi+1; cout平均周转时间为:T/nendl;cout平均带权周转时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验 报告 各种 算法 C+ 程序 11
限制150内