Mcs

    멀티코어 확장성을 위한 Queue기반 Lock (w/ chatgpt)

    멀티코어 확장성을 위한 Queue기반 Lock (w/ chatgpt)

    🧠 왜 Queue 기반 락이 필요할까?기본적인 스핀락(spinlock)은 이렇게 생겼어:while (lock == 1) { // 락이 풀릴 때까지 busy-wait}문제점:여러 스레드가 같은 메모리 위치를 동시에 조회하고 수정하려고 함 → cache line bouncing특히 락 경합이 심할 때 성능이 급격히 떨어짐 😵‍💫해결책: 각 스레드가 자기만의 스핀 공간을 가지게 하고,앞의 스레드가 끝날 때까지 조용히 기다리자!바로 이게 Queue 기반 락의 핵심 개념이야.🔗 대표적인 Queue 기반 락✅ CLH 락 (Craig, Landin, and Hagersten Lock)특성설명Queue단일 연결 리스트 형태의 논리적 큐Spin 위치자기 전 노드의 상태를 스핀공유 변수 접근 최소화false ..