IT개발/Tech Notes
Deadlock(교착 상태) 완전 정리 - 발생 조건과 해결 방법까지
시간기억자
2025. 4. 29. 01:45
반응형
운영체제를 공부하다 보면 반드시 마주치는 개념이 있다.
바로 **Deadlock(교착 상태)**이다.
프로세스 간 자원 공유로 인해 시스템 전체가 멈춰버리는 상황을 설명한다.
✅ Deadlock(교착 상태)란?
Deadlock은 둘 이상의 프로세스가 서로가 점유하고 있는 자원을 기다리면서,
영원히 대기 상태에 빠지는 상황을 의미한다.
이 상태에 빠지면 어떠한 프로세스도 작업을 진행할 수 없게 된다.
✅ 실생활 예시로 이해하기
프린터를 점유하고 있는 A 프로세스와, 스캐너를 점유하고 있는 B 프로세스를 생각해보자.
A는 스캐너를 기다리고, B는 프린터를 기다리는 상황이라면,
둘 다 서로의 자원을 기다리기만 하면서 아무 작업도 진행되지 않는다.
이것이 바로 Deadlock이다.
✅ 교착 상태 발생 조건 (4대 조건)
Deadlock이 발생하려면 다음 네 가지 조건이 모두 충족되어야 한다.
- 상호 배제(Mutual Exclusion)
- 자원은 한번에 하나의 프로세스만 사용할 수 있어야 한다.
- 점유 대기(Hold and Wait)
- 자원을 점유한 프로세스가 다른 자원을 추가로 기다려야 한다.
- 비선점(No Preemption)
- 자원을 강제로 빼앗을 수 없어야 한다.
- 환형 대기(Circular Wait)
- 프로세스들이 서로 자원을 기다리면서 원형 구조를 이루어야 한다.
이 중 하나라도 깨뜨리면 Deadlock은 발생하지 않는다.
✅ Deadlock 해결 방법
교착 상태를 해결하는 방법은 네 가지로 정리할 수 있다.
- 예방(Prevention)
- Deadlock 발생 조건 중 하나를 사전에 제거하는 방법이다.
- 예: 모든 자원을 한 번에 요청하도록 설계
- 회피(Avoidance)
- 시스템이 현재 상태를 분석하고, Deadlock이 발생하지 않도록 자원 할당을 조절하는 방법이다.
- 예: 은행가 알고리즘(Banker's Algorithm)
- 탐지 후 복구(Detection and Recovery)
- Deadlock이 발생한 후 이를 탐지하고, 프로세스를 종료하거나 자원을 회수하는 방법이다.
- 무시(Ignorance)
- Deadlock이 드물게 발생하는 경우, 아예 신경 쓰지 않고 시스템을 재시작하는 방법이다.
- 실제로 일부 운영체제에서는 이 방법을 채택한다.
✅ Deadlock 상태 플로우 요약
프로세스 실행 → 자원 점유 → 추가 자원 요청 → 서로 대기 → Deadlock 발생
📚 추가 예시
- 두 사람이 좁은 복도에서 마주친 상황을 생각해보자.
둘 다 비켜주지 않고 계속 버티기만 하면, 아무도 앞으로 나아가지 못한다.
이것도 일종의 Deadlock이다.
✅ 요약
항목 | 설명 |
Deadlock 정의 | 서로 자원을 점유한 채 대기만 하여 작업이 중단된 상태 |
발생 조건 | 상호 배제, 점유 대기, 비선점, 환형 대기 |
해결 방법 | 예방, 회피, 탐지 후 복구, 무시 |
실생활 예시 | 프린터/스캐너 대기, 좁은 복도 충돌 |
📌 매일 간단히 IT 관련 개념을 익히고 싶다면 구독하세요!👇👇👇
http://www.youtube.com/@itbite_daily
오늘의 IT한입
👋 하루 한 입, 쉽게 배우는 IT & 개발 개념! 프로그래밍, 데이터베이스, 운영체제, 네트워크, 보안, 코딩테스트까지! 취업 준비부터 실무 감각까지 매일 짧고 강력하게 정리해드립니다. 📍 매일
www.youtube.com
반응형