- •Лекція 1. Вступ до операційних систем.
- •1.Поняття про операційні системи та їх місце в загальній структурі комп’ютера.
- •2. Основні функції операційної системи : розширення можливостей комп’ютера та керування його ресурсами.
- •3. Історія операційних систем.
- •Лекція 2. Структура операційної системи.
- •Таблиця 2.1
- •Екзоядро
- •Модель клієнт-сервер
- •Лекція 3. Концепція процесу
- •Лекція 4. Потоки в операційних системах.
- •3. Міжпроцесна взаємодія.
- •4.Примітиви міжпроцесної взаємодії.
- •5.Семафори та їх використання.
- •6.Поняття м’ютекса.
- •7.Поняття моніторів.
- •8.Поняття про бар’єри.
- •9.Поняття про системи передачі повідомлень.
- •Лекція 5. Взаємоблокування.
- •2.Умови та моделювання взаємоблокувань.
- •3.Виявлення та усунення взаємоблокувань.
- •4.Уникнення взаємоблокувань при наявності декількох ресурсів кожного типу.
- •6. Уникнення взаємоблокувань.
- •7. Алгоритм банкіра для одного та декількох видів ресурсів.
- •8. Уникнення взаємоблокувань шляхом порушення умов їх здійснення
- •Лекція 6. Основні поняття керування пам’яттю.
- •1.Однозадачна система без підкачки на диск.
- •2.Багатозадачність з фіксованими розділами
- •3.Поняття про підкачку даних.
- •5.Віртуальна пам’ять. Основні поняття.
- •6.Віртуальна пам’ять. Сторінкова організація пам’яті.
- •7.Характеристика основних алгоритмів заміщення сторінок.
- •Лекція 7. Принципи роботи апаратури введення-виведення.
- •1.Пристрої введення-виведення.
- •2.Переривання персональної кс.
- •Лекція 8.
- •Лекція 9.
- •Лекція 10. Файли та їх властивості.
- •1.Поняття файлової системи.
- •2.Іменування файлів.
- •3.Структура файлу.
- •4.Типи файлів.
- •5.Доступ до файлів. Атрибути файла.
- •6.Файли, відображувані на адресній простір памяті.
- •7.Каталоги.
- •Лекція 11. Реалізація файлової системи.
- •1.Структура файлової системи.
- •2.Реалізація файлів.
- •3.Реалізація каталогів.
- •Лекція 12 Планування в системах з одним процесором.
- •1.Поняття про планування.
- •2.Типи планування процесора.
- •3.Планування вводу-виводу.
- •Лекція 13. Критерії планування.
- •1.Критерії короткотривалого планування.
- •2.Використання пріоритетів.
- •3.Альтернтитвні стратегії планування
- •Лекція 14. Стратегії планування.
- •1.Стратегія планування „першим прийшов – першим обслуговується”.
- •2.Стратегія”кругове планування” .
- •4.Вибір самого короткого процесу.
- •5.Стртегія найменшого часу, що залишився.
- •7.Зниження пріорітету.
- •Лекція 15. Багатопроцесорне планування і планування реального часу.
- •1. Класифікація багатопроцесорних систем.
- •3.Задачі планування в багатопроцесорній системі.
- •4. Планування процесів.
- •5.Планування потоків.
- •Лекція 16. Основні підходи до планування потоків.
- •1.Розділення навантаження.
- •2.Бригадне планування.
- •3.Призначення процесорів.
- •4.Динамічне планування.
- •Лекція 17. Планування реального часу.
- •Лекція 18.
- •4. Парадигми.
- •5. Реалізація операційної системи
- •Лекція 19. Операційні системи типу unix.
- •1.Історичні відомості про операційні системи типу unix.
- •2.Загальна архітектура системи unix.
- •3.Сучасні системи unix.
- •4.Історія виникнення операційної системи Linux.
- •5.Модульна структура операційної системи Linux.
- •6.Традиційне планування unix.
- •Лекція 20. Характеристики операційної системи Windows 2000.
- •1. Історія виникнення Windows.
- •Лекція 21. Особливості архітектури Windows xp.
- •1. Основні компоненти Windows xp.
5.Модульна структура операційної системи Linux.
Ядра більшості версій операційної системи UNIX є монолітними. Монолітне ядро – це ядро, яке віртуально включає в себе всі можливості операційної системи у вигляді одного великого блоку коду, який запускається як єдиний процес в єдиному адресному просторі. Всі функціональні компоненти такого ядра мають доступ до всіх його внутрішніх структур даних і до всіх програм. При внесенні змін в будь-яку частину типової монолітної операційної системи всі її модулі і підпрограми необхідно повторно компонувати і перевстановлювати, а перед тим як зміни ввійдуть в силу, систему потрібно буде перезавантажити. В результаті всі модифікації, такі, як добавлення драйвера нового пристрою або нових функцій файлової системи, ускладнюються. Особливо гостро ця проблема стоїть в системі Linux, глобальну розробку якої виконують об’єднані на добровільних засадах групи незалежних програмістів.
Динамічне зв’язування полегшує налагодження системи і економить пам’ять, яку займає ядро. В системі Linux програма користувача або сам користувач може завантажувати або вивантажувати модулі за допомогою команд insmod i rmmod. Саме ядро керує роботою окремих функцій і по мірі необхідності завантажує потрібні модулі або вивантажує ті, потреби в яких вже немає. Крім того, стекова організація дозволяє задавати залежності модулів, що дає дві основних переваги:
Код, що є загальним для набору однотипних модулів (наприклад, драйвери подібних пристроїв), можна розмістити в один модуль, що дозволяє скоротити кількість повторень.
Ядро може перевірити наявність в пам’яті потрібних модулів, утримуючись від вивантаження модуля, який потрібен для роботи інших, залежних від нього, і завантажуючи разом з новим потрібним модулем всі необхідні додаткові модулі.
6.Традиційне планування unix.
Системи SVR3 i 4.3BSD UNIX в першу чергу призначені для роботи в інтерактивному середовищі з розділенням часу. Алгоритми планування розроблено так, щоб забезпечити прийнятний час відгуку для інтерактивних користувачів, в той же час гарантуючи відсутність «голодання» низькопріоритетних завдань. [Хоча описуваний алгоритм і був замінений в більш сучасних версіях UNIX, його вивчення як представника практично використовуваних алгоритмів з розділенням часу має підставу.] Схема планування SVR4 відповідає вимогам реального часу.
Традиційний планувальник UNIX використовує багаторівневе повернення із застосуванням кругового планування в межах черг кожного пріоритету, а також односекундне витіснення. Таким чином, якщо поточний процес не блокується або не закінчується в межах однієї секунди, то він витісняється. Пріоритет базується на типові процесу та історії виконання. Застосовуються такі формули:
де - міра використання процесора процесом j на протязі інтервалу і;
- пріоритет процесу j на початку інтервалу і (менше значення відповідає більшому пріоритету);
- базовий пріоритет процесу j;
- вказуваний користувачем коефіцієнт.
Пріоритет кожного процесу перераховується один раз в секунду, в момент прийняття рішення про те, який процес буде виконуватись наступним. Призначення базового пріоритету полягає в розділенні процесів на фіксовані групи рівнів пріоритетів. Значення компонентів CPU i nice обмежені вимогами того, щоб процес не міг вийти з призначеної йому на основі базового пріоритету групи. Ці групи використовуються для оптимізації доступу до блочних пристроїв (наприклад, до диску) і забезпечення швидкого відгуку операційної системи на системні виклики. Є такі групи пріоритетів (наведено в порядку зниження):
програма свопінгу;
керування блочними пристроями введення-виведення;
керування файлами;
керування символьними пристроями введення-виведення;
користувацькі процеси.
Така ієрархія повинна забезпечити найбільш ефективне використання пристроїв введення-виведення. В групі користувацьких процесів використання історії виконання приводить до застосування штрафних санкцій до процесів, орієнтованих на обчислення, що також повинно сприяти підвищенню ефективності системи. В поєднанні з круговою схемою з витісненням дана стратегія добре задовольняє вимогам до системи загального призначення з розділенням часу.