Лекція 8.
Програмне забезпечення вводу-виводу.
1.Задачі програмного забезпечення вводу-виводу.
Ключовою концепцією розробки програмного забезпечення вводу-виводу є його незалежність від пристрою. Це означає можливість написання програм здатних отримувати доступ до будь-якого пристрою вводу-виводу без попередньої вказівки конкретного пристрою. Всі проблеми, пов’язані з відмінностями цих пристроїв повина вирішувати операційна система. З даною концепцією тісно пов’язаний принцип однообразного іменування. Ім’я файлу або пристрою повино бути текстовим рядком або числом і не залежати від фізичного пристрою.
Другим важливим аспектом програмного забезпечення вводу-виводу є обробка помилок. Помилки повинні оброблятись як можна ближче до апаратури. Якщо контролер виявив помилку читання, то він повинен спробувати по можливості виправити її сам. Якщо він не може це зробити, тоді цю помилку повинен обробити драйвер пристрою.
Більшість операцій вводу-виводу на фізичному рівні є асинхроними. Центральний процесор запускає перенесення даних і займається іншими задачами, поки не прийде переривання.
Програмне забезпечення вводу-виводу організовується у вигляді чотирьох рівнів (рис.8.1.), які мають чітко визначені функції, що виконувати та визначений інтерфейс з сусідніми рівнями. Функції та інтерфейси змінюються в залежності від операційної системи.
Рис.8.1. Програмні рівні введеня-виведення
Ще одним аспектом програмного забезпечення вводу-виводу є буферизація. Часто дані, які поступають з пристрою не можуть бути збережені там, куди вони направляються. Операційна система повина вміти керувати як пристоями загального глобального доступу, так і вітділеними пристроями.
2.Способи здійснення операцій вводу-виводу.
Існує три фундаментально різних способи здійснення операцій вводу-виводу. Розглянемо програмне введення-виведення. Всю роботу при такому способі виконує центральний процесор.
Програмне введення-виведення реалізується легко, але має недолік: центральний процесор займається на весь час операцією введеня-виведення. Надати центральному процесору можливість виконувати інші задачі, коли принтер переходить в стан готовності, можна за допомогою переривань. Це випадок принтера, який не буферизує символи, а друкує іх одразу по надходженню. Цей спосіб називають - кероване перериваннями введення-виведення. Недоліком цього способу є те, що переривання відбувається при друкувані кожного символу.
3.Обробники переривань.
Для більшості операцій вводу-виводу переривання є неприємним, але необхідним фактором. Про їх існування повина знати як можна менша частина операційної системи.
Один з найкращих способів полягає в блокувані драйвера, який розпочав операцію вводу-виводу до самого закінчення цієї операції і отримання переривання. Драйвер може заблокувати себе сам, виконавши на симафорі процедури down, write, reseive на повідомленні.
Коли відбувається переривання, то розпочинає роботу обробник переривань. По закінченю необхідної роботи він може розблокувати драйвер, який запустив його. В деяких випадках використовується виконання процедури up на симафорі. В інших випадках обробник переривань викликає процедуру монітора signal із змінною стану.
В третьому випадку він відправляє заблокованому драйверу повідомлення. В будь-якому випадку драйвер розблокується обробником переривань. Ця схема краще всього працює в драйверах, які є процесами ядра із своїм власним станом, стеком і лічильником команд.
4. Драйвери пристроїв.
Для керування кожним пристроєм вводу-виводу підключеним до персонального комп’ютера потрібна спеціальна програма, яку називають драйвером пристрою.
Вона створюється виробником пристрою і розповсюджується разом з пристроєм. Оскільки для кожної операційної системи потрібні спеціальні драйвери, то виробники пристроїв поставляють драйвери для декількох найбільш популярних операційних систем. Кожен драйвер підтримує один тип пристроїв, або клас споріднених пристроїв. Для отримання доступу до апаратної частини пристрою, тобто до регістрів контролера, драйвер пристрою повинен бути частиною ядра операційної системи.
Оскільки в операційну сиситему будуть вставлятись частини програм (драйвери), написані іншими програмістами, то необхідна певна архітектура, яка б дозволила подібне встановлення. Це означає, що повина бути вироблена чітко визначена модель функції драйвера і його взаємодії з рештою операційної системи. Драйвери пристроїв розміщуються під рештою операційної системи і контроллером.
Обмін інформацією між драйверами і контролерами пристроїв йде по шині.
Рис.8.2. Логічне розміщення драйверів пристроїв.
ОС класифікує драйвери за декількома категоріями у відповідності з типами обслуговуваних ними пристроїв. До найбільш загальних категорій відносять блочні (диски), які містять блоки даних, до яких можлива незалежна адресація, і символьні пристрої, такі, як клавіатура і принтери, що формують і приймають потік символів. В більшості ОС визначено стандартний інтерфейс, який повинні підтримувати всі блочні драйвери і другий стандартний інтерфейс підтримуваний символьними драйверами.
Починаючи з MS-DOS перейшли до моделі динамічного підвантаження драйверів під час роботи системи.
Способи здійснення введення-виведення.
Програмоване введення-виведення. Процесор відправляє необхідні команди контролеру введення-виведення; після цього процес знаходиться в стані очікування закінчення операції введення-виведення.
Прямий доступ до пам'яті. Модуль прямого доступу до пам'яті керує обміном даними між основною пам’яттю і контролером введення-виведення. Процесор відправляє запит на передачу блоку даних модулю прямого доступу до пам'яті, а переривання відбувається тільки після передачі всього блоку даних.
Зв'язок між перерахованими способами відображено в таблиці 8.1
Таблиця 8.1
В більшості комп’ютерних систем основним способом передавання даних , який підтримується операційною системою, є прямий доступ до пам'яті.
Еволюція функцій введення-виведення.
Етапи розвитку функціонування пристроїв введення-виведення:
Процесор безпосередньо керує периферійними пристроєм.
До пристрою додається контролер або модуль введення-виведення. Процесор використовує програмоване введення-виведення без переривань (віддаляється від конкретних деталей інтерфейсів зовнішніх прстроїв).
Модуль введення-виведення отримує можливість безпосередньої роботи з пам’яттю з використанням DMA. З’являється можливість переміщення блоків даних в пам'ять або без неї без використання процесора (за виключенням моментів початку і кінця передачі даних).
Модуль введення-виведення удосконалює і стає окремим процесором, що має спеціалізовану систему команд, призначених для введення-виведення. Центральний процесор дає завдання процесору введення-виведення виконати програму введення-виведення, яка знаходиться в основній пам'яті. Процесор введення-виведення здійснює вибірку і виконання відповідних команд без участі центрального процесора. Така процедура дозволяє центральному процесору визначити послідовність виконуваних функцій введення-виведення і бути перерваними тільки при виконанні всієї послідовності.
Модуль введення-виведення володіє своєю локальною пам’яттю і є, по суті, окремим комп’ютером.
- Лекція 1. Вступ до операційних систем.
- 1.Поняття про операційні системи та їх місце в загальній структурі комп’ютера.
- 2. Основні функції операційної системи : розширення можливостей комп’ютера та керування його ресурсами.
- 3. Історія операційних систем.
- Лекція 2. Структура операційної системи.
- Таблиця 2.1
- Екзоядро
- Модель клієнт-сервер
- Лекція 3. Концепція процесу
- Лекція 4. Потоки в операційних системах.
- 3. Міжпроцесна взаємодія.
- 4.Примітиви міжпроцесної взаємодії.
- 5.Семафори та їх використання.
- 6.Поняття м’ютекса.
- 7.Поняття моніторів.
- 8.Поняття про бар’єри.
- 9.Поняття про системи передачі повідомлень.
- Лекція 5. Взаємоблокування.
- 2.Умови та моделювання взаємоблокувань.
- 3.Виявлення та усунення взаємоблокувань.
- 4.Уникнення взаємоблокувань при наявності декількох ресурсів кожного типу.
- 6. Уникнення взаємоблокувань.
- 7. Алгоритм банкіра для одного та декількох видів ресурсів.
- 8. Уникнення взаємоблокувань шляхом порушення умов їх здійснення
- Лекція 6. Основні поняття керування пам’яттю.
- 1.Однозадачна система без підкачки на диск.
- 2.Багатозадачність з фіксованими розділами
- 3.Поняття про підкачку даних.
- 5.Віртуальна пам’ять. Основні поняття.
- 6.Віртуальна пам’ять. Сторінкова організація пам’яті.
- 7.Характеристика основних алгоритмів заміщення сторінок.
- Лекція 7. Принципи роботи апаратури введення-виведення.
- 1.Пристрої введення-виведення.
- 2.Переривання персональної кс.
- Лекція 8.
- Лекція 9.
- Лекція 10. Файли та їх властивості.
- 1.Поняття файлової системи.
- 2.Іменування файлів.
- 3.Структура файлу.
- 4.Типи файлів.
- 5.Доступ до файлів. Атрибути файла.
- 6.Файли, відображувані на адресній простір памяті.
- 7.Каталоги.
- Лекція 11. Реалізація файлової системи.
- 1.Структура файлової системи.
- 2.Реалізація файлів.
- 3.Реалізація каталогів.
- Лекція 12 Планування в системах з одним процесором.
- 1.Поняття про планування.
- 2.Типи планування процесора.
- 3.Планування вводу-виводу.
- Лекція 13. Критерії планування.
- 1.Критерії короткотривалого планування.
- 2.Використання пріоритетів.
- 3.Альтернтитвні стратегії планування
- Лекція 14. Стратегії планування.
- 1.Стратегія планування „першим прийшов – першим обслуговується”.
- 2.Стратегія”кругове планування” .
- 4.Вибір самого короткого процесу.
- 5.Стртегія найменшого часу, що залишився.
- 7.Зниження пріорітету.
- Лекція 15. Багатопроцесорне планування і планування реального часу.
- 1. Класифікація багатопроцесорних систем.
- 3.Задачі планування в багатопроцесорній системі.
- 4. Планування процесів.
- 5.Планування потоків.
- Лекція 16. Основні підходи до планування потоків.
- 1.Розділення навантаження.
- 2.Бригадне планування.
- 3.Призначення процесорів.
- 4.Динамічне планування.
- Лекція 17. Планування реального часу.
- Лекція 18.
- 4. Парадигми.
- 5. Реалізація операційної системи
- Лекція 19. Операційні системи типу unix.
- 1.Історичні відомості про операційні системи типу unix.
- 2.Загальна архітектура системи unix.
- 3.Сучасні системи unix.
- 4.Історія виникнення операційної системи Linux.
- 5.Модульна структура операційної системи Linux.
- 6.Традиційне планування unix.
- Лекція 20. Характеристики операційної системи Windows 2000.
- 1. Історія виникнення Windows.
- Лекція 21. Особливості архітектури Windows xp.
- 1. Основні компоненти Windows xp.