您的当前位置:首页正文

进程调度

来源:帮我找美食网


#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);

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Top