一、课程设计目的
1、要求学生设计一个模拟进程调度的算法
2、理解进程控制块的结构
3、理解进程运行的并发性
4、掌握进程调度的三种基本算法
二、课程设计题目描述和要求
设计题目描述
在多道程序运行环境下,进程数目一般多于处理机数目,使得进程要通过竞争来使用处理机。这就要求系统能按某种算法,动态地把处理机分配给就绪队列中的一个进程,使之运行,分配处理机的任务是由进程调度程序完成的。一个进程被创建后,系统为了便于对进程进行管理,将系统中的所有进程按其状态,将其组织成不同的进程队列。于是系统有运行进程队列、就绪进程队列和各种事件的进程等待队列。进程调度的功能就是从就绪队列中挑选一个进程到处理机上运行。进程调度的算法有多种,常用的有优先级调度算法、先来先服务算法、时间片轮转算法。
进程是程序在处理机上的执行过程。进程存在的标识是进程控制块(PCB),进程控制块结构如下:
Typeedef struct node
{
Char name[10]; /*进程标识符*/
Int prio; /*进程优先数*/
Int cputime /*进程占用CPU时间*/
Int neentime /*进程到完成还需要的时间*/
Char state; /*进程的状态*/
Struct node *next; /*链指针*/
}PCB;
系统创建一个进程,就是由系统为某个程序设置一个PCB,用于对该进程进行控制和管理。进程任务完成,由系统收回其PCB,该进程便消亡。每个进程可以有三个状态:运行态、就绪态和完成状态。
1