操作系统原理,调度算法设计时考虑的问题,调度算法相关概念,进程优先级和优先数,抢占式与非抢占式,IO密集型与CPU密集型,时间片
O、调度算法在设计时要考虑的问题:
1、进程控制块PCB中需要记录那些与CPU调度有关的信息
2、进程优先级以及就绪队列的组织结构
3、抢占式调度和非抢占式调度
4、IO密集型与CPU密集型进程
5、时间片
调度算法相关概念
一、进程优先级和优先数
1、优先级是指进程的优先程序,优先数是进程优先级的数值型标识
2、静态优先级在进程创建时指定,运行过程中不改变
3、动态优先级标识缓存创建时指定了一个优先级,运行过程中可以动态变化,比如等待时间较长的进程可以提升其优先级
二、就绪队列组织方式
1、通过优先级组织就绪队列
按照优先级顺序组织就绪队列,选择进程时现在高优先级队列中选择进程,然后再次优先级队列中选择
2、通过已投入的时间片的数量控制进程优先级
刚创建的进程指定高优先级,后续每消耗一次时间片就降低一次优先级并移至低优先级队列,直到运行结束或者移动到最低优先级队列。
三、抢占式与非抢占式
1、抢占式:当存在进程的优先级比当前运行时刻的基础优先级更高且进入就绪队列时,系统可强行剥夺正在运行基础的CPU,提供给具有更高优先级的进程使用
2、非抢占式:某一进程被调度运行后,除非其本身由于某种原因不能运行,否则会一直运行下去直到时间片结束。
四、IO密集型与CPU密集型
1、IO密集型进程,通常会花费较多时间等待IO操作结果的完成,并不依赖CPU计算
2、CPU密集型进程,需要大量的CPU时间进行计算
五、时间片
1、一个时间段,分配给调度上CPU的基础,确定了运行该进程占用CPU运行的时间长度
2、选择时间片的考虑因素包括:进程切换开销,响应时间的要求,就绪进程个数,CPU能力,进程行为等