实验一、处理机管理
一、实验内容
处理机管理是操作系统中非常重要的部分。
为深入理解进程管理部分功能,设计几个调度算法,模拟实现处理机的调度。
二、实验目的
在多道程序或多道任务系统中,系统同时处于就绪态的进程有若干个。
也就是说能运行的进程远远大于处理机个数。
为了使系统中的各进程能有条不紊地运行,必须选择某种调度策略,以选择一进程占用处理机。
要求学生设计一个模拟单处理机调度算法,以巩固和加深处理机调度的概念。
三、实验题目
1、设计一个按时间片轮转法调度的算法(代码见四,需调试并加注释)
在做2~5之前制作一菜单,以调用各算法
2、在1基础上增加一个按先来先服务调度的算法
3、在2基础上增加一个按优先级调度的算法
4、*在3基础上增加一个短作业优先的算法
5、*在4基础上增加一个高响应比的算法
打“*”题目属较难题目。
四、实验程序
1、时间片轮转法调度的算法C实现:
运行结果:
Java实现
关键代码:
当前处于处理机的进程的执行过程时间片轮转算法实现:
输入:
输出:
时间片为 1 时:
(运行过程)
(计算周转时间和带权周转时间)
时间片为 4 时:
2、先来先服务算法
关键代码:
输入情况:(为了避免重复调试输入数据,于是从文本文件中读取数据)输出结果:
3、优先级调度算法关键代码:
输入情况:输出结果:
3、短作业优先(注意此短作业优先是非抢占式的!)
关键代码:
短作业优先算法和先来先服务算法思想类似,短作业主要是判断当前到达的进程的服务时间是否是就绪队列中最小的,如果是,则在当前进程执行完毕后,此短作业处于就绪队列的头部
输入:
输出结果:
5、高响应比优先级调度算法
设置了8个进程任务,由系统自动产生。