41장. 실시간 커널 및 솔루션 예약
실시간 커널에서의 예약은 경우에 따라 발생할 수 있습니다. 제공된 정보를 사용하면 실시간 커널에서 스케줄링 정책, 스케줄러 제한 및 스레드 중단 상태에 대한 문제와 잠재적인 솔루션을 파악할 수 있습니다.
41.1. 실시간 커널의 스케줄링 정책
실시간 스케줄링 정책은 하나의 주요 특성을 공유합니다. 높은 우선 순위 스레드가 스레드 또는 스레드가 I/O를 잠급거나 수행하여 대기할 때까지 실행됩니다.
Cryostat _RR
의 경우 운영 체제는 실행 중인 스레드를 중단하여 동일한 Cryostat _RR
우선순위의 다른 스레드를 실행할 수 있도록 합니다. 이러한 경우 중 하나에서 더 낮은 우선 순위 스레드가 CPU 시간을 얻을 수 있도록 정책을 정의하는 POSIX
사양에 의해 프로비저닝이 이루어지지 않습니다. 실시간 스레드의 이러한 특성은 지정된 CPU의 100%를 단조하는 애플리케이션을 쉽게 작성할 수 있음을 의미합니다. 그러나 이로 인해 운영 체제에 문제가 발생합니다. 예를 들어 운영 체제는 시스템 전체 및 CPU별 리소스를 모두 관리하는 역할을 하며 주기적으로 이러한 리소스를 설명하는 데이터 구조를 검사하고 해당 리소스를 사용하는 하우스키핑 활동을 수행해야 합니다. 그러나 코어가 Cryostat _FIFO 스레드에 의해
단조되는 경우 하우스키핑 작업을 수행할 수 없습니다. 결국 전체 시스템이 불안정해지고 잠재적으로 충돌할 수 있습니다.
RHEL for Real Time 커널에서 인터럽트 핸들러는 hieradata _FIFO 우선 순위가 있는
스레드로 실행됩니다. 기본 우선순위는 50입니다. 인터럽트 처리기 스레드보다 높은 Cryostat _FIFO
또는 Cryostat _RR
정책이 있는 cpu-hog 스레드는 인터럽트 처리기가 실행되지 않도록 할 수 있습니다. 이로 인해 프로그램이 인터럽트에 의해 전달되는 데이터 신호를 대기하고 실패하게 됩니다.