Featured image of post [Concurrency 07] SPSC/MPMC 큐와 링버퍼

[Concurrency 07] SPSC/MPMC 큐와 링버퍼

SPSC와 MPMC 큐의 설계 차이를 링버퍼 인덱스 관리 관점에서 다루고, Vyukov의 per-cell 시퀀스 번호 MPMC 알고리즘과 캐시 라인 패딩·로컬 인덱스 캐싱 기법을 컴파일 가능한 C++20 코드와 ThreadSanitizer 검증으로 설명합니다.

Featured image of post [Concurrency 07] std::jthread와 stop_token

[Concurrency 07] std::jthread와 stop_token

C++20 std::jthread의 협력적 취소 메커니즘을 다룹니다. stop_token/stop_source/stop_callback의 내부 동작, 소멸자의 자동 request_stop+join, std::thread 대비 안전성 이점과 콜백 실행 스레드·마이그레이션 함정을 정리합니다.

Featured image of post [Concurrency 07] Thread-local Storage 비용과 패턴

[Concurrency 07] Thread-local Storage 비용과 패턴

thread_local 접근 비용을 가르는 정적(Local/Initial Exec) TLS 모델과 동적(General/Local Dynamic) 모델의 차이를 분석하고, 스레드별 캐시·카운터 패턴, static TLS 고갈과 스레드 풀 재사용 함정을 다룹니다.

Featured image of post [Concurrency 07] Thread-per-core 아키텍처와 io_uring 연계

[Concurrency 07] Thread-per-core 아키텍처와 io_uring 연계

IORING_SETUP_SINGLE_ISSUER로 io_uring 제출 경로의 락을 생략하는 원리와 thread-per-core 아키텍처가 결합해 지연시간을 줄이는 방식을 다룹니다. Apache Iggy의 마이그레이션 사례로 설계 판단 기준을 정리합니다.

Featured image of post [Concurrency 07] Wait-free 프로그래밍 기초

[Concurrency 07] Wait-free 프로그래밍 기초

Wait-free와 lock-free의 진행 보장 차이(개별 스레드 vs 시스템 전체)를 Herlihy의 consensus 계층과 helping 메커니즘으로 설명하고, 실무에서 wait-free를 추구할 상황과 lock-free로 충분한 상황의 판단 기준을 정리합니다.

Featured image of post [Concurrency 07] 동기화 비용 정량 분석

[Concurrency 07] 동기화 비용 정량 분석

mutex·spinlock·atomic 연산의 uncontended·contended 비용을 futex 시스템콜 개입 시점과 캐시 코히런시(MESI) 관점에서 정량 분석하고, Google Benchmark·perf로 직접 측정하는 방법을 다룹니다.

Featured image of post [Concurrency 07] 스레드 풀 최적화와 워크 스틸링

[Concurrency 07] 스레드 풀 최적화와 워크 스틸링

스레드 풀에서 단일 작업 큐의 경합을 줄이는 구조와 work-stealing 알고리즘(로컬 큐 LIFO/FIFO, victim 선택, 로드 밸런싱)을 다루며, 직접 구현과 oneTBB·Taskflow 채택의 판단 기준을 정리합니다.

Featured image of post [Concurrency 07] 실행 정책 병렬 알고리즘

[Concurrency 07] 실행 정책 병렬 알고리즘

C++17 실행 정책(seq/par/par_unseq)과 C++20 unseq로 STL 알고리즘을 병렬화하는 원리, GCC(TBB)·Clang(libc++)·MSVC STL 구현 차이, 입력 크기별 손익분기점과 예외 시 std::terminate 함정을 다룹니다.

Featured image of post [Concurrency 07] 코루틴 기반 동시성 패턴

[Concurrency 07] 코루틴 기반 동시성 패턴

C++20 코루틴으로 태스크를 체이닝하고 스레드 풀에 스케줄링하는 패턴과 비동기 파이프라인 구성을 다룹니다. symmetric transfer로 스택 증가 없이 태스크를 잇고, 코루틴 파라미터 수명 함정을 깨진 코드로 짚은 뒤 올바른 구현과 ASan 검증까지 정리합니다.

Featured image of post [CPU 05] Apple Silicon 아키텍처

[CPU 05] Apple Silicon 아키텍처

Apple M 시리즈의 P코어·E코어 비대칭 멀티프로세싱과 macOS QoS 스케줄러, Unified Memory Architecture가 지연시간과 대역폭에 미치는 영향을 다룹니다. M5 Fusion Architecture 사례로 공유 메모리 구조의 트레이드오프 판단 기준을 정리합니다.