操作系统实验之作业调度算法
#include <iostream.h>#include <stdio.h>
#include <string.h>
#include<stdlib.h>
void FCFS(); //先来先服务
void SJF(); //短作业优先
void input(); //输入函数
void operation(); //运算输出函数int n; //全局变量 作业输入量double avturn; //平均周转时间double avdqzz; //平均带权周转时间 double t=0.0,k=0.0; //全局变量用来表示总的周转时间和总的带权周转时间struct HomeWork { int num; //作业号 char name; //进程名 double arrivetime; //到达时间 double servetime; //服务时间 double begintime; //开始时间 double endtime; //完成时间 double turntime; //周转时间 double dqzztime; //带权周转时间 double zgxy; //最高响应比 }HW[10]; void input() { cout<<"请输入要执行作业的数量:"<<endl; cin>>n; for(int i=1;i<=n;i++) { cout<<"请输入第"<<i<<"个作业的数据:"<<endl; HW[i].num=i; cout<<"进程名:"; cin>>HW[i].name; cout<<"到达时间:"; cin>>HW[i].arrivetime; cout<<"服务时间:"; cin>>HW[i].servetime; } } void operation(){ for(int i=1;i<=n;i++) { if(i==1) HW[i].begintime=HW[i].arrivetime; //如果是第一个作业开始时间就是到达时间 else HW[i].begintime=HW[i-1].endtime;//如果不是,则作业的开始时间是前一个的结束时间 HW[i].endtime=HW[i].begintime+HW[i].servetime; HW[i].turntime=HW[i].endtime-HW[i].arrivetime; HW[i].dqzztime=HW[i].turntime/HW[i].servetime; } for(i=1;i<=n;i++) { t=t+HW[i].turntime; k=k+HW[i].dqzztime;} avturn=t/n; avdqzz=k/n; cout<<"作业序号 进程名 到达时间 服务时间 开始时间 完成时间 周转时间 带权周转时间 "<<endl; for(i=1;i<=n;i++) cout<<" "<<HW[i].num<<" "<<HW[i].name<<"\t\t"<<HW[i].arrivetime<<" \t"<<HW[i].servetime<<" \t"<<HW[i].begintime<<" \t"<<HW[i].endtime<<" \t"<<HW[i].turntime<<" \t"<<HW[i].dqzztime<<endl;cout<<"平均周转时间:"<<avturn<<endl; cout<<"平均带权周转时间:"<<avdqzz<<endl; } void FCFS() { input();operation(); t=0.0; k=0.0;} void SJF(){ input();int no; //作业号 double tjtime; //提交时间 double zxtime; //执行时间 for(int i=2;i<=n;i++) for(int j=i+1;j<=n;j++) { if(HW[i].servetime>HW[j].servetime){ no=HW[i].num; HW[i].num=HW[j].num; HW[j].num=no; //作业号互换 tjtime=HW[i].arrivetime; HW[i].arrivetime=HW[j].arrivetime; HW[j].arrivetime=tjtime; //作业到达时间互换 zxtime=HW[i].servetime; HW[i].servetime=HW[j].servetime; HW[j].servetime=zxtime; //作业服务时间互换 } } operation(); t=0.0; k=0.0; }
void show()
{cout<<"\n*********************1.先来先服务(FCFS)算法*********************\n";cout<<"\n*********************2.短作业优先(SJF)算法*********************\n";cout<<"\n*********************0. exit *********************\n";
}void main(){ show();int num=0;char ch;char y;cout<<"请选择:"<<endl;cin>>num;switch(num){case 1: FCFS(); break;case 2: SJF();break;default:return;}}
转载于:https://blog.51cto.com/10738432/1728545
操作系统实验之作业调度算法相关推荐
- 操作系统实验七 磁盘调度算法的模拟与实现(C语言)
实验七 磁盘调度算法的模拟与实现 1 .实验目的 (1) 了解磁盘结构以及磁盘上数据的组织方式. (2) 掌握磁盘访问时间的计算方式. (3) 掌握常用磁盘调度算法及其相关特性. 2 .实验基本知识及 ...
- 操作系统实验二(调度算法模拟-先进先出-时间片轮转法-优先服务调度算法)
实验二 进程调度 一. 实验目的 1. 理解进程运行的并发性. 2. 理解处理器的三级调度. 3. 掌握先来先服务的进程调度算法. 4. 掌握短 ...
- 操作系统实验二——时间片轮转调度算法(RR算法)(新进程放队首和队尾两种C++实现)
情况介绍 基本原理 系统将所有就绪进程按照FCFS的原则,排成一个队列依次调度. 把CPU分配给队首进程,执行一个时间片(10-100ms). 时间片用完后,系统计时器发出时钟中断,该进程将被剥夺CP ...
- 操作系统实验二——进程调度算法(FCFS、RR)
目录 进程调度算法 FCFS算法代码 RR算法代码 进程调度算法 FCFS算法代码 #include <stdio.h> #include <string.h> #includ ...
- 操作系统实验六:作业调度算法模拟
一.实验目的 (1)掌握周转时间.等待时间.平均周转时间等概念及其计算方法. (2)理解五种常用的进程调度算法(FCFS.SJF.HRRF.HPF.RR),区分算法之间的差异性,并用C语言模拟实现各算 ...
- 操作系统实验 作业调度算法 先来先服务FCFS调度算法
作业调度算法 先来先服务FCFS调度算法 作业调度的原理: 非抢占调度 把作业从外存调入内存 作业调度算法: 先来先服务FCFS 短作业优先SJF 静态优先级调度 高响应比优先调度 实验原理 作业调度 ...
- 操作系统第一次实验-短作业优先调度算法
一.实验目的: 目的:了解并掌握作业调度的功能,熟悉并掌握各种作业调度算法. 任务:模拟实现先来先服务或者短作业优先调度算法. 二.实验内容: 模拟实现SJF调度. 设置作业体:作业名,作业的到达时间 ...
- 作业调度算法--高响应比优先 操作系统_处理器管理_编程题
操作系统_处理器管理_编程题 作业调度算法–高响应比优先 输入N个作业,输入每个的作业名字,到达的时间,服务的时间,根据高响应比优先算法,计算出每个作业的完成的时间,周转的时间,带权周转的时间(其中保 ...
- 作业调度算法--短作业优先 操作系统_处理器管理_编程题
操作系统_处理器管理_编程题 作业调度算法–短作业优先 输入N个作业,输入每个的作业名字,到达的时间,服务的时间,根据短作业优先算法,计算出每个作业的完成的时间,周转的时间,带权周转的时间(其中保留2 ...
最新文章
- 下载python步骤_下载及安装Python详细步骤
- ASIHTTPRequest详解 [经典3]
- 找到bug的根源,问五次为什么
- 关于mybatis的association和collection主键映射问题
- 一篇综述带你全面了解课程学习(Curriculum Learning)
- 高通、腾讯游戏牵手 运用5G等技术升级游戏体验
- 如何测试W5300的内部TX/RX存储器?
- XILINX FPGA数字信号处理——3、数字的表示和运算的实现
- Live 2D所有模型展示图
- Java代码解压rar文件
- python—scrapy框架爬虫—链家二手房数据
- 神仙项目,轻松上手了解前后端分离!
- 关于1-n中缺失的1个数字算法的优化
- [C语言]扫雷游戏(Mine Sweeper)
- input 测试工具 --evtest
- springboot网吧管理系统
- 【Box3引擎摄像机扩展】Box3CameraLag Box3CameraBessel
- solidworks模型如何进行1/4剖面
- 光电耦合器型号(FOD3120,TLP350,TLP250)介绍应用实例精讲
- MSP430单片机各种寄存器总结(2)——UCS