mutex
-
Java - Mutex & Semaphore & MonitorLanguage/Java 2022. 4. 6. 17:17
뮤텍스(Mutex Exclusion) 뮤텍스란? 멀티프로그래밍 환경에서 자원에 대한 접근에 제한을 강제하기 위한 동기화 기법이다. 뮤텍스의 특징은 아래와 같다. 1. boolean 타입의 lock 변수를 사용하기 때문에, 1개의 공유 자원에 대한 접근을 제한한다. 2. 공유 자원을 사용 중인 스레드가 있을 때, 다른 스레드가 공유 자원에 접근한다면 블로킹 후 대기 큐로 보낸다. 3. lock을 건 스레드만 lock을 해제할 수 있다. 세마포어(Semaphore) 세마포어란? 멀티프로그래밍 환경에서 다수의 프로세스나 스레드가 n개의 공유 자원에 대한 접근을 제한하는 방법으로 사용되는 동기화 기법이다. 세마포어의 특징은 아래와 같다. 1. 세마포어 변수를 통해 wait, signal을 관리한다. 세마포어 변..
-
Operating System - 세마포어(Semaphore) & 뮤텍스(Mutex)Computer Science/Operating System 2022. 1. 25. 13:30
세마포어(Semaphore)와 뮤텍스(Mutex) 임계 구역(Critical Section)이란? 프로세스 혹은 스레드가 작업을 수행하면서 공유된 자원에 접근하게 되는데, 이때 동기화 처리를 제대로 해주지 않은 문제가 발생한다. 이렇듯 공유되는 부분은 굉장히 중요한데, 프로그램 코드 상에서 공유 자원에 접근하는 부분을 임계 구역(Critical Section)이라고 한다. 이렇게 임계 구역에 여러 프로세스 및 스레드가 함부로 접근할 수 없도록 관리를 잘해줘야 하는데, 이를 위해 사용하는 방식이 대표적으로 세마포어(Semaphore)와 뮤텍스(Mutex)가 있다. 세마포어(Semaphore)의 동작 과정 세마포어를 이용하는 레스토랑의 화장실에는 여러 개의 칸이 있다. 그리고 화장실 입구에는 현재 화장실의 ..