电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

操作系统-进程调度实验

操作系统-进程调度实验_第1页
1/23
操作系统-进程调度实验_第2页
2/23
操作系统-进程调度实验_第3页
3/23
实验五 进程调度模拟实验//进程调度算法 proc.c#include #include#include typedef struct pcb//定义 PCB 结构{char name[20]; /*进程标识符*/int cputime; /*进程占用 CPU 时间*/int prio; /*进程优先数*/int needtime; /*进程到完成还需要的 CPU 时间*/struct pcb *next;/*链指针*/}PCB;PCB *RUN,*READY,*RTAIL,*FINSH,*FTAIL;void PRINTLINK(int t)/*输出 3 个队列*/{PCB *p;printf("CPU 运行次数:___%d___\n",t);printf("______________________\n");printf("进程名\t 运行状态\t 运行次数\t 还需要运行次数\n");if(RUN!=NULL){ printf("%s\t 运行\t%d\t%d\n",RUN->name,RUN->cputime,RUN->needtime); }else printf("*运行状态为空\n");p=READY;if(p!=NULL){ while(p!=NULL) {printf("%s\t 就绪\t%d\t%d\n",p->name,p->cputime,p->needtime); p=p->next; } }else printf("*就绪队列为空\n");p=FINSH;if (p!=NULL){ while(p!=NULL){//printf(" 进程名字为:%s\n",p->name);printf("%s\t 完成\t%d\t%d\n",p->name,p->cputime,p->needtime);p=p->next;}}elseprintf("*完成队列为空\n");getchar();}PCB *CPCBLINK()/*建立就绪队列*/{ printf("建立就绪队列\n\n");int i,n,nt,pr;PCB *p,*q,*head;n=0;while(1){ printf("请输入进程的个数(有效范围 1-100):"); scanf("%d",&n); printf("\n"); if (n>=1&&n<=100) break; else printf("输入有误。请重新输入!\n"); getchar(); } head=(struct pcb* )malloc(sizeof(struct pcb));printf("输入第 1 个进程的名称:");scanf("%s",head->name);while(1){ printf("需要的运行时间:"); scanf("%d",&nt); if(nt>0) break; else { printf("输入无效,重新输入!\n"); getchar(); }}head->needtime=nt;printf("优先数:");scanf("%d",&pr);head->prio=pr; head->cputime=0;/*进程已获得的运行时间*/head->next=NULL;q=head; for(i=1;iname); printf("需要的运行时间:"); scanf("%d",&nt); p->needtime=nt; printf("优先数:"); scanf("%d",&pr); p->prio=pr;p->cputime=0;/*进程已获得的运行时间*/ p->next=NULL;q->next=p;q=p;} RTAIL=q;return head;}void...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

操作系统-进程调度实验

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部