Bleeding edge

트랜잭션에서의 데드락이란 무엇이고 그 해결방법을 설명해주세요. 본문

CS

트랜잭션에서의 데드락이란 무엇이고 그 해결방법을 설명해주세요.

codevil 2022. 7. 6. 11:14

트랜잭션에서의 데드락은,

두 개의 트랜잭션이 서로의 리소스의 Lock을 획득하려고 할 때 발생하는 무한 대기 현상을 말한다. 

데드락 해결방법은,

1. 여러 작업이 공유자우너을 사용할 수 있도록 허용(상호배제 부정)

2. 작업이 실행되기 전 모든 자원 할당 (점유대기 부정)

3. 자원 점유 작업이 다른 자원을 요구하는 경우 자원을 반납하고 대기(비선정 부정)

4. 자원에 고유 번호를 할당하여 순서대로 자원요구(순환대기 부정)