상호 배제 (Mutex)

작가: Lewis Jackson
창조 날짜: 8 할 수있다 2021
업데이트 날짜: 15 할 수있다 2024
Anonim
[10분 테코톡] 🎲 와일더의 Mutex vs Semaphore
동영상: [10분 테코톡] 🎲 와일더의 Mutex vs Semaphore

콘텐츠

정의-상호 배제 (Mutex) 란 무엇입니까?

상호 배제 (mutex)는 공유 리소스에 대한 동시 액세스를 방지하는 프로그램 개체입니다. 이 개념은 프로세스 또는 스레드가 공유 리소스에 액세스하는 코드 인 중요한 섹션과 함께 동시 프로그래밍에 사용됩니다. 한 번에 하나의 스레드 만 뮤텍스를 소유하므로 프로그램이 시작될 때 고유 한 이름을 가진 뮤텍스가 생성됩니다. 스레드가 리소스를 보유하면 리소스의 동시 액세스를 방지하기 위해 다른 스레드에서 뮤텍스를 잠 가야합니다. 리소스를 해제하면 스레드가 뮤텍스를 잠금 해제합니다.


Microsoft Azure 및 Microsoft 클라우드 소개 | 이 가이드를 통해 클라우드 컴퓨팅에 관한 모든 내용과 클라우드에서 비즈니스를 마이그레이션하고 운영하는 데 Microsoft Azure가 어떻게 도움이되는지 알아 봅니다.

Techopedia는 상호 배제 (Mutex)를 설명합니다

두 개의 스레드가 동일한 데이터에서 동시에 작동하면 Mutex가 등장합니다. 잠금 역할을하며 가장 기본적인 동기화 도구입니다. 스레드가 뮤텍스를 얻으려고하면 사용 가능한 경우 뮤텍스를 얻습니다. 그렇지 않으면 스레드가 절전 상태로 설정됩니다. 상호 배제는 대기 및 스위치를 사용하여 대기 시간과 통화 대기를 줄입니다. Mutex는 하드웨어 및 소프트웨어 수준에서 모두 시행 할 수 있습니다.

가장 적은 수의 명령어에 대해 인터럽트를 비활성화하는 것이 커널 수준에서 뮤텍스를 시행하고 공유 데이터 구조의 손상을 방지하는 가장 좋은 방법입니다. 여러 프로세서가 동일한 메모리를 공유하는 경우 가용성에 따라 리소스 획득을 활성화 및 비활성화하도록 플래그가 설정됩니다. 통화 중 대기 메커니즘은 소프트웨어 영역에서 뮤텍스를 시행합니다. 여기에는 Dekkers 알고리즘, 흑백 베이커리 알고리즘, Szymanskis 알고리즘, Petersons 알고리즘 및 Lamports 베이커리 알고리즘과 같은 알고리즘이 제공됩니다.

뮤텍스의 효율적인 구현을 위해 상호 배타적 리더 및 읽기 / 쓰기 뮤텍스 클래스 코드를 정의 할 수 있습니다.