검색

14장. 인터럽트 및 사용자 프로세스를 격리하여 시스템 대기 시간 최소화

download PDF

실시간 환경에서는 다양한 이벤트에 응답할 때 대기 시간을 최소화하거나 제거해야 합니다. 이를 위해 서로 다른 전용 CPU에서 인터럽트(IRQ)를 사용자 프로세스에서 분리할 수 있습니다.

14.1. 인터럽트 및 프로세스 바인딩

다른 전용 CPU의 사용자 프로세스에서 인터럽트(IRQ)를 격리하면 실시간 환경에서 대기 시간을 최소화하거나 제거할 수 있습니다.

인터럽트는 일반적으로 CPU 간에 균등하게 공유됩니다. 이렇게 하면 CPU가 새 데이터 및 명령 캐시를 작성해야 하는 경우 인터럽트 처리가 지연될 수 있습니다. 이러한 인터럽트 지연으로 인해 동일한 CPU에서 다른 처리가 실행될 수 있습니다.

시간이 중요한 인터럽트 및 프로세스를 특정 CPU(또는 CPU 범위)에 할당할 수 있습니다. 이러한 방식으로 이 인터럽트를 처리하는 코드 및 데이터 구조는 프로세서 및 명령 캐시에 있을 가능성이 높습니다. 결과적으로 전용 프로세스는 가능한 한 빨리 실행될 수 있지만 다른 모든 비시간 크리티컬 프로세스는 다른 CPU에서 실행됩니다. 이는 관련된 속도가 메모리의 제한 또는 메모리의 제한과 사용 가능한 경미한 버스 대역폭에 특히 중요할 수 있습니다. 메모리가 프로세서 캐시로 가져오기를 기다릴 경우 전체 처리 시간과 결정성에 큰 영향을 미칩니다.

실제로 최적의 성능은 전적으로 애플리케이션에 따라 다릅니다. 예를 들어 다른 회사에서 유사한 기능을 가진 애플리케이션을 튜닝하려면 완전히 다른 최적의 성능 튜닝이 필요했습니다.

  • 한 회사에서는 운영 체제 기능 및 인터럽트 처리를 위해 4개의 CPU 중 2개를 분리할 때 최적의 결과를 확인했습니다. 나머지 2개의 CPU는 애플리케이션 처리를 위해 전적으로 전용이었습니다.
  • 또 다른 기업은 네트워크 관련 애플리케이션 프로세스를 네트워크 장치 드라이버 인터럽트를 처리하는 단일 CPU에 바인딩할 때 최적의 결정성을 발견했습니다.
중요

일반적으로 CPU에 프로세스를 바인딩하려면 지정된 CPU 또는 CPU 범위에 대한 CPU 마스크를 알아야 합니다. CPU 마스크는 일반적으로 사용 중인 명령에 따라 32비트 비트마스크, 10진수 또는 16진수로 표시됩니다.

표 14.1. 지정된 CPU에 대한 CPU의 예

CPU

Bitmask

10진수

Hexadecimal

0

00000000000000000000000000000001

1

0x00000001

0, 1

00000000000000000000000000000011

3

0x00000011

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.