Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курс_лекций_ОС_П+И_2012.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
413.07 Кб
Скачать

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

Одна из важнейших функций операционной системы состоит в управлении всеми устройствами ввода-вывода компьютера. Операционная система должна подавать устройствам команды, перехватывать прерывания, обрабатывать ошибки, обеспечивать простой и удобный интерфейс между устройствами и остальной частью системы. Интерфейс, на сколько это возможно. Должен быть одинаковым для всех устройств. Для управления устройствами ввода-вывода (внешними) устройствами в состав ОС входит подсистема программного обеспечения ввода-вывода.

Устройства ввода – вывода

Понятие устройство ввода – вывода включает в себя само физическое устройство и программное обеспечение, которое поддерживает данное устройство. Устройства ввода – вывода делятся на два класса: блочные устройства и символьные устройства .

Блочные (блок – ориентированные) устройства принимают и хранят информацию в виде блока данных фиксированного размера (от 512 байт до 32 кбайт), причем каждый блок имеет свой адрес. Каждый блок данных может быть самостоятельно прочитан или записан. Обмен данными проводится блоками. Примером таких устройств являются жесткие диски, дискеты, компакт – диски.

Символьные (байт – ориентированные) устройства принимают или передают данные в виде потока байт без какой-либо блочной структуры. Пример – принтер, плоттер, сетевой адаптер.

Часть устройств имеет свою собственную внутреннюю память, в которую данные поступают блоками, а обрабатываются посимвольно.

Устройства ввода-вывода обычно состоят из механической и электронной части. Электронный компонент называется контролер устройства или адаптер. Контроллер часто имеет вид печатной платы, которая вставляется в слот расширения. В контроллер поступает поток бит (электрических сигналов), биты объединяются в байты. Поток бит имеет заголовок и контрольную сумму.

заголовок

данные

Конт. сумма

Работа контроллера заключается в преобразовании потока бит в блок байтов, который обычно собирается в буфере контроллера. Затем подсчитывается контрольная сумма, и проверяется с указанной в заголовке потока, если она совпадает, то блок считается считанным без ошибок, и данные передаются далее. Если обнаружена ошибка, то делается попытка исправления ошибки, либо выдается сообщение об ошибке.

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

Существует два альтернативных способа организации доступа к управляющим регистрам и буферам данных устройств ввода-вывода.

  1. Каждому управляющему регистру назначается номер порта ввода – вывода, соответствие устанавливается при инсталляции устройства;

д анные

о перативная управл. регистр

память

команды состояние

порты

ввода-вывода

  1. Системному регистру назначается адрес в оперативной памяти, как правило, фиксированный – отображаемый на адресное пространство ввод – вывод

ОП

П амять устройства регистр

данные

Также существуют гибридные схемы, с отображаемыми на адресное пространство буферами данных и отдельными портами ввода-вывода. Широко применяются в компьютерах на базе процессора Pentium, в которых портов ввода-вывода, адресное пространство от 640кб до 1 мб зарезервировано под буферы устройств ввода-вывода.

Для управления устройствами ввода-вывода (внешними) устройствами в состав ОС входит подсистема программного обеспечения ввода-вывода.

При создании программного обеспечения ввода-вывода учитывались следующие принципы:

  1. Независимость устройств – означает возможность создания программы, в которой можно получить доступ к устройству ввода-вывода без предварительного указания конкретного устройства. Например, программа, которая читает данные из файла, должна работать с файлом на дискете, жестком диске или компакт-диске.

  2. Единообразное именование – имя файла или устройства должно быть просто текстовой строкой или целым числом и никоим образом не зависеть от физического устройства.

  3. Обработка ошибок – ошибки должны обрабатывать либо контроллер, либо драйвер.

  4. Способ передачи данных – синхронный (блокирующий) или асинхронный (управляемый прерыванием). Большинство операций ввода-вывода на физическом уровне являются асинхронными - центральный процессор запускает передачу данных и занимается другой задачей. Тем, чтобы операции ввода-вывода, выполняющиеся как асинхронные, выглядели как блокирующие в программах пользователя, занимается ОС.

  5. Буферизация – данные, которые поступают с устройства, часто сохраняются в буфере, а затем направляются программе – получателю. Применяется для согласования скоростей, например при воспроизведении звука, или получения данных по сети.

Программное обеспечение ввода-вывода обычно организуется в виде четырех уровней. У каждого уровня есть своя задача, которую он должен выполнять, и строго определенные средства взаимодействия (интерфейс) с соседними уровнями.

Состав подсистемы программного обеспечения ввода – вывода

П рограммное обеспечение ввода – вода на уровне пользователя

У стройство – независимое программное обеспечение (менеджер ввода – вывода)

Д райверы устройств

О бработчик прерываний

Аппаратура