实验五进程调度(1)优先数调度算法
实验目的
进程调度是处理器管理的核心内容。本实验要求用高级语言编写和调试一个简单的进程调度程序,通过本实验加深对进程控制块、进程队列等概念的了解,掌握优先数调度算法和时间片调度算法的具体实施方法。
实验类型
综合性实验
预习要求
已完成进程管理理论课程的学习,了解进程、进程调度的基本概念以及典型进程调度算法的基本思想。
实验设备与环境
PII以上电脑一台,已经安装VC、GCC或其他C语言编译环境
实验原理
操作系统是计算机系统中必不可少的系统软件。它是计算机系统中各种资源的管理者和各种活动的组织者、指挥者。进程调度解决了竞争处理器的问题。进程调度程序按照某种调度算法从就绪队列中选择一个进程,让它占用处理器。或者说,进程调度程序把处理器分配给了一个被选中的进程。所以,有时也把进程调度程序称为“处理器调度”程序。在优先数调度算法方面:不同的系统确定优先数的方法可以不同,但一般都从任务的紧迫性和系统效率等方面考虑。例如,让系统进程的优先数大于用户进程的优先数,重要计算问题的进程优先数大于一般计算问题的进程优先数,交互式作业进程的优先数大于批处理作业进程的优先数等。
实验任务
设计一个程序根据不同的调度算法模拟操作系统对进程的调度。动态优先级法1、设计进程控制块PBC表结构,分别适用优先数调度算法
f2、PBC结构通常包括以下信息:进程名、进程优先数、轮转时间片、进程的CPU时间,进程状态等。根据调度算法不同,PCB结构可作适当的调整。3、建立进程队列。对不同的算法编制不同的入链程序。程序要求达到的运行效果:在设置好进程数量、调度算法后,系统能按设定的参数运行,并在屏幕上交替显示就绪队列和完成队列的进程名等信息。
实验步骤和方法
1、数据结构设计:PCB结构:
ameprirou
dcputime
eedtimestate
ext2、算法设计时间以时间片为计量单位。优先数调度算法1)系统初始化时给每一个进程赋一个NEEDTIME和初始PRI。并按优先数入队。2)系统每次选定一个优先级最高的进程投入运行,进程每执行一次,并将它的进程占用的CPU时间加10,进程到完成还要的CPU时间减10。3)每当一个进程运行一个时间片后系统根据它的CPUTIME来判断它是否已经结束若CPUTIME0那么将它重新排入就绪队列。4)如果系统中尚有进程没有运行完毕那么转入2)。进程名进程优先数进程轮转时间片进程占用的CPU时间进程到完成还要的时间进程状态(假设状r