死锁
2020 M12 21
解释
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象。 若无外力作用,它们都将无法推进下去。 此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。
产生条件
互斥:在一段时间内某资源只由一个进程占用,必须释放后其他的进程才能使用。
请求和保持:指进程已经保持至少一个资源,但又提出了新的资源请求, 而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。
不剥夺:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。
环路等待:指在发生死锁时,必然存在一个进程——资源的环形链p0=>p1=>p2=>p0
请求和保持:指进程已经保持至少一个资源,但又提出了新的资源请求, 而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。
不剥夺:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。
环路等待:指在发生死锁时,必然存在一个进程——资源的环形链p0=>p1=>p2=>p0
预防
破坏产生死锁原因中的任意某个条件,如:有序资源分配法,银行家算法