进程调度算法 1
实验目的 调度的实质是操作系统按照某种预定的策略来分配资源
进程调度的目的是分配 CPU 资源
由于进程调度程序执行的频率很高,因此调度算法的好坏直接影响到操作系统的性能
本实验的目的是编程模拟实现几种常用的进程调度算法,通过对几组进程分别使用不同的调度算法,计算进程的平均周转时间和平均带权周转时间,比较各种算法的性能优劣
实验原理 1
进程调度算法描述 进程调度算法包括先来先服务调度算法、优先数调度算法、时间片轮转算法和分级调度算法 4 种
先来先服务(FCFS)调度算法 本算法在进行调度时,总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便一直执行下去,直到该进程完成或阻塞时,才释放处理机
优先数调度算法 基于优先级的调度算法给每个进程分配一个优先级,在每次进程调度时,调度器总是调度那个具有最高优先级的任务来执行
如果就绪队列中出现优先数相同的进程,则对这些有相同优先数的进程采用 FCFS 算法调度
对于占有处理机的进程,系统可以使用“抢占式”或“非抢占式”的策略
“非抢占式”指进程一旦占用处理机,除非自己愿意,否则操作系统不能将处理机强行夺走,即使该进程的优先数已经小于就绪队列中的某个进程
“抢占式”则相反,一旦就绪队列中的某个进程优先数大于正在执行的进程,立刻进行进程切换
基于优先级的调度算法可以分为如下两种类型:静态优先级调度算法,这种调度算法给那些系统中得到运行的所有进程都静态地分配一个优先级;动态优先级调度算法,这种调度算法根据任务的资源需求来动态地分配任务的优先级,其目的就是在资源分配和调度时有更大的灵活性
本实验的基本要求是实现固定优先数的调度算法,实验者可以在这个基础上添加动态优先数功能
时间片轮转(RR)调度算法 前几种算法主要用于批处理系统中,不能作为分时系统中的主调度算法,在