- •Основні концепції операційних систем. Поняття операційної системи, її призначення та функції.
- •Керування процесами і потоками. Базові поняття процесів і потоків. Процеси і потоки в сучасних ос. Моделі процесів і потоків. Складові елементи процесів і потоків.
- •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.
- •Планування процесів і потоків. Види планування. Довготермінове планування. Середньотермінове планування. Короткотермінове планування. Стратегії планування.
- •Короткотермінове планування
- •Міжпроцесова взаємодія на основі інтерфейсу файлової системи. Файли, що відображаються у пам'ять.
- •Взаємодія потоків.Базові механізми синхронізації потоків.
Архітектура операційних систем. Реалізація архітектури операційних систем. Системи з мікроядром.
В привілейованому режимі реалізована невелика частка ядра – мікроядро, інші ф-ції ОС виконуються процесами в режимі користувача (серверами). Мікроядро здійснює зв’язок між компонентами системи і виконує базовий розподіл ресурсів. Щоб виконати системний виклик процес звертається до мікроядра яке посилає серверу запит який виконує роботу і пересилає відповідь назад до мікроядра яке пересилає його клієнтові.
Переваги мікроядра:
Малі розміри – спрощує розробку і налагодження
Висока надійність системи
Більша гнучкість і розширювальність системи
Адаптація до умов мережі
Недолік
– зниження продуктивності.
Керування процесами і потоками. Керування процесами у Windows. Створення процесів. Завершення процесів.
У Win32 АРІ прийнято модель запуску застосування за допомогою одного ви клику, який створює адресний простір процесу і завантажує в нього виконуваний файл. Окремо функціональність fork О і exec О у цьому АРІ не реалізована. Такий виклик реалізує функція CreateProcess(). Вона не є системним викли ком ОС - це бібліотечна функція Win32 АРІ, реалізована в усіх Win32-cyMicHnx системах. Функція CreateProcessC) потребує задання 10 параметрів, докладно їх буде розглянуто в розділі 3.9.6. Зазначимо, що системні виклики UNIX/POSIX потре бують меншої кількості параметрів (як уже зазначалося, forkO не використовує жодного параметра, a exec () - використовує три параметри). Наведемо основні кроки створення нового процесу із використанням функції CreateProcesst). 1. Відкривають виконуваний файл, що його ім'я задане як параметр. При цьому ОС визначає, до якої підсистеми середовища він належить. Коли це виконуваний файл Win32, то його використовують прямо, для інших підсистем відшукують необхідний файл підтримки (наприклад, процес підсистеми POSIX для POSIX- застосувань). 2. Створюють об'єкт-процес у виконавчій системі Windows ХР. При цьому вико нують такі дії: а) створюють та ініціалізують структури даних процесу б) створюють початковий адресний простір процесу (роботу з адресним про стором процесу розглянемо в розділі 9); в) блок процесу поміщають у кінець списку активних процесів, які підтри мує система. 3. Створюють початковий потік процесу. Послідовність дій під час створення по току розглядатимемо під час вивчення підтримки потоків у Windows ХР. 4. Після створення початкового потоку підсистемі Win32 повідомляють про но вий процес і його початковий потік. Це повідомлення містить їхні дескриптори (handles) - унікальні числові значення, що ідентифікують процес і потік для засобів режиму користувача. Підсистема Win32 виконує низку дій після отри мання цього повідомлення (наприклад, задає пріоритет за замовчуванням) і поміщає дескриптори у свої власні таблиці процесів і потоків. 5. Після надсилання повідомлення розпочинають виконання початкового пото ку (якщо він не був заданий із прапорцем відкладеного виконання). 6. Завершують ініціалізацію адресного простору процесу (наприклад, заванта жують необхідні динамічні бібліотеки), після чого починають виконання за вантаженого програмного коду.
Реалізація файлових систем. Файлові системи ext2fs і ext3fs.
Стандартною дисковою файловою системою для Linux є друга розширена файлова система (ext2fs). Розглянемо особливості її реалізації.
Ця файлова система багато в чому схожа на файлову систему FFS.
Однією із базових відмінностей ext2fs від FFS є інша політика розподілу дискового простору. В ext2fs дисковий простір розподіляють на блоки одного розміру. За замовчуванням він становить 1 Кбайг, хоча можна під час форматування файлової системи задати й більший розмір — 2 або 4 Кбайт.
Основою обробки запитів введення-виведення в ext2fs є кластеризація суміжних запитів для досягнення максимальної продуктивності, для чого, як і в FFS, прагнуть розташовувати зв’язані дані разом.
Для вирішення цієї задачі використовують групування даних, схоже за своїми принципами на використання груп циліндрів у FFS. Відмінності тут переважно зумовлені тим, що сьогодні у дисках використовують циліндри з різною геометрією залежно від відстані до центра пластини, тому об’єднання таких циліндрів у групи фіксованого розміру часто не відповідає фізичній структурі диска. Виходячи
з цього, в ext2fs дисковий простір ділять не на групи циліндрів, а просто на групи блоків (block groups), не прив’язані до геометрії диска. Такі групи за структурою схожі на групи циліндрів: кожна група блоків теж є зменшеною копією файлової системи із суперблоком, таблицею індексних дескрипторів тощо
Під час розміщення файла для нього спочатку вибирають групу блоків і в ній розміщують індексний дескриптор. При цьому перевагу отримує група блоків ка-талогу, де перебуває цей файл. Після цього, під час розподілу дискових блоків для файла, пробують вибрати ту саму групу, у якій перебуває індексний дескриптор. Файли каталогів не збирають разом, їх розподіляють рівномірно у доступних групах блоків для зменшення загальної фрагментації та більш рівномірного використання диска .
Облік вільних блоків та індексних дескрипторів ведуть за допомогою пари бі-гових карт — по одній на кожну групу блоків. Розмір кожної такої карти дорівнює одному блоку (1 Кбайт), тому максимально можлива кількість блоків та індексних дескрипторів у групі дорівнює 8 Кбайт. Під час розміщення перших блоків нового файла файлова система починає пошук вільних блоків від початку групи блоків, у разі розширення наявного файла пошук триває від блоку, виділеного найпізні¬ше. Цей пошук відбувається у два етапи: на першому в бітовій карті відшукують вільний байт (8 біт), що відповідає 8 неперервно розташованим дисковим блокам (аналогам блоку в 8 Кбайт). Якщо байт знайти не вдалося, виконують ще один пошук, але при цьому відшукують будь-який вільний біт. Якщо байтовий пошук завершився успішно, система шукає вільні біти від початку цього байта назад до першого зайнятого біта. Метою цього пошуку є зменшення фрагментації .
Після того, як вільний блок було знайдено одним із двох способів, його виділяють для використання файлом. Додатково випереджувально виділяють до 8 блоків, що розташовуються за ним . Метою такого випереджувального виділення є зменшення фрагментації та витрат часу на виділення дискових бло¬ків. У разі закриття файла всі виділені таким чином блоки, що реально не вико¬ристані, повертаються у бітову карту як вільні.
Розмір кожного індексного дескриптора становить 128 байт. Використовують
прямих блоків і по одному непрямому блоку першого, другого та третього рівнів. Довжина адреси блоку становить 4 байти, що більше, ніж стандартна довжина для багатьох UNIX-систем, тому можна адресувати більше дискового простору.
Особливості файлової системи ext3fs
Файлова система ext3fs являє собою розширення ext2fs внаслідок додання журналу. Важливою її особливістю є можливість відображення в журналі змін не тільки метаданих файлової системи, але й файлових даних .Це призводить до істотного зниження продуктивності, але дозволяє підвищити надійність.
Можуть бути задані три режими роботи із журналом: режим журналу за якого всі зміни даних зберігаються в журналі; упорядкований режим (orde¬red), за якого зберігаються тільки зміни в метаданих, але при цьому файлові операції групують так, щоб блоки даних зберігалися на диску перед метаданими, внаслідок чого знижується небезпека ушкодження інформації всередині файлів: режим мінімального записування (writeback), за якого зберігаються тільки метадані.
За замовчуванням використовують упорядкований режим.
Журнал файлової системи ext3fs зберігають у схованому файлі .journal у коре-невому каталозі файлової системи. Її код не працює із файлом журналу безпосе-редньо, для цього використовують спеціальний рівень коду ядра із назвою JBD (Journaling Block Device Layer). Код JBD групує дискові операції в транзакції, інформацію про які фіксують у журналі. Система гарантує, що інформація про під-тверджену транзакцію буде вилучена із журналу лише тоді, коли всі відповідні блоки даних записані на диск.
Під час завантаження системи після збою утиліта e2fsck переглядає журнал і планує до виконання всі операції записування, описані підтвердженими тран- закціями.
Білет 10
