计算机操作系统短作业优先调度算法
//作业调度算法中的短作业优先算法SJF。
#include
#include
using
namespace std;
class
time
{
public:
void settime()
{
cin>>hour>>minute;
}
void showtime()
{
cout<
"<
}
int hour;
int minute;
};
string job_name;
time enter_time;
int run_time;
time start_time;
time finish_time;
int circulate_time;
float average_circulate_time;
class
job
{
public:
void set();
void display();
int circulate_time;
float average_circulate_time;
};
void
job::set()
{
cin>>job_name;
enter_time.settime();
cin>>run_time;
start_time.settime();
}
void
job::display()
{
int j,k,min,hou;
j=run_time/60;
k=run_time-j*60;
finish_time.minute=start_time.minute+k;
if(finish_time.minute>=60)
{
finish_time.minute=finish_time.minute-60;
finish_time.hour=start_time.hour+j+1;
}
else
finish_time.hour=start_time.hour+j;
if(finish_time.minute>=enter_time.minute)
{
min=finish_time.minute-enter_time.minute;
hou=finish_time.hour-enter_time.hour;
circulate_time=hou*60+min;
}
else
{
min=finish_time.minute+60-enter_time.minute;
hou=finish_time.hour-1-enter_time.hour;
circulate_time=hou*60+min;
}
average_circulate_time=circulate_time/run_time;
cout<
enter_time.showtime();
cout<
"<
";
start_time.showtime();
finish_time.showtime();
cout<
"<
"<
"<
}
int
main()
{
int n;
float T,W;
float sum1=0,sum2=0,sum3,sum4;
job a[100];
cout<
cout<
作业调度算法中的短作业优先算法SJF
"<
cout<
cout<
cin>>n;
cout<
cout<
cout<
a[0].set();
cout<
cout<
cout<
cout<
a[0].display();
cout<
for(int i=1;i
{
a[i].set();
a[i].display();
cout<
sum1=sum1+a[i].circulate_time;
sum2+=a[i].average_circulate_time;
}
sum3=sum1+a[0].circulate_time;
sum4=sum2+a[0].average_circulate_time;
T=sum3/n;
W=sum4/n;
cout<
"<
cout<
"<
cout<
return 0;
}