Computer Science/운영체제

운영체제 6강 :: 교착상태 필요조건, 예방

HJPlumtree 2023. 4. 23. 15:05

운영체제에서 기억하고 싶은 내용

 

 

프로세스 자원 사용 절차
요구 -> 사용 -> 해제
요구 과정에서 가용한 자원 없으면 자원을 획득할 때까지 대기한다

 

 

교착 상태

여러 개의 프로세스가 상대방의 작업이 끝나기만 기다린다

어느 쪽도 영원히 진행하지 못하는 상태

 

 

교착 상태의 필요 조건

다음 네 가지 조건이 동시에 만족하면 교착상태 발생 가능하다

 

1. 상호배제

프로세스가 자원에 대해 배타적 통제권 요구

다른 프로세스가 점유한 자원 필요시 대기 필요

 

2. 점유대기(Hold and wait)

프로세스가 한 자원을 점유한 상태로 다른 자원 원할 시 대기

 

3. 비선점

할당된 자원은 타의에 의해 해제되지 않는다

 

4. 환형대기(Circular wait)

자원을 점유하고 점유된 자원의 요구 관계가 환형(원)을 이루며 대기

 

 

교착상태 처리 기법

1. 예방

네 가지 필요조건이 동시에 만족되지 않도록

 

2. 회피

각 프로세스가 필요한 자원의 최대량에 대한 정보로 방지

 

3. 탐지 및 복구

교착 상태가 생겼는지 탐지

정상상태로 복구

 

 

2, 3번은 다음 강의에서 알아봄

 

 

교착 상태의 예방

1. 상호배제 조건 제거

  • 공유할 수 있는 자원은 상호배제 필요 없다(읽기 전용 파일)
  • 공유할 수 없는 자원은 상호배제 필요(프린터 등)

 

2. 점유대기 조건 제거

  • 자원을 점유했을 때 대기하지 않도록
    • 앞으로 필요한 모든 자원을 처음에 한꺼번에 요구
    • 단점: 자원이용률 낮아지고, 기아상태 발생 가능

 

  • 대기할 때 자원을 점유하고 있지 않도록
    • 새로운 자원 요구시 할당받은 자원 모두 해제
    • 단점: 점유 도중에 해제할 수 없는 자원에 적용 불가

 

3. 비선점 조건 제거

  • 선점이 가능토록 해야한다
    • 선점이 불가능한 경우 존재(프린터 등)

 

  • 다른 프로세스가 대기할 가능성 줄이자
    • 점유 대기 상황 발생시 점유한 자원 모두 해제
    • 단점: 프린터 간은 자원에 적용 불가

 

4. 환형대기 조건 제거

모든 자원에 일련번호 지정

 

방법 1

프로세스가 자원을 일련번호가 오름차순 되도록 요구

단점: 프로세스마다 요구순서가 달라서 일련번호 설정 어렵다

 

방법 2

프로세스가 자원 요구시, 그보다 일련번호가 작은 자원만 점유하도록 

단점: 잠유자원 해제 불가능한 자원 존재