1 FCFS简介
后续补上...
2 源代码
#include <iostream>
#include <string>
using namespace std;
//进程结构体
struct process
{
string name;//进程名
int arriveTime;//到达时间
int runTime;//进程运行时间
int startTime;//进程开始运行时间
int endTime;//进程结束时间
};
//进程按到达时间排序
void sortProcess( process* A)
{
for(int i=0;i<4;i++)
{
for(int j=i+1;j<5;j++)
{
if((A+j)->arriveTime<(A+i)->arriveTime)
{
string Na;
int aT,rT;
Na=(A+i)->name;
(A+i)->name = (A+j)->name;
(A+j)->name = Na;
aT=(A+i)->arriveTime;
(A+i)->arriveTime = (A+j)->arriveTime;
(A+j)->arriveTime = aT;
rT=(A+i)->runTime;
(A+i)->runTime = (A+j)->runTime;
(A+j)->runTime = rT;
}
}
}
}
//打印进程
void printProcess( process *A )
{
cout<<"name"<<" "<<"arriveTime"<<" "<<"runTime"<<" "<<"startTime"<<" "<<"endTime"<<endl;
for(int i=0;i<5;i++)
{
cout<<A->name<<"\t"<<A->arriveTime<<"\t"<<A->runTime<<"\t"<<A->startTime<<"\t"<<A->endTime<<endl;
A++;
}
}
int main()
{
process Proc[5]={
{"A",4,4},{"B",3,3},{"C",2,2},{"D",1,1},{"E",6,6}
};
cout<<"原进程信息"<<endl;
printProcess( &Proc[0]);
sortProcess( &Proc[0]);
cout<<"排序后进程信息"<<endl;
printProcess( &Proc[0]);
//t为当前时间
int t=0;
int num=0;
while(num<5)
{
if(t>Proc[num].arriveTime)
{
Proc[num].startTime = t;
Proc[num].endTime = Proc[num].startTime + Proc[num].runTime;
t = Proc[num].endTime;
num++;
}
else
{
t++;
}
}
cout<<"FCFS模拟结果"<<endl;
printProcess( &Proc[0]);
}