Задачи
программного обеспечения ввода-вывода
Основные задачи,
которые должно решать программное обеспечение ввода-вывода:
1.
Независимость
от устройств - например, программа, читающая данные из файла не должна
задумываться с чего она читает (CD, HDD и др.). Все проблемы должна решать ОС.
2.
Единообразное
именование - имя файла или устройства не должны отличаться. (В системах UNIX
выполняется дословно).
3.
Обработка
ошибок - ошибки могут быть отловлены на уровне контроллера, драйвера и т.д.
4.
Перенос
данных - синхронный и асинхронный (в последнем случае процессор запускает
перенос данных, и переключается на другие задачи до прерывания).
5.
Буферизация
6.
Проблема
выделенных (принтер) и невыделенных (диск) устройств - принтер должен
предоставляться только одному пользователю, а диск многим. ОС должна решать все
возникающие проблемы.
Три основных
способа осуществления операций ввода-вывода:
1.
Программный
ввод-вывод
2.
Управляемый
прерываниями ввод-вывод
3.
Ввод-вывод
с использованием DMA
|