资源分配图化简法
来源:互联网 发布:淘宝宝贝视频怎么上传 编辑:程序博客网 时间:2024/06/06 01:03
一 了解进程资源图
Markdown编辑器用的还不是太熟,表格中插入图片这事还没学会,纠结着在Word中总结了下,然后截个图放在下面供大家参考:
二 化简资源分配图
方法步骤
- 第一步:先看系统还剩下多少资源没分配,再看有哪些进程是不阻塞(“不阻塞”即:系统有足够的空闲资源分配给它)的
- 第二步:把不阻塞的进程的所有边都去掉,形成一个孤立的点,再把系统分配给这个进程的资源回收回来
- 第三步:看剩下的进程有哪些是不阻塞的,然后又把它们逐个变成孤立的点。
- 第四步:最后,所有的资源和进程都变成孤立的点。这样的图就叫做“可完全简化”。
如果一个图可完全简化,则不会产生死锁;如果一个图不可完全简化(即:图中还有“边”存在),则会产生死锁。这就是“死锁定理”。
实例
- 第一步:先看R1资源,它有三个箭头是向外的,因此它一共给进程分配了3个资源,此时,R1没有空闲的资源剩余。
- 第二步:再看R2资源,它有一个箭头是向外的,因此它一共给进程分配了1个资源,此时,R2还剩余一个空闲的资源没分配。
- 第三步:看完资源,再来看进程,先看进程P2,它只申请一个R1资源,但此时R1资源已经用光了,所以,进程P2进入阻塞状态,因此,进程P2暂时不能化成孤立的点。
- 第四步:再看进程P1,它只申请一个R2资源,此时,系统还剩余一个R2资源没分配,因此,可以满足P1的申请。这样,进程P1便得到了它的全部所需资源,所以它不会进入阻塞状态,可以一直运行,等它运行完后,我们再把它的所有的资源释放。相当于:可以把P1的所有的边去掉,变成一个孤立的点,如下图所示:
- 第五步:进程P1运行完后,释放其所占有的资源(2个R1资源和1个R2资源),系统回收这些资源后,空闲的资源便变成2个R1资源和1个R2资源,由于进程P2一直在申请一个R1资源,所以此时,系统能满足它的申请。这样,进程P2便得到了它的全部所需资源,所以它不会进入阻塞状态,可以一直运行,等它运行完后,我们再把它的所有的资源释放。相当于:可以把P2的所有的边都去掉,化成一个孤立的点,变成下图:
由于这个资源分配图可完全简化,因此,不会产生死锁。
而如果资源分配图中的点,最终不能够化成孤立的点,则进程资源图不能够完全简化,从而会发生死锁。
原文链接:http://blog.csdn.net/coding1994/article/details/52474731
阅读全文
0 0
- 资源分配图化简法
- 资源分配图化简法
- 资源分配
- 资源分配图化简法-操作系统·死锁
- LTE资源分配
- 资源分配动态规划
- D3D资源分配惯例
- 软件测试资源分配
- 合理分配 “锁”资源
- D3D资源分配惯例
- project资源过度分配
- 卫星资源分配
- 资源打包+内存分配
- 资源分配问题
- Yarn资源分配示例
- GPU资源分配
- Yarn资源分配示例
- 下行资源分配类型
- 包裹着img的标签大小固定,img不固定大小时的图片垂直居中
- 使用sql语句导出oracle数据结构信息
- 关于linux中phpstudy安装redis和扩展
- 【R语言学习】R-Studio 快捷键+入门常见操作
- Java中获取键盘输入值的三种方法
- 资源分配图化简法
- 洛谷1195口袋的天空
- Linux cpuidle framework(1)_概述和软件架构
- React弹框、Toast、弹出页面等简单实现方案(百达通)
- 软导作业
- (ssl 2863)石子合并
- uartlite_IP之仿真
- CSDN-markdown编辑器的详细使用方法
- Linux common clock framework(3)_实现逻辑分析