오늘은 프로세스 동기화의 마지막 남은 부분들에 대해서 알아보겠습니다. 구체적으로는 Mutex Lock과 Semaphore에 대해 중점적으로 알아보고자 합니다. 1. Mutex Locks 바로 전의 글에서 하드웨어를 통한 동기화 기법인 test_and_set이나 compare_and_swap의 경우에도 문제점이 있다는 점에 대해서 공부했었습니다. 그래서 운영체제의 설계자들은 이러한 문제를 해결하기 위해 다시 소프트웨어 툴을 개발합니다. 그리고 이 중에 가장 간단한 도구가 바로 Mutex Lock입니다. 아마 리눅스에서 쓰레드를 공부해 보았다면 한번쯤은 사용해 보았을 것이라 생각됩니다. Mutex는 Mutual Exclusion을 뜻하고, 모든 프로세스는 Critical section에 들어가기 위해 loc..