第6章进程同步
1. 临界区:一段可能对某个共享的数据进行修改的一段代码
2. 解决临界区必须要满足的三项要求
(1)互斥:当有一个进程在临界区内执行的时候,任何其他的进程都不可以再进入临界区执行
3. 信号量:信号量是一个整型值,>=0表示系统中当前某类资源的可用数目,<0表示系统中等待该资源的进程数。它的值只能由?P、V原语操作所改变。
剩下的看书
?
第7章死锁
1. 死锁产生的四个必要条件:(4个条件同时满足会引起死锁)
A. 互斥,B. 占有并等待,C.非抢占,D.循环等待
2. ??如果分配图无环,那么系统就没有进程死锁,如果有环,那么可能存在死锁(每个资源刚好有一个实例,那么有环就意味着已经出现死锁。如果环涉及一组资源类型,而每个类型只有一个实例,那么出现死锁。环所涉及的进程就死锁。此情况下环是死锁存在的充分必要条件。
如果每个资源类型有多个实例,那么有环并不意味着已经出现死锁。此情况下环是死锁的必要不充分条件。)
3.死锁的处理方法
(1)可以用协议以预防或避免死锁
(2)可允许系统进入死锁状态,然后检测它,并加以回复
(3)可忽视这个问题,认为死锁不会发生
4. 死锁预防:
(1)对非共享资源,必须要有互斥条件
(2)当一个进程申请一个资源时,它不能沾有其他资源
(3)如果占有资源并申请另一个不能立即分配的资源,那么其现已分配的资源都可被抢占
(4)对所有资源类型进行完全排序,且要求每个进程按递增顺序来申请资源,当进程申请某个资源时,他必须释放掉所有较低序号的资源。
注:以上四条分别对应死锁的四个产生条件
副作用:低设备使用率和系统吞吐率
5. 死锁避免:
如果系统能按某个顺序为每个进程分配资源并能避免死锁,那么系统状态就是安全的,如果没有这样的顺序存在,那么系统状态就处于不安全状态。
关系:安全状态不是死锁状态,死锁状态是不安全状态,不是所有不安全状态都能导致死锁状态。
6. 银行家算法: 看书(重点)
死锁避免是根据防止系统进入不安全状态实现的
静待资源分配破坏了占有并等待条件
资资源的按序分配可以破坏循环等待条件
银行家算法是一种死锁预防算法
项目中用到的一些特殊字符和图标 html代码 XML/HTML Code 复制内容到剪贴板 div ...
复制代码 代码如下: % URL="http://news.163.com/special/00011K6L/rss_newstop....
上篇文章给大家介绍了 Java正则表达式匹配,替换,查找,切割的方法 ,接下来,...
4月11日20:30~22:00通过腾讯会议进行了第二次在线学习讨论我把学习笔记整理一下...
错误描述: 在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报...
正则忽略大小写 – RegexOptions.IgnoreCase 例如: 复制代码 代码如下: Str = R...
DELETEFROMTablesWHEREIDNOTIN(SELECTMin(ID)FROMTablesGROUPBYName) Min的话保...
工具:Eclipse,Oracle,smartupload.jar;语言:jsp,Java;数据存储:Oracle。...
本文实例讲述了Laravel框架源码解析之反射的使用。分享给大家供大家参考,具体如...
Elasticsearch 是通过 Lucene 的倒排索引技术实现比关系型数据库更快的过滤。特...