- •Еволюція спз.
- •Призначення та склад операційних систем.
- •Системне програмування.
- •Загальна схема трансляції
- •Основні принципи розробки системного програмного забезпечення.
- •Умови зміни станів процесу (з Рис.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 інтерфейс.
- •Віртуальна машина.
- •Типи та інтерфейс користувачів.
- •Команди та командний інтерпретатор.
- •Процеси та їх виконання.
- •Підсистема вводу/виводу.
- •Структура файлової системи.
- •Засоби захисту файлів і даних.
- •Сигнали і семафори.
- •Програмні канали та черги повідомлень.
- •Розділювана пам’ять та виклики віддалених процедур.
10. Черги повідомлень.
Черги повідомлень є більш складними механізмами зв’язку між взаємодіючими процесами. За допомогою черг можна з одного чи декількох процесів посилати повідомлення деякому процесу приймачу незалежним чином. При цьому процес приймач має право читати і знищувати повідомлення з черги, процеси клієнти мають право тільки записувати свої повідомлення у чергу. Якщо між процесами необхідно забезпечити двосторонній зв’язок, то створюються дві черги повідомлень.
Механізм черг має наступні властивості:
можна використовувати декілька дисциплін обробки повідомлень в черзі (наприклад, FIFO, LIFO);
якщо при читанні з конвеєра повідомлення повинно бути знищене з відповідної комірки, у випадку черг повідомлення не знищується і може бути прочитане декілька разів;
можна аналізувати не тільки чергу самих повідомлень, а й чергу адрес повідомлень, що дозволить розміщувати самі повідомлення в спільній пам’яті доступній для всіх процесів.
Тема 5. Керування реальною пам’яттю
Підходи до керування реальною пам’яттю.
Неперервний розподіл оперативної пам’яті.
Розподіл з перекриттям.
Статичний розподіл пам’яті.
Динамічний розподіл пам’яті.
Розділи пам’яті з фіксованими розмірами.
Розділи пам’яті зі змінними розмірами.
Підходи до керування реальною пам’яттю.
Фізична пам’ять являє собою впорядковану множину комірок і всі вони пронумеровані, тобто до кожної із них можна звернутися вказавши її впорядкований номер (адрес). Кількість комірок фізичної пам’яті є обмеженою і фіксованою. СПЗ повинно зв’язати кожне вказане користувачем ім’я з фізичною коміркою пам’яті, тобто здійснити відображення простору імен на фізичну пам’ять комірки. В загальному випадку це відображення здійснюється в два етапи:
спочатку системою програмування;
потім ОС (з допомогою спеціальних програмних модулів керування пам’яттю і використання спеціальних апаратних засобів).
Між цими етапами звернення до пам’яті має форму віртуального або логічного адресу. При цьому потрібно відзначити, що множина всіх допустимих значень віртуального адресу для будь–якої програми визначає її віртуальний адресний простір або віртуальну пам’ять.
Віртуальний адресний простір програми перш за все залежить від архітектури процесора та від системи програмування і практично не залежить від реальної фізичної пам’яті. Потрібно добавити, що адреса команд і змінних в машинній програмі, що підготовлена до виконання системою програмування і являється віртуальним адресом. В результаті роботи системи програмування отримані віртуальні адреси можуть мати як двійкову форму, так і символьно–двійкову. Тобто деякі програмні модулі (їх, як правило, більшість) і їх змінні отримують числові значення, а ті модулі, адреси яких не можуть бути визначені на даний час мають символьну форму і кінцева прив’язка до фізичної комірки буде здійснюватись на етапі завантаження програми в пам’ять перед її виконанням.
Одним із випадків відображення простору імен на фізичну пам’ять являється відповідність віртуального адресного простору фізичній пам’яті. При цьому немає необхідності здійснювати друге повторне відображення. В даному випадку можна відзначити, що система програмування генерує абсолютну двійкову програму. В даній програмі всі двійкові адреса будуть такими, що програма може виконатись тільки в тому випадку, якщо її віртуальні адреса будуть точно відповідати фізичним.
Частина програмних модулів будь – якої ОС обов’язково повинна бути абсолютно двійковими програмами. Ці програми розміщуються по фіксованих адресах і з їх допомогою можна як наслідок реалізувати розміщення інших програм, що підготовлені системою програмування таким чином, що вони можуть працювати на різних фізичних адресах (тобто де їх розмістить ОС).
Іншим випадком такої загальної схеми трансляції адресного простору являється відповідність віртуального адресного простору у вихідному або першопочатковому простору імен. В даному випадку відображення здійснюється самою ОС, яка під час виконання використовує таблицю символьних імен. Така схема відображення використовується досить рідко, тому що відображення імен на адреса необхідно використовувати для кожного входження імені (для кожного нового імені) і досить багато часу використовується на кваліфікацію імен. Також можливі і проміжні варіанти. В найпростішому випадку транслятор – компілятор генерує відносні адреса які по суті являються віртуальними адресами з наступною настройкою програми на один із неперервних розділів.
Друге відображення здійснюється завантажувальником (загрузчиком), що переміщується. Після завантаження програми віртуальний адрес втрачається і доступ виконується безпосередньо до фізичних комірок. Більш ефективне рішення досягається в тому випадку, коли транслятор виробляє в якості віртуального адресу відносний адрес і інформацію про початковий адрес, а процесор використовуючи адресну інформацію, що підготовлена ОС виконує друге відображення не один раз при загрузці програми, а при кожному зверненні до пам’яті.