CS 기초 · 중급
교착 상태(Deadlock)의 발생 조건 4가지와 해결 방법에 대해 설명해주세요.
힌트 · 상호 배제, 점유 대기, 비선점, 순환 대기를 생각해보세요.
상호 배제점유 대기비선점순환 대기교착 상태 회피
모범답안
교착 상태는 여러 프로세스가 서로 원하는 자원을 점유하고 있어, 어느 프로세스도 작업을 진행하지 못하는 상황을 말합니다. 발생 조건은 크게 네 가지가 있습니다.
첫째, 상호 배제입니다. 자원은 한 번에 하나의 프로세스만 사용할 수 있어야 합니다. 둘째, 점유 대기입니다. 프로세스가 이미 자원을 가지고 있으면서, 다른 자원을 기다리는 상태여야 합니다. 셋째, 비선점입니다. 프로세스가 점유한 자원은 강제로 빼앗을 수 없어야 합니다. 마지막으로, 순환 대기입니다. 프로세스들이 서로 꼬리 물기 식으로 자원을 요구하는 상황이 발생해야 합니다.
교착 상태 해결 방법으로는 예방, 회피, 탐지 및 복구가 있습니다. 예방은 위 네 가지 조건 중 하나라도 발생하지 않도록 시스템을 설계하는 것이고, 회피는 안전한 상태를 유지하면서 자원을 할당하는 것입니다. 탐지 및 복구는 교착 상태를 탐지한 후, 프로세스를 종료하거나 자원을 강제로 회수하여 해결하는 방법입니다. 교착 상태 회피를 위해 은행원 알고리즘 같은 방법을 사용할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 네트워크 면접 질문
- REST API 설계 원칙과 RESTful하다는 것의 의미에 대해 설명해주세요.
- 컨텍스트 스위칭(Context Switching)이란 무엇이며, 어떤 비용이 발생하나요?
- 가상 메모리(Virtual Memory)란 무엇이며, 페이지 폴트(Page Fault)는 어떻게 처리되나요?
- HTTP/3와 QUIC 프로토콜의 특징에 대해 설명해주세요.
- 라우터와 L3 스위치는 둘 다 IP 기반 라우팅을 수행할 수 있는데, 실제 데이터센터 설계에서 둘을 어떻게 구분해서 사용하나요? ASIC 기반 하드웨어 스위칭과 소프트웨어 라우팅의 성능 차이 관점에서 설명해주세요.
- 동일 서브넷 내 두 호스트가 통신할 때와 다른 서브넷의 호스트와 통신할 때, ARP 요청 대상과 목적지 MAC 주소가 어떻게 달라지는지 패킷 헤더 수준에서 설명해주세요.