Головна

Програмний введення-виведення

  1. Введення-виведення даних
  2. ВВЕДЕННЯ-ВИВЕДЕННЯ ПО ПРЕРИВАНІЯЮ
  3. ПИТАННЯ 25. Програмний продукт і програмне забезпечення. Характеристика програмного продукту. Програма.
  4. ПИТАННЯ 32. Інтегрований програмний продукт Microsoft Office (склад, призначення, особливості використання).
  5. Основні компоненти комп'ютера, їх функціональне призначення і принципи роботи. Програмний принцип роботи комп'ютера.
  6. Основні компоненти комп'ютера, їх функціональне призначення і принципи роботи. Програмний принцип роботи комп'ютера.
  7. Основні компоненти комп'ютера, їх функціональне призначення і принципи роботи. Програмний принцип роботи комп'ютера.

Основна ідея організації програмного забезпечення введення-виведення полягає в розбитті його на кілька рівнів, причому нижні рівні забезпечують екранування особливостей апаратури від верхніх, а ті, в свою чергу, забезпечують зручний інтерфейс для користувачів.

принципи:

Незалежність від пристроїв. Вид програми повинен бути незалежним від того, чи читає вона дані з гнучкого диска або з жорсткого диска.

Однакове іменування, тобто для іменування пристроїв повинні бути прийняті єдині правила.

Обробка помилок: помилки слід обробляти як можна ближче до апаратури. І тільки якщо нижній рівень не може впоратися з помилкою, він повідомляє про помилку верхнього рівня.

ОС виконує операції введення-виведення асинхронно, але подає їх для призначених для користувача програм в синхронній формі, так як більшість операцій фізичного введення-виведення виконується асинхронно, а призначені для користувача програми набагато легше писати, якщо операції введення-виведення блокують - після команди READ програма автоматично призупиняється до тих пір, поки дані не потраплять в буфер програми.

Правильне надання доступу до поділюваних і виділеним ресурсів. Одні пристрої є розділяються, а інші - виділеними. До розділяються можливий одночасний доступ, до неподілюваний немає. Наявність виділених пристроїв створює для операційної системи деякі проблеми.

Програмне забезпечення введення-виведення зазвичай організовується у вигляді наступних рівнів:

програмне забезпечення введення-виведення рівня користувача;

незалежне від пристрою програмне забезпечення операційної системи;

драйвери пристроїв;

обробники переривань;

апаратура.

У кожного рівня є чітко окреслена функція, яку він повинен виконувати, і строго певний інтерфейс з сусідніми рівнями. Функції і інтерфейси рівнів змінюються від однієї операційної системи до іншої.

Обробка переривань

Переривання повинні бути приховані якнайглибше в надрах операційної системи, щоб якомога менша частина ОС мала з ними справу. Найкращий спосіб полягає в дозволі процесу, який ініціював операцію введення-виведення, блокувати себе до завершення операції і настання переривання.

драйвери пристроїв

Весь залежний від пристрою код поміщається в драйвер пристрою. Кожен драйвер управляє пристроями одного типу або, може бути, одного класу. В операційній системі тільки драйвер пристрою знає про конкретні особливості будь-якого пристрою.

Драйвер пристрою приймає запит від пристроїв програмного шару і вирішує, як його виконати. Якщо драйвер був вільний під час надходження запиту, то він починає виконувати запит негайно. Якщо ж він був зайнятий обслуговуванням іншого запиту, то знову надійшов запит приєднується до черги вже наявних запитів, і він буде виконаний, коли настане його черга.

Драйвер вирішує які операції контролера потрібно виконати і в якій послідовності.

Після передачі команди контролеру драйвер повинен вирішити, чи блокувати себе до закінчення заданої операції чи ні. Якщо операція займає чимало часу, то драйвер блокується до тих пір, поки операція не завершиться, і обробник переривання не розблокує його. Якщо команда введення-виведення виконується швидко (наприклад, прокрутка екрану), то драйвер очікує її завершення без блокування.

Незалежний від пристроїв шар операційної системи

Велика частина програмного забезпечення введення-виведення є незалежною від пристроїв. Точна межа між драйверами і незалежними від пристроїв програмами визначається системою, так як деякі функції, які могли б бути реалізовані незалежним способом, насправді виконані у вигляді драйверів для підвищення ефективності або з інших причин.

Типовими функціями для незалежного від пристроїв шару є:

забезпечення загального інтерфейсу до драйверів пристроїв,

іменування пристроїв,

захист пристроїв,

забезпечення незалежного розміру блоку,

буферизация,

розподіл пам'яті на блок-орієнтованих пристроях,

розподіл і звільнення виділених пристроїв,

повідомлення про помилки.

Верхніх шарів програмного забезпечення не зручно працювати з блоками різної величини, а тому цей шар забезпечує єдиний розмір блоку, наприклад, за рахунок об'єднання декількох різних блоків в єдиний логічний блок. У зв'язку з цим верхні рівні мають справу з абстрактними пристроями, які використовують єдиний розмір логічного блоку незалежно від розміру фізичного сектора.

Призначений для користувача шар програмного забезпечення

Хоча більша частина програмного забезпечення введення-виведення знаходиться всередині ОС, деяка його частина міститься в бібліотеках, що пов'язуються з одними програмами. Системні виклики, які включають виклики введення-виведення, зазвичай робляться бібліотечними процедурами. (Зокрема, форматування введення або виведення виконується бібліотечними процедурами Пр: функція printf мови С). Стандартна бібліотека введення-виведення містить велику кількість процедур, які виконують введення-виведення і працюють як частина користувальницької програми.

Інший категорією програмного забезпечення введення-виведення є підсистема спулінга (spooling). Спулінг - це спосіб роботи з виділеними пристроями в мультипрограммной системі. Розглянемо типовий пристрій, що вимагає спулінга - рядковий принтер. Створено спеціальний процес - монітор, який отримує виключні права на використання цього пристрою. Також створюється спеціальний каталог, званий каталогом спулінга. Для того, щоб надрукувати файл, призначений для користувача процес поміщає виведену інформацію в цей файл і поміщає його в каталог спулінга. Процес-монітор по черзі роздруковує всі файли, що містяться в каталозі спулінга.

 



Двухфазовость блокування, тупики без ресурсів і голодування | Програмні рівні введення-виведення

Політика і мезанизма. | моделювання взаімоблокіровок | Страусовскій алгоритм | Виявлення та усунення взаімоблокіровок і виявлення взаимоблокировки при наявності одного ресурсу кожного типу | Виявлення взаімоблокіровок при наявності декількох ресурсів кожного типу | Відновлення за допомогою примусового вивантаження ресурсу | Відновлення шляхом знищення процесів | уникнення взаімоблокіровок | алгоритм банкіра | Алгоритм банкіра для кілька видів ресурсів |

© um.co.ua - учбові матеріали та реферати