计算机操作系统CPU的调度程序实验报告.
成绩辽宁工程技术大学上机实验报告
课程名称计算机操作系统实验题目CPU的调度程序院系软件学院专业软件工程班级10-04班姓名杨慧荣学号1020010427实验日期2012/12/01实验
目的用C++分别采用优先权法和响应比法实现CPU的调度程序。实验
准备上课认真听讲,对CPU的两种调度算法——优先权法和响应比法的调度策略有一定的了解和掌握。实验
进度本次共有 2 个练习,完成 2 个。
实验
内容
优先权法
int PRI()
{
int j=0,i;
int d=0;
int temp=Process[0].comet;
Process[j].runbt=Process[j].comet;
Process[j].runet=Process[j].comet+Process[j].runt;
Process[j].run_flag=1;
Process[j].order=d+1;d++;
temp=Process[j].runet;
int pritemp=100;
int z=0;
for(i=1;i
{
for(int a=0;a
{
if(Process[a].run_flag==0)
if(Process[a].pri
{
pritemp=Process[a].pri;
z=a;
}
}
Process[z].runbt=temp;
Process[z].runet=Process[z].runbt+Process[z].runt;
temp=Process[z].runet;
Process[z].run_flag=1;
pritemp=100;
Process[z].order=d+1;d++;
}
return 0;
}
响应比法
int hrn()
{
int i,j,p;
int current_counter=0;
double current_time=Process[0].comet;
for(i=0;i
{
double max_respond_rate=-1;
for(j=0;j
{
if(Process[j].run_flag==0)
{
Process[j].respond_rate=(current_time-Process[j].comet)/Process[j].runt;
}
}
for(j=0;j
{
if((Process[j].run_flag==0)&&(Process[j].respond_rate>max_respond_rate))
{
p=j;
max_respond_rate=Process[j].respond_rate;
}
}
if(Process[p].comet<=current_time)
{
Process[p].runbt=current_time;
}
else
Process[p].runbt=Process[p].comet;
Process[p].runet=Process[p].runbt+Process[p].runt;
Process[p].run_flag=1;
current_counter=current_counter+1;
Process[p].order=current_counter;
current_time=Process[p].runet;
}
return 0;
}
实验
总结通过这次实验,对CPU的两种调度算法——优先权法和响应比法的调度策略和算法过程有了更深层次的了解,也对两种算法的优缺点有了较为深刻的认识。教师
评语