- •Тема 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
Незалежна (preemptive) багатозадачність
У Windows 3.1 – спільна (cooperative) багатозадачність. довільний Windows– продукт повинен був час від часу відмічати в черзі повідомлень (message queue) для того щоб ОС могла передати керування іншому продукту. Продукти, які не відмічаються в черзі повідомлень досить часто, монополізували весь процесорний час і фактично припиняли виконання інших задач.
У Windows 98 при роботі 32–розрядних продуктів використовується механізм незалежної багатозадачності. ОС сама визначає час, який відводиться кожному з працюючих продуктів та після його закінчення передає керування іншій задачі. Таким чином, 32–розрядні продукти більше не повинні віддавати керування – тепер сама ОС відбирає його в потрібний час.
Але 16–розрядні продукти для сумісності продовжують працювати в режимі cooperative.
Preemptive окрім всього пропонує також multithreading – багатопотоковий механізм, який полегшує розробку складних продуктів з паралельною функціональністю.
Запущений 32–розрядний продукт – це процес. Довільний процес складається, як мінімум, з одного ланцюжка виконання, тобто послідовності кодів, які виконуються один за одним. Саме такі ланцюжки і складають елементарну задачу з точки зору ОС і отримують від неї певні кванти часу.
Але 32–розрядний продукт може складатись і з декількох ланцюжків коду, що виконують різні задачі в рамках одного процесу.
Наприклад: текстовий редактор може використовувати один ланцюжок коду для вводу символів з клавіатури, другий – для перевірки орфографії і третій – для одночасного друку документа.
Такий розподіл дозволяє покращити ввід команд, забезпечити обробку даних у фоновому режимі.
Windows 98 підтримує багатотоковість рівні ОС.
Продукти, що реалізують багатотоковий механізм, можуть ефективно використовувати декілька процесорів у багатопроцесорній системі (наприклад Windows NT), шляхом запуску потоку із ланцюжків коду на своєму процесорі.
Взаємодія 32– та 16–розрядних кодів
Використання 32–розрядного, або 16–розрядного коду в тому або іншому місці Windows 98 визначається міркуваннями сумісності з існуючими продуктами, зменшенням робочої частини ОС і загальним підвищенням продуктивності.
Windows 98 застосовує 32–розрядний код скрізь, де це дозволяє суттєво покращити продуктивність без втрати сумісності. 16–розрядний код Windows 3.Х зберігається там, де потрібна сумісність з існуючими продуктами і там, де впровадження 32–розрядного коду суттєво збільшувало б вимоги до пам’яті без значного підвищення продуктивності.
Всі функції нижнього рівня – ядро ОС, менеджер пам’яті і всі підсистеми вводу/виводу та драйвери пристроїв (в тому числі, драйвери мережі та файлова система) – реалізовані у вигляді 32–розрядного коду.
Більшість 16–розрядного коду Windows 98 написано на асемблері, на самому низькому рівні і тому забезпечує продуктивність, що може бути порівняна з 32–розрядними програмами.
Багато функцій із модуля GDI (Graphics Device Interface) Windows 3.1 (система друку, система роботи із шрифтами) були переписані у 32–розрядний формат.
В той же час, більшість функцій керування вікнами із модуля User.exe залишені 16‑розрядними для збереження сумісності.
Компоненти системи розподілені між чотирма рівнями (Ring 0 .. Ring 3), які пропонують різний ступінь системного захисту. Захист рівня Ring 3 виконується внутрішніми засобами архітектури процесора Intel. Найменш захищений рівень Ring 0 вміщує код найвищого рівня (файлова система і менеджер віртуальних машин).
