이론

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

월러비 2024. 3. 19. 21:09

데드락 이란?

  • 모든 스레드가 다른 스레드에 의해서만 발생할 수 있는 이벤트를 기다리고 있습다.
    • 즉, 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태이기에 스레드를 실행할 수 없습니다.

데드락 발생 조건

  • 데드락은 4가지의 조건이 모두 성립해야 발생합니다.
    • 하나라도 성립하지 않으면 데드락 문제가 해결됩니다.
  1. 상호배제 (Mutual Exclusion)
    1. 한 번에 하나의 스레드만 리소스를 사용할 수 있습니다.
  2. 점유대기 (Hold and Wait)
    1. 하나 이상의 리소스를 보유한 스레드가 다른 스레드가 보유한 추가 리소스를 획득하기 위해 대기 중입니다.
  3. 비 선점 (No Preemption)
    1. 리소스 선점이 없습니다.
    2. 해당 스레드가 작업을 완료한 후 해당 스레드를 보유하는 스레드에 의해서만 리소스를 자발적으로 해제할 수 있습니다.
      1. 즉, 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 뺴앗을 수 없습니다.
  4. 순환대기 (Circular Wait)
    1. 프로세스의 자원 점유 및 점유된 자원의 요구 관계가 원형을 이루면서 대기하는 조건입니다.
    2. 각 프로세스는 순환적으로 다음 프로세스가 요구하는 차원을 가지고 있습니다.
      1.  

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

컴파일링의 각 과정과 결과물  (0) 2024.03.23
데드락 예방조건 4가지  (0) 2024.03.20
Animation Tweening  (0) 2024.03.18
Animation Blending  (0) 2024.03.17
Inverse Kinematics  (1) 2024.03.16