死锁是指多个进程在执行过程中,因争夺资源而造成互相等待,此时系统产生了死锁
产生条件:
1.互斥条件:进程对所分配的资源不允许其他进程访问,若其他进程需要访问,只能等待,知道该进程使用完毕后释放资源
2.请求保持条件:进程获得一定资源后,有对其他资源发出请求,但该资源被其他进程占用,此时请求阻塞,而且这个进程不会释放自己已经占有的资源
3.不可剥夺条件:进程获得资源,只能自己释放,不可剥夺
4.环路等待条件:若干进程之间形成一种头尾相接等待资源关系
解决:
资源一次性分配,从而解决请求保持的问题
可剥夺资源:当进程新的资源未得到满足时,释放已有的资源;
资源有序分配:资源按序号递增,进程请求按递增请求,释放则相反