반응형
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 |