- 1、本文档共75页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统第三章2
第三章 处理机调度与死锁 处理机调度的基本概念 调度算法 实时调度 多处理机系统中的调度 产生死锁的原因和必要条件 预防死锁的方法 死锁的检测与解除 产生死锁的原因和必要条件 死锁的基本概念 产生死锁的原因 产生死锁的必要条件 处理死锁的基本方法 死锁的基本概念 死锁例子 一个由于申请不同类型资源而产生死锁的例子 设系统有一台打印机(R1)一台扫描仪(R2),两进程共享这两台设备。 用信号量S1表示R1是否可用,用信号量S2表示R2是否可用,S1、S2初值为1。 死锁的基本概念 死锁的基本概念 死锁的概念 指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。 即:一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到的资源,这种现象称为进程死锁,这一组进程就称为死锁进程。 死锁的基本概念 关于死锁的一些结论 参与死锁的进程最少是两个 参与死锁的进程至少有两个已经占有资源 参与死锁的所有进程都在等待资源 参与死锁的进程是当前系统中所有进程的子集 注:如果死锁发生,会浪费大量系统资源,甚至导致系统崩溃。 死锁的基本概念 永久性资源和临时性资源 永久性资源:可以被多个进程多次使用(可再用资源) 可抢占资源:CPU 不可抢占资源:打印机 临时性资源:只可使用一次的资源;即由一个进程产生,被另一进程使用后就再也无用的资源,也称为消耗性资源 如信号量,中断信号,同步信号等(可消耗性资源) “申请--分配--使用--释放”模式 产生死锁的原因和必要条件 死锁的基本概念 产生死锁的原因 产生死锁的必要条件 处理死锁的基本方法 产生死锁的原因 竞争资源引起进程死锁 可剥夺和非剥夺性资源 可剥夺性资源是指进程在获得这类资源后,该资源可以再被其他进程或系统剥夺,如处理机、内存等 非剥夺性资源是指当系统把这类资源分配给某个进程后,再不能强行收回,只能在进程用完后自行释放,如磁带机、打印机等 竞争非剥夺性资源 系统中的非剥夺性资源由于数量有限而不能满足进程运行的需要,进程在运行过程中因争夺这些资源而限入僵局 竞争临时性资源 产生死锁的原因 产生死锁的原因 产生死锁的原因 进程推进顺序不当引起死锁 产生死锁的原因 若并发进程P1和P2按曲线④所示的顺序推进,它们将进入不安全区D内。此时P1保持了资源R1, P2保持了资源R2, 系统处于不安全状态。因为,这时两进程再向前推进,便可能发生死锁。 例如,当P1运行到P1:Request(R2)时,将因R2已被P2占用而阻塞;当P2运行到P2: Request(R1)时,也将因R1已被P1占用而阻塞,于是发生了进程死锁 产生死锁的原因和必要条件 死锁的基本概念 产生死锁的原因 产生死锁的必要条件 处理死锁的基本方法 产生死锁的必要条件 互斥条件 进程对所分配到的资源进行排它性的使用 请求和保持条件 进程已经至少保持了一个资源,但又提出了新的资源请求,而该资源又已被其他进程占有 不剥夺条件 进程已获得的资源在未使用完之前不能被剥夺 环路等待条件 在发生死锁时,必然存在一个进程--资源循环等待的环形链 产生死锁的原因和必要条件 死锁的基本概念 产生死锁的原因 产生死锁的必要条件 处理死锁的基本方法 处理死锁的基本方法 预防死锁 避免死锁 检测死锁 解除死锁 处理死锁的基本方法 第三章 处理机调度与死锁 处理机调度的基本概念 调度算法 实时调度 多处理机系统中的调度 产生死锁的原因和必要条件 预防死锁的方法 死锁的检测与解除 预防死锁的方法 预防死锁 系统安全状态 利用银行家算法避免死锁 产生死锁的必要条件 互斥条件 进程对所分配到的资源进行排它性的使用 请求和保持条件 进程已经至少保持了一个资源,但又提出了新的资源请求,而该资源又已被其他进程占有 不剥夺条件 进程已获得的资源在未使用完之前不能被剥夺 环路等待条件 在发生死锁时,必然存在一个进程--资源循环等待的环形链 预防死锁 摒弃“请求和保持”条件 所有进程在开始运行之前必须一次性的申请整个运行过程所需的全部资源 简单、易于实现、安全 资源浪费严重 进程延迟运行 预防死锁 摒弃“不剥夺”条件 进程逐个地申请所需资源 当一个已经保持了某些资源的进程申请新资源而不能得到满足时,必须放弃所有已保持的资源 实现复杂、代价高昂 延长了进程的周转时间,还增加了系统开销,降低了系统的吞吐量 预防死锁 摒弃“环路等待”条件 系统将所有资源按类型分配序号并排队 所有进程申请资源必须按序号递增的顺序 资源利用率和系统吞吐量较高 但在资源管理和资源申请方面仍有问题 预防死锁 预防死锁 摒弃“环路等待”条件 其资源利用率和系统吞吐量,都有较明显的改善,但也存
文档评论(0)