操作系统进程调度说明书

2026/1/27 17:28:49

int HRN(struct Pro a[],int pre,int n) //优先权的判断 {

int current=1,i,j;/* 优先权 =(等待时间+服务时间)/服务时间*/ for(i=0; i

a[i].wait_time=a[pre].finish_time-a[i].creat_time; /*等待时间 =上一个进程的完成时间-该进程的创建时间*/

a[i].priority=(a[i].wait_time+a[i].serve_time)/a[i].serve_time;

}

for(i=0; i

for( j=i; j

if( !a[j].finish) /* 还没完成(运行)*/ {

if(a[current].creat_time<=a[pre].finish_time) /*如果进程在上if(!a[i].finish) { }

current=i; /*找到第一个还没完成的进程*/ break;

一个进程完成之前创建*/

{

if(a[j].creat_time<=a[pre].finish_time

&&

a[j].priority>a[current].priority )

current=j;/* 找出创建时间在上一个进程完成之前,优先权高

的进程*/

}

8

*/ }

else /* 如果进程是在上一个进程完成之后创建*/ {

if(a[j].creat_time

current=j; /* 找出比较早创建的一个*/

if(a[j].creat_time==a[current].creat_time) /* 如果同时创建

}

}

}

if(a[j].priority>a[current].priority)

current=j; /*找出服务时间比较短的一个*/

return current;/*返回当前进程*/

void HRRN( struct Pro a[],int n) //最高响应比算法 {

int i;

int current=0, times=0, pre=0; //当前,次数,前一个 a[pre].finish_time=0;

for(i=0;i

{ }

for(times=0; times

current=HRN(a,pre,n); i=current;

9

a[i].priority=0; a[i].finish=0;

if(times==0) // 第一个进程

{

a[i].excute_time=a[i].creat_time;

a[i].finish_time=a[i].excute_time+a[i].serve_time; a[i].zhou_time=a[i].serve_time; a[i].d_time=1.0;

} else {

if(a[i].creat_time>a[pre].finish_time)

a[i].excute_time=a[i].creat_time;

else

a[i].excute_time=a[pre].finish_time;

a[i].finish_time=a[i].excute_time+a[i].serve_time;

a[i].zhou_time=a[i].finish_time-a[i].creat_time;

a[i].d_time=a[i].zhou_time/a[i].serve_time;

}

a[i].finish=1;

pre=current;

printf(\ printf(\ Display(a,n); sleep(1);

}

count(a,n); hs=Pjzhou_time; ht=Pjd_time; printf(\

printf(\平均周转时间 t=%5.3f\\nw=%5.3f\\n\

10

平均带权周转时间

printf(\ printf(\ }

void count(struct Pro a[],int n)//计算函数 { int i; s=0,t=0;

for(i=0;i

s+=a[i].zhou_time; t+=a[i].d_time; }

Pjzhou_time=s/n; Pjd_time=t/n; }

int Input(struct Pro a[])//输入函数 {

int n,i;

printf(\输入要创建的进程个数:\scanf(\

printf(\输入进程名、创建时间和服务时间:\\n\getchar(); for(i=0;i

scanf(\

11


操作系统进程调度说明书.doc 将本文的Word文档下载到电脑
搜索更多关于: 操作系统进程调度说明书 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219