Closed msung99 closed 2 months ago
락(Lock) 이란 무엇이고, 왜 필요한가요?
스핀 락이란 무엇이며, 어떠한 방식으로 동작하나요?
스핀 락 방식의 장단점에 대해 설명해보세요. 세마포어와 비교해서 설명해보겠습니다. 스핀락의 장점으로는 문맥 교환에 필요한 오버헤드를 줄일 수 있다는 점과 락의 획득이 빠르다는 점이 있고 단점으로는 busy waiting, 즉 스핀락을 획득하기 위해 CPU 오버헤드가 발생할 수 있다는 점과 특정쓰레드나 프로세스가 공유자원을 오랫동안 점유할 때 발생하는 기아현상을 말할 수 있습니다. 이와 반대로 세마포어는 락을 얻지 못한 쓰레드를 대기 상태로 전환하기에 busy waiting을 피할 수 있고 대기 중인 쓰레드들이 차례대로 자원을 얻을 수 있도록 하여 기아현상을 방지할 수 있습니다. 하지만 이 과정에서 문맥교환이 빈번하게 발생할 수 있고 락 획득 속도가 스핀락에 비해 느리다는 단점이 있습니다. 이러한 차이점이 있기에 스핀락은 짧은 시간 동안 자원을 보호할 때 사용하는 것이 좋고, 세마포어는 장기간 대기가 필요하거나 여러 쓰레드가 자원을 공유해야 할 때 유용하다고 할 수 있습니다.
락(Lock) 이란 무엇이고, 왜 필요한가요?
- 락이란 공유자원에 대한 동기화를 구현할 때 필요한 개념입니다. 스핀 락이란 무엇이며, 어떠한 방식으로 동작하나요?
- 멀티스레드 환경에서 공유자원 접근을 제어할때 사용하는 기법중 하나입니다. 스레드가 자원을 얻기 위해서 락이 해제될때까지 반복적으로 락을 시도하며 다른작업을 하지 않고 반복적으로 락을 체크합니다. 스핀 락 방식의 장단점에 대해 설명해보세요. ( ps. 세마포어, Mutex 등의 다른 기법과 장단점을 각각 비교하여 설명해보셔도 좋습니다 🙂 )
- 계속해서 체크하는 만큼 빠르게 락을 획득할 수 있고 구현이 간단합니다. 단점으로는 잡이 오래걸려서 스레드가 오래 기다려야 되면 CPU자원이 낭비될수있습니다. 세마포어나 뮤텍스는 사용하지 못하는 경우 스레드가 블로킹 되기 때문에 CPU자원의 낭비가 적습니다.
락(Lock) 이란 무엇이고, 왜 필요한가요?
스핀 락이란 무엇이며, 어떠한 방식으로 동작하나요?
스핀 락 방식의 장단점에 대해 설명해보세요.
예상 면접 질문