본문 바로가기

데드락2

OS - 동기화 세마포어 뮤텍스 동기화 (세마포어, 뮤텍스, 데드락)여러 스레드가 같은 메모리를 공유한다는 멀티스레드의 강점은 그대로 동기화 문제의 출발점이 된다. 두 스레드가 같은 변수에 동시에 쓰면 결과가 실행 순서에 따라 달라지는 경쟁 조건(race condition)이 발생하고, 그 결과는 매번 다른 값으로 떨어진다. 이 문제를 푸는 도구가 동기화 메커니즘이며, 그 중에서도 가장 자주 등장하는 세 가지가 뮤텍스(Mutex)·세마포어(Semaphore)·모니터(Monitor)이다. 본 글은 임계 구역의 정의부터 세 동기화 도구의 차이, 그리고 잘못 쓰면 발생하는 데드락(Deadlock)까지 세심하게 정리한다(출처: 위키백과 — Mutual exclusion). 제가 학교 OS 수업에서 처음 같은 카운터를 두 스레드로 1만 번씩 증.. 2026. 5. 18.
격리 수준 동시성 제어 격리 수준 (락, MVCC, 동시성)같은 데이터를 여러 트랜잭션이 동시에 읽고 쓰면 결과가 어긋날 수 있다. 이 문제를 다루는 영역이 동시성 제어(Concurrency Control)이며, ANSI SQL은 네 가지 격리 수준(Isolation Level)을 표준화해 어떤 종류의 이상 현상을 허용할지 골라 쓸 수 있게 했다. 본 글은 동시성 이상 현상 3종·ANSI 격리 수준 4단계·락 기반 vs MVCC 기반 동시성 제어를 세심하게 정리한다(출처: 위키백과 — Isolation (database systems)). 제가 학교 캡스톤에서 쿠폰 사용 처리를 기본 격리 수준(MySQL의 REPEATABLE READ)으로 두었다가 같은 쿠폰이 두 번 사용된 데이터가 끼어 있던 사고를 겪고 나서야 "기본 격리 .. 2026. 5. 15.

소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 블로그 이름