Deadlock Model(표현법)
- Graph Model
- State Transition Model
Node와 Edge로 이루어진 그래프로 표현
Node는 프로세스 노드(P1, P2), 자원노드(R1, R2)로 표현
프로세스 노드에서 자원 노드로 가는 화살표는 자원을 요청
자원 노드에서 프로세스 노드로 가는 화살표는 자원을 할당하였음을 의미
그래프가 싸이클을 이루는것을 보아 Deadlock이 일어났음을 알 수 있다.
프로세스가 자원을 할당받았거나, 요청하는 상태를 나누고, 이를 경우의 수로 나열하여 표현한다.
2개의 프로세스가 있고, 한개의 프로세스가 가질 수 있는 상태는 5개이므로, 25개의 경우의 수가 존재
S 뒤에 숫자 2개는 각 프로세스의 상태를 의미
S33의 경우 두 프로세스 모두 한개를 갖고 한개를 필요로 하므로 데드락 상태 유발
아래 4가지 조건을 모두 만족해야 Deadlock이 발생한다
자원의 특성
Exclusive use of resources - 혼자만 쓰는 자원
Non-preemptible resources - 비선점 자원
프로세스의 특성
Hold and wait(Partial allocation) - 자원을 하나 hold하고 다른 자원 요청
Circular wait - 각 프로세스 관계가 싸이클을 이룸
즉 혼자만 쓰고, 완료할때까지 반납하지 않는 자원을 하나 가지고 있으면서 다른 자원을 요청하고,
이 관계가 싸이클을 이룬다면 Deadlock이 발생한다.