调度算法
死锁的定义,必要条件与处理方法
银行家算法4-8
知识
处理机调度的层次:高级调度(作业调度,某种规则,外存---》内存),低级调度(进程调度,内存---》CPU,运行频率最高),中级调度(内存调度,外存---》内存)
进程调度任务:保存CPU现场信息(保存PCB),按某种算法选取进程,把CPU分配给进程
进程调度机制:排队器,分派器,上下文切换器
进程调度的方式:非抢占调度方式,抢占调度方式(优先级原则,短进程优先原则,时间片原则(时间片用完,去排序))
处理机调度算法的共同目标:资源利用率(CPU利用率=CPU有效工作时间/(CPU有效工作时间+CPU空闲时间)),公平性,平衡性,策略强制执行
批处理系统中处理机调度算法的目标:平均周转时间短(从作业提交到完成),系统吞吐量高(单位时间内完成的作业数),处理机利用率高
分时系统中处理机调度算法的目标:保证响应时间快,保证均衡性
实时系统中处理机调度算法的目标:保证满足截止时间的要求 ,保证可预测性
算法式:等待时间=进程完成时间-CPU运行时间,带权周转时间=周转时间/CPU服务时间
调度算法
调度算法:先来先服务调度算法(FCFS),短作业优先调度算法(SJF),优先级调度算法(PR),轮转调度算法(RR)
先来先服务调度算法(FCFS ,作业,进程):有利于长作业进程,不利于短进程。
短作业优先调度算法(SJF,作业,进程):它给出了最短的平均等待时间,进程模式(抢占式,非抢占式),缺点:必须预先知道作业的运行时间,对长作业不利,未考虑作业的紧张度。
优先级调度算法(PR,作业,进程):(抢占式,非抢占式),优先级类型--(静态,动态)
高响应比优先调度算法(HRRN,作业):优先级=响应比=1+(等待时间/要求服务的时间)=(等待时间+要求服务的时间)/要求服务的时间。 每次调度之前都需先计算响应比
轮转调度算法(RR的平均周转时间比SJF长,但响应时间更短一些):切换时机(启动一个新的时间片,时间片用完送就绪队列末尾),时间片大小的确定(系统对响应时间的要求,就绪队列中进程数目,系统处理能力)

多级队列调度算法:队列按优先级调度,每个队列内采用FCFS调度算法
基于公平原则的调度算法:性能保证,而非优先运行
实时调度:HRT任务(硬),SRT(软)
实时调度的基本条件:提供必要信息(就绪时间,开始/完成截止时间,处理时间,资源要求,优先级),系统处理能力强(采用单处理机系统,采用多处理机系统,Ci/Pi <=N),采用抢占式调度机制,采用快速切换机制(HRT,对中断的快速响应能力,快速的任务分派能力)
实时调度算法分类:非抢占式调度算法(非抢占式轮转调度算法,非抢占式优先级调度算法),抢占式调度算法(基于时钟中断的抢占式优先级调度算法,立即抢占的优先级调度算法)
最早截止时间优先算法(EDF,在最早截止时间前完成任务;任务截止时间越早,优先级越高):非抢占式调度方式用于非周期实时任务(最早截止时间的任务排在队列的前面),抢占式调度方式用于周期实时任务(任务截止时间越早,优先级越高)
最低松弛度优先算法(LLF,松弛度最低的任务排在最前面):松弛度=必须完成时间-其本身运行时间-当前时间;主要用于抢占式调度方式
优先级倒置(高优先级进程被低优先级进程延迟或阻塞):解决方法(进程进入临界区后,其所占用的处理机不允许被抢占)
实时调度的进程比普通进程具有更高优先级
死锁
死锁(不能获取自己所需的资源,不能释放当下占用的资源):
资源问题:可重用资源(互斥)和可消耗资源(动态创建和消耗),可抢占资源(处理机,内存等;不会引起死锁)和不可抢占资源(磁带机,打印机)
死锁产生原因:竞争不可抢占资源引起死锁,竞争可消耗资源引起死锁,进程推进顺序不当引起死锁(合法,非法)
产生死锁的必要条件(4个条件同时存在才产生死锁):互斥条件(资源独立),请求和保持条件(占有且等待),不可抢占