操作系统实验二:动态高优先权优先调度算法

实验名称:动态高优先权优先调度算法


操作系统实验二:动态高优先权优先调度算法


一、实验目的

编写程序,实现动态高优先权优先调度算法,模拟进程调度过程,加深对进程调度的理解。

二、实验内容:

模拟实现动态高优先权优先的调度(若数值越大优先权越高,每运行一个时间单位优先权-n,若数值越小优先权越高,每运行一个时间单位优先权+n)。
本程序使用优先级按数值降序排列的策略
代码如下(示例):

#include<bits/stdc++.h>
#define endl '\n'
#define IOS ios::sync_with_stdio(0)
typedef long long ll;
const int N = 1e5 + 7;
using namespace std;
typedef struct{
   
	char name[20];
	int id;
	int arrT;	//到达时间 
	int serT;	//服务时间 
	int endT;	//结束时间 
	int runT;	//运行时间
	int zzT;	//周转时间 
	float dqzzT; 	//带权周转时间 
	int priW;	//优先级权重,数值大的优先运行 
	int sta;	//状态 0等待 1运行 2完成 
}Pro;
bool operator <(const Pro &a, const Pro &b){
   
	if(a.priW == b.priW) return a.arrT > b.arrT; //权重数值相等,按到达时间升序排列 
	else return a.priW < b.priW; //按权重数值降序排列 
}
bool cmp(Pro a, Pro b){
    return a.arrT < b.arrT; } //按到达时间升序排列 
Pro pro[N];    //进程块 
priority_queue<Pro> q;	//优先队列,按权重数值降序 
int n;	//进程数量 
int groW;	//每运行一个时间单位,优先级下降数值 
void input(){
   
	cout<<"请输入进程数量:";
	cin>>n;
	cout<<"请输入进程每运行一个时间单位优先权降低数量:";
	cin>>groW;
	cout<<"请输入进程的名字,到达时间,服务时间,初始优先级权重,每个进程占一行!\n";
	for(int i = 1; i <= n; i++
  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值