网络操作系统 实验2 作业优先调度算法

网络操作系统 实验2 作业优先调度算法

ID:16112111

大小:60.00 KB

页数:6页

时间:2018-08-08

网络操作系统 实验2 作业优先调度算法_第1页
网络操作系统 实验2 作业优先调度算法_第2页
网络操作系统 实验2 作业优先调度算法_第3页
网络操作系统 实验2 作业优先调度算法_第4页
网络操作系统 实验2 作业优先调度算法_第5页
资源描述:

《网络操作系统 实验2 作业优先调度算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、计算机工程学院实验报告课程名称:网络操作系统班级:实验成绩:指导教师:姓名:实验项目名称:短作业优先调度算法学号上机实践日期:实验项目编号:2组号:上机实践时间:学时一、目的(本次实验所涉及并要求掌握的知识点)1实现短作业优先算法。2了解作业控制块的作用,以及作业控制块的内容和组织方式。二、实验内容与设计思想(设计思路、主要数据结构、主要代码结构、主要代码段分析、电路图)实验内容:1为每个进入系统的作业建立档案以记录和作业相关的信息,例如作业名(以自己的姓名拼音缩写编号,例如,张三同学编写程序所用的作业名是zs1,zs2…..),作业服务时间,作业进入系统的时间

2、,作业开始执行时间,作业完成时间,作业周转时间,平均周转时间,作业信息在存储器中的位置,指向下一个作业控制块的指针等信息。2将系统中等待作业调度的JCB组织成一个队列(后备队列)。当进行作业调度时,从后备队列中查找选择一个执行时间最短的作业将它调入内存运行。3进行作业调度时,计算出每个作业的开始执行时间,完成时间,周转时间和平均周转时间,利用短作业优先算法进行作业调度,并按照完成时间由小到大的顺序显示出来。三、实验使用环境(本次实验所使用的平台和相关软件)Linux虚拟机VC++四、实验步骤和调试过程(实验步骤、测试数据设计、测试结果分析)实验代码:#inclu

3、de#include#includestructtask{charname[4];floatservicetime;//作业服务时间floatgosystemtime;//作业进入系统的时间floatstarttime;//作业开始执行时间floatfinishtime;//作业完成时间floatarounttime;//作业周转时间structtask*next;//指向下一个作业控制块的指针};intr;//作业数structtask*head,*p1,*p2;structtask*createtas

4、k();voidtaskschedule(structtask*s);voidmain(){structtask*t;t=createtask();taskschedule(t);}structtask*createtask(){//创建作业链intn=0;p1=p2=(structtask*)malloc(sizeof(structtask));/*开辟一个新单元*/head=NULL;printf("Pleaseinputthenuberoftask:");scanf("%d",&r);//输入作业数for(inti=0;i

5、"Pleaseinputthenameoftask%d:",i+1);scanf("%s",p1->name);//输入作业名printf("Pleaseinputtheservicetime:");scanf("%f",&p1->servicetime);//输入作业服务时间printf("Pleaseinputthetimeoftaskintosystem:");scanf("%f",&p1->gosystemtime);//输入作业进入系统时间n=n+1;/*结点个数加1*/if(n==1)head=p1;/*是第一个结点,置头指针*/else

6、p2->next=p1;/*非首结点,将新结点插入到链表尾*/p2=p1;/*设置新的尾结点*/p1=(structtask*)malloc(sizeof(structtask));}p2->next=NULL;return(head);}voidtaskschedule(structtask*s){//作业调度floatservicetim;//用于保存最小服务时间floatgosystemtim;//用于保存最小进入系统时间floatendtime=0;//用语标记作业开始的时间点intflage;//标记时间点内是否有任务floatavaragetime=

7、0;structtask*head,*percur,*pres,*l,*t;head=s;structtask*p;p=head;floate=p->gosystemtime;//用于暂时保存最小进入系统时间for(;p->next!=NULL;)//找出最小进入系统时间{if(p->gosystemtime<=e)e=p->gosystemtime;p=p->next;}endtime=e;printf("==============================================================================

8、=");printf

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。