Висновок

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

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

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

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

Частина функцій базової підсистеми може бути делегована драйверам пристроїв і самим пристроям вводу-виводу.