/
https://42jerrykim.github.io/ _index.md
Wait-free와 lock-free의 진행 보장 차이(개별 스레드 vs 시스템 전체)를 Herlihy의 consensus 계층과 helping 메커니즘으로 설명하고, 실무에서 wait-free를 추구할 상황과 lock-free로 충분한 상황의 판단 기준을 정리합니다. mutex·spinlock·atomic 연산의 uncontended·contended 비용을 futex 시스템콜 개입 시점과 캐시 코히런시(MESI) 관점에서 정량 분석하고, Google Benchmark·perf로 직접 측정하는 방법을 다룹니다. 스레드 풀에서 단일 작업 큐의 경합을 줄이는 구조와 work-stealing 알고리즘(로컬 큐 LIFO/FIFO, victim 선택, 로드 밸런싱)을 다루며, 직접 구현과 oneTBB·Taskflow 채택의 판단 기준을 정리합니다. C++17 실행 정책(seq/par/par_unseq)과 C++20 unseq로 STL 알고리즘을 병렬화하는 원리, GCC(TBB)·Clang(libc++)·MSVC STL 구현 차이, 입력 크기별 손익분기점과 예외 시 std::terminate 함정을 다룹니다. C++20 코루틴으로 태스크를 체이닝하고 스레드 풀에 스케줄링하는 패턴과 비동기 파이프라인 구성을 다룹니다. symmetric transfer로 스택 증가 없이 태스크를 잇고, 코루틴 파라미터 수명 함정을 깨진 코드로 짚은 뒤 올바른 구현과 ASan 검증까지 정리합니다. Apple M 시리즈의 P코어·E코어 비대칭 멀티프로세싱과 macOS QoS 스케줄러, Unified Memory Architecture가 지연시간과 대역폭에 미치는 영향을 다룹니다. M5 Fusion Architecture 사례로 공유 메모리 구조의 트레이드오프 판단 기준을 정리합니다. DVFS와 P-state/C-state, Intel Turbo Boost·AMD Precision Boost 2의 동작 원리를 다루고 Linux governor 선택이 지연시간 일관성과 p99 tail latency에 미치는 영향을 정리합니다. 현대 CPU가 fetch·decode·execute·writeback 단계를 겹쳐 실행하는 파이프라인 구조와 슈퍼스칼라·IPC 개념, 구조적·데이터·제어 해저드를 정리합니다. 분기 예측·Out-of-Order 실행 등 후속 챕터가 딛고 설 기초 모델을 세웁니다. PMU 하드웨어 카운터와 TopDown Microarchitecture Analysis(TMA) 트리를 이 트랙의 각 마이크로아키텍처 챕터에 연결하고, 하이브리드 코어의 perf --cputype 분리와 TMA의 신규 메트릭 HBM_Bound를 심화 수준으로 다룹니다. TopDown 분석의 기초 직관을 다룹니다. Pipeline Slot 단위로 Frontend Bound·Bad Speculation·Backend Bound·Retiring 네 병목 범주를 구분하고, perf stat -M TopdownL1로 실측해 후속 심화 챕터로 이어지는 분류 습관을 정리합니다.