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

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

При выполнении команды описания канала и после завершения каждого обмена слово состояния канала инициализируется константой Minlnt, равной адресу 80000000^. Процесс, первым выполняющий команду обмена, приостанавливается, и проверяется содержимое канала. Если оно соответствует константе Minlnt, то в слово состояния канала заносится дескриптор процесса, а в рабочую область процесса помещаются содержимое указателя W рабочей области данных и адрес передаваемых данных, после чего управление передается диспетчеру для планирования выполнения других процессов.

Если содержимое слова состояния канала не соответствует константе Minlnt, то данный процесс поступает (для квитирования, на "рандеву") вторым. В этом случае словом состояния канала является дескриптор процесса. С помощью дескриптора при вводе находят данные, а при выводе – буфер для данных.

Обмен по каналам осуществляется аналогично, с той разницей, что слова состояния канала имеют фиксированные адреса в памяти от 80000000|б до 8000001 С16 и в процессе обмена данные не пересылаются между областями памяти, а передаются по линии связи в старт- стопном режиме с квитированием байтов.

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

 
< Пред   СОДЕРЖАНИЕ     След >