版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
郑州xxx学院实验报告课程名称:先来先服务调度算法模拟姓名:xxx学号:xxx专业班级:xxx任课教师:xxx 2015年04月12日
实验报告成绩评定表评定项目内 容满分评分总分实验态度态度端正、遵守纪律、出勤情况20实验过程按要求完成算法设计、代码书写、注释清晰、运行结果正确40报告撰写报告书写规范、内容条理清楚、表达准确规范、上交及时。40评语:指导老师签字: 年月曰实验一作业调度一、目的与任务目的:了解并掌握作业调度的功能,熟悉并掌握各种作业调度算法。任务:模拟实现先来先服务或者短作业优先调度算法。二、内容、要求与安排1、实验内容模拟实现FCFS/SJF调度。设置作业体:作业名,作业的到达时间,服务时间,作业状态(W——等待,R——运行,F——完成),作业间的链接指针;作业初始化:由用户输入作业名、服务时间、到达时间进行初始化,同时,初始化作业的状态为W。显示函数:在作业调度前、调度中和调度后进行显示。排序函数:对等待状态的作业按照调度算法排序(不同的调度算法排序方式不同),注意考虑到达时间。调度函数:每次从等待队列队首调度已到达的适合的作业执行,状态变化。当服务结束时,状态变为F。删除函数:撤销状态为F的作业。2、实验要求(1)测试数据可以随即输入或从文件中读入;(2)必须要考虑到作业的到达时间;(3)最终能够计算每一个作业的周转时间、带权周转。
三、测试.实验设计说明本次实验采用C语言模拟对N个进程采用先来先服务进程调度算法调度。每个用来标识进程的进程控制块PCB用结构来描述,包括以下字段:进程标识数ID[3]、进程名name[10]、进程状态state、进程到达时间arrivetime、进程开始执行时间starttime、进程执行结束时间finishtime、服务时间servicetime、周转时间turnaroundtime、带权周转时间weightedturnaroundtime、队列指针next用来将PCB排成队列。主要程序流程图(进程的执行过程):Q->ARRIVrEnXETIXE?P^Qi^=P->NEXT:P^=P->NEXT:i一:输出执行进程信息主要程序流程图(进程的执行过程):Q->ARRIVrEnXETIXE?P^Qi^=P->NEXT:P^=P->NEXT:i一:输出执行进程信息*Q~>^TARTTIME=ARRI\rETIMEQ->STAIE=TQ~>STARTn\lE=IIX1EQ->STAIE=TXHEADi=0结束.实验代码#include"stdio.h"#include"stdlib.h"typedefstructPCB〃定义进程控制块{charID[3];//进程号charname[10];//进程名charstate;//运行状态intarrivetime;//至U达时间intstarttime;〃进程开始时间intfinishtime;〃进程结束时间intservicetime//服务时间floatturnaroundtime;//周转时间floatweightedturnaroundtime;//带权周转时间structPCB*next;//指向下个进程}pcb;inttime;〃计时器intn;〃进程个数pcb*head=NULL,*p,*q;〃进程链表指针voidrun_fcfs(pcb*p1)〃运行未完成的进程{time=p1->arrivetime>time?p1->arrivetime:time;p1->starttime=time;printf("\n现在时间是%d,开始运行作业%s\n”,time,p1->name);time+=p1->servicetime;p1->state='T';p1->finishtime=time;p1->turnaroundtime=p1->finishtime-p1->arrivetime;p1->weightedturnaroundtime=p1->turnaroundtime/p1->servicetime;printf("ID到达时间开始时间服务时间完成时间周转时间带权周转时间\n〃);printf("%s%6d%10d%10d%8d%10.1f%10.2f\n”,p1->ID,p1->arrivetime,p1->starttime,p1->servicetime,p1->finishtime,p1->turnaroundtime,p1->weightedturnaroundtime);)voidfcfs()〃找到当前未完成的进程{inti,j;p=head;for(i=0;i<n;i++){if(p->state=='F'){q=p;〃标记当前未完成的进程run_fcfs(q);}p=p->next;}}voidgetInfo()〃获得进程信息并创建进程{intnum;printf("\n作业个数:");scanf("%d",&n);for(num=0;num<n;num++){p=(pcb*)malloc(sizeof(pcb));printf(〃依次输入:\nID进程名到达时间服务时间\n〃);scanf("%s\t%s\t%d\t%d”,&p->ID,&p->name,&p->arrivetime,&p->servicetime);if(head==NULL){head=p;q=p;time=p->arrivetime;}if(p->arrivetime<time)time=p->arrivetime;q->next=p;p->starttime=0;p->finishtime=0;p->turnaroundtime=0;p->weightedturnaroundtime=0;p->next=NULL;p->state='F';q=p;}}voidmain(){printf("先来先服务算法模拟");getInfo();p=head;fcfs();).实验结果
.实验结果分析先来先服务算法顾名思义先到的先参与调度,本利中按照A、B、C的顺序。因为只有非抢占方式,所以先到的进程必须执行完来才能执行下一个进程,下一个进程的开始时间也就取决于到达时间和上一个进程的结束时间中较晚的一个。5.实验心得本次实验设应用链表结构进行存储并排序,条理清晰,易于理解,程序编写完成以后,实现类预期对结果。界面设计比较清晰明了,易于阅读。本程序中灵活地设计调用函数和函数嵌
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 艺术批评标准与方法-第1篇-洞察分析
- 药物过敏反应生物标志物-洞察分析
- 《肾积水的护理》课件
- 《证据法的基本原则》课件
- 2024年柳州铁路局桂林医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 2024年柳州市工人医院分院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 农村土葬土地协议书(2篇)
- 2024年杭州市拱墅中西医结合医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 2024年本溪市中心医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 2024年朝阳区皮肤性病防治所高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 档案借阅申请
- 高考语文备考之从小说考点解读《哦香雪》(知识点解读+精品课件+比较阅读+模拟命题)
- DB33∕2169-2018 城镇污水处理厂主要水污染物排放标准
- 墩柱施工操作平台相关计算
- 高职院校油层物理说课
- 计算机课件:计算机安全
- SCH壁厚等级对照表
- 35kv及以下架空线路施工及验收规范
- 山东昌乐二中“271高效课堂”解读
- 配电工程竣工资料
- 花键强度校核程序
评论
0/150
提交评论