欢迎来到天天文库
浏览记录
ID:31688917
大小:84.60 KB
页数:10页
时间:2019-01-17
《1实验一进程管理参考代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、#include#includc#include#defineNULLOintnumber=O;/Z进程数〃进程的内容结构体structnode{inta;charch;};structprocess〃进程PCB结构体{intpid;〃进程标识intpriority;〃优先级floatluntime;floatzhantime;//lun轮转时间//zhan占用CPU时间charstatus;node*content;〃状态,a表示执行,b表示动态就绪〃进程内容structproc
2、ess*next;);structprocess*ready,*present,*p,*q;//present正在执行进程指针,ready就绪进程队列指针〃换岀进程函数voidoutchange(inta){p=ready;while(p->pid!=a&&p!=NULL){q二p;p=p->ncxt;}if(p二二NULL){printf(”该进程不在内存里!”);return;)if(p==ready)ready=ready->next;else〃杀死正在运行进程函数voidkill(){present->next=NULL;pr
3、intf(”运行的进程已经杀死!”);return;}〃创建新进程后与止在运行进程比较优先级并根据优先级判断谁该占川处理机intcompare(){inti,j;p=rcady;while(p!=NULL){q=p;p=p->ncxt;i〃q指向进程的末尾,即新建的进程i=q->priority;j=present->next->priority;〃i代表新进进程的优先级//j代表正在执行进程的优先级〃如果新建的进程的优先级同于正在执行程序的优先级p=rcady;if(p==q)〃就绪队列的进程中只有一个进程。也就是那个新建的进程re
4、ady=present->next;p->content=(node*)malloc(sizeof(node));p->contcnt->a=9;p->content->ch=lc,;present->next=p;〃把处理机交给优先级高的新进程return1;}clsc{while(p->next!=q)p=p->next;}p->next=present->next;〃执行完后p指针在q指针前面〃将正在执行的进程放置p的后面q->content=(node*)malloc(sizeof(node));q->content->a=9;q
5、->contcnt->ch=fc';present->next=q;〃将q放置在正在执行列表中,把处理机交给优先级高的进程preseext->next=NULL;return1;}}elsereturn-1;}voidmain(){intexecute();//定义函数voidkill();//定义杀死函数voidcheck();//定义査看函数voidcommunication(int);//^义通信函数prcscnt=(proccss*)malloc(sizcof(proccss));present->next=NULL;ready=
6、(process*)malloc(sizeof(process));ready->next=NULL;ready->pid=1;ready->priority=6;ready->luntime=3.5;ready->zhantime=3;ready->content=(node:i:)malloc(sizeof(node));ready->content=NULL;ready->status=lbl;number++;p=(process*)malloc(sizeof(process));p->next=ready->next;ready
7、->next=p;p->pid=2;p->priority=5;p->luntime=3.5;p->zhantime=3;p->content=(node*)malloc(sizeof(node));p->contcnt=NULL;p->status=lb,;number++;q=(process*)malloc(sizeof(process));q->next=p->next;p->ncxt=q;q->pid=3;q->priority=4;q->luntime=3.5;q->zhantimc=3;q->zhantime=3;q->co
8、ntent=(node*)malloc(sizeof(node));q->content=NULL;q->status=rbf;numbcr++;inti,n=l;intk,j,s;j=exe
此文档下载收益归作者所有