先来先服务算法(FCFS)和 短作业优先算法(SJF)

先来先服务算法(FCFS)

FCFS是最简单的调度算法,既可以用作作业调度,也可以用作进程调度

这种算法优先考虑系统中等待时间最长的作业(进程),而不管作业所需执行时间长短,

做法是从后备队列中选择几个最先进入该队列的作业,将它们调入内存,为它们分配资源和创建进程,然后放入就绪队列

进程调度中使用此算法时,每次都从就绪的进程队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行,该进程会一直运行到完成或者因发生某事件而阻塞后,进程调度程序才会把处理机分配给其他进程

短作业优先算法(SJF)

由于在实际情况中短作业(进程)所占比例很大,为了让它们比长作业优先执行,就有了此算法

SJF顾名思义以作业长短来确定优先级,作业越短优先级越高,作业的长短用作业所需的运行时间来衡量,此算法一样也可以用做进程调度,它将从外存的作业后备队列中选择若干个估计运行时间最短的作业,优先将它们调入内存运行

#include  
#include  
using namespace std;  
  
static const int MaxNum=100;  
int  ArrivalTime[MaxNum];  
int  ServiceTime[MaxNum];  
int  FinishTime[MaxNum];  
int  WholeTime[MaxNum];  
double  WeightWholeTime[MaxNum];  
double AverageWT,AverageWWT;   
double WT , WWT;  
  
//-------------------------------------------------------------------  
//先来先服务调度算法  
//------------------------------------------------------------------  
void FCFS(int n)  
{  
    cout<>n;  
    for(int i = 0 ; i < n ; i++)  
    {  
        cout<<"请输入进程"<>ArrivalTime[i];  
        cin>>ServiceTime[i];  
    }  
    FCFS(n);  
    SJF(n);  
    return 0;  
}  



你可能感兴趣的:(其他)