实验二模拟进程调度算法

实验二模拟进程调度算法

ID:34336710

大小:50.41 KB

页数:3页

时间:2019-03-05

实验二模拟进程调度算法_第1页
实验二模拟进程调度算法_第2页
实验二模拟进程调度算法_第3页
资源描述:

《实验二模拟进程调度算法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验二模拟进程调度算法一、实验目的1、为了更好的配合《操作系统》有关进程调度章节的教学。2、加深和巩固学生对于进程调度的了解和掌握。3、使学生通过本实验能够初步的了解和掌握进程调度的整个过程及常用算法。4、提高学生的上机和编程过程中处理具体问题的能力二、实验内容1、学习进程调度的基本方法。2、学习时间片轮转调度算法、先来先服务算法、最短作业优先算法。3、画出调度图。4、试用c语言编写先来先服务算法调度算法。三、实验要求实验课时2学时。要求画出进程调度图,并比较算法的性能。程序编写可选作。***编制先来先执行进程调度

2、算法;注意:1、将算法中的相关的量定义在一个结构体中;2、使用结构体数组存储参加调度的进程;3、编制算法是要确定终止进程的输入。#include/*定义一个进程*/structpcb{intid;intarr_time;/*到达时间*/intreq_time;/*进程执行时间*/intend_time;intcir_time;/*进程周转时间*/};structpcbp[10],temp_p;/*定义结构体数组和变量*/intq;intnum,sum_cir_time;/*定义进程周转时间*/ma

3、in(){inti,j;for(i=0;i<10;i++){p[i].id=999;p[i].end_time=0;p[i].cir_time=0;}printf("PleaseinputProcessinfo:id,arr_time,req_time");for(i=0;i<10;i++){scanf("%d,%d,%d",&p[i].id,&p[i].arr_time,&p[i].req_time);if(p[i].id==-999){p[i].id=999;break;}}for(i=0;i<9;

4、i++)for(j=i+1;j<10;j++)if(p[i].arr_time>p[j].arr_time){temp_p=p[i];p[i]=p[j];p[j]=temp_p;}sum_cir_time=p[0].arr_time;num=0;for(i=0;i<10;i++)if(p[i].id<999){num++;/*如果ID<999,则总进程数+1*/sum_cir_time=p[i].req_time+sum_cir_time;p[i].end_time=sum_cir_time;p[i].cir_ti

5、me=p[i].end_time-p[i].arr_time;}for(i=0;i<10;i++)printf("%5d%9d%9d%9d%9d",p[i].id,p[i].arr_time,p[i].req_time,p[i].end_time,p[i].cir_time);sum_cir_time=sum_cir_time-p[0].arr_time;printf("ScheduleResult:");printf("idarr_timereq_timeend_timecir_time:");for

6、(i=0;i<10;i++){if(p[i].id<999)printf("%5d%9d%9d%9d%9d",p[i].id,p[i].arr_time,p[i].req_time,p[i].end_time,p[i].cir_time);}printf("TotalCir_time:%d",sum_cir_time);printf("AverageCir_time:%d",sum_cir_time/num);}

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

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

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