操作系统作业调度.docx
- 文档编号:10883879
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:13
- 大小:96.20KB
操作系统作业调度.docx
《操作系统作业调度.docx》由会员分享,可在线阅读,更多相关《操作系统作业调度.docx(13页珍藏版)》请在冰豆网上搜索。
操作系统作业调度
课程实验报告
专业年级
课程名称操作系统
指导教师
学生姓名
学号
实验日期
实验地点
实验成绩
教务处制
20年月日
实验项目
名称
作业调度
实验
目的及要求
(二)实验目标
1、加深作业概念的理解;
2、掌握选择作业调度算法的准则;
3、掌握作业调度算法。
(三)实验要求
1、编写程序完成实验内容;
2、对测试数据进行分析;
3、撰写实验报告。
实验
内容
1、设计可用于该实验的作业控制块;
2、动态或静态创建多个作业;
3、模拟先来先服务调度算法和短作业优先调度算法。
4、调度所创建的作业并显示调度结果(要求至少显示出各作业的到达时间,服务时间,开始时间,完成时间,周转时间和带权周转时间);
5、比较两种调度算法的优劣
实验步骤
1、该实验的作业控制块为:
structjcb//作业控制块
{
charname[10];//作业名
intreachtime;//作业到达时间
intstarttime;//作业开始时间
intneedtime;//作业需要运行的时间
intfinishtime;//作业完成时间
floatcycletime;//作业周转时间
floatcltime;//作业带权周转时间
charstate;//作业状态
structjcb*next;//结构体指针
}
2、动态或静态创建多个作业:
本实验创建了3个作业。
作业创建的代码如下:
voidinital()//建立作业控制块队列
{inti;
printf("\n输入作业数:
");
scanf("%d",&n);
for(i=0;i { p=getpch(JCB); printf("\n输入作业名: "); scanf("%s",p->name); getch(); p->reachtime=i; printf("作业默认到达时间: %d",i); printf("\n输入作业需运行时间: "); scanf("%d",&p->needtime); p->state='W'; p->next=NULL; if(ready==NULL) ready=q=p; else{ q->next=p; q=p; } } } 3、模拟先来先服务调度算法和短作业优先调度算法: 先来先服务算法: voidfcfs(intm) {inti,iden; system("cls"); inital(); for(i=0;i p=ready;iden=1; do{ if(p->state=='W'&&p->reachtime<=times) iden=0; if(iden)p=p->next; }while(p! =NULL&&iden); if(iden) { i--; printf("\n没有满足要求的进程,需等待"); times++; if(times>100){printf("\n时间过长");getch(); } } else{ running(p,m);//调用running()函数 } } final();//调用running()函数 } 短作业优先调度算法: voidsjf(intm){ JCB*min; inti,iden; system("cls"); inital(); for(i=0;i p=min=ready;iden=1; do{ if(p->state=='W'&&p->reachtime<=times) if(iden){ min=p;iden=0; } elseif(p->needtime p=p->next; }while(p! =NULL); if(iden){ i--; times++; if(times>100) {printf("\nruntimeistoolong...error"); getch(); } } else{ running(min,m);//调用running()函数 } } final();//调用running()函数 } 4、调度所创建的作业并显示调度结果如下: 算法1先来先服务算法: 算法2最短优先算法: 5.比较两种调度算法的优劣: 两种算法所使用的数据如下: 作业名 作业所需的运行时间 yyyy 4 zzzz 6 从上面算法的运行结果看出: 先来先服务算法中: 三个作业的的平均周转时间为: 6.500000 三个作业的的平均带权周转时间为: 1.250000 最短优先算法中: 三个作业的的平均周转时间为: 49.500000 三个作业的的平均带权周转时间为: 10.000000 从三组数据的分析可知: 先来先服务算法比最短优先算法的在作业运行效率方面较好。 实验环境 计算机Window7MicrosoftVisualC++6.0、“记事本”程序 实验结果与 分析 该实验程序的结果的截图如下: 1、开始界面: 2、算法选择: 3、算法1先来先服务: 4、算法1下作业的运行情况: 5、算法2最短作业优先: 6、算法2下作业的运行情况: 本实验用三组数据得出了先来先服务算法比最短优先算法更有效,使用不同的数据得出的结论可能会有偏差。 教师评语 注: 可根据实际情况加页
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 作业 调度
![提示](https://static.bdocx.com/images/bang_tan.gif)