루리코딩 세상

Deadlock (교착 상태) 본문

이론

Deadlock (교착 상태)

루리딩 2025. 5. 26. 09:35

병목 현상과 교착 상태의 가장 큰 차이점은 한정된 자원 안에서 속도가 느린 구성요소의 속도를 맞추어 전체가 느려지는 것을 병목현상이지만, 교착 상태는 한정된 자원을 둘 이상의 주체가 사용하려 접근하는 점에서는 동일하지만, 동시에 기다린다는 점에서 차이점을 갖고있다.

 

발생 조건 (Coffman conditions)


상호 배제 (Mutual Exclusion)

교착 상태 시나리오의 핵심 요소인 상호 배제는 프로세스들이 자원에 대한 배타적 접근을 위해 경쟁할 때 발생된다. 이러한 맥락에서 한 프로세스가 자워늘 점유하면 다른 프로세느느 대기해야 하므로 잠재적 교착 상태가 발생하게 된다. 이러한 상황은 점유 및 대기, 비선점, 순환 대기와 같은 다른 요인들과 결합되어 시스템 정지 상태로 이어질 수도 있다. 상호 배제가 교착 상태에 어떻게 영향을 미치는지 이해하는 것이 자원 경합으로 인한 교착 상태의 위험을 최소화 하는 견고한 시스템을 설계하는 데 필수적이다.

 

보류 및 대기 (Hold and Wait)

프로세스가 할당된 자원을 가진 상태로 다른 자원을 기다린다.

 

선점 없음 (No preemption)

프로세스가 어떤 자원의 사용을 끝날 때까지 그 자원을 빼을 수 없다. 하나의 구간이 양보될 수 없는 상황이다.

 

순환 대기 (Circular Wait)

각 프로세스가 어떤 자원의 사용을 끝날 때까지 그 자원을 뺏을 수 없다.

 

이 조건 중에서 한가지라도 충족되지 않았을 경우에는 교착이 발생되지 않는다. 즉 독립적인 영향을 끼치는 것이 아닌, 상호적인 관계를 갖고있음이다.

 

 

교착 상태 복구 기술


프로세스 종료 : 교착 상태에 관련된 하나 이상의 프로세스를 종료하는 것.

리소스 선점 : 프로세스에서 리소스를 강제로 빼앗는 것

롤백 : 시스템을 이전의 교착 상태가 없는 상태로 복원하는 방법

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

PCH(Platform Controller Hub, PCH) 플랫폼 컨트롤러 허브  (1) 2025.05.27
해시코드(Hashcode)  (1) 2025.05.27
확장자 명에 따른 프로그램 유형  (0) 2025.05.14
CPU Register  (0) 2025.05.14
캐시 메모리 (Cache memory)  (1) 2025.05.14