
- •Основні концепції операційних систем. Поняття операційної системи, її призначення та функції.
- •Керування процесами і потоками. Базові поняття процесів і потоків. Процеси і потоки в сучасних ос. Моделі процесів і потоків. Складові елементи процесів і потоків.
- •3.Системний реєстр Windows xp. Логічна структура реєстру. Фізична організація реєстру. Програмний інтерфейс доступу до реєстру.
- •Основні концепції операційних систем. Операційна система як розширена машина. Операційна система як розподілювач ресурсів.
- •Логічна організація файлових систем. Загальні відомості про файлові операції. Файлові операції posix.
- •Основні концепції операційних систем. Історія розвитку операційних систем. Класифікація сучасних операційних систем.
- •Керування процесами і потоками. Створення процесів. Ієрархія процесів. Керування адресним простором під час створення процесів. Створення процесів
- •Логічна організація файлових систем. Загальні відомості про файлові операції. Файлові операції WinApi.
- •Основні концепції операційних систем. Функціональні компоненти операційних систем.
- •Керування процесами і потоками. Синхронне й асинхронне виконання процесів.
- •Логічна організація файлових систем. Організація інформації у файловій системі. Розділи. Каталоги. Зв'язок розділів і структури каталогів.
- •Архітектура операційних систем. Механізми і політика.
- •Керування процесами і потоками. Створення і завершення потоків. Особливості створення потоків
- •Міжпроцесова взаємодія на основі інтерфейсу файлової системи. Файлові блокування.
- •Архітектура операційних систем. Ядро системи. Привілейований режим і режим користувача.
- •Керування процесами і потоками. Керування процесами в unix і Linux.
- •Міжпроцесова взаємодія на основі інтерфейсу файлової системи. Файли, що відображаються у пам'ять.
- •Архітектура операційних систем. Реалізація архітектури операційних систем. Монолітні системи.
- •Керування процесами і потоками. Програмний інтерфейс керування потоками posix.
- •Міжпроцесова взаємодія на основі інтерфейсу файлової системи. Поіменовані канали
- •Архітектура операційних систем. Реалізація архітектури операційних систем. Багаторівневі системи.
- •Керування процесами і потоками. Керування процесами у Windows. Складові елементи процесу. Структури даних процесу.
- •Реалізація файлових систем. Інтерфейс віртуальної файлової системи vfs.
- •Архітектура операційних систем. Реалізація архітектури операційних систем. Системи з мікроядром.
- •Керування процесами і потоками. Керування процесами у Windows. Створення процесів. Завершення процесів.
- •Реалізація файлових систем. Файлові системи ext2fs і ext3fs.
- •Архітектура операційних систем. Реалізація архітектури операційних систем. Концепція віртуальних машин
- •Керування процесами і потоками. Програмний інтерфейс керування процесами WinАрі.
- •Реалізація файлових систем. Файлова система /ргос.
- •Архітектура операційних систем. Операційна система та її оточення. Взаємодія ос і апаратного забезпечення
- •Керування процесами і потоками. Керування потоками у Windows. Складові елементи потоку.
- •Динамічний розподіл пам'яті. Послідовний пошук підходящого блоку. Порівняння алгоритмів послідовного пошуку підходящого блоку.
- •Архітектура операційних систем. Взаємодія ос і апаратного забезпечення. Взаємодія ос і апаратного забезпечення
- •Керування процесами і потоками. Керування потоками у Windows. Створення потоків.
- •Динамічний розподіл пам'яті. Алгоритм найкращого підходящого. Алгоритм найкращого підходящого.
- •1)Архітектура операційних систем. Взаємодія ос і виконуваного програмного коду.
- •2).Керування процесами і потоками. Керування потоками у Windows.Особливості програмного інтерфейсу потоків
- •3) Динамічний розподіл пам'яті. Алгоритм першого підходящого.
- •Архітектура операційних систем. Особливості архітектури unix.
- •2.Взаємодія потоків. Основні принципи взаємодії потоків. Основні проблеми взаємодії потоків. Проблема змагання. Критичні секції та блокування. Базові механізми синхронізації потоків.
- •3.Динамічний розподіл пам'яті. Ізольовані списки вільних блоків. Проста ізольована пам'ять.
- •2.Взаємодія потоків. Семафори.
- •3.Основи технології віртуальної пам'яті
- •Взаємодія потоків. М'ютекси.
- •Основи технології віртуальної пам'яті. Фрагментація пам'яті. Логічна і фізична адресація пам'яті. Підхід базового і межового регістрів.
- •Міжпроцесова взаємодія. Види міжпроцесової взаємодії.
- •Взаємодія потоків. Умовні змінні.
- •Основи технології віртуальної пам'яті. Сегментація пам'яті. Особливості сегментації пам'яті. Реалізація сегментації в архітектурі іа-32.
- •Міжпроцесова взаємодія. Методи розподілюваної пам'яті. Методи передавання повідомлень.
- •Взаємодія потоків. Концепція монітора.
- •Основи технології віртуальної пам'яті. Сторінкова організація пам'яті. Базові принципи сторінкової організації пам'яті. Порівняльний аналіз сторінкової організації пам'яті та сегментації.
- •Міжпроцесова взаємодія. Технологія відображуваної пам'яті
- •Взаємодія потоків. Блокування читання-записування. Синхронізація за принципом бар'єра.
- •Основи технології віртуальної пам'яті. Багаторівневі таблиці сторінок. Реалізація таблиць сторінок в архітектурі іа-32
- •Взаємодія з диском підчас керування пам'яттю. Поняття підкачування. Проблеми реалізації підкачування сторінок.
- •Взаємодія з диском підчас керування пам'яттю. Заміщення сторінок. Оцінка алгоритмів заміщення сторінок.
- •Взаємодія потоків. Синхронізація процесів користувача у Linux. Ф'ютекси.
- •Керування процесами і потоками. Програмний інтерфейс керування потоками posix
- •Взаємодія з диском підчас керування пам'яттю. Алгоритм fifo. Оптимальний алгоритм.
- •Взаємодія потоків.Програмний інтерфейс взаємодії WinАрі.
- •Взаємодія з диском підчас керування пам'яттю. Годинниковий алгоритм.
- •Взаємодія потоків.Взаємодія потоків у Linux.
- •1.Взаємодія з диском підчас керування пам'яттю. Блокування сторінок у пам'яті. Фонове заміщення сторінок. Блокування сторінок у пам'яті
- •Взаємодія потоків.Взаємодія потоків у Linux.
- •Планування процесів і потоків. Види планування. Довготермінове планування. Середньотермінове планування. Короткотермінове планування. Стратегії планування.
- •Короткотермінове планування
- •Міжпроцесова взаємодія на основі інтерфейсу файлової системи. Файли, що відображаються у пам'ять.
- •Взаємодія потоків.Базові механізми синхронізації потоків.
3.Динамічний розподіл пам'яті. Ізольовані списки вільних блоків. Проста ізольована пам'ять.
Інший важливий клас алгоритмів динамічного розподілу пам'яті зводиться до ор-
ганізації списків вільних блоків у структуру даних, що містить масив розмірів
блоків, причому кожен елемент масиву пов'язаний зі списком описувачів вільних
блоків (рис. 10.4). Пошук потрібного блоку зводиться до пошуку потрібного роз-
міру в масиві та вибору елемента із відповідного списку. Таку технологію назива-
ють технологією ізольованих списків вільних блоків (segregated free lists) або ізо-
льованою пам'яттю (segregated storage).
У разі використання цього підходу поділу більших блоків не відбувається, щоб задо-
вольнити запит на виділення блоку меншого розміру. Коли під час обслуговування
запиту на виділення пам'яті з'ясовують, що список вільних блоків цього розміру
порожній, видають запит операційній системі на розширення динамічної ділянки
пам'яті (наприклад, через системний виклик brkO). Після цього виділені сторін-
ки розбивають на блоки одного розміру, які й додають у відповідний список віль-
них блоків. У результаті сторінка пам'яті завжди містить блоки одного розміру.
Основними перевагами такого підходу є те, що немає необхідності зберігати
для кожного об'єкта інформацію про його розмір. Тепер така інформація може
бути збережена для цілої сторінки об'єктів, що особливо вигідно тоді, коли роз-
мір об'єкта малий і на сторінці таких об'єктів міститься багато.
ЕКЗАМЕНАЦІЙНИЙ БІЛЕТ № 15
Архітектура операційних систем. Архітектура Linux.
В ОС LINUX можна виділити три основні частини:
Ядро яке реалізує основні функції ОС
Системні бібліотеки, що визначають стандартний набір функцій
Системні утиліти
Linux реалізує технологію монолітного ядра. В ядрі є кілька функціональних компонент. Планувальник процесів – відповідає за реалізацію багатозадачності процесів. Менеджер пам’яті – виділяє окремий адресний простір для кожного процесу і реалізує підтримку віртуальної пам’яті. Віртуальна файлова система – надає універсальний інтерфейс для взаємодії з різними файловими системами. Драйвери – забезпечують безпосередню роботу з периферійними пристроями. Мережний інтерфейс – забезпечує доступ до реалізації мережних протоколів. Ядро Linux дає можливість завантажувати і вивантажувати окремі секції коду – модулі ядра. Це надає низку переваг– швидкість та ефективність роботи а також обмін даними між різними частинами ядра і можливість одного модуля зареєструвати кілька драйверів і т. д. Модулі можуть бути завантажені заздалегідь – під час запуску системи. Системні бібліотеки в Linux є динамічними бібліотеками які завантажуються у пам’ять тільки тоді коли в цьому є потреба. Вони виконують ф-ції: реалізація пакувальників, розширення функціональності системних викликів, службові ф-ції в режимі користувача
2.Взаємодія потоків. Семафори.
Семафор - це спільно використовуваний невід'ємний цілочисловий лічиль-
ник, для якого задано початкове значення і визначено такі атомарні операції.
♦ Зменшення семафора (dov*i): якщо значення семафора більше від нуля, його
зменшують на одиницю, якщо ж значення дорівнює нулю, цей потік перехо-
дить у стан очікування доти, поки воно не стане більше від нуля (кажуть, що
потік «очікує на семафорі» або «заблокований на семафорі»). Цю операцію
називають також очікуванням - wait. Ось її псевдокод:
void down (semaphore., t seen) {
1f (sen> > 0) sec"-:
else sleep():
}
♦ Збільшення семафора (up): значення семафора збільшують на одиницю; коли
при цьому є потоки, які очікують на семафорі, один із них виходить із очіку-
вання і виконує свою операцію down. Якщо на семафорі очікують кілька пото-
ків, то внаслідок виконання операції up його значення залишається нульовим,
але один із потоків продовжує виконання (у більшості реалізацій вибір цього
потоку буде випадковим). Цю операцію також називають сигналізацією - post.
Ось її псевдокод:
void up (semaphore^ sen») {
1f (waiting threads*)) wakeup (some thread):
} Фактично значення семафора визначає кількість потоків, що може пройти че-
рез цей семафор без блокування. Коли для семафора задане нульове початкове
значення, то він блокуватиме всі потоки доти, поки якийсь потік Його не «від-
криє», виконавши операцію up. Операції up і down можуть бути виконані будь-яки-
ми потоками, що мають доступ до семафора.