운영체제

교착 상태의 개념

동기화를 열심히 구현해서 경쟁 조건은 해결했지만, 자원 대기 순서가 꼬이면 프로그램이 아예 멈춰버리는 상황이 발생할 수 있습니다. 에러 메시지도 없고, CPU 사용률도 0%에 가깝고, 로그도 더 이상 찍히지 않습니다.

상호 배제, 점유와 대기, 비선점, 순환 대기 조건을 기준으로 교착 상태 가능성을 확인합니다.

대기 관계가 멈추는 지점 추적

1

데드락의 정의

교착 상태란 두 개 이상의 프로세스 또는 스레드가 서로가 보유한 자원을 기다리면서 영원히 진행되지 못하는 상태입니다.

2

데드락 발생의 4가지 필요조건

1971년 Coffman 등이 정리한 4가지 조건입니다.

3

자원 할당 그래프

데드락을 시각적으로 분석하는 도구가 자원 할당 그래프(Resource Allocation Graph, RAG)입니다.

4

실무에서 만나는 데드락

데이터베이스 교착 상태 데이터베이스에서 데드락은 매우 흔합니다.