Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Сергеича.docx
Скачиваний:
20
Добавлен:
26.09.2019
Размер:
34.23 Кб
Скачать

Ввод/вывод

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

  1. Устройства, работающие с пользователем (HID) – клавиатура, мышь, монитор.

  2. Устройства, работающие с компьютером (дисковые накопители, контроллеры, датчики преобразователи).

  3. Коммуникационные устройства – устройства для связи с удаленными устройствами (модемы, сетевые платы).

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

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

Существуют существенные различия между устройствами в/в, принадлежащими различным классам и в рамках каждого класса.

Разнообразие устройств в/в приводит к невозможности разработки единого подхода к проблеме в/в как с точки зрения оборудования, так и с точки зрения ОС.

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

На подсистему ввода/вывода возлагаются следующие функции:

  • Организация параллельной работы устройств в/в и ЦП

  • Согласование скоростей обмена и буферизация данных

  • Разделение устройств и данных между процессами (выполняющимися программами)

  • Обеспечение логического интерфейса между устройствами и остальной частью ОС

  • Поддержка широко спектра драйверов с возможностью простого включения в систему нового драйвера

  • Динамическая загрузка и выгрузка драйверов, не отражающихся на работе всей ОС и без дополнительных действий со стороны пользователя.

В настоящий момент операции в/в могут выполняться 4мя способами:

  1. Программируемый в/в (использование контроллера в/в). В этом случае, когда ЦП встречается команда в/в, он посылает соответствующие команды контроллеру в/в. Устройство выполняет действие, но не отсылает процессору ни каких команд о завершении. Процессору приходится самому опрашивать подсистему в/в для проверки завершения операции. Достоинством данного метода является высокая скорость. Недостатком – сложность планирования процессов и большие потери процессорного времени, связанные с опросом состояния контроллера.

  2. в/в, управляемый прерываниями. Такой в/в эффективнее, чем программируемый, т.к. исключается нужное ожидание из-за опроса контроллера.

  3. Прямой доступ к памяти (DMA). В этом случае процессор программирует контроллер ПДП, после чего не участвует в операции в/в. В завершении операции контроллер ПДП отсылает прерывание ЦП.

  4. Спуллинг. В этом случае в ОП организуется виртуальное устройство в/в с системой команд реального устройства. Процессор программирует спуллер, а тот в свою очередь планирует операции в/в, программирует устройства, отслеживает состояние операции. Виртуальное устройство создается для того, чтобы разгрузить процессор.