DB/[이론]

교착상태

씩씩한 IT블로그 2022. 3. 10. 13:21
반응형

교착상태(Deadlock) 정의

- 다중 트랜잭션 데이터베이스 시스템에서 다수 트랜젝션이 특정 자원의 할당을 무한정 기다리고 있는 상태

- 교착 상태에 있는 트랜젝션은 실행을 끝낼 수 없으며 시스템 자원이 묶여있어서 다른 작업을 시작하는것도 불가능.

- 예시 : T1은 T2가 X를 언락하기를 기다리고, T2는 T1이 Y를 언락 하기를 기다리고 있는 상황

 

교착상태 발생 원인

- 상호 배제 : 프로세스들이 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용하지 못함

- 점유와 대기 : 프로세스가 어떤 자원을 할당받아 점유하고 있으면서 다른 자원을 요구

- 비선점 : 프로세스에 할당된 자원은 사용이 끝날 때 까지 강제로 빼앗을 수 없으며 점유하고 있는 프로세스 자신만 해제가능

- 환형대기 : 프로세스간 자원 요구가 하나의 원형을 구성

 

교착상태 해결 방안

1. 교착상태 예방 

    (1) 교착상태에 빠지지 않도록 보장하는 규약

    (2) 상호배제 예방, 부분할당 예방, 환형대기 예방

    (3) 타임스탬프를 사용하는 Wait-Die, Wound-Wait기법

 

2. 교착상태 탐구와 복구

    (1) 시스템이 교착 상태에 빠질 수 있도록 하고 교착상태 탐지와 복구 기법을 이용하여 규착상태 해결

    (2) Detection : 시스템의 상태 감시 알고리즘을 통하여 교착상태 검사

    (3) Recovery : deadlock이 없어질 때 까지 프로세스를 순차적으로 kill

 

 

반응형