- •Принципи роботи апаратури введення-виведення. Пристрый введення-виведення.
- •Переривання персональної кс.
- •Задачі програмного забезпечення введення-виведення.
- •Способи здійснення операції введення- виведення.-------------
- •Обробники переривань.
- •Драйвери пристроїв.
- •Способи здійснення введення-виведення.
- •Еволюція функцій введення-виведення.
- •Прямий доступ до памяті.
- •Аспекти проектування пристроїв введення-виведення.
- •Логічна структура пристроїв введення-виведення.
- •Буферизація операцій введення-виведення.
- •Багаторівневі таблиці сторінок.--------------
- •Буфери швидкого перетворення адреси.
- •Інвертовані таблиці сторінок.
- •Поняття про алгоритм заміщення сторінок.
- •Оптимальне заміщення сторінок.
- •Алгоритм nru.
- •Алгоритм fifo.
- •Алгоритм «Друга спроба»
- •Алгоритм годинник
- •Алгоритм lru
- •Поняття файлової системи
- •Іменування файлів
- •Структура файлу
- •Типи файлів.
- •Доступ до файлів. Атрибути файлів
- •Файли відображувані на адресний простір памяті
- •Каталоги
- •Структура файлової системи
- •Реалізація файлів. Неперервні файли
- •Звязні списки
- •Звязний список за допомогою таблиці розміщеної в оп.
- •Реалізація файлів: і-вузли. Реалізація каталогів.
- •Поняття планування в системах з одним процесором
- •Типи планування процесора
- •Критерії короткотривалого планування
- •Використання пріоритетів
- •Альтернативні стратегії планування
- •Стратегія планування перший пішов-перший обслужив ся
- •Стратегія кругового планування
- •Віртуальне кругове планування
- •Стратегія вибору найкоротшого процесу
- •Стратегія найменшого часу, що залишився
- •Стратегія найвищого відношення відгуку
- •Зниження пріоритету
- •Порівняння продуктивності стратегій
- •Справедливе планування
- •Класифікація багатопроцесорних систем
- •Основні поняття про зернистості синхронізацій
- •Задачі планування в багатопроцесорній системі
- •Планування процесів
- •Планування потоків
- •Основні підходи до планування потоків
- •Розділення навантаження
- •Бригадне планування
- •Призначення процесорів
- •Динамічне планування
- •Поняття про обчислення реального часу
- •Характеристики ос реального часу
- •Планування реального часу
- •Планування граничними термінами
- •Частотно-монотонне планування
- •Постановка задачі проектування ос
- •Причини ускладнення проектування ос
- •Розробка інтерфейсу ос
- •Особливості проектування ос. Парадигми
- •Реалізація ос
- •Тенденції у проектуванні ос
- •Історичні відомості про ос типу unix
- •Загальна архітектура системи unix
- •Сучасні системи unix
- •Історія виникнення ос linux
- •Модульна структура ос linux
- •Традиційне планування unix
- •Історія виникнення windows
- •Архітектура ос windows 2000
- •Архітектура ос windows xp
Модульна структура ос linux
Ядра більшості версій операційної системи UNIX є монолітними. Монолітне ядро – це ядро, яке віртуально включає в себе всі можливості операційної системи у вигляді одного великого блоку коду, який запускається як єдиний процес в єдиному адресному просторі. Всі функціональні компоненти такого ядра мають доступ до всіх його внутрішніх структур даних і до всіх програм. При внесенні змін в будь-яку частину типової монолітної операційної системи всі її модулі і підпрограми необхідно повторно компонувати і перевстановлювати, а перед тим як зміни ввійдуть в силу, систему потрібно буде перезавантажити. В результаті всі модифікації, такі, як добавлення драйвера нового пристрою або нових функцій файлової системи, ускладнюються. Особливо гостро ця проблема стоїть в системі Linux, глобальну розробку якої виконують об’єднані на добровільних засадах групи незалежних програмістів.
Динамічне зв’язування полегшує налагодження системи і економить пам’ять, яку займає ядро. В системі Linux програма користувача або сам користувач може завантажувати або вивантажувати модулі за допомогою команд insmod i rmmod. Саме ядро керує роботою окремих функцій і по мірі необхідності завантажує потрібні модулі або вивантажує ті, потреби в яких вже немає. Крім того, стекова організація дозволяє задавати залежності модулів, що дає дві основних переваги:
Код, що є загальним для набору однотипних модулів (наприклад, драйвери подібних пристроїв), можна розмістити в один модуль, що дозволяє скоротити кількість повторень.
Ядро може перевірити наявність в пам’яті потрібних модулів, утримуючись від вивантаження модуля, який потрібен для роботи інших, залежних від нього, і завантажуючи разом з новим потрібним модулем всі необхідні додаткові модулі.
Традиційне планування unix
Системи SVR3 i 4.3BSD UNIX в першу чергу призначені для роботи в інтерактивному середовищі з розділенням часу. Алгоритми планування розроблено так, щоб забезпечити прийнятний час відгуку для інтерактивних користувачів, в той же час гарантуючи відсутність «голодання» низькопріоритетних завдань. [Хоча описуваний алгоритм і був замінений в більш сучасних версіях UNIX, його вивчення як представника практично використовуваних алгоритмів з розділенням часу має підставу.] Схема планування SVR4 відповідає вимогам реального часу.
Традиційний планувальник UNIX використовує багаторівневе повернення із застосуванням кругового планування в межах черг кожного пріоритету, а також односекундне витіснення. Таким чином, якщо поточний процес не блокується або не закінчується в межах однієї секунди, то він витісняється. Пріоритет базується на типові процесу та історії виконання. Застосовуються такі формули:
де
- міра використання процесора процесом
j
на протязі інтервалу і;
-
пріоритет процесу j
на початку інтервалу і (менше значення
відповідає більшому пріоритету);
-
базовий пріоритет процесу j;
-
вказуваний користувачем коефіцієнт.
Пріоритет кожного процесу перераховується один раз в секунду, в момент прийняття рішення про те, який процес буде виконуватись наступним. Призначення базового пріоритету полягає в розділенні процесів на фіксовані групи рівнів пріоритетів. Значення компонентів CPU i nice обмежені вимогами того, щоб процес не міг вийти з призначеної йому на основі базового пріоритету групи. Ці групи використовуються для оптимізації доступу до блочних пристроїв (наприклад, до диску) і забезпечення швидкого відгуку операційної системи на системні виклики. Є такі групи пріоритетів (наведено в порядку зниження):
програма свопінгу;
керування блочними пристроями введення-виведення;
керування файлами;
керування символьними пристроями введення-виведення;
користувацькі процеси.
Така ієрархія повинна забезпечити найбільш ефективне використання пристроїв введення-виведення. В групі користувацьких процесів використання історії виконання приводить до застосування штрафних санкцій до процесів, орієнтованих на обчислення, що також повинно сприяти підвищенню ефективності системи. В поєднанні з круговою схемою з витісненням дана стратегія добре задовольняє вимогам до системи загального призначення з розділенням часу.
