什么是死锁?
多个进程互相等待对方所占有的资源所形成的僵持局面。
形成原因:
系统分配资源太少,不能支持多个并发进程的需求;
进程推进顺序不合理,互相占有彼此需要的资源,又请求对方所占有的资源,形成死锁
死锁产生的必要条件:
互斥条件:某个资源在同一时刻只能被一个进程所占用。
不可抢占条件:进程所获得的资源在使用完成之前,其他资源申请的进程不能抢占资源,而是等待占用进程释放才能使用。
占有且等待条件:一个进程至少占用一个资源,同时又申请被占有资源的情况下,处于等待状态。
循环等待条件:若干个进程形成循环链,每个都占有对方申请的下一个资源