进程管理和调度的算法实现 一、 实验目的 进程调度是处理机管理的核心内容
本设计要求用高级语言编写和调试一个简单的进程调度程序
通过本实验可以加深理解有关进程控制块、进程队列的概念,并体会和了解优先权调度算法和时间片轮转调度算法的具体实施办法
二、 实验内容 1. 设计进程控制块 PCB 表结构,分别适用于优先权调度算法和时间片轮转调度算法
2. PCB 结构包括以下信息:进程名、进程优先数(或轮转时间片),进程所占用的CPU 时间,进程的状态,当前队列指针等
根据调度算法的不同,PCB 结构的内容可以作适当的增删
3. 建立进程就绪队列
对两种不同算法编制入链子程序
4. 编制两种进程调度算法:a)优先数调度;b)时间片轮转调度
允许用户在程序运行时选择使用某一种调度算法
三、 编程工具: C、Java、VC 或其它可视化语言 平台任选 四、 具体设计要求及有关说明 选用优先数算法和简单时间片轮转法对五个进程进行调度,每个进程可有三种状态:运行状态(RUN)、就绪状态(READY)和完成状态
并假定初始状态为就绪状态
1. 设计进程控制块 PCB 结构如下: NAME //进程标识符; PRIO/ROUND // PRIO 表示进程优先数,ROUND 表示进程轮转时间片大小; CPUTIME //进程占用CPU 时间; COUNT //计数器; NEEDTIME /进程到完成还要的 CPU 时间; STATE //进程的状态; NEXT //链指针 2. 进程控制块链结构如图所示
其中: … ∧ … … ∧ … ∧ … … … READY FINISH RUN TAIL „ „ RUN——当前运行进程指针; READY——就绪队列头指针; TAIL——就绪队列尾指针; FINISH——完成队列头指针
为了便于处理,程序中进程的运行时间以时间片为单位计算