IT 그리고 정보보안/Knowledge base

교착상태 (Deadlock)

plummmm 2021. 4. 17. 12:22
반응형

교착상태, 데드락에 대해 알아봅시다. 운영체제 공부했으면 꼭 한번쯤은 들어봤을 법한 용어지.

둘 이상의 작업이 서로를 기다리다가 결국 둘다 ㅄ이 되는 상태.

 

한놈은 다른놈 작업이 끝나길 기다리고, 한놈은 다른놈이 작업을 시작하길 기다리는..뭐 그런 상태

 

교착상태가 일어나는 데에 조건이 있고, 또 그것을 관리하는 방법들이 몇가지 존재한다.

각각 4가지 씩 있으니.. 함 알아보자.

 

* 교착상태의 조건

1. 상호배제 (Mutual Exclusion) : 흔히 말하는 뮤텍스이다. 쉽게말해 "내가 자원쓸 때 너넨 쓰지마"

2. 점유와 대기 (Hold & wait) : 지가 자원을 점유하면서 다른 자원이 할당되길 기다리는 것

3. 비선점 (No preemption) : 할당된 자원이 있을땐 절대 뺏을 수 없다.

4. 순환대기 (Circular wait) :  각 프로세스는 순환적으로 연결되어 다음 자원을 기다린다. 

 

이 조건들 중에 하나라도 만족하지 않으면 데드락은 일어나지 않는다.

 

* 교착상태의 관리

1. 교착상태의 예방 : 조건 4가지 중 하나를 사전에 불만족시키는 방법. 자원의 낭비가 심하다. 

2. 교착상태의 회피 : 교착상태가 발생하면 피해가는 기법. 다음에 어떤 자원이 할당될지 알아야한다. (은행원 알고리즘)

3. 교착상태의 탐지 : 데드락 발생시 탐지하고 원인규명

4. 교착상태의 복구 : 교착상태로 조져놓은 자원을 회복

반응형