문제
데이터베이스에서 교착상태(Deadlock) 발생 조건 4가지를 설명하고, 교착상태 해결 기법 중 희생자 선택(Victim Selection) 시 고려해야 할 주요 요소 2가지를 서술하시오.
정답
교착상태 발생 조건은 상호배제(자원을 한 번에 하나의 프로세스만 사용), 점유와 대기(자원을 보유한 채 다른 자원 요청), 비선점(강제로 자원을 뺏을 수 없음), 순환대기(프로세스들이 순환적으로 자원을 기다림)이다. 희생자 선택 시 고려 요소는 트랜잭션이 수행한 작업량(적을수록 선택)과 트랜잭션이 사용하는 자원의 수(적을수록 선택)이다.
상호배제점유와 대기비선점순환대기희생자 선택작업량자원의 수교착상태
해설
교착상태는 두 개 이상의 트랜잭션이 서로가 보유한 자원을 기다리며 무한정 대기하는 상황입니다. 4가지 조건이 모두 만족되어야 발생하며, 탐지 후 해결할 때는 롤백 비용이 가장 적은 트랜잭션을 희생자로 선택하여 교착상태를 해결합니다.