Всего на сайте:
282 тыс. 988 статей

Главная | Автоматизация производства

Распределенные программы. Набор модулей «клиент-сервер» - это распределенная программа, реализую..  Просмотрен 1397

Набор модулей «клиент-сервер» - это распределенная программа, реализующая сетевую службу. Распределенная программа – это программа из нескольких взаимодействующих частей, причем каждая часть выполняется на отдельном компьютере.

 

Рис. 4. Взаимодействие частей распределенного приложения

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

Связь типа «точка-точка»

Наиболее простой случай связи – непосредственное соединение двух устройств физическим каналом, которое называют связью «точка-точка». Примером может служить взаимодействие компьютера с периферийным устройством. Для осуществления этого взаимодействия в компьютере есть порт (внешний интерфейс), набор проводов и правила обмена по этим проводам (протокол обмена). Примером интерфейса, используемого в компьютере, является последовательный интерфейс RS-232C, через который подключаются мышь, модем и другие устройства. Со стороны компьютера интерфейс реализуется совокупностью аппаратных и программных средств: контроллером периферийного устройства и специальной программой, управляющей этим контроллером, которую часто называют драйвером. Со стороны периферийного устройства интерфейс реализуется аппаратным устройством управления, но встречаются и программные устройства управления.

Рассмотрим связь компьютера с периферийным устройством.

 

Рис.

5. Связь компьютера с периферийным устройством

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

Рассмотрим работу нашей схемы. Приложение, которому требуется передать данные с периферийного устройства, выставляет запрос на операцию ввода/вывода операционной системе. В запросе указываются: адрес данных в ОЗУ компьютера, идентифицирующая информация о периферийном устройстве, операция, которую надо выполнить. Получив запрос, операционная система запускает соответствующий драйвер, передавая ему адрес выводимых данных. Дальнейшие действия по выполнению вывода со стороны компьютера реализуются совместно драйвером и контроллером периферийного устройства. Контроллер периферийного устройства работает под управлением драйвера. Контроллер принимает команды и данные от драйвера в свой внутренний порт, выполняющий роль буфера, затем происходит преобразование команд и данных в соответствии с форматами, понятными устройству управления периферийного устройства, и выдает их на внешнюю линию связи через внешний порт. Контроллер поддерживает набор простых команд по управления периферийным устройством, а драйвер определяет последовательность их выполнения, заставляя периферийное устройство совершать сложные действия по некоторому алгоритму. Например, контроллер принтера поддерживает команды: печать символа, перевод строки, возврат каретки.

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

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

Обычно драйвер выполняет более сложные функции: подсчет контрольной суммы последовательности передаваемых байтов, анализ состояния периферийного устройства, проверка правильности выполнения команды и др. Драйвер контроллера периферийного устройства должен поддерживать две команды:

1. поместить данные из ОЗУ в контроллер;

2. извлечь данные из контроллера и поместить в ОЗУ.

Предыдущая статья:Вычислительные сети Следующая статья:Простейший случай взаимодействия двух компьютеров
page speed (0.0161 sec, direct)