操作系统:进程与线程(三)死锁

2.4 死锁

2.4.1 死锁的概念

  1. 死锁的定义
    多个进程因竞争资源而造成的一种僵局(互相等待)
    死锁发生条件:互斥、不可剥夺、请求和保持、循环等待
    在这里插入图片描述

  2. 死锁产生的原因
    (1)系统资源的竞争
    (2)进程推进顺序非法
    (3)死锁产生的必要条件

  3. 死锁的处理策略
    1)预防死锁
    2)避免死锁
    3)死锁的检测及解除
    在这里插入图片描述

在这里插入图片描述

2.4.2 死锁的预防

防止死锁发生只需破坏四个必要条件之一

  1. 破坏互斥条件
  2. 破坏不剥夺条件
  3. 破坏请求并保持条件
  4. 破坏循环等待条件
    在这里插入图片描述

2.4.3 死锁避免

  1. 系统安全状态
    在这里插入图片描述
  2. 银行家算法
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2.4.4 死锁的检测和接触

  1. 资源分配图
    在这里插入图片描述
  2. 死锁定理
    在这里插入图片描述
    在这里插入图片描述
  3. 死锁解除
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 进程进程是计算机中正在运行的程序的实例。它是操作系统进行资源分配和调度的基本单位,拥有独立的内存空间和执行环境。 2. 线程线程进程中的一个执行单元,是程序执行的最小单位。一个进程可以包含多个线程,它们共享进程的资源,但每个线程有自己的执行路径。 3. 状态:线程进程都有不同的状态,常见的有以下几种: - 就绪状态:线程已经创建,但还没有开始执行。 - 运行状态:线程正在执行。 - 阻塞状态:线程暂时停止执行,等待某个条件满足后再继续执行。 - 终止状态:线程执行完毕或者出现异常而终止。 4. 阻塞:阻塞是指线程暂时停止执行,等待某个条件满足后再继续执行。常见的阻塞情况包括等待输入/输出完成、等待锁、等待其他线程完成等。 5. 优先级:线程的优先级决定了线程在竞争CPU资源时的优先级别。优先级高的线程会更有可能被调度执行,但并不保证一定会被执行。 6. 同步同步是指多个线程之间按照一定的顺序执行,以避免出现数据不一致或者并发访问共享资源的问题。常见的同步机制包括使用锁、信号量、条件变量等。 7. 死锁死锁是指两个或多个线程互相持有对方需要的资源,导致它们都无法继续执行的状态。这种情况下,线程会一直等待对方释放资源,从而陷入无限等待的状态。 8. 守护:守护线程是一种特殊的线程,它的生命周期与进程的生命周期相关联。当所有的非守护线程结束时,守护线程也会自动结束。守护线程通常用于执行一些后台任务,如垃圾回收等。 9. 线程安全:线程安全是指多个线程同时访问某个共享资源时,不会出现数据不一致或者并发访问的问题。为了实现线程安全,可以使用同步机制或者使用线程安全的数据结构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lxkeepcoding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值