
- •Операційні системи
- •Функціонування комп'ютерної системи
- •Обработка переривань
- •Структура пам'яті
- •Лекція 5: Архітектура ос. Управління процессами: Основні поняття. Семафори і монітори План
- •2. Керування процесами
- •Віртуальні машини - інший розповсюджений підхід до розробки операційних систем й їхніх користувальницьких інтерфейсів
- •Механізми й політики
- •Реалізація операційних систем
- •Генерація операційної системи
- •Перемикання з одного процесу на інший
- •Планувальники, що виконують диспетчеризацію процесів
- •Лекція 10. Методи синхронізації процесів План
- •Алгоритм рішення проблеми критичної секції
- •Алгоритм «в пиріжковій» (bakery algorithm)
- •Синхронізація на основі загальних семафорів
- •Реалізація семафорів
- •Рішення за допомогою семафорів завдання
- •Рішення за допомогою семафорів завдання "читачі - письменники"
- •Рішення за допомогою семафорів завдання " філософи, що обідають,"
- •Монітори
- •Лекція № 11. Управління памяттю План
- •Динамічне завантаження й динамічна лінковка
- •Оверлейна структура програми
- •Відкачка й підкачування
- •Лекція 13. Сегментна організація пам’яті. Віртуальна пам’ять
- •Оптимальний алгоритм заміщення сторінок
- •Сторінкова організація на вимогу в Windows nt
- •Лекція № 14. Системи файлів План
- •Типова організація файлової системи зображена на мал. 19.3.
- •Логічна організація директорій
- •Монтування файлових систем
- •Структура файлової системи
- •Лекція № 15. Віртуальні файлові системи План
- •Лекція 17. Системи вводу-виводу План
- •Опитування пристроїв
- •Переривання
- •Ввід-вивід із прямим доступом до пам'яті (dma)
- •Блокові й символьні пристрої
- •Мережні пристрої істотних відрізняються від блоків і символьних; мають свій власний інтерфейс і систему команд
- •Годинники й таймери
- •Блокуємий (синхронний) і не блокуємий (асинхронний) ввід-вивід
- •Структури даних для вводу-виводу в ядрі ос
- •Життєвий цикл запиту на ввід-вивід
- •Продуктивність вводу-виводу
- •Лекція 18. Мережі й мережеві структури. Класичні и сучасні мережеві комунікаційні протоколи План
- •Мережі Ethernet
- •Протокол tcp/ip
- •Функционирование Ethernet-мереж
- •Лекція 19: Безпека операційних систем і мереж. План
- •Лекція 20. Огляд архітектури й можливостей системи Linux: архітектура, ядро, поширення й ліцензування, принципи проектування, керування процесами План
- •Історія Linux
- •Ядро Linux
- •Сучасний стан Linux, дистрибутиви й ліцензування
- •Принципи проектування й компоненти системи Linux
- •Модулі ядра, що завантажують, Linux
- •Керування процесами в Linux
- •Планування завдань ядра й синхронізація в ядрі
- •Лекція 21. Огляд архітектури й можливостей системи Linux: керування пам'яттю, ресурсами, файлові системи, драйвери пристроїв, мережі, безпека План
- •Керування фізичною пам'яттю в Linux
- •Віртуальна пам'ять в Linux
- •Виконання й завантаження користувальницьких програм в Linux
- •Системи файлів Linux
- •Ввод й вивід в Linux
- •Взаємодія процесів в Linux
- •Структура мережі в Linux
- •Безпека в Linux
- •Розвиток і використання Linux
- •Лекція 22. Огляд архітектури й можливостей систем Windows 2000/xp/2003/Vista/2008/7 План
- •Система Windows 2000
- •Історія Windows
- •Принципи проектування Windows 2000 - розширюваність, переносимость, надійність, безпека, сумісність, продуктивність, підтримка інтернаціоналізації й локалізації.
- •Архітектура Windows 2000
- •Ядро Windows 2000
- •Обработка переривань у ядрі
- •Виконавча підсистема (executive) ос Windows 2000
- •Підсистеми оточення в Windows 2000
- •Лекція 23. Системні механізми Windows План
- •Система файлів Windows
- •Рограммный інтерфейс Windows
- •Програмний інтерфейс Windows: Керування процесами
- •Керування віртуальною й фізичною пам'яттю й робочими наборами в Windows
- •Лекція 24. Ос для мобільних пристроїв. Windows Mobile План
- •Особливості ос для мобільних пристроїв
- •Ринок ос для мобільних пристроїв
- •Перспективи ос для мобільних пристроїв
- •Лекція 25. Перспективи операційних систем і мереж План
- •Операційні системи інших великих фірм
- •Solaris - операційна система розробки фірми Oracle / Sun
- •Сучасні тенденції в розвитку ос
- •Нові ос сімейства Windows
- •Нові тенденції в розвитку ос
- •Графічні оболонки ос
- •Підтримка паралельних обчислень
- •Розвиток бездротових мереж
- •Перспективи розвитку ос
Планування завдань ядра й синхронізація в ядрі
Нагадаємо, що планування – це розподіл операційною системою процесорного часу між різними завданнями. У той час як у більшості ОС під плануванням розуміється запуск і припинення процесів, в Linux планування також включає виконання різних завдань ядра. Виконання завдань ядра включає як завдання, запитані даним процесом, так і завдання, що виконують у процесі роботи драйверів.
Запит на виконання в режимі ядра може виникнути у двох випадках:
Програма, що виконується, може запросити сервіс ОС, як явно за допомогою системного виклику, так і неявно, наприклад, при відмові сторінки
Драйвер пристрою може згенерувати апаратне переривання, у результаті якого процесор почне виконувати в режимі ядра оброблювач даного переривання.
Синхронізація в ядрі вимагає, щоб критичні секції ядра виконувалися без їхнього переривання іншими критичними секціями.
Linux використає два методи для захисту критичних секцій:
Звичайний код ядра - перерива не. Якщо отримано переривання за часом, у момент, коли процес виконує підпрограму систебагато сервісу ядра, прапор need_resched служить для вказівки того, щоб запустився планувальник, коли завершиться системний виклик і керування повинне бути передане непривілейованому коду.
Второю метод застосовується до критичних секцій ядра, які виконуються в сервисах обробки переривань. Використовуючи апаратури процесора, що управляє перериваннями, для відключення переривань під час виконання критичної секції, ядро гарантує, що воно може виконуватися без ризику одночасного звертання до загальних структур даних.
Щоб уникнути втрати продуктивності, ядро Linux використає архітектуру синхронізації, що дозволяє більшим критичним секціям виконуватися без необхідності відключення переривань на увесь час виконання критичної секції.
Служби обробки переривань діляться на верхню половину ( top half ) і нижню половину ( bottom half ):
Верхня половина - це звичайна процедура обробки переривань, що виконує з відключенням рекурсивних переривань
Нижня половина виконується при включеному режимі переривань, з використанням міні-планувальника, що забезпечує, щоб нижні половини не переривали один одного.
Ця архітектура доповнюється механізмом для вибору нижніх половин при виконанні звичайного коду ядра.
На рис. 25.4 зображено рівні захисту переривань.
Рис. 25.4. Рівні захисту переривань.
Код кожного рівня може бути перерваний кодом більше високого рівня, але ніколи не буде перерваний кодом того ж або більше низького рівня.
Користувальницький процес може бути завжди перерваний іншим процесом, якщо відбувається переривання для планування в режимі поділу часу.
Linux використає два алгоритми планування процесів:
Алгоритм поділу часу для рівноправного планування з перериваннями між різними процесами
Алгоритм реального часу для випадку, коли абсолютні пріоритети більше важливі, чим рівноправність.
Клас планування процесу визначає, який саме алгоритм застосувати.
Для процесів з поділом часу Linux використає алгоритм на основі довіри (credits) із пріоритетами ( priority ). Правило credits := credits / 2 + priority ураховує як історію процесу, так і його пріоритет. По такій системі автоматично визначаються пріоритети інтерактивних процесів або виконуючий ввід-вивід.
Linux реалізує класи планування: FIFO й round-robin; в обох випадках кожен процес має пріоритет, а не тільки певний клас планування.
Планувальник запускає процес із найвищим пріоритетом; для процесів з тим самим пріоритетом, він виконує процес, що довше всього чекав.
FIFO - процеси виконуються до їхнього завершення або блокування.
round-robin - процес буде перерваний через якийсь час і поміщений у кінець черги планування, так що RR-процеси однакового пріоритету автоматично розділяють час між собою.
Версія Linux 2.0 була першим ядром Linux, що підтримує З; різні процеси або потоки можуть виконуватися паралельно на декількох процесорах.
Для дотримання вимог ядра про виконання без переривань, SMP накладає наступне обмеження: не більш ніж один процес у кожен момент може виконувати код у режимі ядра.