연예인

교착 상태 (deadlock) 핵심 요약 정리

비하인드톡톡 2022. 10. 30. 19:54

교착 상태
교착 상태

교착 상태

교착 상태 : 하나 이상의 프로세스가 자원을 공유하고 사용하는 상태를 의미하지만, 요구를 영원히 받아들일 수 없다.

 

예를 들어, 프로세스 1은 파일을 차지하지만 인쇄를 사용하도록 요구하고 프로세스 2는 파일을 사용할 때 주기적인 교착 상태를 초래할 수 있다.

 

또는, 프로세스 3은 인쇄를 사용하고 있으며, 프로세스 3이 인쇄를 계속 사용하는 경우 프로세스 4는 무한정 기다려야 한다. 이를 직업의 정체와 대기 상태라고 한다.  
 
이러한 교착 상태는 상호 배제, 오프라인 지점, 점거 및 대기 상태를 요구하며, 환산 분위기로 충분하다. 상호 배제를 통해 프로세스는 필요한 리소스를 독점적으로 통제합니다.

 

즉, 하나 이상의 프로세스가 동시에 임계값 영역에 접근하는 것을 방지하는 과정에서만 발생할 수 있다. 둘째로, 비선형 지점을 통해 프로세스가 보유한 자원은 다른 프로세스에 의해 우선시 될 수 없다.

 

즉, 어떤 프로세스가 공유 리소스를 사용하는 동안 중단될 때 프로세스는 이미 리소스를 지배하고 있으므로 다른 프로세스가 리소스를 지배하지 않는 교착 상태가 발생할 수 있습니다.

 

셋째, 점유 및 대기 특성으로 인해 정체 현상이 발생할 수 있습니다.

 

프로세스는 할당된 리소스로 다른 리소스를 기다립니다. 바쁜 과정이 있는 한 기다리는 과정은 필연적으로 정체될 것이다. 그리고 위에서 설명한 환형 대기의 특성 때문에 정체 현상이 발생할 수 있다.

 

교착상태 특성

이제 시스템 내의 프로세스와 리소스가 어떻게 연결되어 있는지, 그리고 교착 상태가 어떤 상황인지 알 수 있으므로 교착 상태를 살펴보겠습니다.

 

교착상태에서는 프로세스가 결코 완료할 수 없으며, 시스템 리소스가 연결되기 때문에 다른 작업을 시작할 수 없으며, 이 교착상태는 다음 요구 사항을 충족합니다.

 

  • 상호 예외 : 다른 프로세스에 의해 점유되는 추가 리소스를 얻으려면 적어도 하나의 리소스가 필요할 때까지 기다려야 합니다. 
  • 점유하며 대기 : 다른 프로세스에 의해 점유되는 추가 리소스를 확보하려면 프로세스가 적어도 한 번 이상 점유해야 합니다.
  • 비선형 점 : 그것은 자원을 마음대로 사용할 수 없어야 한다. 즉, 리소스를 강제로 게시할 수 없으며 리소스를 사용하는 프로세스는 작업이 완료된 후에만 자발적으로 게시할 수 있습니다.
  • 순환하는 대기 각 프로세스는 꼬리를 물어서 리소스를 차지해야 합니다.

교착상태 처리 방법

교착 상태 처리 방법에는 세 가지 방법이 있다.

 

첫 번째 방법은 침체를 예방하거나 예방하기 위해 프로토콜을 사용하는 것이다.

 

두 번째 방법은 시스템을 교착상태에서 벗어나게 한 다음 시스템을 복구하는 것입니다.

 

마지막으로, 세 번째 방법은 시스템의 교착 상태를 무시하고 마치 일어나지 않는 것처럼 꾸미는 것입니다.

교착상태 회피

교착 상태를 피하는 것은 프로세스가 필요할 때 안전한지 확인하기 위해 프로세스 리소스 요구 사항을 할당하는 방법입니다. 가장 대표적인 방법은 은행 알고리즘이다.
 

교착상태 발견

정체 감지는 컴퓨터 고장 원인이 정체인지, 아니면 다른 원인으로 인한 것인지 판단하는 방법이다. 이는 인접 행렬로 표현되며 리소스 및 프로세스를 식별하는 특성이 있습니다. 
 

교착상태 회복

교착 상태를 타개하기 위한 해결책은 교착 상태를 회복하기 위해 발생한 과정의 희생자의 수를 결정하는 것이다. 희생이 결정되면, 그것은 과정을 멈추고 점령된 자원을 빼앗는다. 이것은 희생양을 식별하는 기준이다.

 

  1. 프로세스는 낮은 우선순위 프로세스 리소스를 사전 정의하여 중단됩니다.
  2. 프로세스 리소스를 낮은 프로세스 상태로 예측하여 프로세스를 중단합니다.
  3. 리소스를 적게 사용하는 프로세스의 리소스를 정의하여 프로세스를 일시 중지합니다.

 

이러한 방법 중 상당수는 차단이 발생하는 것을 막을 수 있지만 대부분의 경우 이러한 솔루션은 비용이 많이 든다. 예를 들어 1년에 한두 번 사각지대가 있을 수 있고, 특히 사각지대가 없는 집행 동결이 있을 수 있으며, 이를 방지하기 위한 것보다 수동으로 한 번 복구하는 것이 훨씬 효과적인 방법이다.

 

따라서 시스템은 잠기지 않고 단순히 사각지대를 복구하는 데 사용할 수 있는 상황에 대해 수동 복구 방법을 가져야 한다.

 

2022.10.29 - [운영체제] - [운영체제] 프로세스 동기화

 

[운영체제] 프로세스 동기화

프로세스 동기화 프로세스는 독립적인 과정과 협력 과정으로 나뉜다. 협업 프로세스는 다른 프로세스에 의해 영향을 받을 수 있는 프로세스입니다. 반대로, 다른 프로세스에 영향을 미치지 않

hotpeople.co.kr