- •Еволюція спз.
- •Призначення та склад операційних систем.
- •Системне програмування.
- •Загальна схема трансляції
- •Основні принципи розробки системного програмного забезпечення.
- •Умови зміни станів процесу (з Рис.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 інтерфейс.
- •Віртуальна машина.
- •Типи та інтерфейс користувачів.
- •Команди та командний інтерпретатор.
- •Процеси та їх виконання.
- •Підсистема вводу/виводу.
- •Структура файлової системи.
- •Засоби захисту файлів і даних.
- •Сигнали і семафори.
- •Програмні канали та черги повідомлень.
- •Розділювана пам’ять та виклики віддалених процедур.
8. Поштові ящики.
Взаємодія між паралельними процесами обумовлює не тільки синхронізацію (обмін тимчасовими сигналами), але й передачу і отримання довільних повідомлень. Крім того в паралельних процесах неможливо гарантувати відправку повідомлень одним процесом і отримання іншим процесом практично в один і той самий момент часу. Тому є необхідність тимчасового зберігання повідомлення в спеціальному буфері обміну, який називається поштовий ящик. Наприклад, для того, щоб послати процес Р2, процес Р1 повинен запитати його у відповідний поштовий ящик, звідки Р2 може зчитати це повідомлення в будь – який момент часу. Як правило, поштові ящики є системними об’єктами і для їх використання процес повинен запросити операційну систему відповідним запитом. Як правило, поштові ящики складаються з головного елементу, в якому міститься інформація про параметри цього поштового ящика і декількох наступних елементів (комірок) в яких розміщується повідомлення. Розмір комірки визначається при створенні поштового ящика.
Найпростіший алгоритм роботи поштового ящика полягає в тому, що процес Р1 посилає повідомлення в поштовий ящик до тих пір, поки є вільні комірки, а процес Р2 – зчитує ці повідомлення поки є заповнені комірки. В більш складних випадках використовуються двонаправлені поштові ящики які дозволяють підтверджувати прийом (зчитування) повідомлень. В цьому випадку в кожній комірці міститься або повідомлення від процесу Р1, або підтвердження про зчитування (прийняття) повідомлення від процесу Р2.
Технічна реалізація поштових ящиків в ОС Windows – самостійно!
Основними перевагами поштових ящиків є:
процесу нема необхідності знати про існування інших паралельних процесів до того моменту, поки він не отримає повідомлення від них;
два процеси можуть обмінюватись одним повідомленням більше ніж один раз;
ОС може гарантувати, що ніякий інший процес не буде вмішуватись у взаємодію двох процесів;
наявність декількох комірок дозволяє процесу відправнику продовжувати роботу не звертаючи уваги на процес отримувач.
Недоліком поштових ящиків є поява ще одного ресурсу (власне поштового ящика) яким необхідно керувати, крім цього другим недоліком є статичний характер поштового ящика в якому чітко визначено розмір і кількість комірок.
9. Конвеєри.
Термін конвеєр вперше був введений в склад операційної системи Unix для систем міні – машин. Конвеєр (pipe) – це ресурс операційної системи, за допомогою якого можна здійснювати обмін повідомленнями між процесами. Розмір конвеєра для ОС міні - машин складав 64 Кб. Механізм роботи конвеєра аналогічний механізму роботи з файлами ОС Unix. Процес який передає інформацію функціонує так само як і при записі інформації у файл, а процес якому призначене це повідомлення просто зчитує ці дані з файлу “pipe” аналогічно зв’язку. Функції ОС, за допомогою яких можна записати інформацію в канал і зчитати з каналу є тими самими, що і при роботі з файлами. Однак канал представляє собою не файл на диску, а буфер в оперативній пам’яті.
Маючи фіксований розмір конвеєра доступ до нього можна забезпечити циклічно. Для цього в системі конвеєра існують два вказівники, один з яких вказує на перший елемент конвеєра, інший – на останній. В початковий момент часу ці вказівники дорівнюють нулю. Добавлення першого елементу в пустий конвеєр приводить до того, що ці два вказівники приймають значення одиниці. При записі в конвеєр нового елементу викликає змінну другого вказівника (що вказує на кінець черги), читання або знищення елемента з конвеєра викликає модифікацію першого елемента черги.
Як ресурс в рамках ОС кожен описується ідентифікатором, розміром та двома вказівниками. Так як конвеєр є системним ресурсом, то процес повинен здійснити запит до ОС на право користування конвеєром. Процеси які знають ідентифікатор конвеєра можуть вільно обмінюватись даними через нього.
Недоліком конвеєра є фіксований розмір, що обмежує розмір повідомлень якими можна обмінюватись.