1.处理机调度
(1)处理机调度的基本概念:在多道程序系统中,一个作业被提交后,必须经过处理机调度后,方能获得处理机而执行
(2)高级、中级、低级调度:
内容 | 特点 | |
高级调度 | (1)用于决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程、分配必要的资源,然后 ,再将新创建的进程排在就绪队列上,准备执行。 (2)作业调度或长程调度 | (1)接纳多少个作业 (2)接纳哪些作业 |
中级调度 | (1)提高内存利用率和系统吞吐量 (2)中级调度或中程调度 | (1)当这些进程重又具备运行条件、且内存又稍有空闲时,由中级调度来决定把外存上的哪些又具备运行条件的就绪程序,重新调入内存,并修改其状态为就绪状态 (2)管理存储器中的对换功能 |
低级调度 | (1)用来决定就绪队列中的哪个进程应获得处理机,然后再由分派程序把处理机分配给该进程的具体操作。 (2)进程调度或短程调度 | (1)应用于多道批处理系统、分时和实时OS中 (2)保存处理机的现场信息到进程PCB中 (3)按照某种算法选取进程 (4)由分派程序把处理器分配给进程,恢复进程处理机现场
|
(3)低级调度的调度方式:
1)非抢占方式:在采用这种调度方式时,一旦把处理机分配给某进程后,便让该进程一直执行,直至该进程完成或发生某些事件而被阻塞时,才把处理机分配给其他进程。优点为简单,开销小,适用于大多数批处理的系统环境,但不适用于实时系统。
2)抢占方式:这种调度方式,允许调度程序根据某种原则,去暂停某个正在执行的进程,将已分配给该进程的处理机重新分配给另一进程。
(4)调度目标:
1)提高处理机的利用率
2)提高系统吞吐量
3)尽量减少进程的响应时间
4)防止进程长期得不到运行
(5)面向用户准则:
1)周转时间短
2)响应时间快
3)截止时间的保证
4)优先权准则
(6)调度算法:
算法分类 | 内容 | 特点 |
先来先服务 | (1)运行完成或阻塞后才放弃处理机 | (1)FCFS算法利于长作业(进程),而不利于短作业 |
短进程优先 | (1)短作业优先度算法SJF:用于作业调度;是从后备队列选择一个或若干个估计运行时间最短的作业,将他们调入内存运行 (2)短进程优先度算法SPF:用于进程调度;从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成。 | (1)算法对长作业不利 (2)不能保证紧迫性作业被及时处理 (3)由于作业的长短只是根据用户提供估计执行时间而定的,用户不一定估计准确,致使算法不一定能真正做到短作业优先调度 |
时间片轮转 | (1)在时间片轮转法中,系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。 (2)时间片处理过程:当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。 (3)以此保证就绪队列中的所有进程,在一给定的时间内,均能获得一时间片的处理机执行时间,系统能在给定的时间内,响应所有用户的请求。 | (1)短时间片有利于短作业,使其较快完成,但会频繁发生中断,增加系统开销 (2)长时间片未有效利用系统资源,退化为FCFS,无法满足交互式用户需求 (3)对于短的计算型进程有利,对IO进程不利 (4)常用于分时系统和事务处理系统 |
基于优先级的调度算法 | (1)把处理机分配给就绪队列中优先级最高的进程。分为两种类型:非抢占式优先权算法和抢占式优先权调度算法 (2)非抢占式优先权算法:系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成。或因发生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的进程 (3)抢占式优先权调度算法:在执行期间,只要又出现了另一个其优先权更高的进程,进程调度程序就立即停止当前进程的执行。重新将处理机分配到新到的优先权最高的进程 | (1)能更好的满足紧迫作业的要求,常用于要求比较严格的实时系统中,以及对性能要求较高的批处理和分时系统中。
|
剩余时间最短者优先 | (1)剩余时间最短者优先调度算法是按各进程剩余执行时间最短的进程优先调度 (2)必须记录各进程过去的服务时间,才能求出剩余的时间 | (1)这种算法能获得更好的平均周转时间 |
高响应比优先调度算法 | (1)如果作业的等待时间相同,则要求服务的时间愈短,其优先权愈高,因而该算法有利于短作业 (2)当要求服务的时间相同时,作业的优先权决定于其等待时间,等待时间愈长,其优先权愈高。即是实现先来先服务 (3)对于长作业,作业的优先级可以随等待时间增加而提高,当其等待时间足够长,优先级便可升到很高 | (1)既照顾了短作业,又考虑作业到达的先后次序,不会使长作业长期得不到服务 (2)利用该算法每次调度之前,都需先做响应比的计算,会增加系统开销。 |
多级反馈队列调度法 | (1)设置多个就绪队列,并为各个队列赋予不同的优先级。第一个队列优先级最高,之后的依次降低 (2)当一个新进程进入内存后,首先将他放入第一队列末位,按照FCFS原则排队等待调度 (3)仅当第一队列空闲时,调度程序才调度到第二队列中的进程运行 | (1)多级反馈队列调度算法具有较好的性能,能较好的满足各种类型用户的需要 (2)对短作业用户有利 (3)用户不必担心长作业长期得不到处理 |
(7)实时系统和实时任务:
1)实时系统:计算机及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致的运行
2)实时任务:是指具有及时性要求的、经常被重复执行的特定进程
3)实时任务分类:
按任务执行时是否呈现周期性来划分 | 根据对截止时间的要求来划分 |
periodic(周期性)实时任务 | hard real-time task系统必须满足任务对截止时间的要求,否则可能出现难以预测的结果 |
aperiodic(非周期性)实时任务 | soft real tine task软实时任务 |
4)实时系统应用分类
实时控制系统 | 指要求进行实时控制的系统,用于生产过程的控制,实时采集现场数据,并对所采集的数据进行及时处理 |
实时信息处理系统 | 能对信息进行实时处理的系统 |
5)实现实时调度系统的基本条件
实时调度系统的基本条件 | 内容 |
提供必要的信息 | (1)就绪时间 (2)开始截止时间和完成截止时间 (3)处理时间 (4)资源要求 (5)优先级 |
系统处理能力强 | (1)在实时系统中,通常都有多个实时任务,若处理机的处理能力不够强,则有可能是因为处理机忙不过来而使某些实时任务不能得到及时处理 (2)解决的方法时提高系统的处理能力:即对单处理机系统,增强其处理能力,以此显著地减少对每一个任务地处理时间 或是采用多处理机系统 |
采用抢占式调度机制 | (1)在含有硬实时任务地实时系统中,广泛采用抢占机制. (2)当一个优先权更高地任务到达时,允许暂停当前任务,而令优先级更更高的任务立即投入运行 |
具有快速切换机制 | (1)对外部中断地快速响应能力 (2)快速的任务分派能力 |
6)常用地几种实时调度算法
最早截止时间优先级算法 | (1)该算法要求在系统中保持一个实时任务就绪队列,该队列按照各任务截止时间地早晚排序 (2)具有最早截止时间地任务排在队列地最前面,调度程序总是选择就绪队列中的第一个任务,为之分配处理机 |
最低松弛度优先算法 | (1)松弛度=完成截止时间-剩余运行时间-当前时间 (2)松弛度值最小的任务排在队列最前面。 |
(8)优先级倒置:
1)优先级倒置定义:高优先级的进程或者线程被低优先级的进程或者线程延迟或者阻塞
2)优先级倒置的解决方式:
1.临界区较短可规定进程进入临界区后所占用的处理机不允许被抢占
2.动态优先级继承方法:防范中间优先级进程插入
2.进程死锁
(1)死锁定义:多个进程在运行过程中因为争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,他们都将无法再向前推进。
(2)产生死锁原因:
1)竞争资源:
1.竞争非剥夺性资源,由于数量不能满足诸进程运行的需要,会使进程在运行过程中,因为争夺这些资源而陷入僵局。
2.竞争临时性资源:竞争可以创造和撤销的消耗性资源可能引起死锁
2)进程间推进顺序非法:进程推进顺序不合法,进入不安全状态,引发进程死锁
(3)产生死锁的必要条件:
互斥条件 | 进程对分配到的资源进行排他性使用 |
请求和保持条件 | 指进程已经保持了至少一个资源,但又提出了新的资源请求 |
不剥夺条件 | 进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完成时由自己释放 |
环路等待条件 | 指在发生死锁时,必然存在一个进程——资源的环形链 |
(4)解决死锁的方法:
预防死锁 | 通过设置某些限制条件,去破坏产生死锁的四个必要条件中的一个或几个条件,来预防发生死锁 | (1)摒弃“请求和保持”条件:系统规定所有进程在开始运行之前,都必须一次性地申请其在整个运行过程中所需要的全部资源.简单易于实现安全,但资源被浪费严重 (2)摒弃“不剥夺”条件:当一个已经保持了某些资源的进程,再提出新的资源请求而不能立即得到满足时,必须释放它已经保持的所有资源。缺点是实现复杂且要付出很大代价 (3)摒弃“环路等待”条件:系统将所有资源按类型进行线性排队,并赋予不同序号。
|
避免死锁 | 在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免发生死锁 | (1)安全状态:指系统能按照某种进程顺序,依次为进程分配其所需资源,直至其最大需求,使每个进程都可以顺利地完成。 (2)银行家算法 (3)避免死锁地限制条件:1)预先声明每个进程需要的资源总量。2)进程之间相互独立,其执行顺序取决于系统安全。3)系统必须提供固定数量地资源供进程使用。4)若进程占有系统资源,则不能让其退出系统
|
检测死锁 | 通过系统设置的检测机构,及时的检测出死锁的发生,并精确的确定与死锁有关的进程和资源 | (1)当且仅当系统某状态S所对应地资源分配图是不可完全化简的,则S时死锁状态,该充分条件称为死锁定理。 |
解除死锁 | 当检测到系统种已发生死锁时需将进程从死锁状态中解脱出来,常用方法未撤销或挂起一些进程 | (1)剥夺资源:从其它进程剥夺足够数量的资源给死锁进程,以解除死锁状态。 (2)撤销进程:是使全部死锁进程都夭折掉;或者按照某种顺序逐个地撤消进程,直至有足够的资源可用,使死锁状态消除为止。 |