操作系统知识点总结(第三章 处理机调度与死锁)
基于计算机操作系统(第四版)
第三章 处理机调度与死锁
-
处理机的三级调度:高级调度、低级调度、中级调度。
-
在多道批处理、分时和实时三种类型的OS中,都必须配置这级调度。
-
处理机调度算法的共同目标:资源利用率;公平性;平衡性;策略强制执行。
-
批处理系统的目标:平均周转时间短;系统吞吐量高;处理机利用率高。
-
周转时间: 从作业被提交给系统开始,到作业完成为止的这段时间间隔。
-
带权周转时间:周转时间/运行时间
-
作业控制块JCB
-
作业状态:提交状态、后备状态、运行状态、完成状态。
-
选择调度算法时应考虑的问题:
公平对待后备队列中每一个作业,顾及各种类型作业的情况。
均衡使用系统资源,克服资源忙闲不均的情况出现。
提高整个系统的吞吐能力。 -
进程周转时间:从进程进入就绪队列开始,到进程完成为止的时间间隔。
-
平均周转时间:系统中多个进程的周转时间的平均值。
-
先来先服务(FCFS)调度算法
-
短作业优先(SJF)调度算法
与FCFS算法比较,平均周转时间有下降,有效地降低作业的等待时间,提高了系统的吞吐量。但对长作业非常不利。 -
优先级调度算法(PSA)
-
高响应比优先调度算法(HRRN)
优点:既照顾短作业、又考虑作业到达先后,并且还兼顾到长作业。
缺点:每次要进行调度之前,都需要先做响应比的计算,显然会增加系统开销。 -
时间片轮转(RR)算法
让就绪队列上的每个进程每次仅运行一个时间片。
时间片小会增加系统的开销,若时间片选择得太长,RR算法退化为FCFS算法,无法满足短作业和交互式用户的需求。 -
多级反馈队列(MLFQ)调度算法
时间片算法和优先级算法的结合,针对不同进程使用不同的调度算法。 -
死锁的定义:如果一组进程中的每一个进程都在等待仅由该组进程中的其它进程才能引发的事件,那么该组进程是死锁的。(两个或两个以上的进程等候着一个永远不会发生的事件时所取的一种系统状态)
-
产生死锁的原因:
推进顺序不当
P、V操作死锁
因资源不足而争夺资源 -
产生死锁的必要条件:
互斥条件
请求和保持条件
不剥夺条件
环路等待条件 -
互斥条件是非共享设备所必需的,不仅不能改变,还应加以保证。
-
预防死锁:破坏请求和保持条件、破坏不剥夺条件、破坏环路等待条件。
-
当系统处于安全状态时,可避免发生死锁。当系统处于不安全状态时,则可能进入到死锁状态。
-
安全状态:如果能在有限的时间内,保证所有的进程都得到自己所需的全部资源,就称系统处于安全状态。
-
死锁的解除:抢占资源、终止(或撤销)进程
银行家算法
可利用资源向量Available
最大需求矩阵Max
分配矩阵Allocation
需求矩阵Need