公司网站文案推广怎么做,手机版网站如何做,上海网站开发一对一培训价格,山西百度公司做网站的死锁
1 死锁的基本概念
1.1 死锁的定义
死锁是发生在一组相互合作或竞争的线程或进程中的一个问题。因此可以定义为#xff1a;一组竞争系统资源或相互通信的进程相互的“永久”阻塞。若无外力作用#xff0c;这组进程将永远不能继续执行。
1.2死锁产生的原因进程
一组竞争系统资源或相互通信的进程相互的“永久”阻塞。若无外力作用这组进程将永远不能继续执行。
1.2死锁产生的原因进程
1资源数小于要求该种资源的进程数
//A、B分别代表某种资源
进程P
......
get(A);
......
get(B);
......
release(A);
......
release(B);
......进程Q
......
get(B);
......
get(A);
......
release(B);
......
release(A);
......当进程P占用资源A进程Q占用资源B接下来导致进程P无法获得B资源进程Q无法获得A资源。即双方都占用对方所需要的资源这样就发生了死锁。 2进程的推进顺序非法
2 死锁的预防与避免
2.1 产生死锁的四个必要条件
互斥条件请求保持条件不剥夺条件环路条件
2.2 死锁的预防
采用资源的有序分配令所有资源排队并赋予不同的序号。当进程请求资源时必须严格按递增的次序提出从而消除了环路。 缺点
定好序号后增加新设备类型受到限制。尽管定序号时考虑大多数作业使用资源的顺序。但会发生使用顺序与规定顺序不一致的情况造成资源浪费。限制用户简单、自主地编程。死锁的预防措施低效 可以去掉“请求保持条件”“不剥夺条件”“环路条件”但不能去掉“互斥条件”。
2.3 死锁的避免
避免死锁是通过明智的选择确保系统永远不会到达死锁点。即动态地决定是否分配资源给进程
安全状态是指系统至少存在一个安全序列P1, P2, …, Pn按照这个序列为进程分配资源直到满足最大需求每个进程都可顺序完成。若系统不存在这样一个安全序列则系统处于不安全状态。 2.4 死锁的检测与解除
资源分配图的简化
在图中找出一个既不阻塞又非独立的进程结点pi消去pi所有的请求边和分配边使之成为孤立结点。在进行一系列简化后能消去图中所有的边使所有进程都成为孤立结点则称该图是可以完全简化的否则若不能通过任何过程使该图完全简化则称该图是不可完全简化的。 死锁的解除 当发现死锁时应立即把它们从死锁中解脱出来常采用的两种方法是
剥夺资源从其它进程剥夺足够数量的资源给死锁进程。撤消进程撤消的原则是 为解除死锁状态所需撤消的进程数目最小。 撤消进程所付出的代价最小。