
- •Тема 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
Керування пам’яттю
Керування пам’яттю – це забезпечення доступу до неї, її облік та розподілення між програмами. Функції керування пам’яттю відносяться до ОС. В DOS вбудовані тільки мінімальні засоби по керуванню пам’яттю. Всі інші засоби реалізовані як зовнішні драйвери і тому їх треба підключати до системи явно. DOS також підтримує певні команди, які мають безпосереднє відношення до керування пам’яттю.
У верхній області пам’яті логічно знаходяться відеопам’ять та постійна пам’ять з BIOS, а також можуть розміщуватись додаткові модулі постійної та оперативної пам’яті, які конструктивно знаходяться в адаптерах ПУ. Реально використовується невелика частина UMA. Це зарезервована пам’ять або область старших адрес DOS.
ХМА – 1М – UB–1; UB – кількість комірок (байтів) в адресному просторі мікропроцесора (або самого комп’ютера).
8088/86 – ША = 20 розрядів; UB = 1М; (ХМА ними не підтримується).
80286 – 80386SX – ША = 24 розряди; UB=16М;
80386/486 – ША = 32 розряди; UB=4Tбайта;
Якщо адресний простір допускає ХМА, то в ньому логічно може знаходитись розширена пам’ять (extended memory). (Як правило, стандартна АТ, включала всього 384Кбайт такої пам’яті. Разом 1Мбайт і сюди не входили модулі пам’яті з UMA).
DOS без додаткових драйверів може адресувати тільки 1Мбайт адресного простору. (Оскільки вона розглядалась для 8088/86.) Більш сучасні мікропроцесори вимушені емулювати цей простір із усіма обмеженнями. Це реальний режим. В захищеному режимі використовуються всі можливості сучасних МП. Але в цей режим переключитись не просто, ще складніше повернутися з нього в реальний режим без втрати даних.
Вільні фрагменти UMA адресуються безпосередньо. В ОС, в яких використовується захищений режим роботи МП (DOS/Windows, Windows NT, ОS/2, UNIX та ін.) розширена пам’ять доступна так само як і стандартна. Але між двома областями однорідної пам’яті залишається UMA. Тобто не виключається фрагментація оперативної пам’яті. Недоліки концепції: UMA необхідно включити в СМА!!! Але зміни приведуть до несумісності.
Пам’ять розподіляється блоками. Блок – неперервний фрагмент. Перші 16 байт кожного блоку пам’яті відводиться під блок керування пам’яттю МСВ – Memory Control Block – описує розмір блоку пам’яті та вказує програму, якій виділений цей блок, а також забезпечує зв’язок з наступним блоком пам’яті. Таким чином, всі МСВ, тобто блоки пам’яті, зв’язуються у ланцюжок, що забезпечує можливість керування пам’яттю (виділення та звільнення).
Коли DOS запускає програму, вона, тобто DOS, спочатку виділяє блок пам’яті для копії свого оточення (Environment), яка передається програмі, а потім весь залишок пам’яті виділяється для самої програми.
Сформовані блоки для одної програми не обов’язково мають бути суміжними. Блоки пам’яті завжди виділяються на початку її вільної області, тому, якщо пам’ять не фрагментована, блок з оточенням та блок з кодом програми будуть суміжними. Разом з оточенням програмі, яка виконується, передається повна специфікація програмного файлу, яка доточується в кінець оточення і заміняє відповідний рядок для батьківського процесу. Тому розмір копії оточення, як правило, не співпадає за розміром оригіналом.
Програма при виконанні може зменшити розмір виділеного під її код блоку, а резидентна програма зобов’язана це зробити (інакше не виконуються інші програми). Після завершення нерезидентної програми зайняті нею блоки пам’яті звільнюються. Але, якщо програма має залишитись резидентною, блоки з її оточенням і кодом залишаються у пам’яті. Вони будуть звільнені тільки при явному вивантаженні програми.
Для вилучення резидентної програми з пам’яті можна використати спеціальні програмні засоби. Але якісна програма повинна уміти сама себе вивантажити, тобто самоліквідуватись.
DOS забезпечує можливість динамічного керування пам’яттю для розміщення інформаційних об’єктів програми, яка використовується. Програма може зробити запит на:
- визначення розміру найбільшого блоку, який можна виділити програмі;
- виділення блоку пам’яті заданого розміру;
- звільнення блоку пам’яті;
- зміну розміру вже виділеного блоку пам’яті як в сторону збільшення, так і в сторону зменшення.