(一)进程调度的相关算法

进程调度

进程调度的算法有FIFO、优先数调度算法(静态优先级)、时间片轮转调度算法、分级调度算法;
其中FIFO和优先数调度算法在试题中出现的频率较高。

输入

进程流文件,其中存储的是一系列要执行的进程,每个作业包括四个数据项:
  1. 进程名
  2. 进程状态(就绪、等待、运行)
  3. 所需时间
  4. 优先级数(0级最高)。

输出

进程执行流、等待时间、平均等待时间。

部分代码

优先数调度算法

void privilege()
{
<span style="white-space:pre">	</span>int i,j,p;
<span style="white-space:pre">	</span>int passed_time=0;
<span style="white-space:pre">	</span>int total;

<span style="white-space:pre">	</span>int queue[MAXPCB];
<span style="white-space:pre">	</span>int current_privilege=1000;

<span style="white-space:pre">	</span>for(i=0;i<quantity;i++)
<span style="white-space:pre">	</span>{
<span style="white-space:pre">		</span>current_privilege=1000;
<span style="white-space:pre">		</span>for(j=0;j<quantity;j++)
<span style="white-space:pre">		</span>{
<span style="white-space:pre">			</span>if((pcbs[j].finished==0)&&(pcbs[j].privilege<current_privilege))
<span style="white-space:pre">			</span>{
<span style="white-space:pre">				</span>p=j;
<span style="white-space:pre">				</span>current_privilege=pcbs[j].privilege;
<span style="white-space:pre">			</span>}
<span style="white-space:pre">		</span>}
<span style="white-space:pre">		</span>queue[i]=p;
<span style="white-space:pre">		</span>pcbs[p].finished=1;
<span style="white-space:pre">		</span>pcbs[p].wait_time+=passed_time;
<span style="white-space:pre">		</span>passed_time+=pcbs[p].time;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>
<span style="white-space:pre">	//输出优先数调度执行流 
	cout<<endl<<"------------------------"<<endl; 
	cout<<"优先数调度执行流:"<<endl; 
	cout<<"进程名 等待时间"<<endl; 
	for(i=0;i<quantity;i++)</span>
<span style="white-space:pre">	{ 
		out<<" "<<pcbs[queue[i]].name<<" "<<pcbs[queue[i]].wait_time<<endl; 
	} 
	<<</span>

<span style="white-space:pre">	</span>total=0;
<span style="white-space:pre">	</span>for(i=0;i<quantity;i++)
<span style="white-space:pre">	</span>{
<span style="white-space:pre">		</span>total+=pcbs[i].wait_time;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>coun<<"总等待时间:"<<total<<"平均等待时间:"<<total/quantity<<end1;

}


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值