Knowledge/이론

데드락(Deadlock)

똑똑한망치 2024. 1. 23. 14:44
728x90
반응형

1. 데드락 (Deadlock)


  • 2개 이상의 프로세스(또는 스레드)가 자원을 얻지 못하여 작업을 더 이상 진행하지 못하고 다음 단계로 넘어가지 못하는 상태
  • 무한 대기 상태라고도 한다.

 

 

 

 

 

(1) 데드락(Deadlock) 발생 조건 4가지

  • 상호 배제 (Mutual Exclusion)
    • 자원은 한 번에 하나의 프로세스 또는 스레드만이 사용할 수 있다.
  • 점유 대기 (Hold and Wait)
    • 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 한다.
    • 즉, 이미 자원을 사용중인데 다른 프로세스가 사용하고 있는 자원을 사용하기 위해 대기하고 있는 프로세스가 존재해야 한다.
  • 비선점 (No Preemption)
    • 다른 프로세스에 할당된 자원은 사용이 끝날 때 까지 강제로 뺏을 수 없다.
  • 순환 대기 (Circular wait)
    • 대기하는 프로세스의 집합이 순환 형태로 자원을 대기하고 있어야 한다.
반응형

'Knowledge > 이론' 카테고리의 다른 글

MMU와 TLB  (1) 2024.01.26
가상 메모리와 페이징 시스템  (0) 2024.01.23
뮤텍스와 세마포어  (0) 2024.01.23
스레드 동기화 (Thread-Synchronization)  (0) 2024.01.23
객체지향 설계 5대 원칙 (SOLID 원칙)  (0) 2024.01.17