- •Основні концепції операційних систем. Поняття операційної системи, її призначення та функції.
- •Керування процесами і потоками. Базові поняття процесів і потоків. Процеси і потоки в сучасних ос. Моделі процесів і потоків. Складові елементи процесів і потоків.
- •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.
- •Планування процесів і потоків. Види планування. Довготермінове планування. Середньотермінове планування. Короткотермінове планування. Стратегії планування.
- •Короткотермінове планування
- •Міжпроцесова взаємодія на основі інтерфейсу файлової системи. Файли, що відображаються у пам'ять.
- •Взаємодія потоків.Базові механізми синхронізації потоків.
Міжпроцесова взаємодія на основі інтерфейсу файлової системи. Файли, що відображаються у пам'ять.
Файли, що відображаються у пам’ять
Цей розділ буде присвячено реалізації відображуваної пам’яті на основі інтерфейсу файлової системи. Після відображення доступ до відображуваної пам’яті спричиняє виконання операцій доступу до вмісту відображеного файла. Таку технологію широко застосовують у сучасних операційних системах -- в UNIX вона визначена стандартом POSIX [24,37, 52], у лінії Windows ХР її реалізація доступна через Win32 АРІ [31, 50].
Принципи дії відображуваної памяті. Інтерфейс відображуваної памяті posix
Відображення файлів у нам’ять відбувається за допомогою спеціального системного виклику; у POSIX такий виклик визначений як mmapO. Він призводить до того, що у визначену частину адресного простору процесу відображають заданий файл або його частину. Після виконання цього системного виклику доступ до такої пам’яті спричинятиме прямий доступ до вмісту цього файла.
Міжпроцесорна взаємодія на основі відображуваної памяті posix
Кілька процесів можуть відобразити у свої адресні простори той самий файл (якщо задано режим відображення MAP_SHARED). Зміни у відображеній пам’яті, зроблені одним із цих процесів, будуть негайно видимі в усіх інших. Таким чином реалізують розподілювану пам’ять.
Особливості інтерфейсу відображуваної памяті Win32 API.
Як параметр у функцію відображення файла в пам’ять (у Win32 АРІ її називають MapViewOfFileO) передають не дескриптор відкритого файла, як у тгсарО, а дескриптор спеціального об’єкта відображення, що створюється заздалегідь за допомогою функції CreateFilеМарріng(). Під час створення об’єкта відображення вказують дескриптор відкритого файла; далі цей об’єкт можна використовувати для відображення кількох регіонів одного файла.
Особливоті реалізації відображуваної
Практична реалізація відображуваної пам’яті звичайно спирається на функції менеджера віртуальної пам’яті. У разі відображення файла у пам’ять створюють зв’язок між файлом і пам’яттю, аналогічний до того, то задають між пам’яттю і фаії лом підкачування під час завантаження сторінок на вимогу (див. розділ 9). За першої спроби доступу до такої нам’яті відбувається сторінкове переривання, оброблювач якого завантажує сторінки із файла безпосередньо у пам’ять (в адресний простір процесу). Під час записування відповідну сторінку пам’яті позначають як модифіковану, подальша робота з нею відбувається аналогічно до роботи зі звичайною модифікованою сторінкою у разі підкачування.
Взаємодія потоків.Базові механізми синхронізації потоків.
Механізмами синхронізації є засоби операційної системи, які допомагають розв'
язувати основне завдання синхронізації — забезпечувати координацію потоків,
котрі працюють зі спільно використовуваними даними. Якщо такі засоби — це мінімальніблоки для побудови багатопотокових програм, їх називають синхронізаційнимипримітивами.Синхронізаційні механізми поділяють на такі основні категорії:
універсальні, низького рівня, які можна використовувати різними способами
(семафори);
прості, низького рівня, кожен з яких пристосований до розв'язання тільки однієї
задачі (м'ютекси та умовні змінні);
універсальні високого рівня, виражені через прості; до цієї групи належить
концепція монітора, яка може бути виражена через м'ютекси та умовні змінні;
високого рівня, пристосовані до розв'язання конкретної синхронізаційної задачі(блокування читання-записування і бар'єри).Розглянемо різні механізми і дамо оцінку перевагам, які має кожен з них, а такожможливі їхні недоліки.
Для подальшої ілюстрації матеріалу цього розділу візьмемо класичний приклад,
який демонструє необхідність синхронізації - задачу виробників-спожива-
чів (producer-consumer problem) або задачу обмеженого буфера (bounded buffer).
Формулювання задачі просте. Припустимо, що в нас є потоки-виробники і по-
токи-споживачі. Виробник створює об'єкти, споживач їх отримує. Завданням є таксинхронізувати їхню роботу, щоб споживач не міг намагатися отримувати ще нестворені об'єкти, а виробник не міг зробити більше об'єктів, ніж зможе отриматиспоживач.Для синхронізації потоків помістимо між виробником і споживачем буферфіксованої довжини п. Виробник може поміщати об'єкти у буфер, споживач – забиратиїх звідти. Якщо споживач забирає об'єкт, його вилучають із буфера. Необхіднозабезпечити кілька вимог.1. Коли виробник або споживач працює із буфером, решта потоків повинна чекати,поки він завершить свою роботу.
Коли виробник намагається помістити об'єкт у буфер, а буфер повний (у ньому
п об'єктів), він має дочекатися, поки в ньому з'явиться місце.
Коли споживач намагається забрати об'єкт із буфера, а буфер порожній, він
має дочекатися, поки в ньому з'явиться об'єкт.
Алгоритми планування
Як ми вже знаємо, алгоритм планування дає змогу короткотерміновому планувальниковівибирати з готових до виконання потоків той, котрий потрібно виконуватинаступним. Можна сказати, що алгоритми планування реалізують політикупланування.Залежно від стратегії планування, яку реалізують алгоритми, їх поділяють навитісняльні та невитісняльні. Витісняльні алгоритми переривають потоки під часїхнього виконання, невитісняльні — не переривають. Деякі алгоритми відповідаютьлише одній із цих стратегій, інші можуть мати як витісняльний, так і невитіс-няльний варіанти реалізації.A
