멀티코어와 동기화
뮤텍스(잠들어서 기다리는 락)와 스핀락을 비교한 설명으로 올바른 것은?
- A뮤텍스는 기다리는 동안 CPU를 양보하므로 긴 대기에 적합하지만, 잠들고 깨어나는 데 OS의 부담이 든다
- B뮤텍스는 기다리는 동안에도 CPU를 계속 사용하므로 짧은 대기에만 쓸 수 있다
- C뮤텍스와 스핀락은 같은 것이며 이름만 다르다
정답과 해설 보기
정답: A. 뮤텍스는 기다리는 동안 CPU를 양보하므로 긴 대기에 적합하지만, 잠들고 깨어나는 데 OS의 부담이 든다
뮤텍스는 락을 잡지 못하면 스레드를 대기 상태로 만들고 CPU를 다른 스레드에 양보하며, 락이 해제되면 OS가 깨웁니다. 기다리는 동안 CPU를 낭비하지 않으므로 긴 대기에 적합하지만, 잠들고 깨어나는 처리와 컨텍스트 스위치에 수 마이크로초 정도가 걸립니다. 실제 라이브러리의 뮤텍스는 잠시 스핀한 뒤 잠드는 등, 양쪽의 장점을 결합하고 있습니다.
- A. 맞습니다. 대기 시간의 길이에 따라 구분하여 사용합니다.
- B. 그것은 스핀락의 특징입니다.
- C. 기다리는 방식이 다릅니다.