교착 상태
교착 상태는 각 컴퓨터가 다른 프로세스에 할당된 리소스를 기다리는 상황입니다. 이 상황에서는 필요한 리소스가 또 다른 리소스가 해제되기를 기다리고 있는 다른 프로세스에 의해 점유되어 있을 때만 프로세스가 실행됩니다. 교착 상태가 발생하기 전에 이를 방지하는 것이 중요합니다. 교착 상태 발생은 리소스 스케쥴러에 의해 탐지될 수 있으며, 이는 운영 체제가 서로 다른 프로세스에 할당된 모든 리소스를 추적하는 데 도움이 됩니다. 교착 상태는 다음 네 가지 조건이 동시에 지속되는 경우 발생할 수 있습니다.
•비선점 – 프로세스가 작업을 완료한 후에 리소스를 점유 중인 해당 프로세스에 의해 자발적으로만 리소스가 해제될 수 있습니다.
•상호 배제 – 공유 리소스에 대한 접근을 제어하는 데 사용되는 특수 유형의 바이너리 세마포어입니다. 이를 통해 현재 우선 순위가 높은 작업이 가능한 한 최단 시간 동안 차단된 상태로 유지될 수 있습니다.
•점유와 대기 – 이 조건에서는 하나 이상의 리소스를 대기하는 동시에 하나 이상의 다른 리소스를 점유하지 못하도록 프로세스를 중지해야 합니다.
•순환 대기 – 모든 리소스 유형의 전체 순서를 적용합니다. 순환 대기에서는 또한 모든 프로세스가 오름차순 열거 방식으로 리소스를 요청해야 합니다.
교착 상태를 처리하는 방법에는 다음 세 가지가 있습니다.
•시스템이 교착 상태가 되도록 두지 마십시오.
•교착 상태가 발생하도록 둔 후, 발생 시 선점을 수행해 교착 상태를 처리하십시오.
•교착 상태가 발생하면 시스템을 다시 시작하십시오.