操作系统:死锁

比眉伴天荒 2022-12-14 03:48 323阅读 0赞

1. 死锁的概念
死锁是多个进程因竞争资源而造成的一种僵局现象,若无外力的作用,这些进程都不能运行。
当然单进程也是可能出现死锁,原因是如果内存小的情况下,单进程放到外存,是挂起状态,即导致死锁。
2. 原因
1)竞争资源
当系统中供多个进程共享的资源不足以同时满足他们的需求时,引起他们对资源的竞争的死锁。
2)进程推进顺序非法
进程在运行过程中,如果请求和释放资源的顺序不当,也可能导致死锁如下图:
在这里插入图片描述

3. 产生死锁的必要条件
1)互斥条件
进程对分配到的资源进行排他性,独占性使用,即在一短时间内某资源只能由一个资源占用。
2)请求和保持条件
进程已经拥有并保持了至少一个资源,但是,又请求新的资源,而新请求的资源又被其他进程占用,此时请求进程被等待,但对已获得
的资源保持不放。
3)不可剥夺条件
进程所占用的资源在结束之前不能被剥夺,只能在运行结束后由自己释放
4)环路等待条件
在发生死锁时,必然存在一个“进程——资源”的环形链。

4. 处理基本方法
1)预防死锁
2)避免死锁
3)检测和接触死锁(即重启)
5.预防(早期采用的措施)
预防是通过对资源分配的原则进行限制,而使产生死锁的4个必要条件中的2,3,4个条件之一不成立即可,第一个条件,是由设备或资源的固有特性所决定,不能改变。
1)破坏“不剥夺”条件
2)破坏“请求和保持”条件
3)破坏“环路等待”条件
6.避免(现在)
前提:
系统提供资源
目前这个进程需要什么资源。
”试“分配资源并计算有没有造成死锁现象。
借上,把系统分为安全状态和不安全状态,只需让其处于安全状态即可避免死锁,但是安全状态让限制更多,导致系统的性能降低。
1)利用银行家算法避免死锁
具体算法过程偏多,在另一篇文章。

发表评论

表情:
评论列表 (有 0 条评论,323人围观)

还没有评论,来说两句吧...

相关阅读

    相关 操作系统——

    操作系统——死锁 死锁的由来? 多道程序并发执行时,多个进程因竞争资源而造成的僵局(互相等待),无外力作用的情况下,这些进程无法向前推进。 例子:进程P1正在占用

    相关 操作系统

    1. 死锁的概念 死锁是多个进程因竞争资源而造成的一种僵局现象,若无外力的作用,这些进程都不能运行。 当然单进程也是可能出现死锁,原因是如果内存小的情况下,单进程放到外

    相关 操作系统

    死锁 开发多线程应用的程序必须特别关注死锁问题,因为多个线程可能因为竞争共享资源而容易产生死锁。 当一组进程内的每个进程都在等待一个事件,而这个事件只能由这一组进程的另

    相关 操作系统

    死锁的定义   由于多个进程共享资源而引起的进程不能向前推进的僵死状态成为死锁。 > 进程访问资源是通过执行程序实现的。一般来说,进程按照申请资源、访问资源、释放资源的