FreeBSD 커널의 세마포어가 Mutex+CV만큼 효율적이지 않다는 것을 읽었습니다.이 매뉴얼 페이지. POSIX 세마포어의 커널 및 시스템 호출 구현을 확인했습니다.원천 암호그리고 Mutex+CV 위에 구현되었는지 확인합니다.
아마도나의 오해실시간 동기화 프리미티브인 POSIX 세마포어는 매우 효율적입니다. 그러나 이것을 읽고 본 후에는 그것이 얼마나 효율적인지 잘 모르겠습니다.
게다가 책도 읽고 있어요동시 프로그래밍: 알고리즘, 원리 및 기본 사항. 이제 아직 첫 번째 부분을 다 읽지 못했지만 세마포어 위에 구현된 모니터(CV)를 소개하려고 합니다. 이로 인해 더 효율적인 Mutex+CV 기반이 아닌 실제 세계에서 세마포어를 구현하는 효율적인 방법이 있어야 한다는 생각이 듭니다.
당신은 가지고 있습니까?현실 세계세마포어 구현은 Mutex+CV 기반이 아닌가요?
답변1
이것리눅스 구현CV는 사용되지 않는 것 같지만 세마포어 상태를 보호하기 위해 커널 공간 잠금을 사용합니다.