공부/OS

뮤텍스(Mutex)와 세마포어(Semaphores)의 차이점

셩잇님 2023. 6. 4. 23:07
반응형

 

 

1.  뮤텍스와 세마포어의 차이

뮤텍스와 세마포어는 모두 멀티스레드 애플리케이션에서 공유 리소스에 대한 액세스를 조정하는 데 사용되는 동기화 기본 요소입니다. 하지만 서로 다른 목적을 가지고 있으며 구현 방식도 다릅니다. 다음은 뮤텍스와 세마포어의 주요 차이점을 요약한 표입니다

 

기능 뮤텍스 세마포어
목적 한 번에 하나의 스레드만 공유 리소스에
액세스할 수 있도록 보장
제한된 수의 리소스에 대한 액세스 제어
구현 플래그 변수 사용 카운터 변수 사용
동작 잠긴 뮤텍스를 얻으려는 스레드를 차단 한계에 도달한 세마포어를 획득하려는
스레드를 차단
사례 경쟁 조건을 방지하는 데 사용 제한된 리소스에 대한 액세스를 제어하는 데 사용


 뮤텍스와 세마포어 중 어떤 것을 사용할지는 애플리케이션의 특정 요구사항에 따라 달라집니다. 리소스에 대한 독점 액세스를 제공하는 것이 목표라면 일반적으로 뮤텍스가 더 적합합니다. 동기화에 여러 스레드/프로세스 간의 조정이 필요하거나 여러 리소스에 대한 액세스를 제어해야 하는 경우 세마포어가 더 나은 선택일 수 있습니다.

 

 

 

반응형

'공부 > OS' 카테고리의 다른 글

락(Lock)과 스레드(Thread)의 차이점  (0) 2023.06.05
싱글 스레드(single thread)란?  (0) 2023.06.05
뮤텍스(Mutex)란?  (0) 2023.06.04
세마포어(semaphore)란?  (0) 2023.06.03
운영 체제(OS)란?  (1) 2023.06.03