- •Тема 1: Основні поняття обчислювальних систем Призначення та склад системного програмного забезпечення
- •Основні концепції операційних систем
- •Типи операційних систем
- •Основні етапи розвитку операційних систем
- •Функціональні компоненти операційних систем
- •Керування процесами й потоками
- •Керування ресурсами
- •Керування введенням-виведенням
- •Керування файлами та файлові системи
- •Мережна підтримка
- •Тема 2: Архітектура операційних систем Основні принципи побудови операційних систем
- •Принцип модульності
- •Принцип функціональної вибірковості
- •Принцип здатності до генерування
- •Принцип функціональної надмірності
- •Принцип віртуальності
- •Принцип незалежності програм від зовнішніх пристроїв
- •Принцип сумісності
- •Принцип відкритої і нарощуваної ос
- •Принцип мобільності (переносимості)
- •Принцип забезпечення безпеки обчислень
- •Базові поняття архітектури операційних систем
- •Ядро операційної системи
- •Монолітні системи
- •Багаторівневі системи
- •Системи з мікроядром
- •Концепція віртуальних машин
- •Засоби апаратної підтримки операційних систем
- •Інтерфейс прикладного програмування
- •Варіанти реалізації api
- •Особливості архітектури unix і Linux
- •Особливості побудови ос Linux
- •Особливості архітектури Windows xp
- •Компоненти режиму ядра
- •Компоненти режиму користувача
- •Об’єктна архітектура Windows xp
- •Тема 3: Процеси та потоки
- •Базові поняття процесів та потоків
- •Блок керування процесом
- •Операції над процесами
- •Обробка переривань
- •Алгоритми планування процесів
- •Витісняючі та невитісняючі алгоритми планування
- •Нитки, потоки (Thread)
- •Керування процесорами
- •Планування з переключення та без переключення
- •Лекція 4: Ядро операційної системи
- •Основні функції ядра
- •Асинхронні паралельні процеси
- •Взаємо-виключення
- •Семафори
- •Кільцевий буфер
- •Конвеєр (програмний канал)
- •Черги повідомлень (Queue)
- •Лекція 5. Керування ресурсами
- •Керування пам’яттю
- •Ієрархія пам’яті
- •Розподіл пам’яті
- •Зв’язний розподіл пам’яті для одного користувача
- •Мультипрограмування з фіксованими розділами
- •Мультипрограмування із змінними розділами
- •Боротьба з фрагментацією
- •Стратегії розміщення інформації в пам’яті
- •Системи з розподілом часу. Сторінкова організація пам’яті. Концепція віртуальної (уявної) пам’яті.
- •Принцип кешування даних
- •Лекція 6. Керування даними Файлова система
- •Функції файлової системи
- •Ієрархія даних
- •Об’єднання в блоки та буферизація
- •Організація файлів
- •Методи доступу
- •Характеристики файлів
- •Файлова система
- •Виділення та звільнення місця в пам’яті
- •Зв’язаний розподіл пам’яті
- •Незв’язаний розподіл пам’яті
- •1) Розподіл за допомогою списків секторів
- •2) Поблочний розподіл
- •Дескриптор файлу (file descriptor)
- •Матриця керування доступом
- •Керування доступом в залежності від класів користувачів
- •Копіювання та відновлення інформації
- •Планування роботи з дисковою пам’яттю
- •Призначення планування
- •Цільові характеристики принципів планування
- •Оптимізація пошуку циліндру
- •Оптимізація за часом очікування записів
- •Архітектура сучасних файлових систем
- •Лекція 8. Основи організації ms-dos
- •Будова та функції основних складових дос
- •Керування пам’яттю
- •Відображена пам’ять
- •Розширена пам’ять
- •Висока пам’ять
- •Верхня пам’ять
- •Драйвери верхньої та розширеної пам’яті
- •Завантажувані модулі com та exe – файли
- •Логічна структура диску в ms-dos
- •Формат елементів таблиці розділів
- •Запис завантаження (boot)
- •Використання boot-сектору
- •Визначення формату fat
- •Формат fat
- •Файли та каталоги
- •Недоліки ms-dos
- •Переваги які надає користувачам Windows
- •Windows як операційна оболонка
- •Обмін даними в Windows
- •Зв’язування чи вбудовування
- •Первинність повідомлень: механізм повідомлень
- •Незалежна (preemptive) багатозадачність
- •Взаємодія 32– та 16–розрядних кодів
- •Робота з 16–розрядними продуктами
- •Робота з dos–продуктами
- •Робота 32–розрядних Windows–продуктів
- •Вдосконалення розподілу системних ресурсів
- •Vcache – 32–розрядний дисковий кеш
- •Варіанти модифікацій ос Windows xp
- •Нові характеристики реалізовані в Windows xp
- •Продуктивність
- •Лекція 8. Ос unix
- •Ядро ос unix
- •Генерування ос
- •Процеси
- •Початкове завантаження. Процеси 0 та 1
- •Файлова система unix
- •Будова файлової системи unix
- •Каталоги
- •Тема 1: Основні поняття обчислювальних систем 1
- •Тема 2: Архітектура операційних систем 9
- •Тема 3: Процеси та потоки 25
Керування процесорами
Процеси отримують можливість виконувати конкретну роботу, коли в їх розпорядження надаються фізичні процесори. Розподіл процесорів по процесам – це складна задача, яку вирішують операційні системи. Визначення того, коли слід виділяти процесори і яким саме процесам - називається плануванням.
Планування на верхньому рівні або планування завдань. Засоби цього рівня визначають, яким завданням буде дозволено активно конкурувати за захоплення ресурсів системи. Цей вид планування іноді називають також плануванням допуску, оскільки на цьому рівні визначається, які завдання будуть допущені в систему.
Планування на проміжному рівні. Засоби цього рівня визначають, яким процесам буде дозволено змагатись за захоплення ЦП. Планувальник проміжного рівня оперативно реагує на біжучі зміни системного навантаження, короткочасно припиняючи і знову активізуючи процеси, що забезпечує рівномірну роботу системи й допомагає досягненню певних глобальних цільових характеристик швидкості. Таким чином, планувальник проміжного рівня виконує функції буферу між засобами допуску завдань в систему та засобами надання ЦП для виконання цих завдань.
Планування на нижньому рівні. Засоби цього рівня визначають, якому з процесів, що готові до виконання, буде надаватись ЦП, який звільнився. Вони (ці засоби) фактично надають ЦП такому процесу (тобто виконують диспетчерські функції). Планування на нижньому рівні виконується так званим диспетчером, який працює з великою частотою й тому завжди повинен розташовуватись в основній пам’яті.
Планування повинно:
1) бути справедливим, тобто однаково відноситись до всіх процесів.
2) забезпечувати максимальну пропускну здатність системи.
3) забезпечувати максимальній кількості користувачів допустимий час відповіді.
4) забезпечувати передбачуваність, мінімальні накладні витрати, збалансоване використання ресурсів.
5) виключати нескінчене відкладання процесів;
6) враховувати пріоритети;
7) і т.д.
Багато з цих вимог вступають в протиріччя одне до одного, що робить планування вельми складною проблемою.
Планування з переключення та без переключення
Якщо після надання ЦП в розпорядження деякого процесу, відібрати ЦП у нього не можна, то має місце дисципліна планування без переключення. Інакше має місце дисципліна з переключенням.
Планування з переключенням необхідно в системах, в яких процеси високого пріоритету вимагають негайної уваги.
Наприклад: Якщо в системах реального часу пропаде хоча б один важливий сигнал переривання, це може привести до катастрофічних наслідків.
В системах без переключення, коротким завданням треба більше чекати через виконання тривалих завдань, але для всіх завдань створюються ніби-то рівні умови. Час відповіді тут легше передбачити, оскільки завдання високого пріоритету, що надходять, не можуть відтіснити завдання, що вже чекають.
Процес працює, якщо в біжучий момент процесор є в його розпорядженні. Якщо мова йде про процес ОС, то це означає, що в біжучий момент працює ОС, причому вона може приймати рішення, що впливають на функціонування всієї машини. Для того, щоб не допустити монополізації системи користувачем, в ОС передбачаються механізми, які дозволяють відбирати ЦП у користувача.
а) Інтервальний таймер
ОС встановлює годинник або інтервальний таймер, який генерує сигнал переривання в деякий конкретний момент часу в майбутньому. Після переривання ЦП передається наступному процесу. Який, зберігає за собою керування ЦП, доки не закінчиться або не перерветься.
Таймер гарантує можливий час відповіді для користувачів в діалоговому режимі, не допускає „зависання” системи з причини за-циклювання. А також дозволяє процесам відповідним чином реагувати на події, що залежать від часу.
б) Пріоритети
Статичні пріоритети. Призначаються один раз. Для їх реалізації необхідні незначні витрати, але вони не реагують на зміни в середовищі, які можуть вимагати корекції пріоритетів.
Динамічні пріоритети. Реагують на зміни в ситуації. Вимагають більших витрат. Але система стає більш реактивною, краще використовує ресурси.
Пріоритети, що купуються. Система повинна надавати привілейоване обслуговування для тих ситуацій, коли якому-небудь користувачеві це потрібно. Користувач, якому необхідно терміново виконати своє завдання, може піти на додаткові витрати (платню) за більш високий рівень обслуговування. Якби не бралась більш висока платня за привілеї, то всі користувачі хотіли б більш високий рівень обслуговування.
в) Планування за терміном завершення
Організується таким чином, що певні процеси закінчувались в визначені терміни. Таке планування – складна проблема, особливо в умовах, коли в проміжок між моментом початку виконання процесу та запланованим строком його завершення в систему можуть поступати додаткові завдання.
г) Планування за принципом FIFO
Це дисципліна планування без переключення, при якій процесам надається ЦП у відповідності з часом їх надходження у список готових до виконання.
Таке планування найчастіше застосовується в системах пакетної обробки, але воно не дозволяє гарантувати можливий (допустимий) час відповіді для інтерактивних користувачів.
д) Циклічне планування (RR)
Циклічне, або кругове (round robin, RR). Диспетчеризація виконується за принципом FIFO, але кожний раз процесу надається обмежена кількість часу ЦП, що називається квантом. Процес, у якого був перехоплений ЦП, переходить в кінець списку готових до виконання процесів. Така дисципліна (RR) ефективна для роботи з розподілом часу, коли система повинна гарантувати можливий час відповіді для всіх інтерактивних користувачів.
Визначення оптимального розміру кванту – складна задача. Як правило, його вибирають настільки великим, що більшість тривіальних пересічних запитів можна було б повністю обслужити в рамках одного кванту.
е) Планування за принципом SIF (“найкоротше завдання - перший”)
Планування без переключень застосовується перш за все для планування пакетних завдань. Воно забезпечує мінімальний середній час очікування для завдань, але для тривалих завдань час очікування може виявитись великим.
Надається перевага коротким завданням за рахунок більш тривалих. Чергове завдання вибирається таким чином, щоб воно завершувало свою роботу та виходило з системи як можна швидше. В результаті ця дисципліна дозволяє звести до мінімуму середній час очікування для завдань, що проходять через систему.
Проблема: треба точно знати, скільки часу вимагає завдання або процес.
Можна “консервувати” процеси. Не застосовується в системах розподілу часу, де необхідно гарантувати можливий час відповіді.
є) Принцип SRT (“за найменшим часом, що залишається”)
Аналог SIF, але з переключенням. Завжди виконується процес, який має мінімальний за оцінками час до завершення, причому з врахуванням нових процесів, що надходять. Треба, щоб враховувався час на обслуговування, що минув, а це приводить до збільшення накладних витрат.
ж) Принцип HRN (“за найбільшим відносним часом відповіді”)
Це планування без переключення, при якому в деякій мірі коректуються деякі недоліки SIF, зокрема перебільшене ігнорування довгих завдань та надання переваги коротким новим завданням.
з) Багаторівневі черги зі зворотними зв’язками
Це найбільш досконалий механізм планування. Це система планування з переключенням, яка найбільш ефективна для систем, де виконується суміш різнорідних завдань.
Нові процеси надходять в мережу черг з дуже високим початковим пріоритетом і швидко обслуговуються, якщо вони або інтерактивні, або залежать від вводу/виводу. Процеси, що лімітуються ЦП, повністю використовують виділений їм квант часу, а потім переходять в кінець черги наступного, більш низького пріоритетного рівня. Чим довше такий процес займає ЦП, тим нижче робиться його пріоритет, доки процес не спускається в чергу найнижчого пріоритету, яка реалізує принцип циклічного обслуговування (RR) і в якій він циркулює до того часу, доки не завершиться. Як правило, квант часу, що надається процесу, збільшується з переходом процесу в кожну наступну чергу.
Така дисципліна – це приклад адаптивного механізму планування, який реагує на зміну поведінки системи, що ним контролюється.
