교착상태1

OwlSuri·2023년 4월 15일
0

방통대 운영체제

목록 보기
6/12

교착상태

교착상태의 개요

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

교착상태

  1. 여러개의 프록세스가 서로 상대방의 작업이 끝나기만 기다리고 있어 어느쪽도 영원히 진행하지 못하는 상태

교착상태 기아상태 차이


-> 교착상태는 영원히 풀리지 않음
-> 기아상태는 언젠가는 풀림

교착상태의 특성

교착상태의 필요조건

  1. 상호배제
  2. 점유대기
  3. 비선점
  4. 환형대기
    -> 네가지 조건이 동시에 만족됭떄 교착상태 발생 가능

상호배제 조건

  1. 프로세스가 자원에 대한 배타적인 통제권을 요규
  2. 적어도 하나 이상의 자원은 여러 프로세스에 의해 동시에 사용될 수 없음
  3. 다른 프로세스가 점유한 자원이 필요하면 반드시 대기

점유대기 조건

  1. 프로세스가 이미 한 자원을 할당 받아 점유하고 있는 상황에서 다른 프로세스가 점유하고있는 또 다른 자원을 요구하여 해제되기를 기다리는 상황

비선점 조건

  1. 프로세스에 할당하는 자원은 그 프로세스가 사용을 마치고 스스로 반환하기 전에는 해제되지 않음
  2. 할당된 자원은 타의에 의해서는 해제되지 얺음

환형대기 조건

  1. 프로세스의 자원 점유 빛 점유된 자원의 요구 관계가 환형을 이르ㅡ며 대기하는 상황

지원할당 그래프 G=(V,E)

  1. 상호배제 : 하나의 할당간선
  2. 점유대기 : 한 프로세스에 할당간선과 요구 간선 연결
  3. 비선점 : 요구간선
  4. 환형대기 : 사이클
  • 사이클 없음 -> 교착상태 없음

  • 사이클 있음 -> 교착상태 발생 가능

  • 교착상태 예

  • 아닌 예

    사이클이 있지만 주변까지 살펴봐야함

교착상테 처리 기법

  1. 예방
  • 교착상태의 네가지 필요조건이 동시에 만족되는 것을 피하여 교착상태가 발생하지 않도록 하는 방법
  1. 회피
  • 프로세스에 필요한 자원의 최대량에 대한 정보를 이용하여 교착상태가 발생하지 않도록 하는 방법
  1. 탐지 및 복구
  • 교착상태의 발생여부를 조사하여 발생한 경우에는 적절한 조치를 취해 정상상태로 복구하는 방법

교착상태 예방

상호배제 조건 제거

  1. 공유할 수있는 자원 : 상호배제 필요없음
  • 예) 읽기 전용 파일
  1. 공유할 수 없는 지원 : 반드시 상호배제 필요
  • 예) 프린터
    -> 상호배제 조건 제거로 교착상테 예방은 불가능

점유대기 조건 제거

  1. 자원을 점유했을 경우 대기하지 않아야 함
  • 프로세스가 앞으로 필요한 모든 자원을 터음 한꺼번에 요구하여ㅛ 할당받음
    -> 자원이용률 낮아짐, 기아상태 가능
  1. 대기할 떄 자원을 점유하고 있지 않아야 함
  • 새로운 자원을 요구할떄 할당받던 자원을 모두 해제
    -> 점유도중 해제할 수 없는 자원에는 적용 불가 ex) 프린터

비선점 조선 제거

  1. 선점이 가능하도록 해야함
  • 자원의 특성에 따라 불가능한 경우 존재 ex) 프린터
  1. 다른 프로세스기 대기할 가능성 줄이기
  • 점유대기 상황이 발생하면 할당받았던 자원을 모두 해제
    -> 프린터 같은 자원에는 적용 불가

환형대기 조건 제거

  1. 모든 자원에 일련번호를 지정

  2. 방법1

  3. 방법2

  4. 점유대기 중인 프로세스는 점유중인 자원의 일련번보다 대기 중인 자원의 일련번호가 더 큼
    -> 환형대기 발생 불가능

  5. 프로세스마다 요구순서가 다를 수 있어 자원의 일련번호 설정 어려움

  6. 요구순서가 일련번호 오름차순을 못지키면 점유자원 해제 필요하나 적용 불가한 자원 존재

완벽하게 조건 제거하는 것은 어려움....

profile
기억이 안되면, 기록을 -

0개의 댓글