- •Основні концепції операційних систем. Поняття операційної системи, її призначення та функції.
- •Керування процесами і потоками. Базові поняття процесів і потоків. Процеси і потоки в сучасних ос. Моделі процесів і потоків. Складові елементи процесів і потоків.
- •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.
- •Планування процесів і потоків. Види планування. Довготермінове планування. Середньотермінове планування. Короткотермінове планування. Стратегії планування.
- •Короткотермінове планування
- •Міжпроцесова взаємодія на основі інтерфейсу файлової системи. Файли, що відображаються у пам'ять.
- •Взаємодія потоків.Базові механізми синхронізації потоків.
Архітектура операційних систем. Механізми і політика.
В ОС насамперед необхідно виділити набір фундаментальних можливостей, які надають її компоненти; ці базові можливості становлять механізм (mechanism).
З іншого боку, необхідно приймати рішення щодо використання зазначених можливостей; такі рішення визначають політику (policy). Отже, механізм показує, що реалізовано компонентом, а політика - як це можна використати.
Коли за реалізацію механізму і політики відповідають різні компоненти (механізм відокремлений від політики), спрощується розробка системи і підвищується її гнучкість. Компонентам, що реалізують механізм, не повинна бути доступна інформація про причини та цілі його застосування; усе, що потрібно від них, - це виконувати призначену їм роботу. Для таких компонентів використовують термін «вільні від політики» (policy-free). Компоненти, відповідальні за політику, мають оперувати вільними від неї компонентами як будівельними блоками, для них недоступна інформація про деталі реалізації механізму.
Прикладом відокремлення механізму від політики є керування введенням-ви- веденням. Базові механізми доступу до периферійних пристроїв реалізують драйвери. Політику використання цих механізмів задає програмне забезпечення, що здійснює введення-виведення.
Керування процесами і потоками. Створення і завершення потоків. Особливості створення потоків
Процедура створення потоків має свої особливості, пов’язані насамперед із тим, що потоки створюють у рамках вже існуючого адресного простору .
Якщо процес створюється за допомогою системного виклику fork (), після розподілу адресного простору автоматично створюється потік усередині цього процесу (найчастіше це — головний потік застосування).
Можна створювати потоки з коду користувача за допомогою відповідного системного виклику.
Під час створення потоку система повинна виконати такі дії.
Створити структури даних, які відображають потік в ОС.
Виділити пам’ять під стек потоку.
Встановити лічильник команд процесора на початок коду, який буде виконуватися в потоці; цей код називають процедурою або функцією потоку, покажчик на таку процедуру передають у системний виклик створення потоку. Під час створення потоків, на відміну від створення процесів немає необхідності виділяти нову пам’ять під адресний простір, тому зазвичай потоки створюються швидше і з меншими затратами ресурсів.
Локальні змінні функції потоку розташовані у стеку потоку і доступні лише його коду, глобальні змінні доступні всім потокам.
Особливості завершення потоків
Під час завершення потоку його ресурси вивільняються ; ця операція звичайно виконується швидше, ніж завершення процесу. Потік може бути завершений, коли керування дійде до кінця процедури потоку; є також спеціальні системні виклики, призначені для дострокового припинення виконання потоків.
Як і процеси, потоки можуть виконуватися синхронно й асинхронно. Потік, створивши інший потік, може призупинити своє виконання до його завершення. Таке очікування називають приєднанням, потоків. Після завершення приєднаного потоку потік, який очікував його завершення, може дістати статус виконання. Під час створення потоку можна визначити, чи підлягає він приєднанню (якщо потік не можна приєднати, його називають від’єднаним — detached). Якщо потік не є від’єднаним (nondetached або joinable, такий потік називатимемо приєднуваним), після завершення його обов’язково потрібно приєднувати, щоб уникнути витікання пам’яті.
Дамо деякі рекомендації щодо розробки багатопотокових програм.
Не можна визначати порядок виконання потоків, не подбавши про його підтримку, тому що швидкість виконання потоків залежить від багатьох факторів, більшість із яких програміст не контролює.
Для потоків не підтримується така ієрархія, як для процесів. Потік, що створив інший потік, має рівні з ним права. Розраховувати на те, що такий потік сам буде продовжувати своє виконання після завершення потоків-нащадків, немає сенсу.
Стек потоку очищається після виходу із функції потоку. Щоб цьому запобігти, не слід, наприклад, передавати нікуди покажчики на локальні змінні такої функції.
