
뮤텍스(Mutex)와 세마포어(Semaphore) / 동기화문제와 임계영역
·
CS 공부/운영체제
동기화 문제를 해결하기 위해 뮤텍스(mutex), 세마포어(Semaphore) 기법 등을 사용할 수 있다. 뮤텍스와 세마포어를 설명하기 위해 알아야 할 용어는 동기화 문제와 임계영역이다. 동기화 문제란 무엇인가? 서로 다른 process나 thread가 메모리 영역을 공유하기 때문에 (여기서, process경우는 IPC 공유 메모리 방식을 이용하는 경우이다.) 여러 process나 thread가 동일한 자원에 동시에 접근하여 엉뚱한 값을 읽거나 수정하게 되는 문제를 말한다. 예시를 통해 알아보자. count++를 CPU 입장에서 분해해보면 3개의 atomic operations으로 나뉜다. count 변수의 값을 가져온다. count 변수의 값을 1 증가시킨다. 변경된 count 값을 저장한다. CPU는..