6-1.[os] 교착 상태의 개요

교착 상태

  • dead lock
  • 2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만 기다리며 작업을 더 이상 진행하지 못하는 상태
  • 여러 프로세스가 작업을 진행하다 보니 자연적으로 일어나는 문제
  • 운영체제는 감시를 하다가 교착 상태가 발생하면 강압적으로 해결해야함

아사 현상

  • 운영체제가 잘못된 정책을 사용하여 특정 프로세스의 작업이 지연되는 문제

교착 상태의 발생

시스템 자원

  • 다른 프로세스와 공유할 수 없는 자원을 사용할 때 발생
  • 동시에 같이 사용할 수 없는 시스템 자원을할당받은후 양보하지 않는 경우

공유 변수

  • 한 변수를 할당 받은 상태에서 다른 변수를 무한 대기
  • P1 과 P2 둘 다 임계구역에 들어가지 못하는 교착 상태

image.png

응용 프로그램

  • 여러 프로세스가 데이터베이스에 저장된 데이터를 사용할 때는 데이터의 일관성을 유지해야 한다

자원 할당 그래프

  • resource allocation graph
  • 프로세스가 어떤 자원을 사용 중이고 어떤 자원을 기다리고 있는지를방향성이 있는 그래프로 표현한 것
  • 어떤 프로세스에 자원이 할당되어 있는지 혹은 어떤 프로세스가 자원을 기다리고 있는지

image.png

  • 다중 자원
    • multiple resource
    • 여러 프로세스가 하나의 자원을 동시에 사용

교착상태 예시 - 식사하는 철학자

  • 왼쪽에 있는 포크를 잡은 뒤 오른쪽에 있는 포크를 잡아야만 식사가 가능하다

image.png

  1. 철학자들은 서로 포크를 공유할 수 없다.

    • 자원을 공유하지 못하면 교착 상태가 발생한다.
  2. 각 철학자는 다른 철학자의 포크를 빼앗을 수 없다.

    • 자원을 빼앗을 수 없으면 자원을 놓을 때까지 기다려야 하므로 교착 상태가 발생한다.
  3. 각 철학자는 왼쪽 포크를 잡은 채 오른쪽 포크를 기다린다.

    • 자원 하나를 잡은 상태에서 다른 자원을 기다리면 교착상태가 발생한다.
  4. 자원 할당 그래프가 원형이다.

    • 자원을 요구하는 방향이 원을 이루면 양보를 하지 않기 때문에교착상태가발생한다.

Did you find this article valuable?

Support Software Engineer at Your Service by becoming a sponsor. Any amount is appreciated!