- •Еволюція спз.
- •Призначення та склад операційних систем.
- •Системне програмування.
- •Загальна схема трансляції
- •Основні принципи розробки системного програмного забезпечення.
- •Умови зміни станів процесу (з Рис.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 інтерфейс.
- •Віртуальна машина.
- •Типи та інтерфейс користувачів.
- •Команди та командний інтерпретатор.
- •Процеси та їх виконання.
- •Підсистема вводу/виводу.
- •Структура файлової системи.
- •Засоби захисту файлів і даних.
- •Сигнали і семафори.
- •Програмні канали та черги повідомлень.
- •Розділювана пам’ять та виклики віддалених процедур.
Неперервний розподіл оперативної пам’яті.
Неперервний розподіл – це найпростіша схема, згідно якої всю пам’ять можна поділити на три частини:
область, яку займає операційна система;
область, в якій розміщується програма яка виконується;
незайнята область пам’яті.
Дана схема, незважаючи на те, що була першою схемою розподілу пам’яті, досить поширена і на сьогодні. При цьому ОС не підтримувала мультипрограмування, тому і не виникали проблеми розподілу пам’яті між декількома задачами. Програмні модулі необхідні для всіх програм включаються в області самої ОС, а решта пам’яті, що залишилась може бути задана задачі. Ця область пам’яті при цьому получається неперервною, що і полегшує роботу самої системи програмування. Щоб для задач відвести як можна більше пам’яті ОС будується так, що в пам’яті розміщується тільки потрібна її частина. Дану частину ОС ми називаємо ядром. Інші модулі ОС можуть бути звичайними транзитними, тобто завантаженими в пам’ять при потребі і вивантаженими після свого виконання.
Розподіл з перекриттям.
Якщо є необхідність створити програму логічний і віртуальний адресний простір якої повинен бути більший ніж вільна пам’ять або ніж вся доступна оперативна пам’ять то використовується розподіл з перекриттям.
Цей метод означає, що вся програма може бути розбита на частини. Кожна частина містить одну основну частину і декілька сегментів (тобто в пам’яті машини одночасно можуть знаходитись основа і сегменти). Доти, поки в пам’яті розміщуються сегменти, що виконуються, решта знаходяться в зовнішній пам’яті.
Після того як поточний сегмент завершить своє виконання можливі два варіанти:
або він сам звертається до ОС з вказанням в який сегмент має бути завантажений в пам’ять наступним;
або повертає управління основній частині задачі і він звертається до ОС який сегмент потрібно зберегти, а який завантажити наступним.
Найпростіша схема сегментування визначає, що в пам’яті в кожний поточний момент часу може знаходитись тільки один сегмент. Більш складні сегментування дозволяють розмішати декілька сегментів, які можуть перекриватися. Як правило, сегменти діляться на сегменти коду і сегменти даних: сегменти коду можуть залишатися незмінними, а сегменти даних потрібно постійно поновляти.
Статичний розподіл пам’яті.
Статичний розподіл пам’яті полягає в тому, що програма або операційна система жорстоко відводить певний об’єм пам’яті на весь час свого існування. Розмір цієї пам’яті є незмінним під час функціонування ОС чи програми, яка здійснила розподіл.
Як правило, статичний розподіл здійснюється на рівні довгострокового планування під час розробки програми або ОС.
Приклад на мові Assembler:
buffer db 1024 dup(?)
Динамічний розподіл пам’яті.
Цей розподіл полягає в тому, що програма під час свого функціонування може динамічно відводити або звільняти певний блок (буфер) пам’яті за своїми потребами. Цей метод більш ефективний і економічний по відношенню до об’єму використовуваної пам’яті. Однак, він є менш швидкодіючим ніж статичний, тому що додатково повинні використовуватись окремі команди розподілу та знищення блоків пам’яті. Цей метод використовується на рівні короткострокового порівняння під час виконання програми.
4Ah, 48h, 49h – функції операційної системи, переривання 21h – на мові Assembler.
Команди malloc, realloc – на мові С.
До певної міри динамічним є стековий метод розподілу пам’яті. Він полягає в тому, що для виділення місця в пам’яті використовується область даних стеку. В деяких типах обчислювальних машин такий метод такий метод має апаратну підтримку тому він вважається найбільш швидкодіючим.