Планування процесів у режимі реального часу в Linux


24

Я вивчив деякі концепції планування. Наразі моє розуміння поки що нижче.

  • Існують процеси в режимі реального часу та нереальні.
  • Процеси не в реальному часі можуть мати niceзначення свого пріоритету в діапазоні від -20 до +20 . Більш високе позитивне значення вказує на те, що процес має нижчий пріоритет.
  • Процеси в реальному часі матимуть значення приємності, перелічене, -як пояснено у цій відповіді тут . Це головним чином через те, що процеси в реальному часі мають більш високі пріоритети, ніж нереальні процеси, а значення приємності не стосується їх.
  • Тепер я можу використовувати, chrtщоб побачити атрибути процесу в реальному часі.

Для реального часу процес chrtдає вихід,

chrt -p 5
pid 5's current scheduling policy: SCHED_FIFO
pid 5's current scheduling priority: 99

Як ми бачимо для процесу 5 , пріоритет - 99, який є найвищим. Також політика планування єSCHED_FIFO

Тепер для нереального часу процес chrtдає результат,

chrt -p 22383
pid 22383's current scheduling policy: SCHED_OTHER
pid 22383's current scheduling priority: 0

Як ми бачимо для процесу 22383 , пріоритет 0 та політика планування SCHED_OTHER.

Запитання

  1. Чи можна для мене зробити якийсь процес як процес у режимі реального часу?
  2. Чи можливо мені встановити якийсь інший алгоритм планування, відмінний від SCHED_OTHERпроцесу, який не є реальним часом?
  3. З тут , я бачу , що я міг би змінити атрибут для запущеного процесу , як,

    chrt -p prio pid
    

    Крім того, я бачу, chrt -mдає мені список алгоритмів планування. Команда дає мені вихід у вигляді,

    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
    

    Тепер, як було запропоновано вище, якщо я встановлю, chrt -p 55 22383який алгоритм буде використовуватися?

Відповіді:


19

питання 1

Користувач також може використовувати пріоритет у реальному часі для процесу. Цю конфігурацію можна встановити з /etc/security/limits.confфайлу. Я бачу нижче вміст у цьому файлі.

# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain>        <type>  <item>  <value>

Якщо ми перевіримо розділ пункту, ми побачимо запис нижче, який дозволяє встановити пріоритет для користувачів у реальному часі.

#        - rtprio - max realtime priority

Питання 2 та 3 питання

Щоб встановити політику планування на SCHED_FIFO, введіть:

chrt -f -p [1..99] {pid}

Щоб встановити політику планування на SCHED_RR, введіть:

chrt -r -p [1..99] {pid}

Отже, щоб відповісти на питання 3, ми повинні перевірити наявні алгоритми планування та пріоритети за допомогою chrt -mкоманди, а потім використовувати будь-який алгоритм планування, який відповідає нашим потребам. Щоб встановити різні пріоритети, ми могли використовувати команди, як описано вище.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.