4장. 애플리케이션 튜닝 및 배포
최적의 구성과 설정을 조합하여 실시간 커널을 튜닝하면 RHEL for Real Time 애플리케이션을 개선하고 개발하는 데 도움이 될 수 있습니다.
일반적으로 POSIX
정의 API(애플리케이션 프로그래밍 인터페이스)를 사용하십시오. RHEL for Real Time은 POSIX
표준을 준수합니다. RHEL for Real Time 커널의 대기 시간 감소도 POSIX
를 기반으로 합니다.
4.1. 실시간 애플리케이션의 신호 처리
기존 UNIX
및 POSIX
신호는 특히 오류 처리를 위해 사용되지만 실시간 애플리케이션에서 이벤트 전달 메커니즘으로 적합하지 않습니다. 이는 현재 Linux 커널 신호 처리 코드가 매우 복잡하기 때문에 주로 레거시 동작과 지원되는 많은 API로 인해 발생합니다. 이러한 복잡성은 신호를 전달할 때 걸리는 코드 경로가 항상 최적의 것은 아니며 애플리케이션에서 긴 대기 시간을 경험할 수 있음을 의미합니다.
UNIX 신호의 원래 어려움은 실행의 서로 다른 "스레드" 사이에 여러 개의 제어 스레드 (프로세스)에 있습니다. 신호는 운영 체제 인터럽트와 동일하게 작동합니다. 즉, 신호가 애플리케이션에 전달되면 애플리케이션의 컨텍스트가 저장되고 이전에 등록된 신호 처리기 실행을 시작합니다. 신호 처리기가 완료되면 애플리케이션이 신호가 전달된 시점의 실행으로 돌아갑니다. 이것은 실제로 복잡해질 수 있습니다.
신호는 실시간 애플리케이션에서 신뢰할 수 없을 만큼 결정적이지 않습니다. 더 나은 옵션은 POSIX 스레드(pthreads)를 사용하여 워크로드를 배포하고 다양한 구성 요소 간에 통신하는 것입니다. pthreads 메커니즘, 조건 변수 및 장벽을 사용하여 스레드 그룹을 조정할 수 있습니다. 이러한 비교적 새로운 구성을 통한 코드 경로는 신호의 기존 처리 코드보다 훨씬 더 명확합니다.