CS 공부 & 면접 맛보기 0x0D [운영체제] : 데드락(Deadlock)
2025. 1. 15. 23:00ㆍ코딩 도구/CS 면접 도구
반응형
데드락(Deadlock)
질문
데드락(Deadlock)이란 무엇인가요?
면접 답변
데드락(Deadlock)은 둘 이상의 프로세스가 자원을 점유한 상태에서, 서로 상대방의 자원을 요구하며 무한정 기다리는 교착 상태를 의미합니다.
데드락은 다중 프로세스 환경에서 자원 할당이 비효율적으로 이루어질 때 발생할 수 있으며, 프로그램의 실행이 중단되는 심각한 문제가 될 수 있습니다.
데드락의 4가지 필요 조건
데드락이 발생하기 위해서는 다음 4가지 조건이 모두 만족되어야 합니다:
1. 비선점(Non-preemptive)
- 이미 할당된 자원은 강제로 빼앗을 수 없습니다.
- 한 번 할당된 자원은 사용이 끝날 때까지 다른 프로세스가 사용할 수 없습니다.
2. 순환 대기(Circular Wait)
- 두 개 이상의 프로세스가 자원을 기다릴 때, 각 프로세스가 순환적으로 서로의 자원을 기다리는 상태입니다.
- 예를 들어, P1 → P2 → P3 → P1의 관계가 형성되는 경우입니다.
3. 점유 대기(Hold & Wait)
- 프로세스가 이미 자원을 점유한 상태에서 추가 자원을 요청할 때 발생합니다.
- 기존에 할당받은 자원을 놓지 않고, 새로운 자원이 할당되기를 기다립니다.
4. 상호 배제(Mutual Exclusion)
- 특정 자원은 한 번에 하나의 프로세스만 사용할 수 있습니다.
- 예를 들어, 프린터와 같은 자원은 한 번에 하나의 프로세스만 접근 가능합니다.
결론
- 데드락은 비선점, 순환 대기, 점유 대기, 상호 배제의 네 가지 조건이 모두 만족될 때 발생합니다.
- 데드락 해결 방법과 방지 전략은 다음 글에서 자세히 다루겠습니다.
반응형
'코딩 도구 > CS 면접 도구' 카테고리의 다른 글
CS 공부 & 면접 맛보기 0x0E [운영체제] : 데드락(Deadlock)의 해결 방법 (0) | 2025.01.17 |
---|---|
CS 공부 & 면접 맛보기 0x0C [운영체제] : Race Condition을 방지하는 방법 (0) | 2025.01.13 |
CS 공부 & 면접 맛보기 0x0B [운영체제] : Race Condition (경쟁 상태) (0) | 2025.01.11 |
CS 공부 & 면접 맛보기 0x0A [운영체제] : LRU 캐싱 (Least Recently Used Cache) (0) | 2025.01.10 |
CS 공부 & 면접 맛보기 0x09 [운영체제] : 프로세스와 스레드의 차이 (0) | 2025.01.09 |