- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
进程调度--动态优先数法(C语言实现)
进程调度--动态优先数法(C语言实现)
#includestdio.h
#includestdlib.h
#includestring.h
typedef struct node
{
char name[10]; //进程标志符
int prio; //进程优先数
int cputime; //进程占用cpu时间
int needtime; //进程到完成还要的时间
char state; //进程的状态
struct node *next; //链指针
}PCB;
PCB *finish,*ready,*tail,*run; //队列指针
int N; //进程数
//将就绪队列的第一个进程投入运行
firstin()
{
run=ready; //就绪队列头指针赋值给运行头指针
run-state=R; //进程状态变为运行态
ready=ready-next; //就绪列头指针后移到下一进程
}
//标题输出函数
void prt1(char a)
{
printf(进程号 cpu时间 所需时间 优先数 状态\n);
}
//进程PCB输出
void prt2(char a,PCB *q)
{ //优先数算法输出
printf( % -10s% -10d% -10d% -10d %c\n,q-name,q-cputime,q-needtime,q-prio,q-state);
}
//输出函数
void prt(char algo)
{
PCB *p;
prt1(algo); //输出标题
if(run!=NULL) //如果运行标题指针不空
prt2(algo,run); //输出当前正在运行的PCB
p=ready; //输出就绪队列PCB
while(p!=NULL)
{
prt2(algo,p);
p=p-next;
}
p=finish; //输出完成队列的PCB
while(p!=NULL)
{
prt2(algo,p);
p=p-next;
}
getchar(); //按任意键继续
}
//优先数的算法插入算法
insert1(PCB *q)
{
PCB *p1,*s,*r;
int b;
s=q; //待插入的PCB指针
p1=ready; //就绪队列头指针
r=p1; /
文档评论(0)