반응형
교착상태(Deadlock) 정의
- 다중 트랜잭션 데이터베이스 시스템에서 다수 트랜젝션이 특정 자원의 할당을 무한정 기다리고 있는 상태
- 교착 상태에 있는 트랜젝션은 실행을 끝낼 수 없으며 시스템 자원이 묶여있어서 다른 작업을 시작하는것도 불가능.
- 예시 : T1은 T2가 X를 언락하기를 기다리고, T2는 T1이 Y를 언락 하기를 기다리고 있는 상황
교착상태 발생 원인
- 상호 배제 : 프로세스들이 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용하지 못함
- 점유와 대기 : 프로세스가 어떤 자원을 할당받아 점유하고 있으면서 다른 자원을 요구
- 비선점 : 프로세스에 할당된 자원은 사용이 끝날 때 까지 강제로 빼앗을 수 없으며 점유하고 있는 프로세스 자신만 해제가능
- 환형대기 : 프로세스간 자원 요구가 하나의 원형을 구성
교착상태 해결 방안
1. 교착상태 예방
(1) 교착상태에 빠지지 않도록 보장하는 규약
(2) 상호배제 예방, 부분할당 예방, 환형대기 예방
(3) 타임스탬프를 사용하는 Wait-Die, Wound-Wait기법
2. 교착상태 탐구와 복구
(1) 시스템이 교착 상태에 빠질 수 있도록 하고 교착상태 탐지와 복구 기법을 이용하여 규착상태 해결
(2) Detection : 시스템의 상태 감시 알고리즘을 통하여 교착상태 검사
(3) Recovery : deadlock이 없어질 때 까지 프로세스를 순차적으로 kill
반응형