2.2. Ticket Spinlocks


시스템 설계의 요점은 프로세스가 다른 프로세스에 의해 사용되는 메모리를 변경하지 않도록 확인하는 것입니다. 메모리에서 제어되지 않는 데이터 변경은 데이터 손상이나 시스템 충돌을 초래할 수 있습니다. 이를 방지하기 위해 운영 체제는 프로세스가 메모리의 일부를 잠그고 작업을 실행한 후 메모리 를 잠금 해제하거나 "해제"할 수 있게 합니다.
메모리 잠금의 일반적인 구현은 spin locks을 통한 것으로 이는 프로세스가 잠금을 사용할 수 있는지에 대한 여부를 지속적으로 확인하고 잠금을 사용할 수 있을 경우 즉시 잠금을 실행할 수 있게 합니다. 동일한 잠금에 대해 경합하는 여러 프로세스가 있을 경우 잠금 해제된 후 잠금을 요청한 첫 번째 프로세스가 이를 획득하게 됩니다. 모든 프로세스가 메모리에 동일한 액세스를 가질 경우 이 방법은 "공정 (fair)"에서 잘 작동하게 됩니다.
불행히도 NUMA 시스템에서 모든 프로세스가 잠금에 동일한 액세스를 갖지 않습니다. 잠금과 같은 동일한 NUMA 노드에 있는 프로세스는 잠금을 취득하는데 불공정한 장점이 있습니다. 원격 NUMA 모드에서의 프로세스는 잠금 부족 상태에 빠져 성능이 저하됩니다.
이 문제를 해결하기 위해 Red Hat Enterprise Linux는 ticket spinlocks를 구현했습니다. 이 기능은 잠금에 예약 대기열 메커니즘을 추가하고 모든 프로세스가 요청한 순서로 잠금을 취득할 수 있게 합니다. 이는 잠금 요청에 있어서의 타이밍 문제와 불공정한 이점을 제거합니다.
ticket spinlock 오버헤드는 일반적인 spinlock 보다 다소 크지만 확장성이 뛰어나 NUMA 시스템에서 보다 나은 성능을 제공합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.