- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
进程调度源程序精选
/进程调度源程序/
#include stdio.h
#include stdlib.h
#include string.h
typedef struct node
{
?? char name[10];? /*进程标识符*/
?? int prio;?? /*进程优先数*/
?? int round;? /*进程时间轮转时间片*/
?? int cputime; /*进程占用CPU时间*/
?? int needtime; /*进程到完成还要的时间*/
?? int count;? /*计数器*/
?? 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)
{
?? if(toupper(a)==P) /*优先数法*/
????? printf(? name???? cputime? needtime? priority? state\n);
?? else
????? printf(? name???? cputime? needtime?? count?? round???? state\n);
}
/*进程PCB输出*/
void prt2(char a,PCB *q)
{
?? if(toupper(a)==P)? /*优先数法的输出*/
????? printf(? %-10s%-10d%-10d%-10d %c\n,q-name,
?????? q-cputime,q-needtime,q-prio,q-state);
?? else/*轮转法的输出*/
????? printf(? %-10s%-10d%-10d%-10d%-10d %-c\n,q-name,
?????? q-cputime,q-needtime,q-count,q-round,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;
?? }
?? getch();? /*压任意键继续*/
}
/*优先数的插入算法*/
insert1(PCB *q)
{
?? PCB *p1,*s,*r;
?? int b;
?? s=q;? /*待插入的PCB指针*/
?? p1=ready; /*就绪队列头指针*/
?? r=p1; /*r做p1的前驱指针*/
?? b=1;
?? while((p1!=NULL)b)? /*根据优先数确定插入位置*/
????? if(p1-prio=s-prio)
????? {
? r=p1;
? p1=p1-next;
????? }
????? else
? b=0;
?? if(r!=p1)? /*如果条件成立说明插入在r与p1之间*/
?? {
????? r-next=s;
????? s-next=p1;
?? }
?? else
?? {
????? s-next=p1;? /*否则插入在就绪队列的头*/
????? ready=s;
?? }
}
/*轮转法插入函数*/
insert2(PCB *p2)
{
?? tail-next=p2;? /*将新的PCB插入在当前就绪队列的尾*/
?? tail=p2;
?? p2-next=NULL;
}
/*优先数创建初始PCB信息*/
void create1(char alg)
{
?? PCB *p;
?? int i,time;
?? char na[10];
?? ready=NULL; /*就绪队列头指针*/
?? finish=NULL;? /*完
您可能关注的文档
- 软件项目管理论文:软件缺陷度量与软件过程管理方法研究精选.doc
- 软件项目管理课程设计报告--酒店管理系统项目管理文档精选.docx
- 软基换填处理施工方案精选.doc
- 软基换填施工技术方案精选.doc
- 软胶囊生产线设备培训教案精选.doc
- 软包锂电池自动测试分选配组系统方案,pack配阻,pack配对精选.doc
- 轴套类零件数控车削加工工序精选.doc
- 轴套类零件数控车削加工工艺及编程设计精选.doc
- 轴承厂二期预制构件吊装施工方案精选.doc
- 软胶囊生产线温度控制系统设计精选.doc
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
最近下载
- 闽教版4年级上册英语全册教学课件.pptx
- 浅谈当前我国建筑企业人力资源管理论文.docx VIP
- 浅谈建筑企业人力资源管理论文.docx VIP
- 广东省惠州市高2024届高三上学期第三次调研考试数学试题.pdf
- 病毒性肺炎影像.pptx VIP
- 新教材牛津译林版选择性必修第二册Unit1 The mass media 教学设计.pdf VIP
- (完整版)职业卫生培训试题含答案.pdf
- 初一第一学期第一次家长会课件.ppt VIP
- 惠州市2024届高三第三次调研考试(三调)思想政治试卷(含答案).pdf
- 2024-2025学年上海交通大学附属中高三上学期阶段测试3英语试卷含详解.pdf VIP
文档评论(0)