c++模拟处理机调度的SJF调度算法(短作业优先)

实验内容:本实验首先输入进程的个数,然后输入进程名称,最后输入每个进程提交到系统的时间和每个进程所需要的处理时间。然后通过模拟程序,显示以下信息:
1)处理机对进程的调度过程。
2)计算这N个进程的平均周转时间。
注意:
1、 作业在运行过程中不能抢断,只有作业运行完毕才能允许其它作业运行。
2、 如果两个作业的处理时间相等,则提交时间早的优先执行。
输入:
4
A 0.1 5
B 0.1 3
C 2 3
D 5 8

输出:
c++模拟处理机调度的SJF调度算法(短作业优先)_第1张图片
这里输出样例有点问题,应该是8.05

代码:

#include 
using namespace std;
struct sjf
{
    string name;
    double s_time,p_time,sta_time,fin_time;
} SJF[1000];
bool cmp(sjf a,sjf b)
{
    if(a.p_time==b.p_time)
        return a.s_time>n)
    {
        sum=0.0;
        for(int i=0; i>SJF[i].name>>SJF[i].s_time>>SJF[i].p_time;
        sort(SJF,SJF+n,cmp1);
        for(int i=0; i

c++模拟处理机调度的SJF调度算法(短作业优先)_第2张图片

你可能感兴趣的:(算法,操作系统)