- •Курсовий проект
- •Анотація
- •Частина 1 «Розрахунок по базовим дисциплінам планування»
- •Теоретична частина.
- •Поняття дисциплін планування.
- •Необхідність використання дисциплін планування.
- •Базові дисципліни планування.
- •Реалізація планування у Linux.
- •Опис дисципліни у відповідності до варіанту номера студента Ni. Недолік дисципліни планування.
- •Розрахункова частина
- •Теоретична частина.
- •Види інсталяцій операційної системи FreeBsd, та ситуації в яких вони рекомендуються здійснювати.
- •Види файлових систем, їх недоліки та переваги.
- •Що включає в себе поняття «Настройка FreeBsd»? Перерахувати компоненти.
- •2.2 Практична частина
- •3.1 Теоретична частина.
-
Реалізація планування у Linux.
Планування процесів реального часу в ядрі:
• вони завжди матимуть під час планування пріоритет над звичайними процесами; • процес із плануванням за принципом FIFO виконуються доти, поки він сам не звільнить процесор (наприклад, внаслідок призупинення або завершення) або поки не буде витіснений процесом реального часу із вищим пріоритетом; • те саме стосується процесу із круговим плануванням, крім того, що він додатково буде витіснений після вичерпання кванта часу.
Традиційний алгоритм планування.
Розглянемо алгоритм планування звичайних процесів. В основі алгоритму лежить розподіл процесорного часу на епохи (epochs). Упродовж епохи кожен процес має квант часу, довжину якого розраховують у момент початку епохи. Здебільшого різні процеси мають кванти різної довжини. Коли процес вичерпав свій квант, його витісняють і протягом поточної епохи він більше не виконуватиметься. Керування передають іншому процесові. Якщо ж процес був призупинений для виконання введення-виведення або внаслідок синхронізації, його квант не вважають вичерпаним і він може бути вибраний планувальником упродовж поточної епохи. Епоха закінчується, коли всі готові до виконання процеси вичерпали свої кванти. У цьому разі алгоритм планування перераховує кванти для всіх процесів і розпочинає нову епоху.
Квант, який задають на початку епохи, називають базовим квантом часу процесу. Його значення можуть динамічно змінюватися системними викликами PC і setpriorityO. Процес-нащадок завжди успадковує базовий квант свого предка. Пріоритет процесу буває двох видів: • фіксований, для процесів реального часу, що задають тільки під час створення процесe; • динамічний, для звичайних процесів, який залежить від базового пріоритету і часу, що залишився до вичерпання кванта.
Динамічний пріоритет будь-якого звичайного процесу завжди нижчий за будь-який пріоритет процесу реального часу. Опишемо найважливіші поля структури даних процесу стосовно планування: • policy — визначає, до якої групи відноситься процес (звичайні, реального часу з алгоритмом FIFO тощо); • nice — задає величину, на якій ґрунтується базовий квант часу процесу (надалі для спрощення вважатимемо nice рівним базовому кванту, насправді це не зовсім так); • counter — містить кількість переривань таймера, що залишилися до вичерпання кванта часу процесу. На початку епохи counter надають значення базового кванта і зменшують його на одиницю в обробнику переривання таймера.
Процедура планування Ця процедура спочатку перевіряє, чи не переходить поточний процес у стан очікування, і якщо це так, вилучає його з черги готових процесів. Потім вибирається процес для виконання. Для цього проглядають чергу готових процесів, для кожного процесу оцінюють динамічний пріоритет і вибирають процес із максимальним його значенням. Алгоритм оцінки цього пріоритету описаний нижче. Для процесу, що вичерпав свій квант часу, він дорівнюватиме нулю. Якщо жоден процес не був вибраний, поточний процес продовжує виконуватися. Коли ж вибір відбувся, контекст перемикають на новий процес.