운영체제(OS)/keyword
(Project1-Threads) 데드락(Deadlock)
스탠딩
2023. 12. 15. 14:33
deadlock(교착 상태)은 컴퓨터 과학에서 여러 프로세스나 스레드가 서로의 작업이 끝나기를 기다리며 아무것도 진행하지 못하는 상태를 나타낸다. deadlock이 발생하는 이유는 다음과 같다.
- 상호 배제 (Mutual Exclusion): 리소스가 한 번에 하나의 프로세스나 스레드에 의해서만 사용될 수 있는 경우 발생
- 보유 및 대기 (Hold and Wait): 프로세스나 스레드가 어떤 리소스를 보유한 상태에서 다른 리소스를 기다리는 경우 발생
- 비선점 (No Preemption): 어떤 프로세스나 스레드에 할당된 리소스는 그 프로세스나 스레드에 의해서만 해제될 수 있는 경우 발생
- 순환 대기 (Circular Wait): 프로세스나 스레드 간에 순환 형태로 리소스를 기다리는 경우 발생
deadlock이 발생하면 각각의 작업이 끝나기를 기다리는 상태로 인해 시스템이 무한정 대기하게 되어 일어나면 안 되는 상황이다. 따라서 deadlock을 방지하거나 탐지하여 해결하는 기법들이 중요하게 다뤄지고 있다.