#include \"stdio.h\"
#include #define max 100 #define pfree 0 /*process end*/ #define running 1 /*process running status*/ #define aready 2 /*process aready status */ #define blocking 3 /*process aready blocking status*/ typedef struct node { char name; int status; int precendence; int ax,bx,cx,dx; int pc; int psw; struct node *next; /*pcb define*/ }pcb; pcb *createprocess(pcb *head) { pcb *p,*q; int a,b,c,d,m,n,pre; char ID; int s; q=NULL; printf(\"\\ninput the first seven status pcb:\"); scanf(\"\\n%c\ scanf(\"%d%d%d%d%d%d\ while(ID!='*') { p=(pcb*)malloc(sizeof(pcb)); p->name=ID; p->ax=a; p->bx=b; p->cx=c; p->dx=d; p->pc=m; p->psw=n; p->precendence=pre; p->status=aready; if(head==NULL) head=p; else q->next=p; q=p; printf(\"\\ninput the next pcb: \"); scanf(\"\\n%c\ scanf(\"%d%d%d%d%d%d\ } if(q!=NULL) q->next=NULL; q=head; while(q) { printf(\"\\n peocess name. status.ax. bx. cx. dx. pc. psw.\\n \"); printf(\"%10c%5d%8d%5d%5d%5d%5d%5d%5d\endence,q->ax,q->bx,q->cx,q->dx,q->pc,q->psw); q=q->next; } return head;/*createprocess end*/ } void processfifo(pcb *head) /*use fifo */ { pcb *p; p=head; printf(\"\\n the process use fifo method.\\n\"); printf(\"running the frist process:\\n\"); while(p!=NULL) { p->status=running; printf(\"\\nprocess name status. ax. bx. cx. dx. pc. psw.\"); printf(\"\\n%10c%5d%8d%5d%5d%5d%5d%5d\bx,p->cx,p->dx,p->pc,p->psw); /*check process running status */ p->status=0; p=p->next; } printf(\"\\ncheck weatherfer the process complete: \"); p=head; while(p) { printf(\"\\n%3c%3d\ p=p->next; } printf(\"\\ngame is over!\\n\"); } main() { pcb *head; head=NULL; head=createprocess(head); processfifo(head); } 因篇幅问题不能全部显示,请点此查看更多更全内容