1. 개념

Untitled

Untitled

2. 교착상태 발생의 필요 충분 조건

1971년에 E. G. 코프만 교수는 교착상태가 일어나려면 다음과 같은 네 가지 필요 조건을 충족시켜야 함을 보였다. 이 네가지 조건중 하나라도 충족되지 않으면 교착상태가 발생하지 않는다.

아래의 4가지 조건이 모두 만족하는 상태를 교착 상태로 정의한다.

상호배제(Mutual Exclusion) 프로세스들이 필요로 하는 자원에 대해 배타적인 통제권을 요구한다.
점유대기(Hold and Wait) 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다린다.
비선점(Non-preemption) 프로세스가 어떤 자원의 사용을 끝낼 때까지 그 자원을 뺏을 수 없다.
환형 대기(Circular Wait) 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있다.

3. 예방기법(Prevention)

교착상태 예방 기법은 교착상태가 발생하지 않도록 사전에 시스템을 제어하는 방법으로 교착상태 발생의 네가지 조건 중에서 어느 하나를 제거함으로써 수행된다. 자원 낭비가 가장 심한 기법

🍏 주로 원형 대기를 배제를 한다. 제일 간편함. 하나의 프로세스 안에서 어떠한 하나의 스레드에서만 독점권을 줌.

ex) 카카오톡 채팅 중에 사진첨부를 동시에 할 수 없다.