Сделай Сам Свою Работу на 5

Карта ввода/вывода. Прямой доступ к портам ввода/вывода в Windows и Linux.

Управление вводом-выводом данных в ЭВМ

Одной из систем, имеющихся в любой ЭВМ общего назначения, является аппаратура ввода-вывода данных, состоящая из каналов (процессоров обмена), устройств управления периферийными устройствами (ПУ) и самих ПУ. ПУ разделяют на 2 основных группы: устройства ввода-вывода и запоминающие устройства (ЗУ).

В составе любой ОС существует специальная подсистема, управляющая аппаратурой ввода-вывода. Основные задачи, решаемые с помощью этой подсистемы, состоят в следующем: подсистема должна обеспечить пользователей удобным и понятным интерфейсом для обращения к ПУ как в однопользовательском, так и в многопользовательском режимах работы ЭВМ; при этом часто выдвигается требование на достижение унифицированного интерфейса для доступа к различным по своим физическим характеристикам ПУ, для чего реализуется принцип независимости от устройств; в мультипрограммном режиме работы систем разделения времени подсистема должна обеспечить такое планирование процесса ввода-вывода данных, чтобы достичь максимального перекрытия во времени работы центрального процессора (ЦП) и аппаратуры ввода-вывода.

Состав подсистемы ОС для устройств ввода-вывода и аппаратура ввода-вывода существенно отличаются для различных ЭВМ, но можно выделить и единое концептуальное начало, свойственное всем подсистемам. Аппаратуру ввода-вывода можно рассматривать как совокупность аппаратурных процессоров, которые способны работать параллельно друг относительно друга, а также относительно ЦП. На таких процессорах выполняются так называемые внешние процессы. Например, для печатающего устройства процесс может состоять из совокупности действий, обеспечивающих перевод каретки, продвижение бумаги на одну строку, печать любого заданного числа символов на строке.

Внешние процессы взаимодействуют с программными процессами, выполняемыми ЦП и оперативной памятью (ОП). Существенно, что скорость выполнения программного процесса может на несколько порядков превосходить скорость внешнего процесса.



Подсистема ОС для управления вводом-выводом с точки зрения программных процессов является интерфейсом с ПУ. Различают три типа действий с ПУ:

1. операции чтения-записи данных;

2. операции управления ПУ;

3. операции по проверке состояния ПУ.

Методы управления ПУ

Используют в основном 2 метода управления ПУ - прямой и косвенный.

1. Прямой метод управления

 

Рис.1. Обобщенная схема прямого управления

В этом случае существует непосредственная связь между ЦП и ПУ; на ЦП при этом возлагается обязанность непосредственного управления работой ПУ. Поэтому в состав команд ЦП должны быть специальные команды по инициированию работы ПУ, проверке готовности его к работе, останову его, записи в ПУ или считыванию из него и т.д. Существенно, что если ЦП обратится к ПУ для записи или считывания данных в момент, когда ПУ занято выполнением ранее заданной операции, то выполнение команды ЦП блокируется до освобождения ПУ. Этой блокировки можно избежать, если в ПУ ввести триггер занятости (ТрЗ), опрашиваемый ЦП; если ТрЗ (флажок) занят при опросе ЦП, то программист может запрограммировать ЦП на продолжение выполнения программы, если это возможно для созданной им программы.

Например, в ЭВМ IBM PC с микропроцессором (МП) 80х86 существуют кокоманда in для чтения из порта ПУ данных (байта) в МП и команда out для записи в порт данных, поступающих из МП.

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

2. Косвенный метод управления

Рис.2. Обобщенная схема косвенного управления

 

Канал является специальным процессором, который, получив определенную команду от ЦП, затем ведет обмен самостоятельно по своей программе. При реализации этого метода ЦП, канал и ПУ работают параллельно. Для синхронизации параллельной работы ЦП и канала используют различные средства:

1. флажок занятости канала, опрашиваемый ЦП;

2. вместо того, чтобы ЦП периодически опрашивал этот флажок, можно использовать запись команд для канала в специально выделенные ячейки ОП, откуда канал их сосчитает и начнет выполнять после завершения предыдущей операции (такой принцип использован в ЕС ЭВМ и в ЭВМ IBM 360/370);

3. прерывание от канала, поступающее в ЦП и возникающее при завершении каналом заданной ему операции или при его ошибке. Наиболее часто используется именно прерывание от канала и при этом происходит включение программы-обработчика прерывания, входящей в состав ядра ОС, причем очевидно, что этот процесс требует определенных временных затрат на работу ЦП. В том случае, когда объем данных, участвовавших в обмене, мал и составляет, например, не более 10 байт, расходы времени ЦП на подготовку и завершение этого обмена при использовании метода косвенного управления могут превысить аналогичные расходы ЦП при использовании метода прямого управления, т.к. в последнем случае отсутствует необходимость выполнения как самого прерывания, так и программы его обработки.



©2015- 2020 stydopedia.ru Все материалы защищены законодательством РФ.