微官网是网站吗,商梦建站,网站备案号查不到,.net如何建设网站概念
条件是基础#xff0c;在一定的原因下#xff0c;产生结果死锁三胞胎
死锁 僵持#xff0c;消耗时间#xff0c;双方都占用了部分资源#xff0c;不释放活锁 双方互相谦让#xff0c;都不占用资源饥饿 谦让的一方一直等待#xff0c;无法占有资源#xff0c;导致…概念
条件是基础在一定的原因下产生结果死锁三胞胎
死锁 僵持消耗时间双方都占用了部分资源不释放活锁 双方互相谦让都不占用资源饥饿 谦让的一方一直等待无法占有资源导致饥饿问题
死锁的原因以及必要的条件
应用程序 信号量使用不当
信号量的初始值设置错误设为0两个进程都卡死解决办法 代码开发人员 和 代码测试人员
semaphore s1 0;
semaphore s2 0;
A(){while(1){p(s1);吃饭;v(s2);}
}B(){while (1){p(s2);喝茶;v(s2);}}
OS内核程序 不可剥夺的软硬件资源
多进程对不可剥夺资源的竞争进程申请资源的顺序不合理
死锁的必要条件
死锁产生了一定会产生如下四个条件但是具有这四个条件不一定会造成死锁
互斥条件 临界资源不可剥夺条件 进程之间不可以互相剥夺彼此的资源请求保持条件 占有资源不主动释放循环等待条件
预防死锁
破坏死锁的必要条件
互斥条件 临界资源 几乎行不通比如更改临界资源不可剥夺条件 进程之间不可以互相剥夺彼此的资源 需要付出代价也有比如cpu的切换但是如果是打印机会造成彼此文件交叉融合请求保持条件 占有资源不主动释放 一次性申请完临界资源 循环等待条件 递增编号按照顺序申请资源。比如一个资源切成两份第一份资源叫1第二份资源叫2A申请资源1B在申请的时候看到1号资源已经被占用就需要等待A继续申请2号资源当A使用完资源释放之后。B开始申请按照资源的序号进行资源的申请
避免死锁
银行家算法 计算安全序列规划合理的资源申请顺序提高资金的流转速度安全序列 找到 无死锁 可以避免找不到 必死锁 无法避免因此将1000万借给万达收回3000万借给万科或者恒大都可以 访问顺序 万达 万科 恒大万达 恒大 万科
例1 例2 死锁的检测与解除
死锁定理和资源分配图
化简 如果可以化简到最简则无死锁不能化简到最简模式则检测到死锁进行下一步解除死锁1资源剥夺法2报销进程法3进程回退法
资源分配图
圆圈代表进程长方形代表一类资源的容器长方形中的圆圈代表该类资源数量代表资源的数目边 从长方形指向圆圈代表已分配边圆圈指向长方形代表申请边请求边寻找圆圈进程依次尝试判断p1的申请边(从圆圈指出的边)是否都可以得到满足满足则删除不满足则寻找下一个圆圈进程
死锁的解除
资源剥夺法 撤销进程法 进程停止运行进程回退法 进行由运行80%出现死锁进程回退到70%等待继续执行