操作系统教程—Linux实例分析 孟庆昌 第8章 死锁new.ppt

第8章 死锁 8.1 概述 8.2 产生死锁的条件 8.3 死锁的预防 8.4 死锁的避免 8.5 死锁的检测与恢复 8.6 处理死锁的综合方式 习题 8.1 概 述 8.1.1 死锁的概念 死锁 Deadlock 是若干进程因系统资源有限且操作不当而造成的带有全局危害性的现象。 我们考虑下面这个例子: 设系统中只有一台打印机和一台读卡机, 它们被进程A和进程B共用。这两台物理设备的特性决定了对它们的使用方式必须是顺序的, 即一个进程用完了, 另一个进程才能用。 进程A和B各自对资源的申请使用情况如下: A:申请读卡机 B:申请打印机 申请打印机 申请读卡机 使用读卡机 使用打印机 使用打印机 使用读卡机 释放读卡机 释放打印机 释放打印机 释放读卡机 由于进程并行工作, 就可能出现这样的执行序列: A: 申请读卡机 B: 申请打印机 A: 申请打印机 B: 申请读卡机 所谓死锁就是指在一个进程集合中的每个进程, 都在等待仅由该集合中的另一进程才能引发的事件, 而无限期地僵持下去的局面。 8.1.2 资源概念 当若干进程取得对设备、 文件等资源的独占性访问权时, 就可能出现死锁。 资源可以是硬件设备(如打印机、 磁带驱动器、 扫描仪等), 也可以是一组信息(如数据库中一个加锁的记录、 一个信号量、 系统表格中的一个表项等)。 1. 进程对资源的操作 系统中包括有限的资源, 要分给大量的计算进程。 资源可分为若干类型, 每类都有若干个实体。 CPU周期、 内存空间、 文件和I/O设备 如打印机、 磁带驱动器、 读卡机等 都是资源类型的例子。 一个进程在使用资源之前要申请资源, 在用完之后必须释放该资源。 在通常的操作方式下, 进程只能按下述序列使用资源: 1) 申请 如果所申请的资源因被其他进程占用而不能立即得到, 那么申请资源的进程必须等待, 直至其他进程释放资源为止。 2) 使用 进程对该资源进行操作 如在行式打印机上打印结果 。 3 释放 进程释放它以前申请并分配到的资源。 2. 可剥夺资源与不可剥夺资源 系统中一般都有多种资源。 按照占用方式来分, 可以分为两类: 可剥夺资源与不可剥夺资源。 可剥夺资源是另外进程可以从拥有它的进程那里把它剥夺过去为己所用, 并且不会产生任何不良影响。 在2.4.7节的同步计数例子中, 如果将供者和用者代码中的前两个P操作的位置颠倒, 成为: 供者 用者: L1:P mutex L2:P mutex P empty P full   8.1.3 进程推进顺序与死锁 图8-1示出了进程推进顺序对引发死锁的影响。 设有两个进程A和B, 竞争两个资源R和S, 这两个资源都是不可剥夺资源, 因此必须在一段时间内独占使用。 进程A和B的一般形式是: 进程A 进程B   申请R 申请S 申请S 申请R   释放R 释放S 释放S 释放R 图8-1中, X轴和Y轴分别表示进程A和B的执行过程, 从原点出发的不同的折线分别表示两个进程以不同速度推进时所合成的路径。 在单CPU系统中, 任何时候只能有一个进程处于执行状态。 路径中的水平线段表示进程A在执行, 进程B等待; 而垂直线段表示进程B在执行, 进程A等待。 (1) 进程B获得资源S, 然后又获得R, 后来释放S和R。 当进程A恢复执行时, 它能够获得这两个资源。 A和B都可进行下去。 (2) 进程B获得资源S, 然后又获得R; 接着进程A执行, 因未申请到资源R而阻塞, B释放S和R。 当A恢复执行时, 能够获得这两个资源。 (3) 进程B获得资源S, 而进程A申请到R。 此时, 死锁不可避免, 因为B向下执行会阻塞在R上, 而A会阻塞在S上。 (4) 进程A获得资源R, 接着进程B获得资源S。 此时, 死锁不可避免。 因为向下执行, B将在R上阻塞, A将在S上阻塞。 (5) 进程A获得资源R, 接着获得S。 进程B执行, 由于未申请到S而阻塞。 之后, A释放资源R和S, 当B恢复执行时, 它能获得这两个资源。 (6) 进程A获得资源R和S, 然后释放R和S。 当进程B恢复执行时, 它能获得这两个资源。 可见, 是否产生死锁既取决于动态执行过程, 也取决于应用程序的设计。 例如, 若进程A不必同时申请两个资源, 代码改为: 进程A  申请R  释放R 申请S  释放S 8.2 产生死锁的条件 8.2.1 产生死锁的必要条件 1. 互斥条件 即某个资源在一段时间内只能由一个进程占有, 而不能同时被两个或两个以上的进程占有。 这种独占资源如平板式绘图仪、 CD-ROM驱动器、 打印机等等, 必须在占有该资源的进程主动释放它之后, 其他进程才能占有该资源, 这是

linux死锁的例子,操作系统教程—Linux实例分析 孟庆昌 第8章 死锁new.ppt相关推荐

  1. linux孟庆昌第六章课后题_第六章课后练习题答案

    第四部分课后练习题 一.单项选择题 1 . 某投资方案的年营业收入为元, 年总营业成本为 60000 元, 其中年折旧额 10000 元,所得税率为 33 %,该方案的每年营业现金流量为 ( B ) ...

  2. linux孟庆昌第六章课后题_第六章 参数估计-矩估计:通过课后题理解矩估计

    具体思路(一般是求一阶原点矩和一阶中心矩即期望与方差) 根据总体的分布以及概率函数,计算出总体的数学期望与方差,得到总体矩的函数 用样本矩的函数取替换总体矩的函数. 题目一-基础概念题:矩估计的定义 ...

  3. Linux教程(第5版) 孟庆尝 牛欣源 张志华 -课后习题答案

    文章目录 前言 Linux教程(第5版) 孟庆尝 牛欣源 张志华 思考题1 思考题2 思考题3 思考题4 思考题5 思考题6 思考题7 思考题8 dd if=/dev/hda of=/root/mbr ...

  4. 计算机操作系统原理课件,【】计算机操作系统原理与实例分析PPT课件(完整版 全)精品.ppt...

    []计算机操作系统原理与实例分析PPT课件(完整版 全)精品 4.2 计算机I/O子系统的组成 4.2.1 I/O系统的结构 (1) 总线型I/O系统的结构 总线型I/O系统结构 (2) 通道型I/O ...

  5. 【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第七章

    CSDN话题挑战赛第2期 参赛话题:学习笔记 前言 此书在最后的附录 B 中,有给出部分重难点部分的参考答案.如果想要此书习题答案,可点以下链接:为一个压缩包,以图片形式,习题图片按章节排序,答案图片 ...

  6. 【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第三章

    前言 此书在最后的附录B中,有给出部分重难点部分的参考答案.会在最后放上图片.如果想要此书习题答案,可点以下链接:为一个压缩包,以图片形式,习题图片按章节排序,答案图片按书页排序. <操作系统原 ...

  7. 【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第二章

    前言 此书在最后的附录B中,有给出部分重难点部分的参考答案.会在最后放上图片.如果想要此书习题答案,可点以下链接:为一个压缩包,以图片形式,习题图片按章节排序,答案图片按书页排序. <操作系统原 ...

  8. Linux综合实训案例教程,Linux操作系统教程-实训与项目案例原稿.ppt

    Linux操作系统教程-实训与项目案例原稿分析 第11章 Bash 使用详解 本章内容 Shell概念 Linux下用户Shell的指定 Bash的使用 Bash的常见技巧与快捷键 Bash的变里使用 ...

  9. 《嵌入式 Linux应用程序开发标准教程(第2版)》——第1章 Linux快速入门 1.1 嵌入式Linux基础...

    本节书摘来自异步社区<嵌入式 Linux应用程序开发标准教程(第2版)>一书中的第1章,第1.1节,作者 华清远见嵌入式培训中心,更多章节内容可以访问云栖社区"异步社区" ...

最新文章

  1. 暗夜ト星ノ冥土馆~ぷにゅぷりXX 汉化补丁
  2. shell测试命令test、[ ]、[[ ]]
  3. UIColor之【扩展:#FFFFFF -UIColor】
  4. WCF系列(二) -- 使用配置文件构建和使用WCF服务
  5. matlab中的类标转换程序
  6. [渝粤教育] 西南科技大学 机械专业外语 在线考试复习资料2021版
  7. nio java是什么_Java NIO 的前生今世 之一 简介
  8. 阿里开源mysql监控_Alibaba-技术专区-开源项目之Druid数据库监控平台
  9. linux常用命令集(用户和组操作-共15个)
  10. js操作frameset frame 对象
  11. office转PDF文档
  12. WordPress教程 – WordPress新手指南(2021)
  13. c++ 获取硬盘序列号serialnumber
  14. 汽车自动驾驶是人工智能吗,自动驾驶是人工智能
  15. Java微信公众号开发之微信公众平台账号申请注册
  16. 现在计算机上都有高速缓冲存储器,高速缓冲存储器(Cache.一般采用DRAM构成
  17. 开热点给电脑消耗大吗_电脑连热点流量消耗大吗
  18. 聚币网API[Python2版]
  19. 用阿里云建站模版套餐云速成美站有没有可能不容易被seo抓取排名?
  20. Python报错日志:Warnings模块简介

热门文章

  1. 人大副教授:本科生一定要做科研吗?九大灵魂拷问
  2. 女博士7年不毕业,她破解了“量子计算最基础问题”
  3. 2021年第3周LDL方向的周报
  4. centeros7安装mysql5.6_CentOS7安装MySQL5.6
  5. gazebo 直接获取传感器数据_【ROS-Gazebo】IMU插件使用与数据采集——以四足机器人pigot为例...
  6. 设计模式之行为类模式PK
  7. 【转载保存】索引文件锁LockFactory
  8. eclipse闪退打不开问题
  9. 图像格式jpg、jpeg、jpe、gif、png、png等有何不同?ps中那种图片格式可以保留图层?
  10. Amr and Pins