操作系统原理课件五资源分配与调度.pptVIP

  • 2
  • 0
  • 约1.88千字
  • 约 45页
  • 2017-12-13 发布于江苏
  • 举报

操作系统原理课件五资源分配与调度.ppt

操作系统原理课件五资源分配与调度

第五章 资源分配与调度;5.1 资源管理概述 5.1.1 资源管理的目的和任务;5.1 资源管理概述 5.1.1 资源管理的目的和任务;5.2 资源分配机构;5.3资源分配策略 5.3.1 概述;5.3资源分配策略 5.3.1 概述;5.4 死锁 5.4.1 死锁的概念;5.4 死锁 5.4.1 死锁的概念;5.4 死锁 5.4.1 死锁的概念;5.4 死锁 5.4.1 死锁的概念 例3:生产者-消费者问题;5.4 死锁 5.4.1 死锁的概念;5.4 死锁 5.4.2 死锁的起因;5.4 死锁 5.4.2 死锁的起因;互斥条件: 进程对所分配的资源进行排他性使用。 不可剥夺条件: 进程已经获得资源,在未使用完之前,不能被剥夺,只能等到使用完成时由自己释放。; ;一、解决死锁问题的几个策略 为了不发生死锁,必须设法破坏产生死锁的四个必要条件之一。 条件1:难以否定,但可采用相应的技术,如利用假脱机技术,即用可共享使用的设备模拟非共享的设备; 条件2:容易否定,可制定相应的规则即可,例如,当一个进程(程序)申请某资源被拒绝,则必须释放已占用的资源,如需要再与其它所需资源一起申请。对CPU还可进行可剥夺分配。;条件3:也是很容易否定的,只要分配策略上规定一个进程(或程序)一次将所需资源一次申请到位。用完后释放。可以全部用完后,统一释放,也可使用完后立即释放,只要是一次申请到的,系统就不会出现死锁。 条件4:实际上系统不采用部分分配,也就破坏了环路条件。 二、解决死锁的基本方法 1、预防死锁; 2、避免死锁; 3、检测死锁和解除死锁。;一、静态资源分配法 预先分配一个进程要用的所有资源是防止死锁的一种安全而简单的方法,但设备的使用效率太低。其缺点也是明显的: 1、一个用户(进程)在程序运行之前很难提出将要使用的全部设备; 2、设备(资源)的浪费太大,有些资源在进程运行过程中可能只有很少的时间才用到,有的甚至不会用到,例如,一个分支语句。 ;5.4 死锁 5.4.3 死锁的预防;5.4 死锁 5.4.3死锁的预防; 为了提高设备的利用率,应采用动态的设备分配方法,但应设法避免发生死锁,若存在发生死锁的可能性,则拒绝分配。 预防死锁: 采用的分配策略本身就否定了产生死锁的四个必要条件之一,这就保证了不会发生死锁; 死锁避免: 是在动态分配资源的策略下采用某种算法来预测可能发生的死锁,从而拒绝可能产生死锁的某个资源的请求。;5.4 死锁 5.4.4 死锁的避免;5.4 死锁 5.4.4 死锁的避免;1、概念 安全状态:系统按照某种序列为多个进程分配资源直到最大需求,如果能够保证所有进程全部顺利执行完毕,则称系统是安全的。;银行家算法:实例1—单一资源的银行家算法;2、采取的数据结构 (1)可利用资源量Available:向量,Available[j] = k,表示Rj资源有k个,其数值随该类资源的分配和回收而动态改变。 (2)最大需求矩阵Max:进程对资源的需求量。max[I, j] = k, 表示Pi对Rj的最大需求为k个。 (3)分配矩阵Allocation[i]: Allocation[i, j] = k,Rj资源已经分配了k个给Pi (4)需求矩阵Need[i] :还需要的资源数。 Need[Ii, j] = k,Pi尚需要Rj资源k个。 (5)请求矩阵Request[i] 其中存在如下关系: Max = need + allocation;5.4 死锁 5.4.4 死锁的避免;5.4 死锁 5.4.4 死锁的避免;5.4 死锁 5.4.4 死锁的避免;5.4 死锁 5.4.4 死锁的避免;5.4 死锁 5.4.4 死锁的避免;5.4 死锁 5.4.4 死锁的避免;5.4 死锁 5.4.4 死锁的避免;5.4 死锁 5.4.4 死锁的避免;5.4 死锁 5.4.5 死锁的检测和恢复;5.4 死锁 5.4.5 死锁的检测和恢复;5.4 死锁 5.4.5 死锁的检测和恢复;5.4 死锁 5.4.5 死锁的检测和恢复;5.4 死锁 5.4.5 死锁的检测和恢复;5.4 死锁 5.4.5 死锁的检测和恢复;5.4 死锁 5.4.5 死锁的检测和恢复;5.4 死锁 5.4.5 死锁的检测和恢复;5.4 死锁 5.4.5 死锁的检测和恢复;5.4 死锁 5.4.5 死锁的检测和恢复;5.4 死锁 5.4.6 处理死锁的综合方式

文档评论(0)

1亿VIP精品文档

相关文档