반응형

뮤텍스 3

Part 4-2-12. 멀티쓰레드 프로그래밍 : 이벤트(AutoResetEvent, ManualResetEvent), 뮤텍스

멀티 쓰레드 이벤트(AutoResetEvent) 오늘의 주제는 이벤트를 이용한 락 구현이다. 이전 시간에서 직원을 새로 고용해서 직원에게 부탁하는 방법이 이에 해당한다. 그렇지만 사실 해당 직원은 식당 직원이 아닌 커널 레벨에 있는 식당 관리자에 해당하는 것이다 😲.. 이런 식으로 커널 레벨로 옮겨서 실행을 할 때에는 어마어마하게 느리다는 단점이 있다. 대신 본인 입장에서는 시간을 낭비하는 것이 아니므로 행동을 이어가는 장점이 있다. C#에서는 이벤트를 구현할 때에는 두 가지 방법이 있다. 1. Auto Reset Event 이는 톨케이트를 생각하면 된다. 톨게이트를 보면 차가 한대한대씩 지나가고, 지나갈 때마다 톨게이트가 닫혀 대기해야 하는 상황이 발생하는데 이것이 바로 Auto Reset Event의..

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

1. 뮤텍스와 세마포어의 차이 뮤텍스와 세마포어는 모두 멀티스레드 애플리케이션에서 공유 리소스에 대한 액세스를 조정하는 데 사용되는 동기화 기본 요소입니다. 하지만 서로 다른 목적을 가지고 있으며 구현 방식도 다릅니다. 다음은 뮤텍스와 세마포어의 주요 차이점을 요약한 표입니다 기능 뮤텍스 세마포어 목적 한 번에 하나의 스레드만 공유 리소스에 액세스할 수 있도록 보장 제한된 수의 리소스에 대한 액세스 제어 구현 플래그 변수 사용 카운터 변수 사용 동작 잠긴 뮤텍스를 얻으려는 스레드를 차단 한계에 도달한 세마포어를 획득하려는 스레드를 차단 사례 경쟁 조건을 방지하는 데 사용 제한된 리소스에 대한 액세스를 제어하는 데 사용 뮤텍스와 세마포어 중 어떤 것을 사용할지는 애플리케이션의 특정 요구사항에 따라 달라집니..

공부/OS 2023.06.04

뮤텍스(Mutex)란?

1. 뮤텍스란? 컴퓨터 과학에서 뮤텍스는 여러 스레드 또는 프로세스의 동시 액세스로부터 공유 리소스를 보호하는 데 사용되는 동기화 기본 요소입니다. 뮤텍스는 한 번에 하나의 스레드만 공유 리소스에 액세스할 수 있도록 하여 경합 상태를 방지하고 데이터 무결성을 유지합니다.이를 통해 여러 스레드가 동시에 동일한 리소스에 액세스하여 조정 없이 수정하려고 시도할 때 발생할 수 있는 경쟁 조건을 방지할 수 있습니다. 2. 뮤텍스의 개념 상호 제외: 뮤텍스의 주요 목적은 상호 배제를 시행하는 것입니다. 스레드 또는 프로세스가 공유 리소스에 대한 독점적 액세스를 획득할 수 있는 메커니즘을 제공합니다. 스레드나 프로세스가 뮤텍스를 잠그면 해당 스레드나 프로세스는 리소스에 대한 독점적 소유권을 얻게 되며, 뮤텍스가 해제..

공부/OS 2023.06.04
반응형