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


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

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

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

인터럽트는 일반적으로 CPU 간에 균등하게 공유됩니다. 이는 CPU가 새 데이터 및 명령 캐시를 작성해야 할 때 인터럽트 처리를 지연할 수 있습니다. 이러한 인터럽트 지연으로 인해 다른 처리와 동일한 CPU에서 충돌이 발생할 수 있습니다.

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

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

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

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

Expand
표 19.1. 지정된 CPU에 대한 CPU의 예

CPU

비트 마스크

10진수

Hexadecimal

0

00000000000000000000000000000001

1

0x00000001

0, 1

00000000000000000000000000000011

3

0x00000011

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동