操作系统(三十)避免死锁
2.4.3 避免死锁
操作系统的状态可以分为安全状态以及不安全状态,让操作系统始终保持一个安全状态就能避免死锁。所谓安全状态,是指系统能按某种进程顺序(P1,P2,…,Pn)(称〈P1,P2,…,Pn〉序列为安全序列),来为每个进程 Pi分配其所需资源,直至满足每个进程对资源的最大需求,使每个进程都可顺利地完成。如果系统无法找到这样一个安全序列,则称系统处于不安全状态。当然安全序列可以有多个。
找到安全序列的算法一般是银行家算法,银行家算法最开始是为了合理分配银行的资金保证不会发生资金不足的问题。银行家算法的核心思想是在进程提出资源申请时,先预判此次分配是否会导致系统进入不安全状态。如果会进入不安全状态,就暂时不答应这次请求,让该进程先阻塞等待。在外面介绍完一些概念之后会根据一个例子来学习一下银行家算法。
假设系统中有 n 个进程,m 种资源:
银行家算法的数据结构: (1)可利用资源向量 Available。这是一个含有 m 个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。
(2)最大需求矩阵 Max。这是一个 n×m 的矩阵,它定义了系统中 n 个进程中的每一个进程对 m 类资源的最大需求。
(3)分配矩阵 Allocation。这也是一个 n×m 的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。
(4)需求矩阵 Need。这也是一个 n×m 的矩阵,用以表示每一个进程尚需的各类资源数。
其中Need=Max-Allocation
银行家算法的步骤:用一个长度为m的一维数组 Requesti 表示本次申请的各种资源量。
其实不管我咋说,大家还是在自己算一遍来的清楚。
操作系统(三十)避免死锁相关推荐
- 操作系统三十年的兴衰史
加入「公开课」交流群,获取更多学习资料.课程及热招岗位等信息 作者 | Jeremy Reimer 译者 | 苏本如 责编 | 屠敏 来源 | CSDN(ID:CSDNnews) 提及桌面操作系统,想 ...
- 嵌入式实时操作系统ucos-ii_「正点原子NANO STM32开发板资料连载」第三十六章 UCOSII 实验 1任务调度...
1)实验平台:alientek NANO STM32F411 V1开发板2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第三十六章 ...
- 嵌入式实时操作系统ucos-ii_「正点原子NANO STM32开发板资料连载」第三十八章 UCOSII 实验 3...
1)实验平台:alientek NANO STM32F411 V1开发板2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第三十八章 ...
- 操作系统真象还原实验记录之实验三十四:实现管道
操作系统真象还原实验记录之实验三十四:实现管道 1.管道相关知识总结 先说我们操作系统的管道实现: 上述图中,管道缓冲区就是一页内存,这一页内存被我们当成了环形缓冲区结构, 当这页管道被创建出来后,全 ...
- 潘爱民:计算机程序的演进——我的程序人生三十年
本文为<新程序员004>内容,与潘爱民畅谈他的程序人生.<新程序员004>即将上市,敬请期待.从MySQL之父.MariaDB创始人Michael "Monty&qu ...
- 最新九月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试三十题
最新九月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试三十题 引言 自发表上一篇文章至今(事实上,上篇文章更新了近3个月之久),blog已经停了3个多月,而在那之前,自开博以来的21个月每月都不曾断过. ...
- Python三十年技术演变史
作者 | 宋天龙,大数据技术专家,触脉咨询合伙人兼副总裁,前Webtrekk中国区技术和咨询负责人(Webtrekk,德国的在线数据分析服务提供商).擅长数据挖掘.建模.分析与运营,精通端到端数据价值 ...
- 华南理工大学计算机操作系统课程设计大作业银行家死锁避免算法模拟,2016春操作系统大作业银行家死锁避免算法模拟.doc...
文档介绍: 2016春操作系统大作业银行家死锁避免算法模拟20160501华南理工大学"计算机操作系统"课程设计大作业计算机科学与技术专业:春2015班级:号:2015047420 ...
- linux课程设计死锁避免,linux操作系统课程设计—车辆死锁.doc
linux操作系统课程设计-车辆死锁.doc 键入文字"操作系统原理"课程设计BX090709吴沛儒操作系统原理课程设计报告姓名吴沛儒班级BX0907学号9指导老师胡静二〇一一年十 ...
- ASP 三十二条精华代码
整理收藏: ASP 三十二条精华代码 1. οncοntextmenu="window.event.returnvalue=false" 将彻底屏蔽鼠标右键 <table b ...
最新文章
- HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good
- php 屏蔽mysql错误提示_PHP.ini中配置屏蔽错误信息显示和保存错误日志
- Codeforces 52C
- java xms xmx 默认值_JVM启动参数-Xmx的默认值是多少?
- VC2005编译优化选项之玄机
- 均匀试验设计表格的问题
- 华为路由器的静态路由之间的等价路由以及浮动路由
- 第6堂视频课:看到词句就会读-下
- Conflux人物志 | 柠檬树上柠檬果,柠檬树下他和他
- 程序员如何学习一门新技术?
- linux c语言math lm pow,C语言pow()函数实现求x的y次方的值
- stm8s定时器输出比较模式
- 电脑无故关机,出现提示:从异常关机中恢复 bluescreen.........
- C++STL常用算法adjacent_find
- 目前能利用的5个视频模块
- iov_iter操作
- 使用Pixelmator Pro修饰照片
- ffmpeg在低版本VS中的编译
- 最终幻想14 服务器维护,《FF14》服务器遭到攻击 官方补偿方案今日不收时长费...
- 美国音乐学院计算机音乐专业排名2015年,2019USNEWS美国音乐专业排名前100!