반응형
교착상태 개념
다중프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원 할당을 무한정 대기하는 상태
교착상태 발생 조건
- 상호배제(뮤텍스) : 프로세스가 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용할 수 없는 상태
- 점유와 대기 : 한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태
- 비선점 : 한 프로세스가 점유한 자원에 대해 다른 프로세스가 선점할 수 없고, 오직 점유한 프로세스만이 해제 가능한 상태
- 환형 대기 : 두 개 이상의 프로세스 간 자원의 점유와 대기가 하나의 원형을 구성한 상태(식사하는 철학자 문제)
교착상태 해결 방법
- 예방 : 상호배제를 제외한 나머지 교착상태 발생 조건 부정, 점유 자원 해제 후 새 자원 요청
- 회피 : 안전한 상태를 유지할 수 있는 요구만 수락
- 은행원 알고리즘 : 교착상태에 빠질 가능성을 운영체제가 판단한 후, 교착 상태 발생 가능성이 없는 경우 자원 할당
- Wait-Die 기법 : 사용중인 자원을 점유하기 위해 특정 프로세스가 대기해야하는 경우 대기하는 프로세스는 항상 자원을 사용중인 프로세스보다 적은 타임스탬프를 보유
- Wound-Wait 기법 : 사용중인 자원을 점유하기 위해 특정 프로세스가 대기해야하는 경우 대기하는 프로세스는 항상 자원을 사용중인 프로세스보다 큰 타임스탬프를 보유
- 발견 : 시스템의 상태를 감시 알고리즘을 통해 교착 상태 검사
- 자원할당 그래프 알고리즘
- Wait for Graph
- 복구 : 교착상태가 없어질 때까지 프로세스를 순차적으로 제거, 희생자를 선택해야하고 기아 상태 발생
반응형