임베디드 용어 사전
구조·RTOS

뮤텍스

공유 자원을 한 번에 하나만 쓰게 보장하는 잠금. 소유자 개념이 있어 우선순위 상속을 지원한다.

소유권이 있는 잠금이라는 점이 세마포어와의 결정적 차이다.

뮤텍스     잠근 태스크만 풀 수 있다 → 소유자를 알 수 있다 → 우선순위 상속 가능
세마포어   누구나 올리고 내릴 수 있다 → 신호·카운팅에 적합

언제 무엇을 쓰나

공유 자원 보호 (I²C 버스, 전역 구조체)   → 뮤텍스
ISR 이 태스크를 깨우기                  → 이진 세마포어
자원 개수 관리 (버퍼 3개)               → 카운팅 세마포어

ISR 에서는 뮤텍스를 쓰지 않는다. 인터럽트에는 소유자 개념이 성립하지 않고 블로킹도 불가능하다.

주의할 것

데드락       두 태스크가 서로가 쥔 잠금을 기다린다 → 잠금 획득 순서를 정해 둔다
긴 임계 구역  잠근 채로 오래 있으면 그만큼 다른 태스크가 밀린다
재귀 잠금     같은 태스크가 두 번 잠그면 기본 뮤텍스는 데드락. 필요하면 재귀 뮤텍스를 쓴다

함께 보면 좋은 용어

노트에서 맥락과 함께 보기 — RTOS — 선점과 블로킹을 되찾는다