单处理机系统的进程调度
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单处理机系统的进程调度
编写程序完成单处理机系统中的进程调度,要求采用时间片轮转调度算法。实现具体包括:首先确定进程控制块的内容和组成方式;然后完成进程创建原语和进程调度原语;最后编写主函数,对所做工作进行测试。
这个实验主要有三个问题:如何组织进程、如何创建进程和如何实现处理机调度。
进程控制块结构定义如下:
struct pcb
{
int name; //进程标识符
int status; //进程状态
int ax,bx,cx,dx; //进程现场信息,通用寄存器内容
int pc; //进程现场信息,程序计数器内容
int psw; //进程现场信息,程序状态字寄存器内容
int next; //下一个进程控制块的位置
}
存放进程控制块的区域:
#define n 10 //假定系统允许进程个数为10
struct pcb pcbarea[n]; //模拟进程控制块区域的数组
实验中指向运行进程的进程控制块指针、就绪队列指针和空闲进程控制块队列指针定义如下:
int run; //定义指向正在运行进程的进程控制块的指针struct
{ int head;
int tail
}ready; //定义指向就绪队列的头指针head和尾指针tail int pfree; //定义指向空闲进程控制块队列的指针