Dead Lock의 4가지 발생 조건


Dead Lock의 4가지 발생 조건

면접 과정에서 질문이 들어왔었습니다. 분명히 옛날에 본 적은 있지만 사실 외우고 있거나 할 필요는 없다고 생각했었는데, 질문이 들어와서 결국 대답하지 못했습니다.

이왕이면 이런 지식들도 알아두면 당연히 좋은 것들이니 정리를 하면 좋겠다 싶어서 정리를 남깁니다. 일단 DeadLock이라는 것은, 일반적으로 교착상태라고 부릅니다.

즉, 서로가 서로를 대기하고 있다보니 이러지도 저러지도 못하는 것을 교착상태라고 부릅니다. 프로그래밍에서는 의외로 흔하게 일어납니다만, 일반적으로 게임 엔진 내에서 프로그래밍을 하다보니 이것도 기억을 할 일이 없어서 역시나 까먹고 있던 지식이기도 합니다.

쓰레드를 신경 쓸일이 별로 없다보니... ㅠ_ㅠ 발생 조건은 사실상 4가지 유형밖에 없다고 확정이 난 부분이기도 합니다.

상호배제 (Mutual Exclusion) : 한번에 하나의 프로세스만이 공유자원을 사용함 점유 대기(Hold and Wait): 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다림...



원문링크 : Dead Lock의 4가지 발생 조건