인프런 커뮤니티 질문&답변

비가싫어요님의 프로필 이미지
비가싫어요

작성한 질문수

개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제

동기화 기법

뮤텍스 락 관련해서 질문이 있습니다.

해결된 질문

작성

·

323

0

안녕하세요! 좋은 강의 감사드립니다.

 

뮤텍스 락과 관련해서 질문이 있습니다. 제가 다른 운영체제 강의 영상을 보니까 이 강의에서 설명해주신 뮤텍스 락에 대한 설명이 스핀락 개념과 유사하더군요. while문을 반복해서 돌면서 계속해서 lock을 확인하는 부분이요.

 

그 강의에서 뮤텍스는 자원을 얻을 수 없을 때는 while을 도는 것이 아니라 쉬면서 큐에 들어간다고 하더라구요..

 

혹시 어떻게 이해하는 것이 맞을까요? 혼란이 와서 질문 남겨봅니다.

답변 1

0

강민철님의 프로필 이미지
강민철
지식공유자

안녕하세요!

전체적인 동작 방식은 강의에서 설명해드린 정도와 같지만,

책(과 강의)에서 언급드렸듯 구체적인 구현은

구현체에 따라 다를 수 있습니다.

 

제가 봐온 바로는

spinlock이라 명시적으로 언급하지 않는 이상

큐와 process state 변경을 이용하는 것 같습니다.

다만 강의와 책에서 while문 기반의 구현을 우선 설명한 뒤,

뒤 semaphore에서 이를 개선한 대기 상태 + 큐 삽입을 설명드린 이유는

바쁜대기 (busy waiting)의 개념을 설명드리기 위함이었습니다 :)

 

둘 다 중요한 개념이라서요.

좋게 들어주셔서 감사드립니다.

 

 

부트캠프에서도 도움을 많이 받았는데 이렇게 강의를 통해서도 많이 배우게 되네요 감사합니다!

비가싫어요님의 프로필 이미지
비가싫어요

작성한 질문수

질문하기