본문 바로가기
카테고리 없음

교착상태란 무엇인가?

by kangs' tong 2023. 8. 24.

교착상태란 두 개 이상의 프로세스가 다른 프로세스로 인해 필요한 자원을 점유하고 있어서 무한히 진행이 불가능한 상태를 말합니다. 이러한 상태에서는 어떤 프로세스도 진행되지 않으며, 자원을 해제하기를 기다리는 상태로 갇혀 있습니다. 교착상태는 다음과 같은 네 가지 필요조건을 동시에 충족해야 발생합니다.

  1. 상호 배제(Mutual Exclusion): 한 자원은 한 번에 하나의 프로세스만 이용할 수 있어야 합니다.
  2. 점유와 대기(Hold and Wait): 최소한 하나의 자원을 점유한 상태에서 다른 자원을 기다려야 합니다.
  3. 비선점(No Preemption): 자원을 점유한 프로세스는 스스로 자원을 해제하지 않으면 다른 프로세스에게서 강제로 빼앗을 수 없습니다.
  4. 순환 대기(Circular Wait): 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 점유하고 있어야 합니다.

이러한 조건이 모두 만족되면 교착상태가 발생하며, 이를 방지하기 위해서는 조건 중 하나를 제거하거나 예방하는 방법을 사용해야 합니다.

교착상태의 해결 방법으로는 데드락이 발생하는 시나리오를 피하는 예방, 감지-회복, 데드락을 무시하는 방법 등이 있습니다. 예방은 필요조건 중 하나를 제거하여 교착상태가 발생하지 않도록 하는 방법입니다. 감지-회복은 교착상태가 발생했을 때 이를 감지하고 회복시키는 방법으로, 자원 할당 그래프 알고리즘 등을 사용합니다. 마지막으로 무시는 교착상태가 발생할 수 있는 상황을 무시하고 시스템을 운영하는 방법입니다.

교착상태는 시스템의 자원을 효율적으로 활용하지 못하게 하므로, 시스템 설계 및 운영에서 꼭 고려해야 할 중요한 문제입니다. 교착상태에 대한 이해와 적절한 대응을 통해 시스템의 안정성과 성능을 보장할 수 있습니다.

정리:
교착상태는 두 개 이상의 프로세스가 자원을 점유하고 대기하여 무한히 진행이 불가능한 상태를 말합니다. 교착상태는 상호 배제, 점유와 대기, 비선점, 순환 대기 네 가지 필요조건을 모두 충족해야 발생하며, 이를 해결하기 위해 예방, 감지-회복, 무시 등의 방법을 사용할 수 있습니다. 교착상태는 시스템의 성능과 안정성에 영향을 미치므로 중요한 문제로 다루어져야 합니다.

댓글