Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Report.docx
Скачиваний:
12
Добавлен:
05.03.2016
Размер:
976.3 Кб
Скачать
  1. Реалізація планування у Linux.

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

• вони завжди матимуть під час планування пріоритет над звичайними про­цесами; • процес із плануванням за принципом FIFO виконуються доти, поки він сам не звільнить процесор (наприклад, внаслідок призупинення або завершення) або поки не буде витіснений процесом реального часу із вищим пріоритетом; • те саме стосується процесу із круговим плануванням, крім того, що він додат­ково буде витіснений після вичерпання кванта часу.

Традиційний алгоритм планування.

Розглянемо алгоритм планування звичайних процесів. В основі алгоритму лежить розподіл процесорного часу на епохи (epochs). Упродовж епохи кожен процес має квант часу, довжину якого розраховують у момент початку епохи. Здебільшого різні процеси мають кванти різної довжини. Коли процес вичерпав свій квант, його витісняють і протягом поточної епохи він більше не виконувати­меться. Керування передають іншому процесові. Якщо ж процес був призупинений для виконання введення-виведення або внаслідок синхронізації, його квант не вважають вичерпаним і він може бути вибраний планувальником упродовж поточної епохи. Епоха закінчується, коли всі готові до виконання процеси вичер­пали свої кванти. У цьому разі алгоритм планування перераховує кванти для всіх процесів і розпочинає нову епоху.

Квант, який задають на початку епохи, називають базовим квантом часу проце­су. Його значення можуть динамічно змінюватися системними викликами PC і setpriorityO. Процес-нащадок завжди успадковує базовий квант свого предка. Пріоритет процесу буває двох видів: • фіксований, для процесів реального часу, що задають тільки під час створення процесe; • динамічний, для звичайних про­цесів, який залежить від базового пріоритету і часу, що залишився до вичерпання кванта.

Динамічний пріоритет будь-якого звичайного процесу завжди нижчий за будь-який пріоритет процесу реального часу. Опишемо найважливіші поля структури даних процесу стосовно планування: • policy — визначає, до якої групи відноситься процес (звичайні, реального часу з алгоритмом FIFO тощо); • nice — задає величину, на якій ґрунтується базовий квант часу процесу (надалі для спрощення вважатимемо nice рівним базовому кванту, насправді це не зовсім так); • counter — містить кількість переривань таймера, що залишилися до вичерпан­ня кванта часу процесу. На початку епохи counter надають значення базового кванта і зменшують його на одиницю в обробнику переривання таймера.

Процедура планування Ця процедура спочатку перевіряє, чи не переходить поточний процес у стан очі­кування, і якщо це так, вилучає його з черги готових процесів. Потім вибирається процес для виконання. Для цього проглядають чергу готових процесів, для кож­ного процесу оцінюють динамічний пріоритет і вибирають процес із максимальним його значенням. Алгоритм оцінки цього пріоритету описаний нижче. Для проце­су, що вичерпав свій квант часу, він дорівнюватиме нулю. Якщо жоден процес не був вибраний, поточний процес продовжує виконува­тися. Коли ж вибір відбувся, контекст перемикають на новий процес.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]