一、实验目的多道程序系统中,当就绪进程数大于处理机数时,须按照某种策略决定哪些进程优先占用处理机
本实验模拟实现进程调度,以加深对进程概念和不同进程调度算法的理解
二、实验环境1.PC微机
2.Windows操作系统
C/C++/VB等开发集成环境
三、实验内容与步骤编程实现如下进程调度算法:1)时间片轮转调度算法:时间片长度在运行时可从键盘输入
2)多级反馈队列调度算法:至少要有三个队列,第i+1队列进程运行的时间片是第i队列的2倍
3)高响应比优先调度算法:当调度响应比高的进程运行时,仍然是运行一个时间片,而不是完全结束,刚运行的进程,其以前的等待时间清零
实现提示:(1)PCB数据结构(参考)PCB至少包括:进程标识符、进程名、到达时间、服务时间、等待时间、完成时间、响应比等(可根据不同的算法增减)
假设多个PCB利用链接方式进行组织
(2)主要功能模块(参考)•进程初始化;•显示初始化后进程的基本信息;•时间片轮转调度算法;•多级反馈队列调度算法;•高响应比优先调度算法;输入要求:可将进程初始化信息事先存入文件中,程序运行从文件中读取信息,避免从键盘输入速度慢且易出错
输出要求:每种调度算法每次调度后应直观显示,进程调度的依据、各进程的各项参数
每种调度算法运行结束后,输出各个进程对应的完成时间、周转时间和带权周转时间,以及整体的平均带权周转时间
四、实验结果与分析S1r(2)各调度算法的设计思想1、时间片轮转算法该算法采取了非常公平的方式,即让就绪队列上的每个进程每次仅运行一个时间片
如果就绪队列上有N个进程,则每个进程每次大约都可获得1/N的处理机时间
时间片的大小对于系统性能有很大的影响
若选择很小的时间片,将有利于短作业,但意味着会频繁地执行进程调度和进程上下文的切换,这无疑会增加系统的开销
反之,若时间片选择得太长,且为使每个进程都能在一个时间片内完成