
- •Операційні системи
- •1.Принципи побудови ос. Теоретичні основи процесу
- •2. Властивості та класифікація процесів. Життєвий цикл процесу.
- •Арі процесів. Функція fork. Функція exit.
- •Сигнали. Функція wait, waitpid. Функція exec.
- •Ресурси ос. Визначення ресурсу. Властивості та класифікація ресурсів.
- •Концепція віртуалізації. Віртуальна машина.
- •Дисципліни розподілу ресурсів які використовуються в ос.
- •Концепція переривань Теорія переривань
- •Блокування. Сигнали. Сигнальна маска. Функція sigaction.
- •Процеси-демони. Поняття про демони. Основні демони unix. Приклад програми демону
- •Засоби, механізми і підсистеми ос. Системи керування процесами. Дворівнева система керування процесами.
- •Засоби, механізми і підсистеми ос. Рівень довгострокового планування. Схема довгострокового рівня планування.
- •Засоби, механізми і підсистеми ос. Рівень короткострокового планування. Схема рівня планування.
- •Структури даних процесів. Стан процесів у unix. Особливості планувальника unix ( Linux).
- •Дескриптори процесів.
- •Взаємодія між процесами у unix.
- •Канали. Fifo (First InFirst Out). Повідомлення (черги повідомлень).
- •Семафори. Задачі синхронізації.
- •Архітектура та основні питання побудови механізмів синхронізації
- •Семафорна техніка синхронізації та упорядкування процесів.
- •Підсистема введення/виведення системи unix. Драйвери пристроїв. Типи драйверів. Базова архітектура драйверів
- •Файлова підсистема ос. Суперблок. Індексні дескриптори. Імена файлів. Каталоги.
- •Побудова підсистем ядра мультипрограмних ос. Організація віртуальної оп. Основні поняття та принципи віртуалізації пам’яті.
- •Принципи керування пам’яттю у unix. Віртуальна та фізична пам’ять. Сегменти. Сторінковий механізм.
- •Адресний простір процесів. Керування пам’яттю процесу.
- •Планування виконання процесі. Обробка переривань таймеру. Відкладений виклик. Аларми. Контекст процесу.
- •Архітектура віртуальної фс. Віртуальні індексні дескриптори. Монтування фс.
- •Архітектура віртуальної фс. Трансляції імен. Доступ до фс. Файлова таблиця.
- •Архітектура віртуальної фс. Блокування доступу до файлу.
Схема структуризації адресних просторів. Основи логічної організації віртуальної ОП. Схеми функціонування віртуальної ОП
Принципи керування пам’яттю у unix. Віртуальна та фізична пам’ять. Сегменти. Сторінковий механізм.
Віртуальна пам'ять (англ. Virtual memory) - технологія управління пам'яттю ЕОМ, розроблена для багатозадачних операційних систем. При використанні даної технології для кожної програми використовуються незалежні схеми адресації пам'яті, які відображаються тим чи іншим способом на фізичні адреси в пам'яті ЕОМ. Дозволяє збільшити ефективність використання пам'яті декількома одночасно працюють програмами, організувавши безліч незалежних адресних просторів (англ.), і забезпечити захист пам'яті між різними додатками. Також дозволяє програмісту використовувати більше пам'яті, ніж встановлено в комп'ютері, за рахунок відкачування невикористовуваних сторінок на вторинне сховище (див. Підкачка сторінок).
При використанні віртуальної пам'яті спрощується програмування, так як програмісту більше не потрібно враховувати обмеженість пам'яті, або погоджувати використання пам'яті з іншими додатками. Для програми виглядає доступним і безперервним всі допустиме адресний простір, незалежно від наявності в ЕОМ відповідного обсягу ОЗУ.
Застосування механізму віртуальної пам'яті дозволяє:
• спростити адресацію пам'яті клієнтським програмним забезпеченням;
• раціонально управляти оперативною пам'яттю комп'ютера (зберігати в ній тільки активно використовувані області пам'яті);
• ізолювати процеси один від одного (процес вважає, що монопольно володіє всією пам'яттю).
В даний час ця технологія має апаратну підтримку на всіх сучасних побутових процесорах. У той же час у вбудованих системах і в системах спеціального призначення, де потрібно або дуже швидка робота, або є обмеження на тривалість відгуку (системи реального часу) віртуальна пам'ять використовується відносно рідко. Також в таких системах рідше зустрічається багатозадачність і складні ієрархії пам'яті.
Механізм формування фізичних адрес виконується в ЦП за допомогою сегментних регістрів. У будь-який момент часу програма може вибирати вміст чотирьох функціональноорієнтованих сегментів: кодового, даних, стекового і екстракодового. ЦП формує 20-розрядний адреса байта або слова шляхом додавання 16-розрядної адреси зміщення до 20-розрядному коду, 16 старших розрядів якого є вмістом відповідного сегмента, а 4молодших розряду дорівнюють нулю.
Фізичну пам'ять розбивають на блоки фіксованої довжини — фрейми, або сторінкові блоки (frames). Логічну пам'ять, у свою чергу, розбивають на блоки такої самої довжини - сторінки (pages). Коли процес починає виконуватися, його сторінки завантажуються в доступні фрейми фізичної пам'яті з диска або іншого носія.
Сегмент — це об'єкт бази даних, що займає певний простір, наприклад, це можуть бути дані таблиці чи індексу. Фізично сегменти зберігаютья у табличних просторах.
Адресний простір процесів. Керування пам’яттю процесу.
Підсистема керування процесами та пам’яттю контролює:
створювання й вилучання процесів;
розподіл системних ресурсів поміж процесами;
синхронізацію процесів;
міжпроцесну взаємодію.
Вочевидь, що в загальному випадку кількість активних процесів перевищує кількість процесорів комп’ютера, але в кожен окремий момент часу на кожнім процесорі може виконуватися лише один процес. ОС керує доступом процесів до обчислювальних ресурсів, створюючи відчуття одночасного виконання кількох завдань.
Спеціальне завдання ядра, називане розпорядником, планувачем процесів (scheduler), розв’язує конфлікти поміж процесами в конкуренції за системні ресурси (процесор, пам’ять, пристрої введення/виведення). Планувач запускає процес на виконання, стежачи за тим, щоби процес монопольно не захопив розподілювані системні ресурси. Процес звільнює процесор, очікуючи на тривалу операцію введення/виведення або на завершення кванта часу. У цьому разі планувальник обирає процес з найвищим пріоритетом і запускає його на виконання.
Модуль керування пам’яттю забезпечує розміщення оперативної пам’яті для прикладних завдань. Оперативна пам’ять — коштовний ресурс, її рідко буває “забагато”. Якщо для всіх процесів недостатньо пам’яті, ядро переміщує частини процесу до вторинної пам’яті, звільнюючи ресурси для виконуваного процесу. Усі сучасні системи зреалізовують віртуальну пам’ять: процес виконується у власному логічному адресному просторі, що може перевищувати доступну фізичну пам’ять.
При написанні програми мовою високого рівня вона не вміщує посилання на реальні адреси, а звертається до пам’яті за допомогою імен: змінних, вхідних точок програмних модулів, міток. Ці імена, окрім масивів, не є впорядкованими. Імена змінних та точок входу програмних модулів становлять простір імен. Фізична ж пам’ять є впорядкованою множиною комірок, кількість яких обмежена та фіксована. Зв’язування кожного імені з фізичною адресою комірки пам’яті (відбиття) здійснюється у два етапи. Спочатку система програмування перетворює логічне (символьне) ім’я на віртуальну (надавану) адресу. Множина усіх можливих віртуальних адрес для програми називається віртуальним адресним простором. Вона залежить від архітектури процесора та системи програмування й не залежить від обсягу реальної пам’яті, встановленої у ПК. Адреси команд та змінних у готовій машинній програмі, підготовленій до виконання системою програмування, і є віртуальними (відносними) адресами. Окремим випадком відбиття простору імен на фізичну пам‘ять є ідентичність віртуальної адреси та фізичної. Це стосується частини керувальних програмних модулів будь-якої ОС, за допомогою яких потім відбуватиметься відбиття для решти програм. Для інтерпретаторів є справедливим тотожність віртуального адресного простору до вхідного. Другий етап відбиття віртуальних адрес на фізичні відбувається лише під керуванням ОС.
Внаслідок наявності зовнішньої пам’яті Vp віртуальна пам’ять Vv є набагато більша, а ніж реальна фізична. У сучасних комп’ютерах Vv може досягати 64 Тбайт для кожного з 80 процесів, які виконує „одночасно” багатозадачна ОС за середнього навантаження. Звичайно, це можливе лише за послідовного завантаження до віртуальної пам’яті окремих модулів різних програм та подальшого їхнього перевантаження до оперативної пам’яті. Віртуальний адресний простір у межах сегмента кодів, даних та бібліотек є неперервним, а фізична пам’ять може мати фрагментарний характер.
Рисунок
1.2 – Пам’ять
та її відбиття