교착 상태의 개요
: 2개 이상의 작업이 동시에 이루어질 때, 서로 다른 작업이 끝나기만 기다리는 경우
rf. 아사 현상과의 차이점
아사 현상 : 잘못된 정책으로 특정 프로세스의 작업이 지연됨 ㄴ 아사 현상의 해결 : 프로세스가 양보할 수 있는 상한선(에이징)을 정하면 해결된다.
교착 상태 : 여러 프로세스가 작업을 진행하다 보면 나타나는 자연적인 현상
(1) 시스템 자원 : 다른 프로세스와 공유할 수 없는 자원을 사용할 때 발생한다.
ㄴ P1이 프린터를 할당 받고 스캐너를 기다림 ㄴ P2가 스캐너를 할당 받고 프린터를 기다림
(2) 잠금 : 잠금을 사용할 때 발생한다.
(3) 응용 프로그램 : 예를 들어 데이터베이스는 일관성의 유지를 위해 락을 사용하는데 이때 교착상태가 발생할 수 있다.
: 프로세스가 어떤 자원을 사용중이고 어떤 자원을 기다리고 있는지를 방향성이 있는 그래프로 표현한 것
교착 상태 필요조건
: 4명의 철학자. 4개의 포크. 두 개의 포크를 집어야만 밥을 먹을 수 있다.
교착 상태 해결 방법
교착 상태 예방은 프로세스 작업 방식을 제약하기에 사용하기 어렵다.
교착 상태 회피는, 시스템 운영 방식에 변경을 가하지 않아 교착 상태 예방 보다 유연하다.