Управління вводом–виводом в операційних системах.

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

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

Пояснення того, що саме робить процесор при обробці інформації, як він вирішує задачу і який алгоритм виконує, не входить в завдання нашого курсу. Це швидше відноситься до курсу "Алгоритми і структури даних", з якого зазвичай починається вивчення інформатики. Як операційна система управляє обробкою інформації, ми розібрали в частині II, в деталях описавши два стани процесів – виконання (а що його описувати те?) і готовності (черги планування і т. д.), а також правила, по яких здійснюється переклад процесів з одного стану в інше (алгоритми планування процесів).

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

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