Mutex Semaphore
프로그래밍/Programming
2020. 4. 4.
[OS] Semaphore(세마포어)와 Mutex(뮤텍스)
기존에 구축해놓았던 프로젝트의 구조 변경이 필요한 순간이 찾아왔었다. 몇 가지 이슈로 인해 Singleton Pattern에 기반한 구조 변경이 필요하였고, 관련 디자인 패턴을 검색하는 과정에서 'Semaphore'라는 공통의 키워드를 발견하게 되었다. 세마포어(Semaphore) 공유된 자원의 데이터를 여러 프로세스가 접근하는 것을 막는 것. Wikipedia의 정의에 따르면 세마포어는 "두 개의 원자적 함수로 조작되는 정적 변수로서, 멀티프로그래밍 환경에서 공유 자원에 대한 접근을 제한하는 방법"으로 사용된다. 세마포어는 일반적으로 비교적 긴 시간을 확보하는 리소스에 대하여 이용하게 된다. Unix 시스템의 프로그래밍에서 OS의 리소스를 경쟁적으로 사용하는 Multi Process 환경에서 액션을 제..