Режим реального часу

Операційна система Linux забезпечує дві стратегії планування в режимі реального часу (real-lime): SCHED_FIFO і SCHED_RR Стратегія планування SCHED_OTHER є звичайною стратегією планування, тобто стратегій планування не в режимі реального часу Стратегія SCHED_FIFO забезпечує простий алгоритм планування з ідеології першим увійшов – першим обслужений (First-in first-out, FIFO) без квантів часу Готове до виконання завдання зі стратегією планування SCHED_FIFO завжди буде плануватися на виконання перед усіма завданнями зі стратегією планування SCHED_OTHER Коли завдання зі стратегією

SCHED_FIFO стає готовим до виконання, то воно буде продовжувати виконуватися до тих пір, поки не заблокується або поки явно не віддасть керування Дві або більше завдань з однаковим пріоритетом, мають стратегію планування SCHED_FIFO, будуть плануватися на виконання по круговому алгоритму (roundrobin) Якщо завдання, яке має стратегію планування SCHED_FIFO, є готовим до виконання, то всі завдання з нижчим пріоритетом не можуть виконуватися до тих пір, поки це завдання не завершиться

Стратегія SCHED_RR аналогічна стратегії SCHED_FIFO, за винятком того, що процес може виконуватися тільки доти, поки не витратить зумовлений йому квант часу Таким чином, стратегія SCHED_RR – це стратегія SCHED_FIFO з квантами часу, тобто кругової алгоритм планування (round-robin) реального часу Коли минає квант часу процесу зі стратегією планування SCHED_RR, то інші процеси з таким же пріоритетом плануються по круговому алгоритму Квант часу використовується тільки для того, щоб перепланувати виконання завдань з таким же пріоритетом Так само як у випадку стратегії SCHED_FIFO, процес з вищим пріоритетом відразу ж витісняє процеси з більш низьким пріоритетом, а процес з нижчим пріоритетом ніколи не зможе витіснити процес зі стратегією планування SCHED_RR, навіть якщо в останнього минув квант часу

Обидві стратегії планування реального часу використовують статичні пріоритети Ядро не займається розрахунком значень динамічних пріоритетів для задач реального часу Це означає, що процес, працює в режимі реального часу, завжди зможе витіснити процес з більш низьким значенням пріоритету

Стратегії планування реального часу в операційній системі Linux забезпечують так званий мякий режим реального часу (soft real-time) Мякий режим реального часу позначає, що ядро намагається планувати виконання програм користувача в межах допустимих тимчасових термінів, але не завжди гарантує виконання цього завдання На противагу цьому операційні системи з жорстким режимом реального часу (hard real-time) завжди гарантують виконання всіх вимог з планування виконання процесів в заданих межах Операційна система Linux не може гарантувати можливості планування завдань реального часу Проте стратегія планування ОС Linux гарантує, що завдання реального часу будуть виконуватися щоразу, коли вони готові до виконання Хоча в ОС Linux і відсутні кошти, що гарантують роботу в жорсткому режимі реального часу, проте продуктивність планувальника ОС Linux в режимі реального часу досить хороша Ядро серії

26 в змозі задовольнити дуже жорстким тимчасовим вимогам

Пріоритети реального часу лежать в діапазоні від 1 до MAX_RT_PRIO мінус 1, За замовчуванням значення константи MAX_RT_PRIO одно 100, тому діапазон значень пріоритетів реального часу за замовчуванням становить від 1 до 99 Це простір пріоритетів обєднується з простором значень параметраnice для стратегії планування SCHED_OTHER, яке відповідає діапазону пріоритетів від значення MAX_RT_PRIO до значення (MAX_RT_PRIO +40) За умовчанням це означає, що діапазон значень параметра nice від -20 до +19 взаємно однозначно відображається в діапазон значень пріоритетів від 100 до 139

Джерело: Лав, Роберт Розробка ядра Linux, 2-е видання : Пер з англ – М: ТОВ «ІД Вільямс »2006 – 448 с : Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*