- •Системне програмне забезпечення Конспект лекцій з дисципліни „Системне програмне забезпечення”
- •2 Концептуальні основи ос.....................................................................................16
- •2.4 Концепція віртуалізації....................................................................................28
- •2.5 Концепція переривань.....................................................................................30
- •5 Операційна система unix....................................................................................57
- •1 Операційні системи та середовища
- •Основні означення та терміни
- •Сучасні системи програмування
- •Віртуальний адресний простір
- •Операційні системи для персональних комп’ютерів
- •1.5 Принципи побудови ос
- •1.5.1 Модульність
- •1.5.2 Функціональна вибірковість
- •1.5.3 Генерованость ос
- •1.5.4 Функціональна надлишковість
- •1.5.5 Незалежність програм від зовнішніх пристроїв
- •1.5.7 Відкритість та нарощуваність ос
- •1.5.9 Забезпечення безпеки обчислень
- •1.5.10 Принципи проектування ос
- •2 Концептуальні основи ос
- •2.1 Процеси
- •2.1.1 Означення процесу та граф його існування
- •2.1.2 Класифікування процесів
- •2.2 Ресурс
- •2.2.1 Означення ресурсу
- •2.2.2 Властивості та класифікування ресурсів
- •2.3 Система керування процесами
- •2.3.1 Дворівнева система керування процесами
- •2.3.2 Дисципліни розподілу процесів
- •2.4 Концепція віртуалізації
- •2.5 Концепція переривань
- •3 Захищений режим 32-розрядних процесорів
- •3.1 Основні поняття захищеного режиму
- •3.2 Сегментний механізм віртуалізації пам’яті
- •3.3 Сторінковий механізм віртуалізації пам’яті
- •4 Архітектура операційних системWindows
- •4.1 Архітектура ос Windows 98se
- •4.1.1 Драйвери пристроїв
- •4.1.2 Диспетчер віртуальних машин
- •4.1.3 Встановлювані файлові системи
- •4.1.4 Диспетчер конфігурування
- •4.1.5 Диспетчер драйверів wdm
- •4.1.6 Ядро Windows 98se
- •4.1.8 Оболонка ос
- •4.1.9 Стандартні програми Windows 98se та додатки
- •4.2 Мережна підтримка ос Windows 98se
- •4.2.1 Взаємодія відкритих систем
- •4.2.2 Мережна архітектура Windows 98se
- •4.3 Апаратна підтримка захисту ос
- •4.4 Особливості розподілу оперативної пам’яті в ос Windows nt
- •4.5 Архітектура Windows 2000
- •5 Операційна система unix
- •5.1 Загальна характеристика ос сімейства unix
- •5.2 Архітектура операційної системи unix
- •5.3 Функціонування ос unix
- •5.3.1 Ядро системи
- •5.3.2 Файлова підсистема
- •5.3.3 Підсистема керування процесами та пам’яттю
- •5.3.4 Підсистема введення/виведення
- •5.3.5 Користувачі ос unix
- •5.4 Поняття процесу в ос unix
- •5.4.1 Компоненти процесу
- •5.4.2 Ідентифікатор процесу
- •5.4.2.1 Ідентифікатор батьківського процесу
- •5.4.2.2 Ідентифікатор користувача та групи
- •5.4.3 Стани процесу в unix
- •5.4.4 Керування процесами
- •5.5 Права доступу ос unix
- •5.5.1 Поняття прав доступу користувача
- •5.5.2 Основні біти доступу
- •5.5.3 Додаткові біти доступу
- •5.5.4 Сполучення бітів доступу
- •5.6 Мережні можливості ос unix
- •Список рекомендованої літератури:
4.4 Особливості розподілу оперативної пам’яті в ос Windows nt
У ОС Windows NT використовується також плоска модель пам‘яті, але схема розподілу можливого адресного простору відрізняється від моделі Windows 98SE. У Windows NT 4.0 набагато більше використовуються можливості апаратних засобів захисту, що є в мікропроцесорах, і використано принципово інший логічний розподіл адресного простору [1].
Усі системні програмні модулі перебувають у своїх власних віртуальних адресних просторах, і доступ до них з боку додатків є неможливий. Ядро системи і кілька драйверів працюють у нульовому кільці захисту в окремому адресному просторі.
Інші модулі самої ОС, використовувані як серверні процеси відносно додатків (клієнтів), функціонують також у власному системному віртуальному адресному просторі, прозорому для додатків. На рис. 4.6 наведено модель логічного розподілу адресного простору.
Додаткам виділяється 2 Гбайти власного лінійного простору з 64 Кбайтів до 2 Гбайтів (перші 64 Кбайти є повністю неприступними). Додатки ізольовано один від одного, хоча можуть спілкуватися через буфер обміну, механізми динамічного обміну даними DDE (Dynamic Data Exchange), механізм зв’язку та упровадження об’єктів OLE (Object Linking and Embedding). У верхній частині кожної 2-гігабайтової області додатка розміщено код системних DLL кільця 3, котрий переспрямовує виклики до ізольованого адресного простору, де розташовано власне системний код. Цей системний код виступає як сервер-процес, він перевіряє значення параметрів, виконує запитану функцію і доправляє результат назад до адресного простору додатка.
Рисунок 4.6 – Модель розподілу віртуальної пам’яті у Windows NT
Сервер-процес є також процесом додатка, але він є повністю захищений від додатка, який його викликав, та ізольований від нього.
Поміж 2 та 4 Гбайтами розташовано системні компоненти кільця 0 – це ядро, планувач потоків та диспетчер віртуальної пам’яті. Системні сторінки мають привілеї супервізора, які підтримуються апаратними засобами мікропроцесора. Це робить системний код прозорим і неприступним для захисту додатків, але призводить до втрати ефективності під час переходу поміж кільцями.
Для 16-розрядних додатків ОС Windows NT зреалізовує сеанси Windows on Windows (WOW) і надає їм можливість виконуватись індивідуально у власних адресних просторах або разом у розподілюваному адресному просторі.
Під час запуску додатка створюється процес зі своєю інформаційною структурою. За необхідності в межах процесу може бути запущено багато тредів, які виконуватимуться паралельно. Треди в межах одного процесу виконуються в одному адресному просторі, а процеси – в різних віртуальних адресних просторах. Відбиття різних віртуальних адресних просторів виконує ОС; саме коректність цих операцій і гарантує ізоляцію додатків від втручання процесів. Для забезпечення взаємодії поміж додатками, поміж додатками та ОС і використовуються механізми захисту пам’яті, яка підтримується апаратними засобами мікропроцесора.
Вимоги стандарту на системи безпеки рівня С2, прийняті урядом США, формулюють певні правила віртуалізації пам’яті. Кожна сторінка пам’яті (VMM) Windows NT відбивається на фізичну сторінку, переноситься у так званий сторінковий фрейм (Page Frame). Перед переміщенням сторінки цей фрейм треба знайти або створити і заповнити його нулями для того, щоб виключити можливість використання їхнього попереднього змісту іншими процесами. Для звільнення фрейма ті сторінки, в дані на яких було внесено зміни, треба скопіювати на диск, і лише після цього фрейм можна знову використовувати. Для заміщення сторінок у Windows NT обрано дисципліну FIFO, що не є ефективним. Коли процес використовує дані чи код, що перебувають у фізичній пам’яті, система резервує місце для цієї сторінки у файлі підкачування Pagefile.sys на диску з урахуванням подальшої необхідності перенесення цих даних на диск. Цей файл – зарезервований блок дискового простору, що використовується для вилучання сторінок, які мають назву „брудних”, за необхідності звільнення фізичної пам‘яті. За умовчанням розмір файла встановлюється дорівнюваним обсягові фізичної пам’яті плюс 12 Мбайт, але користувач може в разі необхідності його збільшити, і віртуальна пам’ять, якої не вистачає, буде збільшена.
У системах Windows NT 4.0 об’єкти, створювані й використовувані додатками або ОС, зберігаються в пулах пам’яті (Memory Pools). Для того щоби об‘єкти були доступними тредам додатків, самі треди повинні перемикатися до привілейованого режиму. Нерезидентні пули вміщують об’єкти, які можуть бути переміщені на диск. Резидентні пули вміщують об’єкти, які постійно повинні знаходитись в оперативній пам’яті. До таких об’єктів відносяться структури даних, використовувані процедурами опрацювання переривань, а також структури, використовувані для запобігання конфліктам у багатопроцесорних системах. Обсяг пулу встановлюється ОС динамічно й залежно від працюючих у системі додатків та сервісів і може змінюватися в широких межах.
Уся віртуальна пам’ять Windows NT може бути поділена на три класи:
1 Зарезервована пам’ять – набір неперервних адрес, які VMM надає процесові. Коли процесові потрібно зробити запис до пам’яті, система надає йому потрібний обсяг із зарезервованої пам’яті. Якщо цього не вистачає, то додатковий обсяг може бути надано й використано, якщо в системі є доступна пам’ять.
2 Виділена пам’ять – зарезервована пам’ять у файлі Pagefile.sys. Обсяг виділеної пам’яті залежить від потреб процесу і є обмежений максимальним розміром файла підкачування.
3 Доступна пам’ять – це решта пам’яті: вільна, обнулена, вилучена з робочого набору процесу, але яку можна знову вимагати [1].