
- •Тема 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
Лекція 5. Керування ресурсами
Найважливіші ресурси — це пам’ять та процесор (тобто процесорний час).
Керування пам’яттю
Організація та керування основною, або первинною, або фізичною (реальною) пам’яттю комп’ютера — один з найважливіших факторів, що визначає побудову операційних систем.
Для безпосереднього виконання програм або звертання до даних необхідно, щоб вони розміщались в основній пам’яті. Вторинна, або зовнішня пам’ять — це, як правило, накопичувачі на магнітних дисках, магнітних стрічках — мають значно більшу ємність, і дозволяють зберігати велику кількість програм і даних, готових до обробки.
Ієрархія пам’яті
Поки що розглядаємо фізичну або реальну пам’ять, а далі — віртуальну пам’ять.
Під організацією пам’яті ми розуміємо те яким чином представляється та використовується основна пам’ять. При цьому виникають такі питання:
1) розміщаємо в основній пам’яті тільки одну програму користувача або декілька програм одночасно;
2) при розміщенні в основній пам’яті декількох програм користувачів відразу, їм надається однакова кількість комірок, чи вона розбивається на розділи різних розмірів.
3) пам’ять розбивається на розділи жорстко певним чином на досить довгий період часу, або передбачено більш динамічне розбиття, яке дозволяє комп’ютеру швидко реагувати на зміну потреб програм у ресурсах;
4) програми користувачів будуть будуватися таким чином, щоб вони виконувались тільки в конкретному розділі, або буде передбачатись можливість виконання програми в довільних розділах;
5) програма користувача буде розміщатися в одному неперервному, суцільному блоці пам’яті, або є можливість розбиття програм на окремі блоки, які розміщаються в яких завгодно вільних ділянках (дірках) основної пам’яті.
При цьому виникають такі можливості:
1) одно-програмні (одно-абонентні) системи;
2) багатопрограмні системи з фіксованими розділами, з трансляцією та завантаженням модулів в абсолютних адресах;
3) багатопрограмні системи з фіксованими розділами пам’яті, з трансляцією та завантаженням модулів, що переміщаються;
4) багатопрограмні системи із змінними розділами;
5) система із свопінгом (підкачкою, сторінковим обміном).
Існують системи, побудовані з орієнтацією на кожну з таких схем.
Незалежно від того, яку схему організації пам’яті ми приймемо для конкретної системи, необхідно вирішити, які стратегії треба застосувати для досягнення оптимальних характеристик використання пам’яті.
Стратегії керування пам’яттю визначають яким чином буде працювати пам’ять конкретної системи при різних підходах до вирішення таких питань:
1) коли треба розміщувати нову програму в пам’яті;
2) будемо ми розміщувати нову програму в пам’яті тоді, коли система буде сама про це просити, чи будемо намагатись випередити запити системи;
3) в яке місце основної пам’яті ми будемо розміщати чергову програму для виконання;
4) чи будемо ми розміщати програми як можна більш щільно, щоб звести до мінімуму втрати пам’яті, чи будемо прагнути до найшвидшого розміщення програм, щоб звести до мінімуму втрати машинного часу;
5) якщо в основну пам’ять необхідно розмістити нову програму, а основна пам’ять в біжучий момент вже заповнена, то яку з інших програм треба вивести з пам’яті (ті, що знаходились в пам’яті довше, ніж інші, або ті, що використовувались найменш часто, або ті, які довше всіх не використовувались).
Існують системи, що орієнтовані на використання кожної з таких стратегій керування пам’яттю.
Як було вже сказано, стратегії керування пам’яттю направлені на те, щоб забезпечити найкраще можливе використання ресурсів основної пам’яті. Стратегії керування пам’яттю поділяються на такі категорії:
1. Стратегії вибірки:
а) вибірка за запитом;
б) випереджуюча вибірка;
2. Стратегії розміщення.
3. Стратегії заміщення.
Перші. Мають своїм призначенням визначати, коли треба „вштовхнути” черговий блок програми або даних в основну пам’ять:
- при вибірці за запитом черговий блок програми або даних завантажується в основну пам’ять, коли є на неї запит від працюючої програми;
- при випереджуючій вибірці виникають додаткові затримки, зв’язані з приготуванням подальшого ходу програми.
Другі. Визначають, в яке місце основної пам’яті треба розмістити програму, яка надходить.
Треті. Визначають, який блок програми, або даних треба вивести „виштовхнути” з основної пам’яті, щоб звільнити місце для запиту поступаючи програм або даних.