logo search
Лекции по операционным системам

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

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

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

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

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

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

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

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

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

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

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

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

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