А. Диспетчеризація процесів реального часу.

POSIX

Стандарт POSIX був створений як стандартний інтерфейс сервісів операційних систем. Цей стандарт дає можливість створювати переносні додатки. Згодом цей стандарт був розширений особливостями режиму реального часу [POSIX].

Специфікації POSIX задають стандартний механізм взаємодії додатка й ОС. Необхідно відзначити, що стандарт POSIX тісно пов'язаний з ОС Unix; проте, розроблювачі багатьох ОСРЧ намагаються витримати відповідність цьому стандарту. Відповідність стандарту POSIX для ОС і апаратної платформи повинне бути сертифіковане за допомогою прогону на них тестових наборів [POSIXTestSuite]. Однак, якщо ОС не є Unix-Подібною, витримати цю вимогу стає непростим завданням. Тестові набори існують тільки для POSIX 1003.1a. Оскільки структура POSIX є сукупністю необов'язкових можливостей, постачальники ОС можуть реалізувати тільки частину стандартного інтерфейсу.

Незважаючи на те, що стандарт POSIX виріс із Unix, він торкається основних абстракцій операційних систем, а розширення реального часу застосовні до всіх ОСРЧ.

До теперішнього часу стандарт POSIX розглядається як сімейство родинних стандартів: IEEE Std 1003.n (де n - це номер).

Стандарт 1003.1a (OS Definition) містить базові інтерфейси ОС - підтримку єдиного процесу, підтримку багатьох процесів, керування завданнями, сигналами, групами користувачів, файловою системою, файловими атрибутами, керування файловими пристроями, блокуваннями файлів, пристроями введення/виведення, пристроями спеціального призначення, системними базами даних, каналами, чергами FIFO, а також підтримку мови C.

Стандарт 1003.1b (Realtime Extensions) містить розширення реального часу:

У базовому стандарті POSIX визначається модель паралельної роботи процесів, але ніякого механізму диспетчеризації і ніякої концепції пріоритетів не специфікується. Для додатків реального часу необхідно специфікувати деякий механізм диспетчеризації, що задовольняє специфіці реального часу. У стандарті 1003.1b специфікуються три механізми диспетчеризації. У кожного процесу є атрибут диспетчеризації, що повинен встановлюватися відповідно до одного із трьох механізмів:

  • SCHED_FIFO: це механізм пріоритетної диспетчеризації з фіксованими пріоритетами, при якому процеси з однаковими пріоритетами обробляються за принципом "першим прийшов - першим вийшов" (FIFO). Цей механізм повинен обслуговувати мінімум 32 рівня пріоритетів.
  • SCHED_RR: цей механізм подібний до механізму SCHED__FIFO, але в ньому для диспетчеризації рівнопріоритетних процесів використовується метод квантування часу (кругова диспетчеризація). І цей метод володіє 32 рівнями пріоритетів.
  • SCHED_OTHER: цей механізм диспетчеризації визначається конкретною реалізацією.

Використовуючи ці методи диспетчеризації, а також функції встановлення пріоритету кожного процесу й функції включення (дозволу) потрібного методу, в операційних системах у стандарті POSIX можна виконувати диспетчеризацію додатків реального часу.