Deadlock
교착상태
Multi process나 Thread는 공유 자원( 메모리, 파일, 디바이스 등 )을 사용하여 상태나 정보를 공유한다. Multi process나 Thread들은 경우에 따라 공유 자원을 동시에 사용하므로 동시성 문제가 발생한다. 이를 방지하기 위해 상호 배타적인 동기 매커니즘( Critical section, Mutex, Semaphore )을 사용한다.
그런데 Multi process나 Thread들이 공유 자원을 배타적으로 이용하다보면 문제가 발생한다.
일반적으로 잠금을 사용하면 공유 자원을 사용하는데 있어서 올바른 행동을 보장받을 수 있지만, 그럼에도 불구하고 공유 자원을 사용하는 Process나 Thread들은 어쩌다가 교착 상태( Deadlock )에 빠지게 된다.
위 그림처럼 두 Thread가 두 자원의 잠금을 사용하면서 동시에 배타적으로 참조하는 시스템인 경우, 두 Thread는 아무 이상 없이 잘 동작하다가 어느 순간 아무 것도 실행하지 않고 공유 자원의 잠금이 풀리기만을 기다리는 교착 상태에 빠지게 된다. 이같은 상태를 교착상태라고 한다.
자세한 예시와 설명은 아래 참조 페이지를 보도록하자.
'개발자 레니는 지금 - > 공부하는 중' 카테고리의 다른 글
Microsoft WAVE sound file format (0) | 2018.04.12 |
---|---|
Header 헤더 너란 아이.. (0) | 2018.04.04 |
👻프로그램, 프로세스, 데몬이란? (1) | 2017.08.24 |
음성, 영상파일종류 (0) | 2017.08.17 |
[ TCP/IP ] 2. 프로토콜 체계와 소켓 타입( TCP, UDP ) (0) | 2017.08.08 |