Тема 12. Реалізація планування в Linux.

Матеріал з Вікі ЦДУ
Версія від 09:35, 24 квітня 2013; Elenabosa (обговореннявнесок)

(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)
Перейти до: навігація, пошук

Планування процесів реального часу в ядрі.


Стосовно процесів реального часу, достатньо сказати, що:
• вони завжди матимуть під час планування пріоритет перед звичайними про­ цесами;
• процес із плануванням за принципом FIFO виконують доти, поки він сам не віддасть процесор (наприклад, внаслідок призупинення або завершення) або поки не буде витиснений процесом реального часу із вищим пріоритетом;
• те саме стосується процесу із круговим плануванням, крім того, що він додат­ково буде витіснений після вичерпання кванта часу.
'Традиційний алгоритм планування.' Розглянемо алгоритм планування звичайних процесів. В основі алгоритму лежить розподіл процесорного часу на епохи (epochs). Упродовж епохи кожен процес має квант часу, довжину якого розраховують у момент початку епохи. Здебільшого різні процеси мають кванти різної довжини. Коли процес вичерпав свій квант, його витісняють і протягом поточної епохи він більше не виконувати­ меться. Керування передають іншому процесові. Якщо ж процес був призупине­ ний для виконання введення-виведення або внаслідок синхронізації, його квант не вважають вичерпаним і він може бути вибраний планувальником упродовж поточної епохи. Епоха закінчується, коли всі готові до виконання процеси вичер­ пали свої кванти. У цьому разі алгоритм планування перераховує кванти для всіх процесів і розпочинає нову епоху.
Квант, який задають на початку епохи, називають базовим квантом часу проце­ су. Його значення можуть динамічно змінюватися системними викликами пі се О і setpriorityO. Процес-нащадок завжди успадковує базовий квант свого предка. Пріоритет процесу буває двох видів: фіксований, для процесів реального часу, що задають тільки під час створення процесу, та динамічний, для звичайних про­ цесів, який залежить від базового пріоритету і часу, що залишився до вичерпання кванта. Динамічний пріоритет будь-якого звичайного процесу завжди нижчий за будь-який пріоритет процесу реального часу.
Опишемо найважливіші поля структури даних процесу стосовно планування: • рої і су — визначає, до якої групи відноситься процес (звичайні, реального часу з алгоритмом FIFO тощо);
• nice — задає величину, на якій ґрунтується базовий квант часу процесу (нада­ лі для спрощення вважатимемо nice рівним базовому кванту, насправді це не зовсім так);
• counter — містить кількість переривань таймера, що залишилися до вичерпан­ ня кванта часу процесу. На початку епохи counter надають значення базового кванта і зменшують його на одиницю в обробнику переривання таймера.