📄 单处理器系统进程调度.txt
字号:
#include "string.h"
#define n 10 //假定系统中可容纳的进程数量为n
typedef struct pcb
{int name; //进程名
int status;
int ax,bx,cx,dx;
int pc;
int psw;
int next; //指向下一个进程控制块的指针
}PCB; //进程控制块类型定义
PCB pcbarea[n]; //进程控制块区域
int run; //定义指向正在运行进程的进程控制块指针
struct
{int head;
int tail;
}ready; //定义指向就绪队列
int pfree; //定义指向空闲进程控制块队列指针
shedule() //进程调度函数
{while(ready!=-1)
i=ready.head;
ready.head=pcbarea[ready.head].next
if(ready==-1)
ready.tail=-1;
else
pcbarea[i].status=running;
TIME=时间片;
AX=ax;BX=bx; CX=cx; DX=dx; PC=pc; PSW=psw;
run=i;}
main( )
{p=pfree;
while(pfree!=-1&&name!=-1)//如果空闲控制块不为空
{i=pfree;
else{printf("无法创建进程\n");break;}
pcbcount++;
pfree=pcbarea[pfree].next;
pcbarea[i].name=name;
pcb[i].status=aready;
if(ready!=-1)
{pcbarea[ready.tail].next=i;
ready.tail=i;
pcbarea[ready.tail].next=-1;
}
else {ready.head=i;
ready.tail=i;
pcbarea[ready.tail].next=-1;
} shedule( ); //进行进程调度
}//main( )函数结束
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -