首页 / 面试 / OS面试知识点二、死锁
OS面试知识点二、死锁
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了OS面试知识点二、死锁,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2724字,纯文字阅读大概需要4分钟。
内容图文
![OS面试知识点二、死锁](/upload/InfoBanner/zyjiaocheng/989/e053340fedae46fc93963111e2f8d2d2.jpg)
死锁
??在计算机系统中,有很多独占性资源,在任一时刻,它们都只能被一个进程使用,如打印机,文件系统表中的表项。于是,操作系统都具有授权一个进程排他的访问某一种资源的能力。
??很多应用中,需要一个进程排他性地访问若干资源而不是一种。举例如下,进程A和进程B都想将扫描的文档记录到蓝光光盘上,A请求扫描仪,被授权使用;B请求光盘刻录机,被授权使用;此时A请求光盘刻录机,该请求在B释放光盘刻录机之前会一直被拒绝,然而B此时非但不释放光盘刻录机,而是去请求扫描仪。这种情况下,两个进程都被阻塞,并一直处于这样的状态,称为死锁。
??死锁也发生在机器之间。举例如下,办公室中用计算机连成局域网,扫描仪、光盘刻录机、打印机等设备也连接到局域网成为共享资源,这种情形会造成3个,4个,甚至更多个设备和用户发生死锁。
??除了请求独占性I/O设备外,别的情况也可能引发死锁。如数据库系统,进程A对记录R1加锁,进程B对记录R2加锁,此时两个进程又想把对方记录加锁(访问对方记录),这时会产生死锁。因此,软硬件资源都有可能产生死锁。
1. 资源
? 大部分死锁都和资源相关,在进程对设备,文件等取得了排他性访问权时,有可能会出现死锁。为了尽可能使关于死锁的讨论通用,我们把这类需要排他性使用的对象成为资源。
1.1. 可抢占资源
??可抢占资源可以从拥有它的进程中抢占而不会产生任何副作用,存储器就是一类可抢占资源。
??在一台标准PC机中,内存中的页面总是可以置换到磁盘中并置换回来,故内存是可抢占的。有关可抢占资源的潜在死锁通常可以通过在进程之间重新分配资源而化解。
1.2. 不可抢占资源
??不可抢占资源是指在不引起相关的计算失败的情况下,无法把它从占有它的进程出抢占过来。
??死锁和不可抢占资源具有很强的相关性。使用一个资源的顺序可抽象为3个步骤:1. 请求资源。 2. 使用资源。3. 释放资源。
2. 死锁
??如果一个进程集合中的每个进程都在等待只能由该集合中的其他进程才能引发的事件,那么,该进程集合就是死锁的。大多数情况下,每个进程所等待的事件是释放进程集合中其他进程所占有的资源,这种死锁称为资源死锁。
2.1. 资源死锁必要条件
- 互斥条件。每个进程要么已经分配给了一个进程,要么就是可用的。
- 占有和等待条件。已经获得了某个资源的进程可以再请求新的资源。
- 不可抢占条件。已经分配给一个进程的资源不能强制性的被抢占,它只能被占有它的进程显式地释放。
- 环路等待条件。死锁发生时,系统一定有由两个或两个以上的进程组成的一条环路,该环路中的每个进程都再等待着下一个进程所占有的资源。
??死锁发生时,以上四个条件一定同时满足,任一条件不成立,死锁就不会发生。
2.2. 处理死锁的策略
- 忽略死锁。鸵鸟算法。
- 检测并恢复。允许死锁发生,一旦发生采取行动解决问题。
死锁恢复:
1. 利用抢占恢复
2. 利用回滚恢复
3. 通过杀死进程恢复
- 仔细对资源分配,动态避免死锁。
??大多数系统,一次只请求一个资源,系统必须能够判断分配资源是否安全,并且只能在保证安全的条件下分配资源。问题是是否由一种算法总能做出正确的选择,从而避免死锁?
??答案是肯定的,条件是必须事先获得一些特定的信息。1965年,Dijkstra提出了一种能够避免死锁的调度算法,称银行家算法。
- 破坏死锁四个必要条件。
死锁避免从本质上是不可能的,它需要获得未来的请求,而这些请求是不可知的。
内容总结
以上是互联网集市为您收集整理的OS面试知识点二、死锁全部内容,希望文章能够帮你解决OS面试知识点二、死锁所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。