Mutex

Mutex **뮤텍스 (Mutex)**는 멀티스레드 및 멀티프로세스 환경에서 공유 자원에 대한 동시 접근을 제어하기 위한 핵심 동기화 프리미티브다. 임계 구역 (Critical Section) 에 한 번에 하나의 실행 흐름만 접근하도록 보장하며, 레이스 조건, 데이터 무결성 문제, 교착 상태 등을 예방한다. 스핀 락, 재귀 락, 슬립 락 등 다양한 구현 방식이 존재하며, 우선순위 상속, 데드락 회피, 우선순위 역전 대응 등 고급 기능도 지원된다. 현대 운영체제 및 프로그래밍 언어에서 폭넓게 활용되며, RW-lock, RCU, Lock-Free 구조 등이 대체 기법으로 함께 고려된다. ...

October 4, 2024 · 42 min · Me

Monitor

Monitor 대표 태그 생성 Synchronization-Primitive Concurrency-Control Mutual-Exclusion 동작-메커니즘 대표 태그 생성 Synchronization-Primitive Thread-Safety Concurrency-Control High-Level-Abstraction 분류 체계 검증 현재 분류: “Computer Science Fundamentals > Concurrency and Parallelism > Synchronization Primitives > Software Level” 검증 결과: 적절한 분류입니다. 근거: 모니터 (Monitor)는 동시성 제어를 위한 소프트웨어 수준의 동기화 기법으로, 뮤텍스 (Mutex)와 조건 변수 (Condition Variables)를 결합한 고수준 추상화 메커니즘입니다. 운영체제나 하드웨어 수준이 아닌 프로그래밍 언어 차원에서 제공되는 동기화 구조이므로 Software Level 분류가 정확합니다. ...

October 3, 2024 · 98 min · Me

Semaphore

Semaphore 세마포어 (Semaphore) 는 1965 년 에츠허르 W. 다이크스트라가 제안한 동기화 메커니즘으로, 멀티스레드·멀티프로세스 환경에서 공유 자원 접근을 제어한다. 내부 정수 카운터와 대기 큐를 관리하며, 원자적 연산인 P(wait/acquire) 와 V(signal/release) 를 통해 자원 사용 순서를 조율한다. 이진 세마포어 (Binary) 는 뮤텍스처럼 단일 접근을 보장하고, 카운팅 세마포어 (Counting) 는 N 개의 자원을 관리한다. POSIX, System V, Java, Python, Go 등 다양한 환경에서 구현되어 임계 구역 보호, 리소스 풀 관리, 생산자 - 소비자 문제, 네트워크 요청 제한 등 폭넓게 활용된다. ...

October 3, 2024 · 62 min · Me