Resolved
Written on
·
380
0
안녕하세요! 좋은 강의 감사드립니다.
뮤텍스 락과 관련해서 질문이 있습니다. 제가 다른 운영체제 강의 영상을 보니까 이 강의에서 설명해주신 뮤텍스 락에 대한 설명이 스핀락 개념과 유사하더군요. while문을 반복해서 돌면서 계속해서 lock을 확인하는 부분이요.
그 강의에서 뮤텍스는 자원을 얻을 수 없을 때는 while을 도는 것이 아니라 쉬면서 큐에 들어간다고 하더라구요..
혹시 어떻게 이해하는 것이 맞을까요? 혼란이 와서 질문 남겨봅니다.
Answer 1
0
안녕하세요!
전체적인 동작 방식은 강의에서 설명해드린 정도와 같지만,
책(과 강의)에서 언급드렸듯 구체적인 구현은
구현체에 따라 다를 수 있습니다.
제가 봐온 바로는
spinlock이라 명시적으로 언급하지 않는 이상
큐와 process state 변경을 이용하는 것 같습니다.
다만 강의와 책에서 while문 기반의 구현을 우선 설명한 뒤,
뒤 semaphore에서 이를 개선한 대기 상태 + 큐 삽입을 설명드린 이유는
바쁜대기 (busy waiting)의 개념을 설명드리기 위함이었습니다 :)
둘 다 중요한 개념이라서요.
좋게 들어주셔서 감사드립니다.
부트캠프에서도 도움을 많이 받았는데 이렇게 강의를 통해서도 많이 배우게 되네요 감사합니다!