교착 상태 는 특정한 것을 의미합니다. 현재 서로를 기다리는 동안 차단 된 두 개 이상의 프로세스가 있습니다 .
에서 안전하지 않은 상태 당신은 또한이 상황에있을 수 있습니다 미래의 교착 언젠가 수 있지만 프로세스 중 하나 또는 둘 모두가 실제로 대기 시작되지 않았기 때문에 아직 일어나지도 않은.
다음 예제를 고려하십시오.
Process A Process B
lock X lock Y # state is "unsafe"
unlock Y
lock Y # state is back to "safe" (no deadlock this time. We got lucky.)
당신이 준 링크의 7.5.1 섹션에 더 흥미로운 예가 있습니다 .
다음과 같은 테이프 드라이브가 12 개인 시스템을 고려하십시오.
Process Max Need Current
P0: 10 5
P2: 9 3
안전하지 않은 상태입니다. 그러나 우리는 교착 상태가 아닙니다. 빈 드라이브는 4 개뿐이므로 P0 이 추가 5를 요청 하고 P2 가 1을 추가로 요청하면 교착 상태가 발생하지만 아직 발생하지 않았습니다. 그리고 P0은 더 이상 드라이브를 요청하지 않을 수도 있지만 대신 이미 가지고있는 드라이브를 비울 수 있습니다. 는 Max need
프로그램의 모든 가능한 실행 이상이며,이 힘은 우리가 P0에서 10 개 개의 드라이브를 필요로하는 실행 중 하나가 될 수 없습니다.