处理器管理-死锁问题
来源:互联网 发布:电影极度寒冷知乎 编辑:程序博客网 时间:2024/05/17 07:04
产生死锁的4个必要条件:
(1)互斥条件:即一个资源每次只能被一个进程使用。
(2)保持和等待条件:一个进程已获得了一些资源,但请求其他资源时被阻塞,因此对已获得的资源保持不放。
(3)不可剥夺条件:当某个进程获取这种资源后,系统不能强行收回,只能由进程使用完时自己释放。
(4)循环等待条件:若干个进程形成链,每个都占用对方要申请的下一个资源。
银行家算法
所谓银行家算法,是指在分配资源之前先看清楚,资源分配后是否会导制系统死锁,如果会死锁,则不分配,否则就分配。
(1)当一个进程对资源的最大需求不超过系统中的资源数时,可以接纳该进程。
(2)进程可以分期请求资源,但请求的总数不能超过最大需求量。
(3)当系统现在的资源不能满足进程没需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源。
(4)当系统现有的资源满足进程尚需资源数时,必须测试系统现存的资源能否满足进程尚需的最大资源数,若能满足则按当前的申请量分配资源,否则也要推迟分配。
解决死锁的策略:
(1)预防:破坏死锁必要条件中的任意一个。预防通常会降低系统的效率。
资源一次性分配:破坏请求和保持条件。
可剥夺资源:即当某个进程新的资源未满足时,释放已占有的资源(破坏不可剥夺条件)
资源有序分配:系统给每类资源编号,每一个进程按编号递增的请求资源,释放则相反(破坏环路等待条件)
(2)避免:由于预防策略会严重地损害系统性能,因此在避免策略时,要施加软弱的限制,允许进程动态地申请资源,但在分配之前预先计算资源分配的安全性,若此次分配不安全,则不进行此次资源的分配,代表性的避免死锁的算法就是银行家算法。
(3)检测:预防和避免都是事前措施,而死锁的检测是判断系统是否处于死锁状态,如果是,则执行死锁解除策略。
(4)解除:这是与死锁检测结合使用的,它使用的方式就是剥夺,即半某进程所拥有的资源强行收回,分配给其他的进程。
阅读全文
0 0
- 处理器管理-死锁问题
- 处理器管理
- 死锁问题
- 死锁问题
- 死锁问题
- 死锁问题
- 死锁问题
- 死锁问题
- 死锁问题
- 死锁问题
- 死锁问题
- 死锁问题
- 死锁问题
- 死锁问题
- 死锁问题
- 死锁问题?
- 死锁问题
- ch1处理器管理
- RSS订阅神器 —— Inoreader
- hibernate 二级缓存 处理
- HTML5之主体元素结构
- AutoCAD 2010 开发与之前版本的区别
- Jquery 源码分析
- 处理器管理-死锁问题
- 智能卡7816协议
- 朝鲜射导弹首次飞跃日本上空
- Salesforce APIs全面解析笔记详情
- java 集合 之 链表和线性表以及ArrayList的各方法的介绍及示例 及 ArrayList与LinkedList的区别分析 及 ArrayList与Array(数组)的区别
- 【python】列表里面是对象类型的排序
- 虚拟存储容量
- leetcode 237. Delete Node in a Linked List(accepted) C language
- VC6.0 MFC点击编辑框弹出对话框