Користувацький рівень програмного забезпечення
Хоча велика частина програмного забезпечення уведення-виведення знаходиться у середині ОС, деяка його частина розміщується в бібліотеках, що зв'язуються з програмами користувача. Набір подібних процедур є частиною системи уведення/виведення. Стандартна бібліотека уведення/виведення містить велику кількість процедур, що виконують уведення-виведення і працюють як частина програми користувача. Прикладом може слугувати функція write мови Pascal, що приймає рядок, формат виводу як вхідну інформацію, потім формує рядок з символів ASCII і робить виклик системної функції для виведення цього рядка. Іншою категорією програмного забезпечення уведення-виведення є підсистема спулінга (spooling). Спулінг — це спосіб роботи з виділеними пристроями в мультипрограмній системі. Як приклад розглянемо типовий пристрій, що вимагає спулинга - принтер. Хоча технічно легко дозволити кожному процесу користувача відкрити спеціальний файл, зв'язаний із принтером, такий спосіб небезпечний через те, що процес користувача може монополізувати принтер на довільний час, замість цього створюється: 1) процес — монітор, який отримує виняткові права на використання цього пристрою, 2) спеціальний каталог, названий каталогом спулінга. При друкуванні, процес користувача розміщує виведену інформацію в файл у каталозі спулінга. Процес-монітор по черзі роздруковує усі файли, що містяться в каталозі спулінга.
|