본문 바로가기
전공/운영체제

Ch06. 교착 상태_02)교착 상태 필요 조건

by 임 낭 만 2023. 4. 28.

<쉽게 배우는 운영체제> 교재를 참고하였습니다.

교착 상태 필요조건

교착 상태 필요 조건

  • 다음 4가지 조건이 모두 발생해야만 교착상태 발생(필요조건)
    • 4가지 중 단 한 가지라도 만족하지 않으면 교착상태가 발생하지 않음
  • 상호 배제(mutual exclusion) : 한 프로세스가 사용하는 자원은 다른 프로세스와 공유할 수 없는 배타적인 자원이어야 함
  • 비선점(non-preemptive) : 한 프로세스가 사용 중인 자원은 중간에 다른 프로세스가 빼앗을 수 없는 비선점 자원이어야 함
  • 점유와 대기(hold and wait) : 프로세스가 어떤 자원을 할당받은 상태에서 다른 자원을 기다리는 상태여야 함
  • 원형 대기(circular wait) : 점유와 대기를 하는 프로세스 간의 관계가 원을 이루어야 함

교착 상태 필요 조건 분석

  • 상호 배제, 비선점 조건 : 자원이 어떤 특징을 가지는지를 나타냄. 즉, 사용하는 자원을 동시에 공유할 수 없고, 중간에 빼앗을 수도 없다면 자원을 가진 프로세스가 자원을 내놓을 때까지 무작정 기다리는 교착상태 발생
  • 점유와 대기, 원형 대기 조건 : 프로세스가 어떤 행위를 하고 있는지를 나타냄. 즉, 프로세스가 자원을 점유 및 대기하고 있는 상태에서 다른 프로세스를 방해하는 방향이 원을 이루면 서로 양보하지 않기 때문에 교착상태 발생

교착 상태 필요 조건


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

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

  • 상호 배제 : 포크는 한 사람이 사용하면 다른 사람이 사용할 수 없는 배타적인 자원임
  • 비 선점 : 철학자 중 어떤 사람의 힘이 월등하여 옆 사람의 포크를 빼앗을 수 없음
    • 자원을 빼앗을 수 있다는 것은 시간간격을 두고 그 자원을 공유할 수 있다는 의미이므로 상호배제가 성립되지 않고, 교착상태는 비 선점 자원을 사용할 때 발생
    • 상호배제와 비 선점 조건은 임계구역과 관련이 있음. 즉, 임계구역을 보호하기 위해 잠금 장치를 사용하면 상호배제와 비 선점 조건이 보장되고 교착상태가 발생할 수 있음
    • 그러나, 임계구역으로 보호되는 모든 자원이 교착상태를 유발하는 것은 아님. 임계구역의 자원을 사용하는 프로세스들이 점유와 대기, 원형 대기 상황에 처하면 교착상태가 발생함
  • 점유와 대기 : 한 철학자가 두 자원(왼쪽 포크와 오른쪽 포크)을 다 점유하거나, 반대로 두 자원을 다 기다릴 수 없음
    • 한 프로세스가 자원을 점유한 상태에서 다른 프로세스의 자원을 기다리면 서로 진행을 방해하는 상태가 되므로 교착상태가 발생
  • 원형 대기 : 철학자들은 둥그런 식탁에서 식사를 함, 원을 이룬다는 것은 선후 관계를 결정할 수 없어 문제가 계속 맴돈다는 의미 (사각형 식탁에서 한 줄로 앉아서 식사를 한다면 교착 상태가 발생하지 않음)

사각형 식탁과 식사하는 철학자 문제

댓글