2장. 실시간 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
: 작업 기한에 따라 작업의 우선 순위를 지정하는 스케줄러 정책입니다. 가장 빠른 절대 기한을 가진 작업이 먼저 실행됩니다.
2.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
입니다.