进程调度算法模拟带答案版_第1页
进程调度算法模拟带答案版_第2页
进程调度算法模拟带答案版_第3页
进程调度算法模拟带答案版_第4页
进程调度算法模拟带答案版_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验2过程管理2.5作业(流程)调度算法模拟1.实验的目的和要求本实验的目的是通过对作业或流程调度算法的仿真设计,进一步加深对作业或流程调度算法的理解,并通过计算平均周转时间和加权平均周转时间,进一步加深对算法评价方法的理解。2.实验型:验证型3.实验时间:4小时4.实验原理和知识点(1)掌握作业或流程调度算法。(2)平均周转时间和加权平均周转时间的计算。5.实验环境(硬件环境、软件环境):(1)硬件环境:英特尔奔腾III处理器以上,内存128兆以上,硬盘2GB以上。(2)软件环境:linux操作系统gcc编译器或windows操作系统vc集成开发环境。6.实验内容设置一组作业或流程,给出相关参数,根据调度算法调度该组作业或流程,输出调度顺序,计算平均周转时间和加权平均周转时间。使用的调度算法有:(1)先到先服务调度算法。(2)优先级调度算法。(3)短作业(或流程)优先级调度算法。(4)具有响应率的高优先级调度算法6.1使用的主要数据结构:(1)定义一个结构,其主要成员是:序列号、作业(过程)号或名称、提交时间、操作时间、优先级、进入输入井的时间、开始操作时间、运行时间、结束操作时间、周转时间、加权周转时间、操作顺序等。(2)使用定义的结构来定义结构数组,以记录系统中的操作或过程。6.2算法描述:1.主控制程序算法描述过程(作业)参数输入选择调度算法0 1 2 3 4呼叫先到先服务调度程序调用短作业(进程)调度程序具有更高响应优先级的呼叫调度器重复执行输出调度结果2.数据输入算法输入流程或作业的数量对于每个过程或作业输入流程或作业名称输入流程或作业编号输入流程或作业到达时间输入流程或作业运行时间输入流程或作业优先级3.数据输出算法为每个作业执行输出流程(或作业)编号、流程(或作业)名称、到达时间,开始运行时间,操作时间结束,优先级,操作顺序,周转时间,加权周转时间计算并输出平均周转时间和加权周转时间平均的4.先到先服务调度算法描述系统中没有正在运行的作业在未运行的作业中选择提交时间最早的作业将运行命令填充到数组的相应位置;分别计算操作进入输入井的时间、开始运行时间、结束运行时间、周转时间和加权周转时间,并填写数组中的相应位置。调用输出程序输出结果先到先服务调度算法5.优先级调度算法系统中没有正在运行的作业将运行命令填充到数组的相应位置;分别计算操作进入输入井的时间、开始运行时间、结束运行时间、周转时间和加权周转时间,并填写数组中的相应位置。调用数据输出程序输出结果优先级调度算法查找阵列中未运行的第一个作业此作业的Pmin优先级(目前最小)数组中作业的下标操作的优先级与Pnim相比没有正在运行的作业未发现发现Pmin此工作的优先级编号k适合这项工作数组中的下标大的6.短作业(或流程)的优先级调度算法作业的运行时间与Rnim相比没有正在运行的作业未发现发现从事这项工作运行时间k适合这项工作数组中的下标长的短的为运行时间最短的作业选择算法7.响应率高优先级调度算法系统中没有正在运行的作业在未运行的作业中选择响应率最高的作业(响应是根据先到先得的原则选择的,而不是相同的原则)将运行命令填充到数组的相应位置;分别计算作业进入输入井的时间、开始运行时间、结束运行时间、周转时间和加权周转时间,并填写相应的响应比高优先调度算法6.3摄氏度语言程序实现#包括/使用命名空间标准;#定义最大值10结构任务_结构茶名称10;/*进程名称*/整数;/*进程编号*/浮动时间;/*到达时间*/浮点运行开始时间;/*开始运行时间*/浮点运行时间;/*运行时间*/浮点运行结束时间;/*运行结束时间*/int优先级;/*优先级*/内部顺序;/*运行次序*/int运行标志;/*调度标志*/任务最大;int计数器;/*实际进程个数*/int FCFS();/*先来先服务*/int PS();/*优先级调度*/int sjf();/*短作业优先*/int hrrn();/*响应比高优先*/int pinput();/*进程参数输入*/int pout put();/*调度结果输出*/void main() int选项;pinput();printf(请选择调度算法(0 4): n ;printf(1 .先来先服务 n );printf(2 .优先级调度 n );printf( 3 .短作业优先 n );printf( 4 .响应比高优先 n );printf( 0 .退出 n );scanf(% d ,选项);开关(可选)案例0:printf(运行结束);休息;案例1:printf(对进程按先来先服务调度, n n );金融犯罪调查科();pout put();休息;案例2:printf(对进程按优先级调度, n n );聚苯乙烯();pout put();休息;案例3:printf(对进程按短作业优先调度, n n );sjf();pout put();休息;案例4:printf(对进程按响应比高优先调度, n n );hrrn();pout put();休息;int fcfs() /*非抢占式先来先服务,该程序段默认进程已经按到达先后顺序排成了队列,如果考虑输入为乱序,还需要根据到来时间对进程进行排队,形成一个先来后到的队列*/浮点time _ temp=0;国际;整数调度程序;时间_温度=任务0.到来时间;对于(1=0;itasksi.优先级)max _ priority=任务j.优先权;i=j .j;/*对第一个被调度的进程求相应的参数*/数字_调度器=1;任务number _ scheduler.运行时间=任务number _ scheduler.到来时间;任务number _ scheduler.运行结束时间=任务number _ scheduler.运行开始时间任务number _ scheduler.运行时间;任务number _ scheduler.run _ flag=1;temp _ time=任务number _ scheduler.运行结束时间;任务number _ scheduler.订单=1;温度_计数器=1;/*循环查找下一个被调度的进程,直到所有的任务j.运行标志=1 */同时(临时取消优先级)max _ priority=任务j.优先权;number _ scheduler=j;/*对找到的下一个被调度的进程求相应的参数*/任务number _ scheduler.运行时间=临时时间;任务number _ scheduler.运行结束时间=任务number _ scheduler.运行开始时间任务number _ scheduler.运行时间;任务number _ scheduler.run _ flag=1;temp _ time=任务number _ scheduler.运行结束时间;临时计数器;任务number _ scheduler.订单=临时计数器返回0;int sjf() /*非抢占式短作业优先,默认任务0是最早到达的进程,进程已按到达先后顺序排成了队列*/浮点temp _ time=0;int i=0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论