Linux 중요 섹션

Linux 중요 섹션

Linux에 win32의 중요 섹션에 상응하는 Linux용 라이브러리가 있습니까?

뮤텍스에 대해 알고 있지만 중요한 섹션은 사용자 모드 스핀록과 이벤트 개체를 내부적으로 사용하고 뮤텍스보다 빨라야 하기 때문에 중요한 섹션과 다릅니다.

답변1

커널 공간에서 뭔가를 원한다면 세마포어( sem_overview(7))를 살펴보는 것이 좋습니다. "이벤트", "조건", "뮤텍스"("중요 섹션")와 같은 세마포어에서 더 높은 수준의 구조를 구축할 수 있습니다. C에는 이전 인터페이스와 최신 인터페이스가 있습니다. 일부 고급 언어(예: Python 및 Perl)도 이 인터페이스를 노출합니다.

아마도 당신이 말하는 "뮤텍스"는 pthread의 뮤텍스일 것입니다.~ 할 것이다사용자 공간, 특히 매우 낮은 수준의 OS 수준 구성을 위해 설계된 스핀록을 사용하는 공간보다 빠릅니다. pthread의 일부 구현에서는 운영 체제 수준을 사용 semaphore하거나 다른 구성을 사용할 수 있습니다.

답변2

Linux에서 POSIX 뮤텍스는 NPTL의 일부인 futex(2)라는 특수 커널 도구로 구현됩니다. 이는 스레드가 일시 중단되어야 할 때만 커널 공간에 갇히거나 단순한 사용자 공간 기능일 뿐이라는 의미입니다.

스핀락은 매우 간단하고 커널 개입이 전혀 필요하지 않습니다. __sync_bool_compare_and_swap()과 같은 것을 통해 쉽게 구성할 수 있습니다. Glibc는 man pthread_spin_init -- 이유 때문에 스핀록을 구현하지만 스핀록이 항상 생각만큼 "빠른" 것은 아닙니다.

관련 정보