第三章-进程管理之死锁要点.ppt_第1页
第三章-进程管理之死锁要点.ppt_第2页
第三章-进程管理之死锁要点.ppt_第3页
第三章-进程管理之死锁要点.ppt_第4页
第三章-进程管理之死锁要点.ppt_第5页
免费预览已结束,剩余21页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

deposit data begin avail mutex 送数据入缓冲区某单元 full mutex end remove data begin full mutex 取缓冲区中某单元数据 avail mutex end 生产者进程 消费者进程 分析 mutex avail mutex full 问题 当缓冲区空时 消费者进程执行时会出现什么情况 或缓冲区满时 生产者执行会出现什么情况 无法执行下去 僵持状态 3 8死锁问题3 8 1死锁的概念1 死锁的定义死锁是指各并发进程彼此互相等待对方所拥有的资源 且这些并发进程在得到对方的资源之前不会释放自己所拥有的资源 从而造成大家都想得到资源而又都得不到资源 各并发进程不能继续向前推进的状态 死锁图解 deposit data begin avail mutex 送数据入缓冲区某单元 full mutex end remove data begin full mutex 取缓冲区中某单元数据 avail mutex end 生产者进程 消费者进程 一般地 可以把死锁描述为 有并发进程P1 P2 Pn 它们共享资源R1 R2 Rm n 0 m 0 n m 其中 每个Pi 1 i n 拥有资源Rj 1 j m 直到不再有剩余资源 同时 各Pi又在不释放Rj的前提下要求得到Rk k j 1 k m 从而造成资源的互相占有和互相等待 在没有外力驱动的情况下 该组并发进程停止往前推进 陷入永久等待状态 2 死锁的起因死锁的起因 1 资源有限 竞争使用 2 进程推进不当死锁的根本原因 在于系统提供的资源个数少于并发进程所要求的该类资源数 怎么消除死锁 产生死锁的必要条件 互斥条件 不剥夺条件 部分分配 环路条件 3 产生死锁的必要条件互斥条件 并发进程所要求和占有的资源是不能同时被两个以上进程使用或操作的 进程对它所需要的资源进行排他性控制 不剥夺条件 进程所获得的资源在未使用完毕之前 不能被其他进程强行剥夺 而只能由获得该资源的进程自己释放 部分分配 进程每次申请它所需要的一部分资源 在等待新资源的同时继续占用已分配到的资源 环路条件 存在一种进程循环链 链中每一个进程已获得的资源同时被下一个进程所请求 3 8 2死锁的排除方法解决死锁的方法一般可分为 预防 避免 检测与恢复等三种 预防 是采用某种策略 限制并发进程对资源的请求 从而使得死锁的必要条件在系统执行的任何时间都不满足 避免 是指系统在分配资源时 根据资源的使用情况提前做出预测 从而避免死锁的发生 3 8 2死锁的排除方法 续 死锁检测与恢复 是指系统设有专门的机构 当死锁发生时 该机构能够检测到死锁发生的位置和原因 并能通过外力破坏死锁发生的必要条件 从而使得并发进程从死锁状态中恢复出来 预防 避免方法系统开销大 资源利用不充分常用检测与恢复方法排除死锁 死锁预防必要条件 互斥条件 不剥夺条件 部分分配 环路条件 预防方法1 打破资源的部分分配 即预先分配各并发进程所需要的全部资源 这种方法也有如下缺点 在许多情况下 一个进程在执行之前不可能提出它所需要的全部资源 无论所需资源何时用到 一个进程只有在所有要求资源都得到满足之后才开始执行 3 资源浪费 4 降低了进程的并发性 预防方法2 打破死锁的环路条件 即把资源分类按顺序排列 使进程在申请 保持资源时不形成环路 如有m种资源 则列出R1 R2 Rm 若进程Pi保持了资源Ri 则它只能申请比Ri级别更高的资源Rj Ri Rj 释放资源时必须是Rj先于Ri被释放 从而避免环路的产生 这种方法的缺点是限制了进程对资源的请求 而且对资源的分类编序也耗去一定的系统开销 死锁预防 续 2 死锁避免死锁避免可被称为动态预防 即系统采用动态分配资源 在分配过程中预测出死锁发生的可能性并加以避免的方法 死锁避免的一种基本模式是把进程分为多个步 其中每个步所使用的资源是固定的 且在一个步内 进程所保持的资源数不变 系统按一定的资源分配算法给各进程分配资源 进程的请求量不能大于空闲资源和该进程准备释放的资源 死锁避免详解 设并发进程 P1 P2 Pn n 1 不同类型的资源 R1 R2 Rm m 1 每一Ri有固定的单元数目 i 1 i n 系统按一定的资源分配算法给各进程分配资源 向量矩阵 来描述各进程的资源请求和获得系统空闲资源的状况 1 2 n 是一个n m维矩阵 n表示并发进程数目 m表示资源类型数目 ij i j 是进程Pi在某一执行步时为完成任务请求追加的资源Rj的单元数目 i被称为进程Pi的请求向量 1 2 n 是n m维分配矩阵 ij i j 是系统分配给进程Pi的资源Rj的单元数 i被称为分配向量 1 2 n 是n m维释放矩阵 ij i j 是进程Pi释放的资源Rj的单元数 1 2 m 是空闲资源向量 设 1 2 m 为系统能力向量 则有 设进程 i可被分为k个步 i 1 i 2 i k 其中 i 1 为初始步且 i k 为终止步 在每一步中进程保持资源和请求资源 在每一步执行结束后进程释放资源和系统分配资源 若对于 i 1 i 2 i k 有 i 1 F且成立 则进程 在结束序列中 如果所有并发进程都在结束序列中 则系统是安全的 无死锁 i r 表示进程Pi第r步时的请求向量 即 进程的请求向量不能大于空闲资源和该进程准备释放的资源 显然 死锁回避需要占去系统较大的开销 3 死锁的检测和恢复当进程进行资源请求时 1 死锁检测算法检查并发进程组是否构成资源的请求和保持环路 2 有限状态转移图和petriNet等技术都可用来有效地判断死锁发生 死锁的恢复办法 1 最简单的办法是终止各锁住进程 或按一定的顺序中止进程序列 直至已释放到有足够的资源来完成剩下的进程时为止 2 也可以从被锁住进程强迫剥夺资源以解除死锁 3 9线程1 为什么要引入线程 进程切换花销大 执行效率低2 线程的概念一个进程内的基本调度单位称为线程或称为轻权进程 Lightweightprocess 这个调度单位既可以由操作系统内核控制 也可以由用户程序控制 多线程与进程之间的关系 相同点 1 二者都具有ID 一组寄存器 状态 优先级以及所要遵循的调度策略 2 每个进程都有一个进程控制块 线程也拥有一个线程控制块 3 线程和子进程共享父进程中的资源 线程和子进程独立于它们的父进程 竞争使用处理器资源 线程和子进程的创建者可以在线程和子进程上实行某些控制 比如 创建者可以取消 挂起 继续和修改线程和子进程的优先级 线程和子进程可以改变其属性并创建新的资源 3 线程与进程的异同 不同点 1 线程是进程的一部分 2 启动一个线程所花费的空间远远小于启动一个进程所花费的空间 而且 线程间彼此切换所需的时间也远远小于进程间切换所需要的时间 3 系统在运行的时候会为每个进程分配不同的内存区域 但是不会为线程分配内存 4 与进程的控制表PCB相似 线程也有自己的控制表TCB 但是TCB中所保存的线程状态比PCB表中少多了 5 进程是系统所有资源分配时候的一个基本单位 线程是运行调度单位 6 进程只由系统调度 线程即可由系统调度也可由用户调度 线程的适用范围 1 不适用 很少做进程调度和切换的实时系统 个人数字助理系统中 2 适用 多处理机系统 网络或分布式系统 5 多线程的优点 P79 3 9 4线程的分类线程的两个基本类型 用户级线程和系统级线程 核心级线型 用户级线程 管理过程全部由用户程序完成 操作系统内核只对进程进行管理 核心级线程 由操作系统内核进行管理 操作系统内核给应用程序提供相应的系统调用和应用程序接口API 以使用户程序可以创建 执行 撤消线程 用户级线程占用的系统开销最小 系统级线程的开销则较进程开销小 但要大于用户级线程的开销 linux或solaris2 x 提供用户级线程和系统级线程两种功能 在这些操作系统中 线程的创建 调度和同步等仍在用户空间完成 而这些线程也可被映射到系统空间 并转化为系统级线程执行 两种线程比较 本章小结为什么要引入进程的概念 什么是进程 进程间的关系 P V原语信号量的概念同步 互斥 临界资源 进程间通讯方式 为什么会死锁 为什么引入线程 1 操作系统的功能和类型 2 作业的输入方式有几种 分别是什么 3 操作系统为用户提供的接口界面是什么 4 作业的概念及JCB 5 实现进程间的同步和互斥有几种方式 公用信号量和私用信号量使用的场合及含义是什么 填空 1 进程主要由 和 3部分内容组成 其中 是进程存在的唯一标志 而 部分也可以为其它进程共享 2 在一个单处理机系统中 若有5个用户进程 且当前时刻为用户态 则处于就绪状态的用户进程最多有 个 最少有 个 3 在多道程序系统中 进程之间存在着不同的制约关系 可以划分为两类 与 指进程间具有一定的逻辑关系 指进程间在使用共享资源方面的约束关系 4 临界资源的概念是 临界区是指 5 信号量的物理意义是当信号量值大于零

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论