32.2. SCHED_FIFO로 고정 우선 순위 스케줄링
SCHED_FIFO
(정적 우선 순위 스케줄링이라고도 함)는 각 스레드에 대한 고정 우선 순위를 정의하는 실시간 정책입니다. 이 정책을 통해 관리자는 이벤트 응답 시간을 개선하고 대기 시간을 줄일 수 있습니다. 시간이 중요한 작업에 대해 이 정책을 장기간 실행하지 않는 것이 좋습니다.
SCHED_FIFO
가 사용 중인 경우 스케줄러는 우선 순위에 따라 모든 SCHED_FIFO
스레드 목록을 검사하고 실행할 준비가 된 가장 높은 우선 순위 스레드를 예약합니다. SCHED_FIFO
스레드의 우선 순위 수준은 1
에서 99
사이의 정수일 수 있습니다. 여기서 99
는 가장 높은 우선 순위로 간주됩니다. Red Hat은 대기 시간 문제를 식별하는 경우에만 더 적은 수의 우선 순위로 시작하는 것이 좋습니다.
실시간 스레드는 시간 분할에 적용되지 않으므로 Red Hat은 우선 순위를 99로 설정하는 것을 권장하지 않습니다. 이렇게 하면 프로세스가 마이그레이션 및 감시 스레드와 동일한 우선 순위 수준으로 유지됩니다. 스레드가 컴퓨팅 루프로 이동하고 이러한 스레드가 차단되면 실행할 수 없습니다. 단일 프로세서가 있는 시스템은 결국 이 상황이 중단됩니다.
관리자는 SCHED_FIFO
대역폭을 제한하여 실시간 애플리케이션 프로그래머가 프로세서를 독점하는 실시간 작업을 시작하지 못하도록 할 수 있습니다.
다음은 이 정책에서 사용되는 매개 변수의 일부입니다.
/proc/sys/kernel/sched_rt_period_us
-
이 매개 변수는 프로세서 대역폭의 100 %로 간주되는 기간을 마이크로 초 단위로 정의합니다. 기본값은
1000000s
또는1초
입니다. /proc/sys/kernel/sched_rt_runtime_us
-
이 매개 변수는 실시간 스레드 실행에 적합한 기간을 마이크로초 단위로 정의합니다. 기본값은
950000s
또는0.95초
입니다.