2025/10/17 2

[OS] 세마포어(Semaphore)와 뮤텍스(Mutex)

세마포어(Semaphore)와 뮤텍스(Mutex)다중 스레드 환경에서 웹 애플리케이션을 개발할 때, 공유 자원(Shared Resource) 에 대한 접근 제어는 피할 수 없는 문제다여러 스레드가 동시에 동일한 데이터를 수정하려 하면, 데이터 무결성이 깨지거나 경쟁 상태(Race Condition) 가 발생할 수 있다.이러한 문제를 해결하기 위한 대표적인 동기화 기법이 세마포어(Semaphore) 와 뮤텍스(Mutex) 이다.이들은 모두 운영체제(OS) 수준에서 공유 자원에 대한 접근을 제어하기 위해 사용되는 동기화 메커니즘으로,자원 접근을 제어하는 ‘락(lock)’을 관리하는 기술이라 할 수 있다. 즉, 낙관적 락(Optimistic Lock), 비관적 락(Pessimistic Lock), 분산 락(D..

OS 2025.10.17

낙관적 락(Optimistic Lock)과 비관적 락(Pessimistic Lock)

동시에 여러 트랜잭션이 같은 데이터를 수정하려고 할 때, 데이터의 정합성(Consistency)이 깨질 수 있다.이를 방지하기 위해, 트랜잭션 간의 충돌을 제어하는 동시성 제어(Concurrency Control) 기법이 필요하다.세마포어(Semaphore)와 뮤텍스(Mutex)는 운영체제(OS) 수준에서 스레드 간 자원 접근을 제어하기 위해시스템 락을 거는 방법이다.반면, 낙관적 락과 비관적 락은 서버 애플리케이션 혹은 데이터베이스(DB) 레벨에서 적용되는 동시성 제어방식이다.즉, 단일 프로세스 내의 스레드 동기화가 아니라,여러 트랜잭션이 같은 데이터를 수정하려 할 때 데이터의 정합성(Consistency)을 유지하기 위한 방법이라 할 수 있다. 비관적 락 (Pessimistic Lock)비관적 ..

DB 2025.10.17