검색

25장. 애플리케이션 타임스탬프

download PDF

타임스탬프를 자주 수행하는 애플리케이션은 시계를 읽는 CPU 비용의 영향을 받습니다. 클럭을 읽는 데 사용된 높은 비용과 시간은 애플리케이션 성능에 부정적인 영향을 미칠 수 있습니다.

기본 시계보다 빠르고 읽기 메커니즘이 있는 하드웨어 시계를 선택하여 클럭을 읽는 비용을 줄일 수 있습니다.

RHEL for Real Time에서는 clock_gettime() 함수와 함께 POSIX 시계를 사용하여 가능한 가장 낮은 CPU 비용으로 클럭 읽기를 생성함으로써 추가 성능 향상을 얻을 수 있습니다.

이러한 이점은 높은 읽기 비용으로 하드웨어 시계를 사용하는 시스템에 더 큰 이점이 있습니다.

25.1. POSIX 클럭

POSIX는 시간 소스를 구현하고 표시하기 위한 표준입니다. 시스템의 다른 애플리케이션에 영향을 주지 않고 애플리케이션에 POSIX 시계를 할당할 수 있습니다. 이는 커널에 의해 선택되고 시스템 전체에 구현된 하드웨어 시계와 대조됩니다.

지정된 POSIX 시계를 읽는 데 사용되는 함수는 clock_gettime() 이며 < time.h>에서 정의됩니다. clock_gettime() 과 커널 카운터는 시스템 호출입니다. 사용자 프로세스에서 clock_gettime() 을 호출하는 경우 :

  1. 해당 C 라이브러리(glibc)는 sys_clock_gettime() 시스템 호출을 호출합니다.
  2. sys_clock_gettime() 은 요청된 작업을 수행합니다.
  3. sys_clock_gettime() 은 사용자 프로그램에 결과를 반환합니다.

그러나 사용자 애플리케이션에서 커널로 컨텍스트 전환에는 CPU 비용이 발생합니다. 이 비용이 매우 낮더라도 작업이 수천 번 반복되면 누적된 비용이 애플리케이션의 전반적인 성능에 영향을 미칠 수 있습니다. 커널로 컨텍스트 전환을 피하기 위해 CLOCK_MONOTONIC_COARSECLOCK_REALTIME_COARSE POSIX 클럭에 대한 지원, 가상 동적 공유 오브젝트(VDSO) 라이브러리 기능의 형태로 클럭을 더 빠르게 읽을 수 있습니다.

_COARSE 클럭 변형 중 하나를 사용하여 clock_gettime() 에 의해 수행되는 시간 읽기는 커널 개입이 필요하지 않으며 사용자 공간에서 완전히 실행됩니다. 이로 인해 성능이 크게 향상됩니다. _COARSE 시계에 대한 시간 측정은 밀리초(ms) 해상도로, 1ms보다 작은 시간 간격은 기록되지 않습니다. POSIX 시계의 _COARSE 변형은 밀리 초 시계 해상도를 수용할 수 있는 모든 애플리케이션에 적합합니다.

참고

_COARSE 접두사와 없이 POSIX 시계를 읽는 비용과 해결 방법을 비교하려면 RHEL for Real Time Reference 가이드를 참조하십시오.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.