
- •Принципи роботи апаратури введення-виведення. Пристрый введення-виведення.
- •Переривання персональної кс.
- •Задачі програмного забезпечення введення-виведення.
- •Способи здійснення операції введення- виведення.-------------
- •Обробники переривань.
- •Драйвери пристроїв.
- •Способи здійснення введення-виведення.
- •Еволюція функцій введення-виведення.
- •Прямий доступ до памяті.
- •Аспекти проектування пристроїв введення-виведення.
- •Логічна структура пристроїв введення-виведення.
- •Буферизація операцій введення-виведення.
- •Багаторівневі таблиці сторінок.--------------
- •Буфери швидкого перетворення адреси.
- •Інвертовані таблиці сторінок.
- •Поняття про алгоритм заміщення сторінок.
- •Оптимальне заміщення сторінок.
- •Алгоритм nru.
- •Алгоритм fifo.
- •Алгоритм «Друга спроба»
- •Алгоритм годинник
- •Алгоритм lru
- •Поняття файлової системи
- •Іменування файлів
- •Структура файлу
- •Типи файлів.
- •Доступ до файлів. Атрибути файлів
- •Файли відображувані на адресний простір памяті
- •Каталоги
- •Структура файлової системи
- •Реалізація файлів. Неперервні файли
- •Звязні списки
- •Звязний список за допомогою таблиці розміщеної в оп.
- •Реалізація файлів: і-вузли. Реалізація каталогів.
- •Поняття планування в системах з одним процесором
- •Типи планування процесора
- •Критерії короткотривалого планування
- •Використання пріоритетів
- •Альтернативні стратегії планування
- •Стратегія планування перший пішов-перший обслужив ся
- •Стратегія кругового планування
- •Віртуальне кругове планування
- •Стратегія вибору найкоротшого процесу
- •Стратегія найменшого часу, що залишився
- •Стратегія найвищого відношення відгуку
- •Зниження пріоритету
- •Порівняння продуктивності стратегій
- •Справедливе планування
- •Класифікація багатопроцесорних систем
- •Основні поняття про зернистості синхронізацій
- •Задачі планування в багатопроцесорній системі
- •Планування процесів
- •Планування потоків
- •Основні підходи до планування потоків
- •Розділення навантаження
- •Бригадне планування
- •Призначення процесорів
- •Динамічне планування
- •Поняття про обчислення реального часу
- •Характеристики ос реального часу
- •Планування реального часу
- •Планування граничними термінами
- •Частотно-монотонне планування
- •Постановка задачі проектування ос
- •Причини ускладнення проектування ос
- •Розробка інтерфейсу ос
- •Особливості проектування ос. Парадигми
- •Реалізація ос
- •Тенденції у проектуванні ос
- •Історичні відомості про ос типу unix
- •Загальна архітектура системи unix
- •Сучасні системи unix
- •Історія виникнення ос linux
- •Модульна структура ос linux
- •Традиційне планування unix
- •Історія виникнення windows
- •Архітектура ос windows 2000
- •Архітектура ос windows xp
Особливості проектування ос. Парадигми
Після чіткого усвідомлення цілей розпочинають проектування. Одним з питань є таке, як буде виглядати система перед користувачами. Всі її функції повинні добре узгоджуватись одна з однією, тобто повинна бути архітектурна узгодженість. В ОС є 2 типи користувачів: ті що пишуть прикладні програми і ті що їх використовують. Початком розробки системи з графічного інтерфейсу користувача представляє собою проектування зверху вниз. Реалізація в першу чергу системних викликів представляє собою проектування знизу вверх. Багатьма інтерфейсами користувачів використовується парадигма WIMP (вікна, піктограми, меню, вказівними). Яка б парадигма не використовувалась важлива її використання всіма прикладними програмами. Кожна парадигма породжує власний стиль програмування.
Реалізація ос
Першим рішенням при розробці операційної системи яке повинні прийняти розробники це – рішення про структуру системи.
Монолітно неструктуроване влаштування представляє собою невдалу ідею.
Добре зарекомендувала себе на протязі багатьох років багаторівнева система.
Є досить багато прихильників протилежного до багаторівневих структур погляду, який базується в тому, що якщо що-небудь повинно бути виконано самою програмою користувача, то перспективно виконувати це також і на нижньому рівні. Егзо-ядро представляє собою операційну систему, побудовану у відповідності з наскрізним аргументом.
Система клієнт-сервер. Компромісом між операційною системою, яка робить все і операційною системою, що не робить нічого, є операційна система, яка робить дещо. Результатом такого дизайну є схема мікро ядра, за якою більша частина операційних систем представляє собою серверні процеси, які працюють на рівні користувача. Таке влаштування володіє найбільшою модульністю і гнучкістю в порівнянні з іншими схемами. Межею гнучкості є те, щоб кожен драйвер пристрою також робив у вигляді користувацького процесу, повністю захищеного від ядра і інших драйверів. Видалення драйверів з ядра дозволяє усунути найбільше джерело нестабільності будь-якої операційної системи – це драйвери з помилками (написані третіми фірмами). Драйвери пристроїв, повинні отримувати доступ до апаратних регістрів, тому необхідним є певний механізм, який забезпечував би такий доступ.
Розширювані системи. Ідея використання клієнт-сервер полягає в тому, щоб винести за межі ядра стільки, скільки можливо. Протилежний підхід полягає в томі, щоб помістити більше модулів в ядро, але захищеним способом. Звичайно сама розширювана система не є методом структурування О. С. Але розпочавши з мінімальної системи, яка складається в основному з механізму захисту, і поступово додаючи потрібної функційності, можна створити систему для конкретного додатку.
Потоки ядра. Інколи буває зручним дозволити існувати потокам ядра окремо від користувацьких потоків.
Статичні і динамічні структури.
Статичні структури даних завжди простіші для розуміння, легше програмуються і швидші у використанні. Динамічні структури мають більшу гнучкість.