책읽기

[쉽게 배우는 운영체제](요약)[Part-2][Ch-6] 교착 상태

pythaac 2021. 7. 28. 21:42
이 글은 "쉽게 배우는 운영체제 (조성호 지음)"을 읽고 주관적으로 작성된 글입니다.

출처 : https://www.hanbit.co.kr/store/books/look.php?p_code=B5471691739

※ 요약

  1. 교착 상태
    • 2개 이상의 프로세스 모두가 다른 프로세스의 작업이 끝나길 기다려 작업이 진행되지 않는 상태
    • 시스템 자원, 공유 변수 / 파일, 응용 프로그램 사용시 발생
  2. 자원 할당 그래프
    • 프로세스의 사용중인 자원, 기다리는 자원을 방향성 그래프로 표현한 것
    • 자원의 할당 / 대기 상태를 한눈에 파악 가능
  3. 교착 상태 필요조건
    • 상호 배제 (Mutual Exclusion)
      - 한 번에 하나의 프로세스만 사용 가능한 자원
    • 비선점 (Non-preemption)
      - 할당된 프로세스로부터 강제로 뺏지 못하고 스스로 반납해야하는 자원
    • 점유와 대기 (Hold and Wait)
      - 다른 프로세스에 할당된 자원을 기다리는 프로세스가 존재
    • 원형 대기 (Circular Wait)
      - 점유와 대기의 프로세스 관계가 원형을 이룸
  4. 식사하는 철학자 문제
    • 교착 상태를 설명하기 위한 예
    • 원탁에 둘러앉은 철학자들이 양손에 포크를 들면 식사 가능
    • 포크를 잡는 순서 : 왼쪽 포크 -> 오른쪽 포크
    • 포크를 잡을 때까지 기다림
  5. 교착 상태 해결 방법
    • 예방
      - 교착 상태가 발생하는 4가지 조건을 무력화
    • 회피
      - 자원 할당량을 조절하여 해결
      - 유발할 가능성이 있는 경우 자원 할당 중단
      - 은행원 알고리즘
    • 검출 / 회복
      - 자원 할당 그래프를 모니터링
      - 교착 상태가 발생하는지 살펴보고, 발생하면 회복 진행
  6. 은행원 알고리즘
    • 회피를 구현하는 방법
    • 자원의 총 수 / 할당된 자원 수를 기준으로 safe / unsafe를 나눠 안정 상태를 유지하도록 자원 할당

 

1. 교착 상태의 개요

1) 교착 상태의 정의

2) 교착 상태의 발생

3) 자원 할당 그래프

 

2. 교착 상태 필요조건

1) 교착 상태 필요조건

2) 식사하는 철학자 문제와 교착 상태 필요조건

 

3. 교착 상태 해결 방법

1) 교착 상태 해결 방법

2) 교착 상태 예방

3) 교착 상태 회피

4) 교착 상태 검출

5) 교착 상태 회복

 

 

4. 다중 자원과 교착 상태 검출

1) 다중 지원과 사이클

2) 대기 그래프와 그래프 감소