死锁问题
1.死锁是指多个进程之间相互等待对方的资源,而在得到对方资源之前又不释放自己的资源所造成的循环等待的现象。
2.死锁产生的根本原因在于系统提供的资源少于并发进程所要求的该类资源数。
3.死锁产生的必要条件
(1)互斥条件:即一个资源每次只能被一个进程使用。
(2)保持与等待条件:有一个进程已经获得了一些资源,但因请求其他资源被阻塞时,对已经获得的资源保持不放。
(3)不可抢占条件:有些系统资源是不可抢占的,当某个进程已获得这种资源后 ,系统不能强行收回,只能由进程使用完自己释放。
(4)循环等待条件:若干个进程形成环形链,每个都占用对方要申请的下一个资源。
银行家算法
1.银行家算法是指在分配资源之前先看清楚资源分配后是否会导致系统死锁,如果会死锁,则不分配,否则就分配。
2.按照银行家算法的思想,当进程请求资源时,系统将按如下原则分配资源:
(1)当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程。
(2)进程可以分期请求资源,但请求的总数不能超过最大需求量。
(3)当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有效的时间里得到资源。
(4)当系统中现有的资源能满足进程尚需资源数时&#