您的位置:首页 > 其它

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

2016-03-16 20:58 411 查看

进程调度

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

输入

进程流文件,其中存储的是一系列要执行的进程,每个作业包括四个数据项:

进程名
进程状态(就绪、等待、运行)
所需时间
优先级数(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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 数据 操作系统