手码第一篇

记录下这两天看书看到的死锁的基本概念

1.什么是死锁

死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象。若无外力作用,他们都将无法推进下去。

2.条件

1)互斥条件:

指进程对所分配到的资源进行排他性使用,即在一段时间内某资源只由一个进程占用,如果此时还有其他进程请求资源,则请求者只能等待,直到占有资源的进程用毕释放。

2)请求和保持条件:

指进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源已被其他的进程占有,此时请求进程阻塞,但又对自己已获得的其他资源保持不放。

3)不剥夺条件:

指进程已获得的资源,在未使用完之前不能被剥夺,只能在使用完时由自己释放。

4)环路等待条件:

发生死锁时,必然存在一个进程——资源的环形链。