운영체제

교착 상태의 개념

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

데드락 vs 라이브락 vs 기아와 1. 상호 배제를 중심으로 교착 상태의 개념의 판단 흐름을 읽습니다.

핵심 흐름

1

데드락의 정의

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

2

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

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

3

자원 할당 그래프

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

4

실무에서 만나는 데드락

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