📌교착상태
자원을 점유한 상태에서 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상
✔️교착상태 발생하기 위한 필요 충분 조건
( 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 |