교착상태





교착상태 - 여러 프로세스가 한정된 자원을 사용하려고 서로 경쟁하다 충돌이 일어나 대기 상태에 있어서 모두 상태를 변경시킬 수 없을 경우를 말함

교착상태 발생 원인

상호배제 - 한번에 한 프로세스만이 자원을 사용할 수 있음
점유와 대기 - 적어도 하나의 자원을 보유하고 다른 프로세스에게 할당된 자원을 얻기 위해 기다리는 프로세스가 있어야 함
비선점 - 자원은 선점될 수 없음
환형 대기 - 원 형태가 되서는 안됨

교착상태 해결방법

  • 교착상태의 예방 - 교착상태의 발생 가능성을 사전에 모두 제거하도록 시스템을 조절해, 교착상태의 필요조건 4가지 중 하나를 부정하는 방법
  • 교착상태의 회피 - 발생 가능성을 인정하고 교착 상태가 발생하려고 할 때 이를 피해가는 방법
  • 교착상태의 발견 - 일단 교착상태가 발생하도록 허용하고, 교착상태가 발생하면 교착상태가 일어났는지 판단하고 그와 관련된 프로세스와 자원을 조사하여 결정함.
  • 교착상태의 회복 - 시스템으로부터 교착상태를 제거하여 이후로는 교착상태에 빠지지 않도록 함.
    -> 보통 교착상태에 빠진 프로세스를 제거함.

댓글

이 블로그의 인기 게시물

[안드로이드 스튜디오 APK] 메모장 Memo 오픈 소스

[C 언어] 하노이 탑 Tower of Hanoi

[Swift] (1) IOS 앱 개발 준비