Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_3.doc
Скачиваний:
2
Добавлен:
12.11.2019
Размер:
435.2 Кб
Скачать

3.6 Организация ввода-вывода

Управление вводом-выводом является одной из важнейших функций любой ОС. Её задача обеспечить простой и надёжный интерфейс между устройствами ввода-вывода и остальной частью системы.

Устройства ввода-вывода условно делят на две категории: блочные устройства и символьные устройства. Блочные хранят информацию в виде блоков фиксированного объёма, причём у каждого блока есть свой адрес. Каждый блок может быть прочитан независимо от остальных блоков. Наиболее распространённое блочное устройство – магнитный диск. Символьное устройство принимает поток символов без какой-либо блочной структуры. Это устройство не адресуемо и не выполняет операцию поиска. Это, например, принтеры, сетевые адаптеры, мыши и т. п.

Устройства ввода-вывода состоят из механической и электронной части. Электронная часть называется контроллером или адаптером. Эти контроллеры или вставляются в материнскую плату, или располагаются на самом устройстве ввода-вывода. Контроллер управляет информацией, поступающей от компьютера, и преобразует её в удобную для устройства форму. Например, контроллер монитора считывает из памяти байты, содержащие символы, которые следует отобразить, и формирует сигналы, используемые для модуляции луча электронной трубки, заставляющие её выводить изображение на экран.

Всё программное обеспечение ввода-вывода подчиняется нескольким принципам. Первый принцип – это принцип независимости от устройств. Это означает, что программа способна получать доступ к любому устройству ввода-вывода без указания конкретного устройства. Все проблемы, связанные с отличиями этих устройств, решает операционная система. Второй принцип – принцип единообразного именования. Имя устройства или файла должно быть просто текстовой строкой или целым числом и не зависеть от физического устройства. Третий принцип – принцип обработки ошибок. Ошибки должны обрабатываться как можно ближе к аппаратуре. Если, например, контроллер обнаружил ошибку чтения, он должен эту ошибку исправить сам. Только если нижний уровень программного обеспечения не может сам справиться с ошибкой, о ней следует информировать верхний уровень программного обеспечения. Ещё один принцип – способ передачи данных. Он может быть синхронным (блокирующим) или асинхронным (управляемый прерываниями). Большинство операций ввода-вывода на физическом уровне являются асинхронными – центральный процессор запускает перенос данных и переключается на другой процесс, пока не придёт прерывание. Пятый принцип – принцип буферизации. Буферизация предполагает копирование данных в больших количествах, а затем уже анализ их содержания. Наконец, шестой принцип – это понятие выделенных устройств и устройств коллективного использования. С некоторыми устройствами, например с дисками, может одновременно работать большое количество пользователей. При этом не должно возникать конфликта интересов пользователя. Другие устройства предоставляются в монопольное пользование, и до тех пор, пока не завершит свою работу один пользователь, устройство не может быть предоставлено другому.

Существует три способа осуществления операций ввода-вывода:

  • программный ввод-вывод. Здесь всю работу осуществляет центральный процессор, который ожидает готовности устройства во время проведения операции;

  • управляемый прерываниями ввод-вывод, при котором центральный процессор начинает передачу ввода-вывода и переключается на другой процесс, пока прерывание от устройства не просигналит ему об окончании операции ввода-вывода;

  • прямой доступ к памяти. При таком способе отдельная микросхема управляет переносом целого блока данных и инициирует прерывание только после окончания переноса блока.