내 잡다한 노트

챕터6. 교착 상태 필요조건 본문

운영체제

챕터6. 교착 상태 필요조건

peanutwalnut 2022. 8. 29. 13:27

교착 상태는 여러가지 조건에 의해 발생하고 이 조건들이 다 충족되야 발생한다.

1. 상호 배제

한 프로세스가 사용하는 자원은 다른 프로세스와 공유할 수 없는 배타적인 자원이어야 한다.

배타적인 자원은 임계구역으로 보호되기 때문에 다른 프로세스가 동시에 사용할 수 없다.

따라서 배타적인 자원을 사용하면 교착 상태가 발생한다.

 

2. 비선점

프로세스가 사용중인 자원은 중간에 다른 프로세스가 뺏을 수 없는 비선점 자원이여야 한다.

뺏을 수 없다면 공유도 안되기 때문에 교착 상태가 발생한다.

 

3. 점유와 대기

프로세스가 어떤 자원을 할당받은 상태에서 다른 자원을 기다리는 상태여야 한다.

다른 프로세스가 필요로 하는 자원을 점유하고 있으면서 다른 자원을 기다리는 대기 상태가 되어야 한다.

 

4. 원형 대기

점유와 대기를 하는 프로세스 간의 관계가 원을 이루어야 한다.

방향이 원을 이루면 서로 양보하지 않아 교착 상태에 빠진다.