Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзамену по информатике.docx
Скачиваний:
35
Добавлен:
14.04.2019
Размер:
806 Кб
Скачать
☆

40 Операционные системы. Организация ввода-вывода.

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

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

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

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

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

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

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

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