玉林住房和城乡建设部网站,网站除了域名还要什么,wordpress淡出,国外网站引流如何做目录
前言
死锁的检测
数据结构资源分配图
基于“图”检测死锁
可以消除所有边 不能消除所有边
结论
死锁定理
死锁的解除
本节思维导图 前言 如果系统中既不采取预防死锁的措施#xff0c;也不采取避免死锁的措施#xff0c;系统就很可能发生死锁#xff0c;在这种…目录
前言
死锁的检测
数据结构资源分配图
基于“图”检测死锁
可以消除所有边 不能消除所有边
结论
死锁定理
死锁的解除
本节思维导图 前言 如果系统中既不采取预防死锁的措施也不采取避免死锁的措施系统就很可能发生死锁在这种情况下系统应当提供两个算法 ①死锁检测算法用于检测系统状态以确定系统中是否发生了死锁 ②死锁解除算法当认定系统中已经发生了死锁该算法可将系统从死锁状态中解脱出来 死锁的检测
①用某种数据结构来保持资源的请求和分配信息
②提供一种算法利用上述信息来检测系统是否已经进入死锁状态
数据结构资源分配图 基于“图”检测死锁
核心思想根据是否可以消除所有边确定系统是否发生死锁 能消除所有的边即称该图是可完全简化地一定未发生死锁相当于找到了一个安全序列 检测规则
系统中剩余的可用资源数足够满足进程的需求那么这个进程暂时不会被阻塞可顺利执行进程执行结束将资源归还系统就可能使某些正在等待资源地进程被激活开始执行被激活进程执行完后又会归还一些资源这可能又会激活另外一些阻塞的进程
可以消除所有边 P1进程向R2资源请求了一个资源R2此时被分配后还有一个资源所以P1进程不会被阻塞P2进程向R1资源请求了一个资源R1此时被分配后没用资源所以P2进程被阻塞当P1进程完成后会将R1分配的资源和向R2请求的资源全部返回此时P2进程就可以被唤醒P2进程被唤醒后执行完后也会将被分配的资源和申请的资源返回至此所有边均被消除 不能消除所有边 P1进程向R2申请两个资源但R2没有资源剩余P1进程阻塞P2进程向R1申请一个资源但R1也没有资源剩余P2进程也被阻塞P3进程在接收完R2进程提供的资源后可以顺利执行执行完后释放一个R2资源此时R2有一个资源但是P1要两个资源所以P1进程依然被阻塞同样的P1阻塞导致R1的剩余资源不满足P2的要求所以P2也依然会被阻塞 分配边表示已经为进程分配的资源个数请求边表示在已有资源基础上仍需要的资源个数 结论 最终还连着边的那些进程就是处于死锁状态的进程 死锁定理 如果某时刻系统的资源分配图是不可完全简化的那么此时系统死锁 死锁的解除
基本思想一旦检测出死锁的发生就应该立即解除死锁
注意事项并不是系统中所有的进程都是死锁状态用死锁检测算法简化资源分配图后还连着边的进程就是死锁进程
实现方法
资源剥夺法挂起暂时放到外存上某些死锁进程并抢占它的资源将这些资源分配给其他的死锁进程。但是应防止被挂起的进程长时间得不到资源而饿死撤销进程法或称终止进程法强制撤销部分、甚至全部死锁进程并剥夺这些进程的资源。这些方式的优点是实现简单但所付出的代价可能会很大因为有些进程可能已经运行了很长时间了已经接近结束了一旦被终止可谓功亏一篑以后还得从头再来进程回退法让一个或多个死锁进程回退到足以避免死锁的地步这就要求系统要记录进程的历史信息设置还原点
如何决定对谁动手剥夺、撤销还是回退
进程优先级已执行多少时间还要多久能完成进程已经使用了多少资源进程是交互式还是批处理式的
本节思维导图 ~over~