文章目录
实验1 单通道程序运行耗时程序
1、实验目的
通过书本例题,三道程序运行时,计算多通道运行消耗的时间以及处理机调度程序进行程序状态转换耗费时间。
2、实验思路
多道程序并行处理机制,当优先级高的程序占用计算通道时,下一优先级程序等待,当优先级高的程序占用io通道时,次高优先级的程序就可以占用计算通道,以此类推,以节约多程序总体运行时间。
3、实验内容
实验程序
#include <iostream>
using namespace std;
class process
{
public:
int priority;//优先级
int runtime_1;//计算第一次时间
int iotime;//io通道占用时间
int runtime_2;//第二次计算时间
int end;//进程结束标志
process(int x,int y,int z,int k,int m);
};
process::process(int x,int y,int z,int k,int m)
{
priority=x;
runtime_1=y;
iotime=z;
runtime_2=k;
end=m;
}
int Time_1(process a, process b, process c)//三个进程ABC
{
int T = 0;//开始时将T清零
T=T+a.runtime_1;//加上第一次a进程计算时间
if(a.priority>b.priority)//比较a、b两进程优先级
{
T+=a.iotime+a.runtime_2;//加上a进程第二次计算时间和io通道占用时间
a.end=0;//a进程结束
}
if(a.end==0)//当a进程结束时
T+=(b.runtime_1-a.iotime);// b进程第一次计算时间减进程aio通道占用时间
if(b.priority>c.priority&&b.iotime>c.runtime_1&&b.iotime<c.iotime)//计算通道可以与io通道并行计算
{
T+=(b.iotime+b.runtime_2);
b.end=0;
}
if(b.end==0)//当b进程结束
T=T+(c.iotime-b.runtime_2)+c.runtime_2;
return T;
}
int Time_2(process a, process b, pro