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