计算机操作系统最短优先计算,计算机操作系统短作业优先调度算法

本文介绍了计算机操作系统中短作业优先调度算法(SJF)的实现。通过C++编程展示了如何处理作业的输入、计算运行时间和周转时间,并输出作业调度的结果。程序包括了作业的设置、显示以及平均周转时间的计算。通过对多个作业的调度,计算总体周转时间和平均周转时间,以理解SJF算法的运作机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计算机操作系统短作业优先调度算法

//作业调度算法中的短作业优先算法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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值