chrt - запуск в реальном времени

Инструменты для управления и диагностики системы

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

chrt - запуск в реальном времени

Непрочитанное сообщение Olej » 24 дек 2014, 16:14

Как известно, все запускаемые процессы в Linux запускаются со стандартной политикой диспетчирования (SCHED_OTHER) ... у которых всех приоритет = 0, и только параметр nice, в какой-то мере (весьма слабой) влияет на приоритетность выполнения.
Т.е. в точной терминологии, многозадачная система Linux не является ОС с приоритетным планированием.

Но (кроме из программного кода) можно запускать любую команду с дисциплинами планирования реального времени - SCHED_FIFO и SCHED_RR - командой chrt. Этой же командой можно диагностировать с каким планированием и приоритетом выполняется любая задача.

Код: Выделить всё

$ sudo chrt -r 50 bash 
# ps 
  PID TTY          TIME CMD 
 3068 pts/2    00:00:00 sudo 
 3074 pts/2    00:00:00 bash 
 3100 pts/2    00:00:00 ps 
# chrt -p 3074 
pid 3074's current scheduling policy: SCHED_RR 
pid 3074's current scheduling priority: 50 
# chrt -r -p 5 3074 
# chrt -p 3074 
pid 3074's current scheduling policy: SCHED_RR 
pid 3074's current scheduling priority: 5 
Командой chrt можно не только запускать процесс, но и изменять параметры диспетчирования для уже выполняющегося процесса:

Код: Выделить всё

$ sudo chrt -f 20 bash 
# ps 
  PID TTY          TIME CMD 
 3288 pts/2    00:00:00 sudo 
 3294 pts/2    00:00:00 bash 
 3320 pts/2    00:00:00 ps 
# chrt -p 3294 
pid 3294's current scheduling policy: SCHED_FIFO 
pid 3294's current scheduling priority: 20 
# chrt -r -p -r 10 3294 
# chrt -p 3294 
pid 3294's current scheduling policy: SCHED_RR 
pid 3294's current scheduling priority: 10 
# chrt -r -p -o 0 3294 
# chrt -p 3294 
pid 3294's current scheduling policy: SCHED_OTHER 
pid 3294's current scheduling priority: 0 
# exit 
Естественно, что все эти трюки можно проделывать только с правами root (слишком серьёзные последствия).

Команда имеет и дополнительные опции, например, показывает максимальные границы приоритетов для разных дисциплин планирования:

Код: Выделить всё

$ chrt --max 
SCHED_OTHER min/max priority    : 0/0 
SCHED_FIFO min/max priority     : 1/99 
SCHED_RR min/max priority       : 1/99 
SCHED_BATCH min/max priority    : 0/0 
SCHED_IDLE min/max priority     : 0/0 

Ответить

Вернуться в «Системные утилиты»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость