Системное и прикладное программное обеспечение. Абрахин С.И - 41 стр.

UptoLike

Составители: 

41
на другую работу, пока не наступает прерывание. Пользователь-
ские программы намного легче писать, если операции ввода-
вывода блокирующие. Например, после команды чтения про-
грамма автоматически приостанавливается до тех пор, пока
данные не попадут в буфер программы. ОС выполняет операции
ввода-вывода асинхронно, но представляет их для пользователь-
ских программ в синхронной форме.
Последняя проблема состоит в том, что одни устройства
являются разделяемыми, а другие - выделенными. Диски - это
разделяемые устройства, так как одновременный доступ не-
скольких пользователей к диску не представляет собой пробле-
му. Принтеры - это выделенные устройства, потому что нельзя
«смешивать» данные, печатаемые различными пользователями.
Наличие выделенных устройств создает для операционной сис-
темы некоторые проблемы.
Для решения поставленных проблем целесообразно разде-
лить программное обеспечение ввода-вывода на четыре слоя
(рис. 12):
обработка прерываний;
драйверы устройств;
независимый от устройств слой операционной сис-
темы;
пользовательский слой программного обеспечения.
Обработка прерываний скрываются как можно глубже в
недрах операционной системы. Тем самым, немногое про-
граммное обеспечение сталкиваются с прерываниями. Весь за-
висимый от устройства код помещается в драйвер устройства.
Каждый драйвер управляет устройствами одного типа, либо од-
ного класса. Большая часть программного обеспечения ввода-
вывода является независимой от устройств. Оно формирует не-
зависимый от устройств слой операционной системы. Точная
граница между драйверами и независимыми от устройств про-