- •Еволюція спз.
- •Призначення та склад операційних систем.
- •Системне програмування.
- •Загальна схема трансляції
- •Основні принципи розробки системного програмного забезпечення.
- •Умови зміни станів процесу (з Рис.1.)
- •Властивості та класифікація процесу.
- •Визначення ресурсу та класифікації.
- •2. Дисципліни диспетчеризації.
- •3. Алгоритми в диспетчеризації з витісненням та без.
- •4. Способи забезпечення гарантованого обслуговування процесів.
- •5. Критерії порівняння алгоритмів диспетчеризації.
- •6. Вплив планування на ефективність обчислювальних систем.
- •7. Використання динамічних пріоритетів.
- •2. Види задач синхронізації паралельних процесів.
- •3. Синхронізація за допомогою блокування пам’яті.
- •4. Алгоритм Деккера.
- •5. Команда “перевірка” та “встановлення”.
- •6. Використання семафорів для синхронізації та впорядкування паралельних процесів.
- •7. Монітороподібні засоби синхронізації паралельних процесів.
- •8. Поштові ящики.
- •9. Конвеєри.
- •10. Черги повідомлень.
- •Неперервний розподіл оперативної пам’яті.
- •Розподіл з перекриттям.
- •Статичний розподіл пам’яті.
- •Динамічний розподіл пам’яті.
- •Розділи пам’яті з фіксованими розмірами.
- •Розділи пам’яті зі змінними розмірами.
- •Сегментна схема організації віртуальної пам’яті.
- •Сторінкова схема організації віртуальної пам’яті.
- •Сегментно - сторінкова схема організації віртуальної пам’яті..
- •Тема 7. Архітектурні особливості мікропроцесорів Intel 80x86.
- •Мал. 3.1 Схема визначення фізичної адреси для процесора 8086.
- •2. Нові системні регістри мікропроцесорів і80x86.
- •Мал. 7.2 Основні системні регістри мікропроцесорів і80x86.
- •3. Підтримка сегментного способу організації віртуальної пам'яті.
- •Мал. 7.3 Дескриптор сегменту.
- •Мал. 7.4. Селектор сегменту.
- •Мал. 7.5 Сегмент стану задачі (tss).
- •Мал. 7.6 Процес отримання лінійної адреси команди.
- •4. Підтримка сторінкового способу організації віртуальної пам'яті.
- •Мал. 7.7 Дескриптор сторінки.
- •Мал. 7.8 Трансляція лінійної адреси в мікропроцесорах і80x86.
- •5. Режим віртуальних машин для виконання додатків реального режиму.
- •6. Захист адресного простору задач.
- •Якщо цільовий сегмент є сегментом стека, то правило перевірки має вид
- •7. Механізм шлюзів для передачі керування на сегменти коду з іншими рівнями привілеїв.
- •Мал. 7.9 Механізм шлюзів для переходу на другий рівень привілеїв.
- •Мал. 7.10 Перехід на сегмент більш привілейованого коду.
- •Мал. 7.11 Формат дескриптора шлюзу.
- •Тема 8. Організація системи переривань 32-розрядних мікропроцесорів i80х80.
- •2. Типи переривань.
- •4. Узагальнена процедура обробки переривання.
- •5. Робота системи переривань у захищеному режимі роботи процесора.
- •Обробка переривань у контексті поточної задачі.
- •7. Обробка переривань з переключенням на нову задачу.
- •Тема 9. Керування вводом/виводом даних.
- •2. Режими керування вводом/виводом.
- •3. Закріплення пристроїв, загальні пристрої вводу/виводу.
- •4. Основні системні таблиці вводу/виводу.
- •Синхронний і асинхронний ввід/вивід.
- •6. Кешування операцій вводу/виводу при роботі з накопичувачами на магнітних дисках.
- •Тема 10.Організація файлових систем.
- •Тема 11. Файлові системи fat, vfat, fat32, hpfs.
- •Тема 12.Файлова система ntfs (Mew Technology File System)
- •Можливості файлової системи ntfs по обмеженню доступу до файлів і каталогів.
- •Інтерфейс прикладного програмування арі.
- •Реалізація функцій арі на рівні операційної системи.
- •Реалізація функцій арі на рівні системи програмування.
- •Реалізація функцій арі за допомогою зовнішніх бібліотек.
- •Posix інтерфейс.
- •Віртуальна машина.
- •Типи та інтерфейс користувачів.
- •Команди та командний інтерпретатор.
- •Процеси та їх виконання.
- •Підсистема вводу/виводу.
- •Структура файлової системи.
- •Засоби захисту файлів і даних.
- •Сигнали і семафори.
- •Програмні канали та черги повідомлень.
- •Розділювана пам’ять та виклики віддалених процедур.
7. Монітороподібні засоби синхронізації паралельних процесів.
Як показав аналіз вирішенню деяких паралельних задач механізм семафорів з такими перевагами як простота, незалежність від кількості процесів, відсутність станів активного очікування має ряд недоліків. Це пов’язане з тим, що семафори не вказують явно ні на умову синхронізації, ні на відповідний критичний ресурс, тому при побудові складних систем синхронізації алгоритми вирішення паралельних задач стають занадто складними. Тому використовують так звані монітори – пасивні набори змінних, які можуть розділяти самі процеси і спеціальні процедури для доступу до змінних, які мають властивості рекурсивного (повторного) виклику.
Паралельні процеси використовують монітор в режимі розділення часу. В кожен момент часу монітором може користуватись лише один процес. Наприклад, якщо будь – який ресурс розподіляється програмним планувальником, то при кожному розподіленні цього ресурсу процес повинен звернутися до цього планувальника, який повинен мати змінні для відслідковування зайнятий цей ресурс чи ні. До цього планувальника процеси можуть звернутися в будь – який момент часу, але планувальник не забезпечує обслуговування декількох процесів одночасно. Така програма планувальник є найпростішим прикладом монітору.
В моніторі автоматично здійснюється вирішення задачі взаємного виключення поцесів. Якщо процес звертається до деякого ресурсу монітора і цей ресурс є зайнятий, то монітор видає команду очікування (wait()) з кодом помилки, який визначає причину очікування. Процес, який запитує цей ресурс звільняє монітор і очікує звільнення відповідного ресурсу у зовнішній по відношенню до монітора черзі. На протязі певного часу, якщо процес, який займав цей ресурс звільняє і віддає його системі, то відповідна процедура монітора приймає повідомлення про звільнення ресурсу. Потім монітор може чекати поки не з’являться запити від інших процесів яким необхідний цей ресурс. А може існувати ситуація, коли є декілька процесів, які очікують звільнення ресурсів. В цьому випадку монітор видає команду signal(), яка сповіщає, що один з очікуваних процесів може зайти і використати даний необхідний ресурс.
Використання моніторів як основного засобу синхронізації дозволяє звільнити процеси від необхідності явного розподілення інформації між собою. Доступ до розділювальних змінних та областей пам’яті контролюється власне тілом самого монітора. Так як монітори входять в склад ОС, то його змінні є завжди системними змінним. Це автоматично виключає критичні інтервали (секції) процесів тому, що в певний момент часу монітором може користуватися тільки один процес. Одночасно два процеси не можуть отримати доступ до змінних монітору.
Основні переваги моніторів:
гнучкий механізм, який дозволяє реалізувати не тільки семафор, а й інші операції синхронізації;
наявність всіх розділювальних змінних в тілі монітора, що дозволяє їх виключити з вихідних модулів паралельних процесів;
монітори дають змогу паралельним процесам сумісно використовувати програмні модулі, які є критичними секціями, на відміну від семафорів, які вимагають наявність критичних секцій в кожному з паралельних процесів.