하드웨어 원자 연산은 lock 구현의 기반이지만 바쁜 대기 비용을 숨기지 않습니다.
스핀락과 뮤텍스 선택 기준
동기화 원시 연산은 임계구역 길이, 잠들 수 있는지, 커널 진입 비용에 따라 선택이 갈립니다.
01원자 연산
02대기 방식
03임계구역
04컨텍스트
05경합
매우 짧고 잠들 수 없는 커널 경로에서는 유리하지만 긴 대기에서는 CPU를 낭비합니다.
오래 기다릴 수 있는 사용자 공간 임계구역은 잠들었다 깨는 방식이 보통 더 안전합니다.
경합이 없으면 사용자 공간에서 빠르게 처리하고, 필요할 때만 커널 큐로 들어갑니다.