代码改变世界

处理机调度,用于解决单核CPU怎么运行多个进程的问题

2018-11-10 21:44  mengjuanjuan1994  阅读(725)  评论(0编辑  收藏  举报

1.基本概念

按照一定算法选择一个进程将处理机分配给它。

2.三个层次

高级调度(作业调度):按照某种规则,从后备队列中选择合适的作业将其调入内存,并为其创建进程。

中级调度(内存调度):按照某种规则,从挂起队列中选择合适的进程将其数据调回内存。

低级调度(进程调度):按照某种规则,从就绪队列中选择一个进程为其分配处理机。

3.三层调度的联系、对比

高级调度:从外存到内存,是面向作业的。发生频率最低。

中级调度:从外存到内存,是面向进程的。发生频率中等。

低级调度:从内存到CPU,发生频率最高。

 4.进程调度的时机

需要进程调度时机:1)主动放弃,包括进程正常终止,进程发生异常而终止,主动阻塞;2)被动放弃,包括分配给进程的时间片用完,有更紧急的事情需要处理如(I/O中断),有更高优先级的进程进入就绪队列。

不能进行进程调度的时机:1)在处理中断过程中;2)进程在操作系统内核临界区中;3)在原子操作过程中。

5.进程的调度、切换是有代价的,并不是调度越频繁,并发度就越高。

6.进程调度的方式

非剥夺方式(非抢占式):只能由当前运行的进程主动放弃CPU。

剥夺方式(抢占式):当前运行的进程被动放弃CPU。

 7.调度算法的评价指标

CPU利用率 = 忙碌的时间 / 总时间

系统的吞吐量 = 总共完成了多少道作业 / 总共花了多少时间

周转时间 = 作业完成时间 - 作业提交时间

平均周转时间 = 各作业周转时间之和 / 作业数

带权周转时间 = 作业周转时间 / 作业实际运行的时间

平均带权周转时间 = 各作业带权周转时间之和 / 作业数

等待时间 = 进程 / 作业

响应时间:用户提交请求到首次产生响应所用的时间。

 8.适用于早期批处理系统的调度算法

先来先服务(FCFS):排队买东西,先来先买;不会导致饥饿;非抢占式

短作业优先(SJF):已经到达的人,谁买东西用的时间最短谁先买。分为非抢占式和抢占式

高响应比优先(HRRN):综合考虑了作业/进程的等待时间和要求服务的时间。

 9.适用于交互式系统的调度算法

时间片轮转(RR):抢占式,不会导致饥饿

优先级调度:有抢占式的,也有非抢占式的,会导致饥饿

多级反馈队列:抢占式的,会导致饥饿