
- •1.3. Короткий нарис історії ос
- •1.3.1. Передісторія ос
- •1.3.2. Пакетні ос
- •1.3.3. Ос з поділом часу
- •1.3.4. Однозадачние ос для пеом
- •1.3.5. Багатозадачні ос для пк з графічним інтерфейсом
- •1.4. Класифікація ос
- •1.5. Критерії оцінки ос
- •1.5.2. Ефективність
- •1.5.3. Зручність
- •1.5.4. Масштабованість
- •1.5.5. Здатність до розвитку
- •1.6. Основні функції і структура ос
- •1.7. Ос, що використовуються в подальшому викладі
- •1.7.2. Windows
- •1.7.3. Unix
- •2. Управління пристроями
- •2.1. Основні завдання управління пристроями
- •2.2. Класифікація периферійних пристроїв і їх архітектура
- •2.3. Переривання
- •2.4. Архітектура підсистеми вводу / виводу
- •2.5. Способи організації введення / виводу
- •2.5.1. Введення / висновок з опитування і по перериваннях
- •2.5.2. Активне і пасивне очікування
- •2.5.3. Синхронний і асинхронний ввід / вивід
- •2.6. Буферизація і кешування
- •2.6.1. Поняття буферизації
- •2.6.2. Згладжування нерівномірності швидкостей процесів
- •2.6.3. Розпаралелювання введення та обробки
- •2.6.4. Узгодження розмірів логічної та фізичної записи
- •2.6.5. Редагування при інтерактивному введенні
- •2.6.6. Кешування дисків
- •2.6.7. Випереджаюче читання.
- •2.7. Драйвери пристроїв
- •2.8. Управління пристроями в ms-dos
- •2.8.1. Рівні доступу до пристроїв
- •2.8.2. Драйвери пристроїв в ms-dos
- •2.8.3. Управління символьними пристроями
- •2.8.4. Управління блоковими пристроями
- •2.8.4.2. Розділи і логічні томи
- •2.8.4.3. Засоби доступу до дисків
- •2.9. Управління пристроями в Windows
- •2.9.1.1. Драйвери пристроїв в Windows
- •2.9.1.2. Доступ до пристроїв
- •2.10. Управління пристроями в unix
- •2.10.1. Драйвери пристроїв в unix
- •2.10.2. Пристрій як спеціальний файл
- •3. Управління даними
- •3.1. Основні завдання управління даними
- •3.2. Характеристики файлів та архітектура файлових систем
- •3.3. Розміщення файлів
- •3.4. Захист даних
- •3.6. Файлова система fat і управління даними в ms-dos
- •3.6.1. Загальна характеристика системи fat
- •3.6.2. Структури даних на диску
- •Структура записи каталога файловой системы fat
- •3.6.4. Робота з файлами в ms-dos
- •3.6.4.1. Системні функції
- •3.6.4.2. Доступ до даних
- •3.6.4.3. Структури даних у пам'яті
- •3.6.5. Нові версії системи fat
- •3.7. Файлові системи і управління даними в unix
- •3.7.1. Архітектура файлової системи unix
- •3.7.1.1. Жорсткі і символічні зв'язку
- •3.7.1.2. Монтовані томи
- •3.7.1.3. Типи і атрибути файлів
- •3.7.1.4. Управління доступом
- •3.7.2. Структури даних файлової системи unix
- •3.7.3. Доступ до даних в unix
- •3.7.4. Розвиток файлових систем unix
- •3.8. Файлова система ntfs і управління даними в Windows
- •3.8.1. Особливості файлової системи ntfs
- •3.8.2. Структури дискових даних
- •3.8.2.1. Головна таблиця файлів
- •3.8.2.2. Атрибути файлу
- •3.8.3. Доступ до даних
- •3.8.4. Захист даних
- •3.8.4.1. Аутентифікація користувача
- •3.8.4.2. Дескриптор захисту
- •4. Управління процесами
- •4.1. Основні завдання управління процесами
- •4.2. Реалізація багатозадачного режиму
- •4.2.1. Поняття процесу і ресурсу
- •4.2.2. Квазіпараллельний виконання процесів
- •4.2.3. Стану процесу
- •4.2.4. Невитісняючаі витісняюча багатозадачність
- •4.2.5. Дескриптор і контекст процесу
- •4.2.6. Реєнтерабельним системних функцій
- •4.2.7. Дисципліни диспетчеризації та пріоритети процесів
- •4.3. Проблеми взаємодії процесів
- •4.3.1. Ізоляція процесів та їх взаємодія
- •4.3.2. Проблема взаємного виключення процесів
- •4.3.3. Двійкові семафори Дейкстри
- •4.3.4. Засоби взаємодії процесів
- •4.3.4.1. Цілочисельні семафори
- •4.3.4.2. Семафори з множинним очікуванням
- •4.3.4.3. Сигнали
- •4.3.4.4. Повідомлення
- •4.3.4.5. Спільна пам'ять
- •4.3.4.6. Програмні канали
- •4.3.5. Проблема тупиків
- •4.4. Управління процесами в ms-dos
- •4.4.1. Процеси в ms-dos
- •4.4.2. Середа програми
- •4.4.3. Запуск програми
- •4.4.4. Завершення роботи програми
- •4.4.5. Перехоплення переривань і резидентні програми
- •4.5. Управління процесами в Windows
- •4.5.1. Поняття об'єкта у Windows
- •4.5.2. Процеси і нитки
- •4.5.3. Планувальник Windows
- •4.5.4. Процес і нитка як об'єкти
- •4.5.5.2. Об'єкти синхронізації та функції очікування
- •4.5.5.3. Типи об'єктів синхронізації
- •4.5.5.4. Критичні секції
- •4.5.6. Повідомлення
- •4.6. Управління процесами в unix
- •4.6.1. Життєвий цикл процесу
- •4.6.2. Групи процесів
- •4.6.3. Програмні канали
- •4.6.4. Сигнали
- •4.6.5. Засоби взаємодії процесів в стандарті posix
- •4.6.6. Планування процесів
- •4.6.6.1. Стану процесів в unix
- •4.6.6.2. Пріоритети процесів
- •4.6.7. Інтерпретатор команд shell
- •5. Управління пам'яттю
- •5.1. Основні завдання управління пам'яттю
- •5.2. Віртуальні й фізичні адреси
- •5.3.2. Розподіл з фіксованими розділами
- •5.3.3. Розподіл з динамічними розділами
- •5.4. Сегментна організація пам'яті
- •5.5. Сторінкова організація пам'яті
- •5.6. Порівняння сегментної і сторінкової організації
- •5.7. Управління пам'яттю в ms-dos
- •5.8. Управління пам'яттю в Windows
- •5.8.1. Структура адресного простору
- •5.8.3. Відображення виконуваних файлів
- •5.8.4. Файли, відображувані на пам'ять
- •5.8.5. Стеки і купи
- •5.9. Управління пам'яттю в unix
- •Література
2.3. Переривання
Переривання (апаратні) - це сигнали, при надходженні яких нормальна послідовність виконання програми може бути перервана, при цьому система запам'ятовує інформацію, необхідну для відновлення роботи перерваної програми, і передає управління підпрограмі обробки переривання (ISR, Interrupt Service Routine). По завершенню обробки, як правило, керування повертається перерваної програмі.
Всі переривання можна розділити на три основні типи:
· Апаратні переривання від периферійних пристроїв;
· Внутрішні апаратні переривання (звані також винятками, exceptions);
· Програмні переривання.
У переважній більшості ОС обробку всіх переривань бере на себе сама система, оскільки це занадто «інтимна» частину роботи, здатна вплинути на функціонування всіх системних і прикладних програм.
Оскільки типи і різновиди переривань дуже різноманітні і кожен з них вимагає особливої обробки, більшість процесорів підтримує векторні переривання. Це означає, що кожен різновид переривання має свій номер, і цей номер використовується як індекс в масиві, що зберігає адреси ISR для всіх переривань. При виникненні переривання апаратура комп'ютера за номером переривання визначає адресу підпрограми обробки і викликає її.
Для того щоб деякі найбільш відповідальні ділянки системних програм виконувалися без переривань, система має можливість тимчасово заборонити прийом більшості переривань. Така заборона має встановлюватися лише на короткі проміжки часу, не більше декількох мілісекунд.
Програмні переривання викликаються виконанням спеціальної команди, але обробляються точно так само, як інші типи переривань. По суті, команда програмного переривання являє собою особливий випадок виклику підпрограми, але при цьому замість адреси підпрограми вказується номер переривання, обробник якого повинен бути викликаний. У більшості сучасних ОС програмні переривання використовуються для переходу з режиму користувача в режим ядра при виклику системних функцій з прикладної програми.
Одним з найважливіших джерел переривань є периферійні пристрої. Як правило, пристрій генерує сигнал переривання в одному з двох випадків:
· При переході в стан готовності;
· При виникненні помилки виконання операції.
Стан готовності - це такий стан пристрою, в якому воно готове прийняти і виконати команди від процесора. Для пристрою введення готовність означає наявність в пристрої даних, які можуть бути передані в процесор (наприклад, клавіатура переходить у стан «Готово» при натисканні клавіші і повертається в стан «Не готове», коли код натиснутою клавіші лічений в процесор). Для пристрою виводу готовність - це можливість прийняти від процесора дані, які слід вивести. Наприклад, матричний принтер приймає символи, які потрібно надрукувати, в свій внутрішній буфер. Якщо буфер повний, принтер переходить в стан «Не готове» до тих пір, поки частина символів буде надрукована і в буфері звільниться місце. Дисковий накопичувач при початку виконання нової операції читання або запису на диск переходить в стан «Не готове», а після завершення операції повертається в стан «Готово». У кожному з цих випадків перехід в стан «Готово» - це привід для влаштування нагадати про себе процесору: зверніть на мене увагу, я до ваших послуг! Для цього і служить сигнал переривання.
Помилка операції також вимагає втручання системи або користувача. Наприклад, при помилці відсутності паперу в лотку принтера система повинна оповістити про це користувача; при помилці читання з диска або система, або користувач повинен вирішити, що робити: повторити операцію, завершити програму або продовжити виконання.
Не кожне пристрій генерує переривання. Наприклад, монітор ПК не видає переривань: він «завжди готовий», тобто завжди може прийняти дані для відображення, і він «ніколи не помиляється», точніше сказати, його несправність виявляється «на око».