Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Простейший случай взаимодействия двух компьютеров






В самом простом случае связь между двумя компьютерами может быть реализована через последовательный интерфейс RS-232C, который использовали и для связи компьютера с периферийным устройством. При этом здесь происходит взаимодействие двух программ, выполняемых на каждом из компьютеров. Программа приложения, работающая на одном компьютере, не может получить непосредственный доступ к ресурсам другого компьютера. Ей остается просить об этом программу, работающую на втором компьютере. Эти просьбы представляются в виде сообщений, передаваемых по каналу связи между компьютерами. Сообщения могут содержать команды на выполнение действий, данные, например содержимое файла.

 

Рис. 6. Взаимодействие двух компьютеров

Пусть пользователю, работающего с редактором на компьютере А, необходимо прочитать часть файла, расположенного на диске компьютера В. Предположим, что компьютеры соединены по кабелю связи через COM-порты, реализующие интерфейс RS-232C (такое соединение часто называют нуль-модемным). Драйвер COM-порта компьютера А со своим контроллером работают так же, как и в случае связи с периферийным устройством. Роль устройства управления периферийного устройства выполняют контроллер и драйвер COM-порта компьютера В. Драйвер компьютера А периодически опрашивает признак завершения приема в своем контроллере, устанавливаемый контроллером при правильно выполненной передаче данных, и при его появлении считывает принятый байт из порта контроллера в оперативную память, делая его доступным для прикладной программы компьютера А. В некоторых случаях драйвер может вызываться асинхронно по прерываниям от контроллера. Аналогично реализуется передача байта информации от компьютера А к компьютеру В. Таким образом, в распоряжении приложений компьютеров А и В есть средства побайтового обмена данными.

Но в нашем случае задача сложнее. Во-первых, нужно передавать часть файла; во-вторых, интерпретирующие приложение А данные находятся не в ОЗУ компьютера В, а на его периферийном устройстве. Приложение компьютера А должно сформировать приложение-запрос для приложения компьютера В. В запросе необходимо указать имя файла, тип операции (чтение), смещение, размер нужной части файла. Это сообщение помещается в буфер ОЗУ. Для передачи сообщения компьютеру В, приложение компьютера А обращается к драйверу COM-порта компьютера А и сообщает ему адрес в ОЗУ с сообщением-запросом. Затем по описанной выше схеме драйвер и контроллер COM-порта компьютера А, взаимодействуя с драйвером и контроллером COM-порта компьютера В, передает сообщение-запрос компьютеру В. Компьютер В, получив сообщение, обращается к периферийному устройству в соответствии со схемой: ОС – драйвер ПУ – контроллер ПУ – устройство управления ПУ. Считанные с диска данные приложение компьютера В помещает в буферную область ОЗУ, с помощью драйвера COM-порта компьютера В передает их по каналу связи в компьютер А, где они попадают в распоряжение приложения А.

Описанные функции приложения компьютера А могла бы выполнить сама программа текстового редактора, но включать такие функции в состав каждого приложения нерационально. Выгоднее иметь специальный программный модуль, который будет выполнять функции формирования сообщений-запросов к удаленной машине и приема результатов для всех приложений. Такой модуль называется клиентом. На стороне компьютера В должен работать другой программный модуль – сервер, постоянно ожидающий прихода запроса на удаленный доступ к файлам на диске этого компьютера. Сервер, приняв запрос, обращается к локальному файлу с участием локальной операционной системы. Удобной функцией клиентской программы является способность отличать запрос к удаленному файлу от запроса к локальному файлу. Если клиентская программа умеет это делать, то приложения не должны заботиться о том, с каким файлом они работают. Клиентская программа сама распознает и перенаправляет запрос к удаленному компьютеру. Отсюда и название, часто используемое для клиентской части операционной системы, – редиректор.

Рассмотрим схему взаимодействия клиента и сервера с приложениями и локальной операционной системой.

 

Рис. 7. Взаимодействие программных компонентов при связи двух компьютеров

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

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.