操作系统实验一:处理器调度算法的实现
一、实验目的
(1)加深对处理机调度的作用和工作原理的理解。
(2)进一步认识并发执行的实质。
二、实验要求:
本实验要求用高级语言,模拟在单处理器情况下,采用多个调度算法,对N个进程进行进程调度。语言自选。
并完成实验报告。
三、实验内容:
在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。
当就绪状态进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。
- 进程及进程队列的表示。
- 处理器调度算法:FCFS,SJF,RR,HRRN,MLFQ等
- 跟踪进程状态的转化
- 输出:系统中进程的调度次序,计算CPU利用率,平均周转时间和平均带权周转时间
四、实验过程与结果
- 算法思想与设计
- 算法实现代码
- 运行结果
(1)FCFS算法
1.1 算法思想:
按照作业进入系统后备作业队列的先后次序来挑选作业,先进入系统的作业将优先被挑选进入内存,创建用户进程,分配所需资源,然后移入就绪队列。
1.2 算法设计:(采用描述或程序流程图)
1.3 算法实现代码
1.4 运行结果
(2)SJF算法
2.1 算法思想:
以进入系统作业所要求的CPU运行时间的长短为标准,总是选取预计计算时间最短的作业投入运行。
2.2 算法设计:(采用描述或程序流程图)
(3)最短剩余时间优先算法
3.1 算法思想:
假设当前某进程正在运行,如果有新进程移入就绪队列,如果它所需要的CPU运行时间比当前运行进程所需要的剩余CPU时间还短,抢占式最短作业优先算法强行剥夺当前执行者的控制权,调度新进程执行。
3.2 算法设计:(采用描述或程序流程图)