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