短作业优先调度_第1页
短作业优先调度_第2页
短作业优先调度_第3页
短作业优先调度_第4页
短作业优先调度_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

短作业优先调度短作业优先调度短作业优先调度资料仅供参考文件编号:2022年4月短作业优先调度版本号:A修改号:1页次:1.0审核:批准:发布日期:实验一进程调度一、实验目的编写并调试一个模拟的进程调度程序,以加深对进程的概念及进程调度算法的理解.二、实验内容采用“短进程优先”调度算法对五个进程进行调度。每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、到达时间、需要运行时间、已用CPU时间、进程状态等等。每个进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。重复以上过程,直到所要进程都完成为止。三、实现思路主函数-输入函数-短作业优先调度函数-输出函数。这是一条最基础的思路。输入函数使用文本导入完成数据输入,输出函数输出调度结果,主函数完成各子函数连接,最主要的是短作业优先的调度函数。我想到的方法就是排序,不断选择需要运行时间最短的作业,接着进行数据输入计算输出等,遍历全部数据并完成调度。四、主要的数据结构structProcess_struct{charname[MaxNum];运行程序看菜单,选操作0或1input()输入导入函数SJF()-第一个先到达先执行printf()输出调度结果是否完成运行结束SJF()-选最短作业调度untime;运行程序看菜单,选操作0或1input()输入导入函数SJF()-第一个先到达先执行printf()输出调度结果是否完成运行结束SJF()-选最短作业调度j=1;while((j<N)&&(pro[i].arrivetime==pro[j].arrivetime))untime>pro[i].runtime){run_time=pro[i].runtime;i=j;}j++;}for(j;j<N;j++){while((j<N)&&(pro[i].arrivetime>pro[j].arrivetime))ervertime=pro[number].arrivetime;pro[number].finishtime=pro[number].servertime+pro[number].runtime;pro[number].runflag=1;temp_time=pro[number].finishtime;pro[number].order=1;temp_counter=1;while(temp_counter<N){for(j=0;j<N;j++){if((pro[j].arrivetime<=temp_time)&&(!pro[j].runflag)) {run_time=pro[j].runtime;number=j;break;}}for(j=0;j<N;j++)rrivetime<=temp_time)&&(!pro[j].runflag))if(pro[j].runtime<run_time) {run_time=pro[j].runtime;number=j;}}pro[number].servertime=temp_time;inishtime=pro[number].servertime+pro[number].runtime;pro[number].runflag=1;temp_time=pro[number].finishtime;temp_counter++;pro[number].order=temp_counter;}return0;}intinput();.");getchar();}intinput()ame,&pro[n].arrivetime,&pro[n].runtime);n++;pro[n].servertime=0;pro[n].finishtime=0;pro[n].weightwholetime=0;pro[n].order=0;pro[n].runflag=0; }fclose(f);return0;}intoutput()eightwholetime=pro[i].finishtime-pro[i].arrivetime;f1=pro[i].weightwholetime/pro[i].runtime;turn_round_time+=pro[i].weightwholetime;w+=f1;printf("%4s%8d%5d%7d%7d%7d%%\n",pro[i].name,pro[i].arrivetime,pro[i].runtime,pro[i].servertime,pro[i].finishtime,pro[i].order,pro[i].weightwholetime,f1

温馨提示

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

评论

0/150

提交评论