1 / 105

第三章 处理机的调度和死锁

第三章 处理机的调度和死锁. 第三章 处理机调度与死锁. 3.1 处理机调度的基本概念 3.2 调度算法 3.3 实时调度 3.4 多处理机系统中的调度 3.5 产生死锁的原因和必要条件 3.6 预防死锁的方法 3.7 死锁的检测与解除. 3.1 处理机调度的基本概念. 3.1.1 高级、中级和低级调度 1. 高级调度 (作业调度、长程调度) 将外存作业调入内存,创建 PCB 等,插入就绪队列。 一般用于批处理系统,分 / 实时系统一般直接入内存,无此环节。 调度特性 接纳作业数(内存驻留数) 太多 ―――> 周转时间 T 长

gisela
Télécharger la présentation

第三章 处理机的调度和死锁

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章处理机的调度和死锁

  2. 第三章 处理机调度与死锁 • 3.1 处理机调度的基本概念 • 3.2 调度算法 • 3.3 实时调度 • 3.4 多处理机系统中的调度 • 3.5 产生死锁的原因和必要条件 • 3.6 预防死锁的方法 • 3.7 死锁的检测与解除

  3. 3.1 处理机调度的基本概念 • 3.1.1高级、中级和低级调度 • 1.高级调度(作业调度、长程调度) • 将外存作业调入内存,创建PCB等,插入就绪队列。 • 一般用于批处理系统,分/实时系统一般直接入内存,无此环节。 • 调度特性 • 接纳作业数(内存驻留数) 太多―――> 周转时间T长 太少―――> 系统效率低 • 接纳策略:即采用何种调度算法:FCFS、短作业优先等

  4. 3.1处理机调度的基本概念 • 2.低级调度(进程调度,短程调度) 决定就绪队列中哪个进程获得处理机,然后由分派程序(Dispatcher)分派处理机。 • 1)非抢占方式: • 在采用非抢占调度方式时,可能引起进程调度的因素可归结为这样几个:① 正在执行的进程执行完毕, 或因发生某事件而不能再继续执行; ② 执行中的进程因提出I/O请求而暂停执行;③ 在进程通信或同步过程中执行了某种原语操作,如P操作(wait操作)、Block原语、Wakeup原语等。 • 简单,实时性差

  5. 3.1处理机调度的基本概念 • 2)抢占方式 (1)时间片原则 (2)优先权原则 (3)短作业优先原则。

  6. 3.1处理机调度的基本概念 • 3.中级调度(中程) • 为提高系统吞吐量和内存利用率而引入的一内------外存对换功能(换出时,进程为挂起或就绪驻外状态) • 运行频率:低级调度>中级调度>高级调度。

  7. 3.1处理机调度的基本概念 处理机的三级调度

  8. 中级调度 高级调度 高级调度 中级调度 中级调度 低级调度 高级调度 新建态 终止态 运行态 挂起就绪态 挂起等待态 就绪态 等待态 处理器调度与进程状态转换

  9. 3.1.2调度的队列模型 • 1.仅有进程调度的队列模型 时间片完 进程完成 交互用户 CPU 就绪队列 进程调度 事件出现 等待事件 阻塞队列

  10. 3.1.2调度的队列模型 • 2.具有高/低级模型 作业调度 时间片完 进程完成 CPU 就绪队列 后备队列 进程调度 等待事件1 事件1出现 阻塞队列 等待事件2 事件2出现 阻塞队列

  11. 等待事件 超时 3.1.2调度的队列模型 • 2.同时具有三级调度的调度队列模型 高级调度 后备作业队列 就绪队列 低级调度 完成 处理器 中级调度 挂起就绪队列 交互式用户 中级调度 挂起等待队列 事件 出现 等待队列

  12. 3.1.3选择调度方式和算法的若干准则 • 一、面向用户的准则 • 1.周转时间短(常用于批处理系统) • 概念:作业从提交――> 完成的时间. • 包括四部分时间: (1)驻外等待调度时间 (2)驻内等待调度时间 (3)执行时间 (4)阻塞时间

  13. 3.1.3选择调度方式和算法的若干准则 • 一、面向用户的准则 • 平均周转时间 • 平均带权周转时间 可见带权w越小越好,Ts为实际服务时间。 作业的周转时间T与系统为它提供服务的时间TS之比

  14. 3.1.3选择调度方式和算法的若干准则 • 一、面向用户的准则 • 2.响应时间快:(对交互性作业) • 概念:键盘提交请求到首次响应时间 • 包括三部分时间 (1)输入传送时间 (2)处理时间 (3)响应传送时间 • 3.截止时间的保证(特别于实时系统) • 4.优先权准则:(即需要抢占调度)

  15. 3.1.3选择调度方式和算法的若干准则 • 二、面向系统的准则 • 1.吞吐量高(特别于批处理):单位时间完成作业数 • 2.处理机利用率好 (因CPU贵,特别于大中型多用户系统) • 3.各类资源的平衡利用

  16. 3.2调度算法 • 3.2.1先来先服务和短作业(进程)优先调度算法 • 1.FCFS • 特点:简单,有利于长作业 即CPU繁忙性作业

  17. 0 0 1 1 1 1 101 100 1 101 100 100 102 102 202 199 1.99

  18. 3.2调度算法 • 2.短作业进程优先调度算法:SJ(P)F • 对短作业或短进程优先调度 • 特点: 对长作业不利 完全未考虑作业的紧迫程度 估计时间不易确定

  19. 图3.4FCFS和SJF比较 4 7 12 14 18 4 6 10 11 14 9 1 2 2.8 2 5.5 3.5 4 9 18 6 13 4 8 16 3 9 8 3.1 1.5 2.25 2.1 1 2.67

  20. 3.2.2高优先权优先调度算法 • 1.优先权调度算法类型 • 非抢占式优先权算法 主要用于批处理系统中;也可用于某些对实时性要求不严的实时系统中。 • 抢占式优先权算法 常用于要求比较严格的实时系统中, 以及对性能要求较高的批处理和分时系统中

  21. 3.2.2高优先权优先调度算法 • 2.优先权类型: • 1)静态优先权: • 在创建进程时确定,且在进程整个运行期不变。 • 确定优先权依据 • (1)进程类型 • (2)进程对资源的需求; • (3)根据用户需求。 • 特点:简单,但低优先权作业可能长期不被调度。

  22. 3.2.2高优先权优先调度算法 • 2.优先权类型: • 2)动态优先权: • 动态优先权是指,在创建进程时所赋予的优先权,是可以随进程的推进或随其等待时间的增加而改变的,以便获得更好的调度性能。

  23. 3.2.2高优先权优先调度算法 • 3.高响应比优先算法: • 优先权的变化规律可描述为: 由于等待时间与服务时间之和,就是系统对该作业的响应时间,故该优先权又相当于响应比RP。据此,又可表示为

  24. 3.2.2高优先权优先调度算法 • (1) 如果作业的等待时间相同,则要求服务的时间愈短,其优先权愈高,因而该算法有利于短作业。 • (2) 当要求服务的时间相同时,作业的优先权决定于其等待时间,等待时间愈长,其优先权愈高,因而它实现的是先来先服务。 • (3) 对于长作业,作业的优先级可以随等待时间的增加而提高,当其等待时间足够长时,其优先级便可升到很高, 从而也可获得处理机。

  25. 3.2.3基于时间片的轮转调度算法 • 1.时间片轮转 • 所有就绪进程按先来先服务的原则,排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片. • 时间片大小的确定 • 一般从几ms到几百ms. • 太大:退化为FCFS; • 太小:系统开销过大 • 系统对响应时间的要求:T=nq 用户数 时间片

  26. 3.2.3基于时间片的轮转调度算法 • 思考题: • 1.假设就绪队列中有10个进程,系统将时间片设为200ms,CPU进行进程切换要花费10ms,试问系统开销所占的比率约为多少? 答案:10/(200+10)=4.8% • 2.如果分时操作系统的时间片一定,那么,则相应时间越长。 A.用户数越少 B.用户数越多 C.内存越少 D.内存越多 答案:B

  27. 3.2.3基于时间片的轮转调度算法 • 2.多级反馈队列调度 (1)应设置多个就绪队列,并为各个队列赋予不同的优先级和时间片。在优先权愈高的队列中,为每个进程所规定的执行时间片就愈小。 (2) 当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。 (3) 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行; 仅当第1~(i-1) 队列均空时,才会调度第i队列中的进程运行。

  28. 图3-5多级队列反馈调度算法 S1 至CPU 就绪队列1 S2 至CPU 就绪队列2 S3 至CPU 就绪队列3 Sn 至CPU 就绪队列n 时间片:S1<S2<S3

  29. 3.2.3基于时间片的轮转调度算法 • 3.多级反馈队列调度算法的性能 • 特点:长、短作业兼顾,有较好的响应时间 • (1)短作业一次完成; • (2)中型作业周转时间不长; • (3)大型作业不会长期不处理。

  30. 作业 • 1.下表给出作业1、2、3到达时间和运行时间。采用短作业优先调度算法和先来先服务调度算法,试问平均周转时间各为多少?是否还有更好的调度策略存在?(时间单位:小时,以十进制进行计算。)

  31. 作业 • 2.假设有四个作业,它们提交、运行时间如下表所示。若采用响应比高者优先调度算法,试问平均周转时间和带权周转时间为多少? (时间单位:小时,以十进制进行计算。)

  32. 作业 • 3.若在后备作业队列中等待运行的同时有三个作业,已知它们各自的运行时间为a、b、c,且满足a<b<c,试证明采用短作业优先调度算法能获得最小平均周转时间。

  33. 作业 • 4.在单CPU和两台输入/输出设备(I1,I2)的多道程序设计环境下,同时投入三个作业Job1、 Job2、 Job3运行。这三个作业对CPU和输入/输出设备的使用顺序和时间如下所示: Job1: I2(30ms);CPU(10ms);I1(30ms);CPU(10ms);I2(20ms|) Job2: I1(20ms);CPU(20ms); I2(40ms|) Job3: CPU(30ms);I1(20ms);CPU(10ms);I1(10ms|) 假定CPU 、 I1、I2都能并行工作, Job1优先级最高, Job2次之, Job3优先级最低,优先级高的作业可以抢占优先级低的作业的CPU但不抢占I1和I2。试求: (1)三个作业投入到完成分别需要的时间。 (2)从投入到完成的CPU利用率。 (3)I/O设备利用率

  34. 3.3实时调度 • 随着移动通信和网络计算技术的发展,实时系统正变得越来越重要。操作系统是实时系统中最重要的部分之一。它负责在用户要求的时限内进行事件处理和控制。实时系统与其他系统的最大区别在于,其处理和控制的正确性不仅仅取决于计算的逻辑结果,而且取决于计算和处理结果产生的时间。因此,实时系统的调度与工业生产中的生产过程调度有许多相同之处,即把给定的任务,按所要求的时限调配到相应的设备上去处理完成。

  35. 3.3.1实现实时调度的基本条件 • 1.提供必要的调度信息 • (1)就绪时间 • (2)开始/完成截止时间 • (3)处理时间 • (4)资源要求 • (5)优先级

  36. 3.3.1实现实时调度的基本条件 • 2.系统处理能力强 假定系统中有m个周期性的硬实时任务,它们的处理时间为Ci,周期时间为Pi,则在单处理机情况下,应满足限制条件: 采用多处理机系统时,应满足: (N为处理机的数量)

  37. 3.3.1实现实时调度的基本条件 • 3.采用抢占式调度机制 • 在含有硬实时任务的实时系统中,广泛采用抢占机制。但调度机制比较复杂。 • 对于一些小的实时系统,如果能预知任务的开始截止时间,则可采用非抢占调度机制,以简化调度程序和系统开销。但要满足: • 实时任务小 • 执行完关键性程序和临界区后,能及时阻塞自己,以释放CPU。

  38. 3.3.1实现实时调度的基本条件 • 4.具有快速切换机制 • 具有快速响应外部中断能力。 • 具有快速硬件中断机构 • 禁止中断的时间间隔尽量短 • 快速任务分派 • 使系统中的每个运行功能单位适当的小

  39. 3.3.2实时调度算法的分类 • 按任务性质分 • 硬实时调度算法和软实时调度算法 • 按调度方式分 • 非抢占调度算法和抢占调度算法 • 按调度时间分 • 静态调度算法和动态调度算法 • 多处理机系统中分 • 集中式调度和分布式调度 在进程执行前确定调度次序 在进程执行过程中确定调度次序

  40. 3.3.2实时调度算法的分类 • 1.非抢占式调度算法 • (1)非抢占式轮转调度算法 • 响应时间数秒至数十秒 不太严格的实时系统 • (2)非抢占式优先调度算法 • 响应时间数百毫秒 较为严格的实时任务(赋高优先权) • 2.抢占式调度算法(响应时间数十毫秒 ) • (1)基于时钟中断的抢占式优先权调度算法 • 调度延迟可降为几十毫秒至几毫秒 • (2)立即抢占immediate preemption • 只要不在临界区即抢占(中断引发) • 调度延迟可降为几毫秒至100微秒,甚至更低

  41. 调度实时进程运行 实时进程要求调度 进程1 进程2 进程n 实时进程 调度时间 a 非抢占轮转调度 实时进程要求调度 当前进程运行完成 当前进程 实时进程 调度时间 b 非抢占优先权调度 处理机调度与死锁

  42. 实时进程要求调度 时钟中断到达时 实时进程 当前进程 实时进程 当前进程 调度时间 c 基于时钟中断抢占的优先权抢占调度 实时进程要求调度 抢占时刻(其它中断) 当前进程 实时进程 调度时间 b 立即抢占优先权调度 处理机调度与死锁

  43. 3.3.3常用的几种实时调度算法 • 1.最早截止时间优先EDF算法 • 根据任务的截止时间来确定任务的优先级 • 截止时间越早,优先级越高 • 可以是抢占式或非抢占式

  44. 最早截止时间优先EDF例 1 3 4 2 开始截止时间 1 3 4 2 任务执行 t 任务到达 1 2 3 4 图3-7 EDF算法用于非抢占调度方式

  45. 3.3.3常用的几种实时调度算法 • 2.最低松弛度优先即LLF算法: • 该算法根据任务紧急(或松弛)的程度来确定任务的优先级. • 若A进程需在200ms时完成,其本身运行需要100ms,当前时刻是10ms,则A的松弛度为:200-100-10=90 • 主要用于可抢占的调度方式中 • 实现该算法时要求系统中有一个按松弛度排序的实时任务就绪队列.

  46. 3.3.3常用的几种实时调度算法 • 例:在一个实时系统中,有两个周期性实时任务A和B,任务A要求每20ms执行一次,执行时间为10ms;任务B要求50ms执行一次,执行时间为25ms. A5 A1 A2 A3 A4 A6 A7 A8 t 0 20 40 60 80 100 120 140 160 B1 B2 B3 图3-8 A/B任务每次必须完成的时间

  47. 最低松弛度优先LLF算法(2) A1(10) A2(10) A3(10) A4(10) t1 t2 t3 t4 t5 t6 t7 t8 t 0 10 20 30 40 50 60 70 80 t1=0 B1(20) B1(5) B2(10) B2(15)

  48. 作业 • 1.对下面的5个非周期性实时任务,按最早开始截止时间优先权调度算法应如何进行CPU调度? 提示:按抢占式和非抢占式分别计算

  49. 作业 • 2.在一个实时系统中,有三个周期性实时任务,任务A要求每20ms执行一次,执行时间为10ms;任务B要求50ms执行一次,执行时间为10ms;任务C要求50ms执行一次,执行时间为15ms,应如何按最低松弛度优先算法对它们进行CPU调度?

  50. 3.4多处理机系统中的调度 • 提高计算机系统性能的主要途径有两条: • 一是提高构成计算机的元器件的运行速度,特别是处理器芯片的速度 • 二是改进计算机系统的体系结构,特别是在系统中引入多个处理器或多台计算机,以实现对信息的高度并行处理,达到提高系统吞吐量和可靠性的目的。 • 20世纪70年代出现了多处理器系统即MPS (MultiProcessor System).

More Related