为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

代码文本文档

2017-11-12 6页 doc 18KB 400阅读

用户头像

is_769254

暂无简介

举报
代码文本文档代码文本文档 #include #include #include #define OK 1 #define EVERFLOW -1 #define PCBSIZE 10 #define NULL 0 void main() { InitPcb(nullPcb); //给就绪队列分配空间 readyPcbtail=(PCB*)malloc(sizeof(PCB)); readyPcb=readyPcbtail; readyPcbtail->id=0; readyPcbtail->priority=...
代码文本文档
代码文本文档 #include #include #include #define OK 1 #define EVERFLOW -1 #define PCBSIZE 10 #define NULL 0 void main() { InitPcb(nullPcb); //给就绪队列分配空间 readyPcbtail=(PCB*)malloc(sizeof(PCB)); readyPcb=readyPcbtail; readyPcbtail->id=0; readyPcbtail->priority=0; readyPcbtail->time=0; readyPcbtail->next=NULL; do {/*创建程序控制界面*/ printf("******************************\n"); printf("\t1.创建一个PCB进程\n\t2.销毁运行PCB进程\n\t3.就绪队列打印输出\n\t4.退出系统\n"); printf("******************************\n"); scanf("%d",&on);//设置开关按钮 switch(on) { case 1: p=Create(nullPcb); InsertReadyPcb(readyPcb,p);break; //执行创建PCB进程 case 2: printf("请输入销毁的进程的id值");scanf("%d",&deleteId);Delete(deleteId,readyPcb,nullPcb);break; case 3: PrintPCB(readyPcb);break; case 4: exit(0); default: printf("请输入1-4之间的序号\n"); } }while(on!=4); } void InitPcb(PCBList &nullPcb)//初始化空闲队列 { nullPcb=&pcb[0]; for(int i=0;inext; printf("请输入创建pcb的序号id\n"); scanf("%d",&pcbP->id); printf("请输入创建它的名字\n"); scanf("%s",&pcbP->name); printf("请输入它的优先级\n"); scanf("%d",&pcbP->priority); printf("请输入它运行所需时间\n"); scanf("%d",&pcbP->time); pcbP->next=NULL; } return pcbP; } int Delete(int id,PCBList &readyPcb,PCBList &nullPcb)//用于销毁一个pcb进程 { if(pcbT) { while(pcbT) { if(pcbT->id==id) { pcbF->next=pcbT->next; pcbT->next=nullPcb; nullPcb=pcbT; printf("销毁成功\n"); return OK; } pcbT=pcbT->next; pcbF=pcbF->next; } if(!pcbT) { printf("没有要删除的pcb进程\n"); } } else{ printf("没有要删除的pcb进程\n"); } return OK; } void PrintPCB(PCBList &readyPcb)//打印pcb就绪序列 { printf("就绪队列中的进程,按照优先级排序的序列为:\n"); printf("\t\t序号\t名字\t优先级\t运行时间\n"); PCBList pcbP=readyPcb->next; while(pcbP) { printf("\t\t%d\t%s\t%d\t%d\n",pcbP->id,pcbP->name,pcbP->priority,pcbP->time); pcbP=pcbP->next; } } void InsertReadyPcb(PCBList &readyPcb,PCBList &pcb) { PCBList pcbF=readyPcb; PCBList pcbT=readyPcb->next; if(pcbT) { while(pcbT) { if(pcbT->prioritypriority) { pcb->next=pcbT; pcbF->next=pcb; printf("创建成功并将进程插入到了就绪队列中了\n"); return; } pcbT=pcbT->next; pcbF=pcbF->next; } if(!pcbT) { pcbF->next=pcb; } } else{ pcbF->next=pcb; printf("创建成功并将进程插入到了就绪队列中了\n"); } }
/
本文档为【代码文本文档】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索