[Chapter 13] 교착 상태 - 1 교착 상태란

Kim Seohyun·2024년 2월 4일
0
post-thumbnail

교착 상태, 식사하는 철학자 문제, 자원 할당 그래프, 교착 상태 발생 조건
교착 상태를 해결하는 것 또한 운영체제가 맡는 중요한 임무 중 하나입니다. 교착 상태란 무엇이며, 그를 표현하는 자원 할당 그래프와 교착 상태의 발생 원인을 예시를 통해 알아보겠습니다.

식사하는 철학자 문제

식사하는 철학자 문제(dining philosophers problem)링크의 자료에서 알아보자. 중요한 것은 일어나지 않을 사건을 기다리며 진행이 멈춰 버리는 현상을 교착 상태(deadlock)라고 한다.

자원 할당 그래프

교착 상태는 자원 할당 그래프(resource-allocation graph)를 통해 표현할 수 있다. 어떤 자원을 사용하고 있고, 또 어떤 프로세스가 어떤 자원을 기다리고 있는지를 표현하는 간단한 그래프이며 아래 네 가지 규칙으로 그려진다. 그림은 책 본문을 참고하자.

첫째, 프로세스는 원으로, 자원의 종류는 사각형으로 표현

프로세스는 원으로, 자원의 종류는 사각형으로 표현한다.

둘째, 사용할 수 있는 자원의 개수는 자원 사각형 내에 점으로 표현

사용 가능한 자원의 개수는 여러 개 있을 수 있기 때문에 자원 사각형 내에 점으로 표현한다.

셋째, 프로세스가 어떤 자원을 할당받아 사용 중이라면 자원에서 프로세스를 향해 화살표를 표시

프로세스가 어떤 자원을 할당받아 사용 중이라면 자원에서 프로세스를 향해 화살표를 표시하고 자원 이용을 끝내고 운영체제에 자원을 반납하면 화살표는 삭제된다.

넷째, 프로세스가 어떤 자원을 기다리고 있다면 프로세스에서 자원으로 화살표를 표시

프로세스가 어떤 자원을 기다리고 있다면 프로세스에서 자원으로 화살표를 표시한다.

교착 상태 발생 조건

상호 배제

점유와 대기

비선점

원형 대기

4가지 키워드로 정리하는 핵심 포인트

  • 교착 상태는 일어나지 않을 사건을 기다리며 무한히 대기하는 현상을 의미합니다.
  • 식사하는 철학자 문제는 교착 상태의 발생을 보여 주는 예시입니다.
  • 자원 할당 그래프를 이용해 교착 상태를 표현할 수 있습니다.
  • 교착 상태 발생 조건은 상호 배제, 점유와 대기, 비선점, 원형 대기입니다.
profile
EWHA Cyber Security 19

0개의 댓글