저장소 logo 저장소

1. 데드락 개념

Deadlock이란 둘 이상의 Thread가 서로가 점유한 자원을 기다리며 무한 대기 상태에 빠지는 상황 의미.

각 Thread가 다른 Thread의 자원을 기다리는 순환 구조 형성 상태 의미.


2. 데드락 발생 조건

Deadlock은 다음 4가지 조건이 동시에 성립할 때 발생 가능.

1. 상호 배제 (Mutual Exclusion)

2. 점유 대기 (Hold and Wait)

3. 비선점 (No Preemption)

4. 순환 대기 (Circular Wait)


3. 데드락 해결 방법

데드락 해결 방법은 다음 4가지 방식 존재.

기법 설명 특징
무시 데드락 발생을 무시하는 방식 성능 저하 없음, 실제 시스템에서 많이 사용
예방 발생 조건 중 하나를 제거하는 방식 자원 효율성 감소
회피 Deadlock이 발생하지 않도록 자원 할당 제어 알고리즘 기반 (은행원 알고리즘 등)
탐지-회복 데드락 발생 후 탐지 및 복구 시스템 오버헤드 발생

4. 데드락 해결 방식 특징

무시

예방

회피

탐지-회복


핵심 정리

데드락
서로의 자원을 기다리며 무한 대기 상태 발생 구조

발생 조건
상호 배제 / 점유 대기 / 비선점 / 순환 대기

해결 방법
무시 / 예방 / 회피 / 탐지-회복


참고 자료

  1. KOCW, 운영체제 강의자료
    https://contents.kocw.or.kr/KOCW/document/2015/cup/weonsunghyun/6.pdf
  2. University of Illinois Chicago, Operating Systems Notes, “Deadlocks”
    https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/7_Deadlocks.html

« Synchronization
Paging »