GNU C 라이브러리, getrandom vDSO 지원 통합

전문: https://www.phoronix.com/news/glibc-getrandom-vDSO-Merged

원저자: Michael Larabel | 작성일: 2024-11-13 14:20
사이트 내 게시일: 2024-11-13 14:51
GNU C 라이브러리가 가상 동적 링크 공유 객체(vDSO) 내에서 getrandom() 함수에 대한 지원을 통합하여 난수 생성 성능을 크게 향상시켰습니다. 이 새로운 구현은 여러 CPU 아키텍처에서 빠르고 안전한 난수 생성을 가능하게 합니다.

vDSO 내의 getrandom() 함수는 mmap으로 할당된 스레드 로컬 불투명 상태를 사용하여 작동하며, vDSO에서 지정한 플래그를 활용합니다. 이 방법은 여러 상태를 동시에 할당할 수 있게 하여, 각 스레드의 첫 사용을 위해 배열에 보관하고 스레드 종료 시 재활용함으로써 자원 사용을 최적화합니다. 사용 가능한 상태가 줄어들면 시스템이 자동으로 더 많은 상태를 할당합니다.

이 프로세스가 비동기 신호 안전(async-signal-safe)하도록 보장하기 위해, 불투명 상태 주소의 최하위 비트(LSB)에 간단한 가드 메커니즘이 적용되어, 재진입 경합이 발생할 경우 시스템이 시스템 호출 방법으로 되돌아갈 수 있도록 합니다. 현재 이 기능은 Linux 6.11에서 x86_64에 대해 활성화되어 있으며, Linux 6.12에서는 aarch64, powerpc32, powerpc64, loongarch64 및 s390x에 대해 지원되고 있어 다양한 아키텍처에서의 폭넓은 적용 가능성을 보여줍니다.

* 이 글은 phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은 이곳에서 확인하실 수 있습니다.
카테고리: Software
태그: Linux (1188) Performance Optimization (227) getrandom (7) vDSO (7) random number generation (7) GNU C Library (3) CPU architectures (2) async-signal-safe (1)

댓글

댓글을 쓰기 위해서는 로그인을 해 주세요.