멀티코어와 동기화
스핀락(spinlock)에 대한 설명으로 올바른 것은?
- A락이 풀릴 때까지 스레드를 재우고 OS가 깨워 주는 방식의 락
- B락이 풀릴 때까지 루프에서 락 변수를 계속 확인하며 기다리는 방식의 락
- C디스크를 회전시켜 데이터를 보호하는 메커니즘
정답과 해설 보기
정답: B. 락이 풀릴 때까지 루프에서 락 변수를 계속 확인하며 기다리는 방식의 락
스핀락은 아토믹 명령으로 락을 잡으려 하고, 잡지 못하면 곧바로 다시 시도하기를 반복합니다. OS를 호출하여 잠들고 깨어나는 부담이 없으므로, 락을 잡고 있는 시간이 매우 짧은 경우에 빠르게 동작합니다. OS 커널 안이나 인터럽트 핸들러와의 배타 제어 등에서 자주 사용됩니다. 한편 기다리는 동안에도 CPU를 계속 사용한다는 단점이 있습니다.
- A. 잠들어서 기다리는 것은 뮤텍스 등입니다.
- B. 맞습니다. 빙글빙글 돌며(spin) 기다립니다.
- C. 디스크와는 관계없습니다.