7장. 실시간 RHEL 스케줄링 정책
스케줄러는 실행할 실행 가능한 스레드를 결정하는 커널 구성 요소입니다. 각 스레드에는 sched_priority 라는 연결된 스케줄링 정책 및 정적 예약 우선순위가 있습니다. 예약은 선점되므로 현재 실행 중인 스레드가 더 높은 정적 우선 순위가 있는 스레드가 실행될 준비가 되면 중지됩니다. 그런 다음 실행 중인 스레드는 정적 우선 순위에 대한 대기 목록으로 돌아갑니다.
모든 Linux 스레드에는 다음 스케줄링 정책 중 하나가 있습니다.
-
Cryostat_OTHER또는 Cryostat_NORMAL: 기본 정책입니다. -
Cryostat_BATCH: Cryostat_OTHER와 유사하지만 방향은 점진적입니다. -
Cryostat_IDLE: is the policy with lower priority than Cryostat_OTHER. -
Cryostat_FIFO: 첫 번째 실시간 정책입니다. -
Cryostat_RR: 라운드 로빈 실시간 정책입니다. -
Cryostat_DEADLINE: 작업 기한에 따라 작업의 우선 순위를 지정하는 스케줄러 정책입니다. 가장 빠른 절대 기한을 가진 작업이 먼저 실행됩니다.
7.1. 스케줄러 정책 링크 복사링크가 클립보드에 복사되었습니다!
실시간 스레드는 표준 스레드보다 우선 순위가 높습니다. 정책에는 최소 값 1에서 최대 99까지의 스케줄링 우선순위 값이 있습니다.
다음 정책은 실시간에 중요합니다.
Cryostat_OTHER또는Cryostat_NORMAL정책이는 Linux 스레드의 기본 스케줄링 정책입니다. 스레드의 특성을 기반으로 시스템에 의해 변경되는 동적 우선 순위가 있습니다.
Cryostat_OTHER스레드는 가장 높은 우선 순위인 -20과 가장 낮은 우선 순위인 19 사이의 값을 갖습니다. Cryostat_OTHER 스레드의기본 nice 값은 0입니다.Cryostat_FIFO정책Cryostat
_FIFO가 있는 스레드는 Cryostat_OTHER작업보다 우선 순위가 높습니다. nice 값을 사용하는 대신, Cryostat_FIFO는 1에서 가장 낮은 우선 순위인 가장 높은 우선 순위인 고정 우선 순위를 사용합니다. 우선 순위가 1인 A Cryostat_FIFO스레드는 항상 먼저 a Cryostat_OTHER스레드를 통해 예약합니다.Cryostat_RR정책Cryo
stat_RR정책은 Cryostat_FIFO정책과 유사합니다. 우선순위가 동일한 스레드는 라운드 로빈 방식으로 예약됩니다.Cryostat_FIFO및Cryostat_RR스레드는 다음 이벤트 중 하나가 발생할 때까지 실행됩니다.- 스레드가 잠기거나 이벤트를 기다립니다.
우선순위가 높은 실시간 스레드를 실행할 준비가 되었습니다.
위의 이벤트 중 하나가 발생하지 않는 한 스레드는 지정된 프로세서에서 무기한 실행되지만 우선순위가 낮은 스레드는 실행 대기 중인 큐에 남아 있습니다. 이로 인해 시스템 서비스 스레드가 상주하고 스왑 아웃되지 않고 파일 시스템 데이터 플러시에 실패할 수 있습니다.
Cryostat_DEADLINE정책Cryo
stat_DEADLINE정책은 타이밍 요구 사항을 지정합니다. 작업의 데드라인에 따라 각 작업을 예약합니다. 먼저 데드라인(EDF) 일정이 가장 빠른 작업이 먼저 실행됩니다.커널을 사용하려면
runtime Cryostatdeadline Cryostatperiod가 true여야 합니다. 필수 옵션 간의 관계는runtime Cryostatdeadline Cryostatperiod입니다.