운영체제

[운영체제] 03 교착상태는..

juju824 2020. 10. 6. 14:55

📌교착상태

자원을 점유한 상태에서 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상 

 

✔️교착상태 발생하기 위한 필요 충분 조건 

( M H N C )

👉 상호배제 (Mutual Exclusion)

한번에 한 프로세스만 자원을 사용하는 것 

👉 점유와 대기 (Hold & Wait) 

다른 자원이 할당되기를 기다리는 동안 이미 확보한 자원을 계속 보유하고 있는 것

👉 비선점 (Non-Preemptive)

강제로 빼앗을 수 없다

👉 환형 대기 (Circular Wait) 

서로간의 요구 관계가 회전된다 

 

 

그렇다면,,

교착상태 해결방법은?

 

✔️예방 기법 (Prevention)

교착 상태는 위의 필요충분 조건이 "모두" 만족해야 하기 때문에 이중 1개의 조건만 발생하지 않아도 예방 가능

 

-상호 배제 부정 

독점적으로 사용할 수 있는 자원 없앤다

-점유 및 대기 부정

프로세스가 실행되기 전 필요한 모든 자원을 할당하여 프로세스 대기를 없앤다

자원이 점유되지 않은 상태에서만 자원을 요구할 수 있도록 한다

-비선점 부정

모든 자원을 빼앗을 수 있도록 만든다

-환형대기 부정

자원을 한 방향으로만 사용하게 하여 원형 대기를 예방한다

 

 

 

✔️회피 기법 (Avoidance)

-교착상태 발생시 적절히 피해나간다

-교착 상태를 완전히 배제하고 사전에 배제하는 것이 아닌 적절히 피해나가는 것 

-주로 은행원 Banker 알고리즘에 사용

👉 프로세스에 자원을 할당하고 어느 수준 이상 자원을 나눠주면 교착상태 발생 .. 이 기점을 파악 

=> 그 수준 이하로 자원 나눠주는 방법

 

❗️교착상태가 발생할 수 있는 상태 = 불완전 상태 

불완전 상태에서 항상 교착상태가 발생하는 것은 아니다 

불완전 상태 => 교착상태구나 라고 생각하면 X

 

 

 

✔️발견 기법 (Detection)

-시스템에 교착상태가 발생했는지 점검 

-교착상태가 있는 프로세스와 자원 발견 

-자원 할당 그래프 이용 

 

 

✔️회복 기법 (Recovery)

-교착 상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복

'운영체제' 카테고리의 다른 글

[운영체제] 02 UNIX란?  (0) 2020.09.25
[운영체제] 01 스레드부터 스케쥴링까지  (0) 2020.09.25