□ Логический интерфейс (называемый также протоколом) — это набор информационных сообщений определенного формата, которыми обмениваются два устройства или две программы, а также набор правил, определяющих логику обмена этими сообщениями.
На рис. 2.2 мы видим интерфейсы двух типов: компьютер—компьютер и компьютер—
периферийное устройство.
| Компьютер АПротоколКомпьютер В |
|---|
| Интерфейс компьютер—компьютерИнтерфейс компьютер—принтерРис. 2.2. Совместное использование принтера в компьютерной сети |
□ Интерфейс компьютер—компьютер позволяет двум компьютерам обмениваться информацией. С каждой стороны он реализуется парой:
О аппаратным модулем, называемым сетевым адаптером, или сетевой интерфейсной картой (Network Interface Card, NIC);
О драйвером сетевой интерфейсной карты — специальной программой, управляющей работой сетевой интерфейсной карты.
□ Интерфейс компьютер—периферийное устройство (в данном случае интерфейс компьютер—принтер) позволяет компьютеру управлять работой периферийного устройства (ПУ). Этот интерфейс реализуется:
О со стороны компьютера — интерфейсной картой и драйвером ПУ (принтера), подобным сетевой интерфейсной карте и ее драйверу;
О со стороны ПУ — контроллером ПУ (принтера), обычно представляющий собой аппаратное устройство2, принимающее от компьютера как данные, например байты информации, которую нужно распечатать на бумаге, так и команды, которые он отрабатывает, управляя электромеханическими частями периферийного устройства, например выталкивая лист бумаги из принтера или перемещая магнитную головку диска.
Для того чтобы решить задачу организации доступа приложения, выполняемого на компьютере Л, к ПУ через сеть, давайте, прежде всего, посмотрим, как управляет этим устройством приложение, выполняемое на компьютере В, к которому данное ПУ подключено непосредственно (см. рис. 2.2).
1. Пусть приложению В в какой-то момент потребовалось вывести на печать некоторые данные. Для этого приложение обращается с запросом на выполнение операции ввода-вывода к операционной системе (как правило, драйвер не может быть запущен на выполнение непосредственно приложением). В запросе указываются адрес данных, которые необходимо напечатать (адрес буфера ОП), и информация о том, на каком периферийном устройстве эту операцию требуется выполнить.
2. Получив запрос, операционная система запускает программу — драйвер принтера. С этого момента все дальнейшие действия по выполнению операции ввода-вывода со стороны компьютера реализуются только драйвером принтера и работающим под его управлением аппаратным модулем — интерфейсной картой принтера без участия приложения и операционной системы.
3. Драйвер принтера оперирует командами, понятными контроллеру принтера, такими, например, как «Печать символа», «Перевод строки», «Возврат каретки». Драйвер в определенной последовательности загружает коды этих команд, а также данные, взятые из буфера ОП, в буфер интерфейсной карты принтера, которая побайтно передает их по сети контроллеру принтера.
4. Интерфейсная карта выполняет низкоуровневую работу, не вдаваясь в детали, касающиеся логики управления устройством, смысла данных и команд, передаваемых ей драйвером, считая их однородным потоком байтов. После получения от драйвера очередного байта интерфейсная карта просто последовательно передает биты в линию связи, представляя каждый бит электрическим сигналом. Чтобы контроллеру принтера стало понятно, что начинается передача байта, пере&передачей первого бита информационная карта формирует стартовый сигнал специфической формк, а после передачи последнего информационного бита — столовый сигнал. Эти сигналы синхронизируют передачу байта. Контроллер, опознав стартовый бит, начинает принимать информационные биты, формируя из них байт в своем приемном буфере. Помимо информационных битов карта может передавать бит контроля четности для повышения достоверности обмена. Прикорректно выполненной передаче в буфере принтера устанавливается соответствующий признак.
5. Получив очередной байт, контроллер интерпретирует его и запускает заданную операцию принтера. Закончив работу по печати всех символов документа, драйвер принтера сообщает операционной системе о выполнении запроса, а та, в свою очередь, сигнализирует об этом событии приложению.
2
Встречаются и программно-управляемые контроллеры, например, для управления современными принтерами, обладающими сложной логикой.