【操作系统】单通道程序运行耗时程序&进程调度算法

该文详细介绍了两个实验,一是研究单通道程序运行耗时,通过计算不同优先级程序的执行时间,分析多道程序运行效率。二是探讨了进程调度算法,包括先来先服务和短作业优先策略,通过模拟进程排序展示了这两种算法的工作原理。
摘要由CSDN通过智能技术生成

实验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
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值