进程调度

1、进程调度的任务是控制协调进程对CPU的竞争即按一定的调度算法从就绪队列中选中一个进程,把CPU的使用权交给被选中的进程

2、确定算法的原则

  2.1、具有公平性

  2.2、资源利用率高

  2.3、在交互式系统情况下要追求响应时间(越短越好)

  2.4、在批处理系统情况下要追求系统吞吐量

3、各种进程调度算法

  3.1、先进先出调度算法(FIFO)  

  按照进程就绪的先后次序来调度进程  

  优点:实现简单  

  缺点:没考虑进程的优先级

  3.2、基于优先数的调度(HPF)  

  优先选择就绪队列中优先级最高的进程投入运行,优先级根据优先数来决定

4、确定优先数的方法

  4.1、静态优先数法  

  在进程创建时指定优先数,在进程运行时优先数不变

  4.2、动态优先数法  

  在进程创建时创立一个优先数,但在其生命周期内优先数可以动态变化。

5、两种占用CPU的方式

  5.1、可剥夺式(可抢占式)  

  当有比正在运行的进程优先级更高的进程就绪时,系统可强行剥夺正在运行进程的CPU,提供给具有更高优先级的进程使用

  5.2、不可剥夺式(不可抢占式)  

  某一进程被调度运行后,除非由于它自身的原因不能运行,否则一直运行下去

6、时间片轮转程序调度算法(RR)  

  把CPU划分成若干时间片,并且按顺序赋给就绪队列中的每一个进程,进程轮流占有CPU,当时间片用完时,即使进程未执行完毕,系统也剥夺该进程的CPU,将该进程排在就绪队列末尾。

7、时间片选择问题:固定时间片,可变时间片

8、与时间片大小有关的因素: 系统响应时间,就绪进程个数,CPU能力

9、多队列反馈调度算法  

  将就绪队列分为N级,每个就绪队列分配给不同的时间片,队列级别越高,时间越长,级别越小,时间片越小,最后一级采用时间片轮转,其他队列采用先进先出;系统从第一级调度,当第一级为空时,系统转向第二个队列,...,当运行进程用完一个时间片,放弃CPU时,进入下一级队列;等待进程被唤醒时,进入原来的就绪队列;当进程第一次就绪时,进入第一级队列

10、进程调度的时机

  10.1、当一个进程运行完毕,或由于某种错误而终止运行

  10.2、当一个进程在运行中处于等待状态(等待I/O)

  10.3、分时系统中时间片到

  10.4、当有一个优先级更高的进程就绪(可抢占式)

  10.5、在进程通信中,执行中的进程执行了某种原语操作(P操作,阻塞原语,唤醒原语

 

你可能感兴趣的:(进程)