ГЛАВА 2 МЕТОДЫ РАСПРЕДЕЛЕННОЙ ОБРАБОТКИ ДАННЫХ. ОСНОВНЫЕ ПОНЯТИЯ.
Среди всех изменений, происшедших в области связанной с научными
исследованиями вычислительной техники, некоторые в особенности повлияли на
изменение функций рабочих станций, а именно:
- рост мощи станций, оснащаемых
все более дружественными человеко-машинными интерфейсами ;
- появление
процессоров, предназначенных для специальных видов обработки данных
(изображения, текста и т.п.);
- расширение возможностей в области хранения
информации;
- появление средств, облегчающих доступ к ресурсам,
распределенным по сети.
мультимашинная архитектура, мы вводим
основные понятия, на которых строятся возможности применения ресурсов нескольких
машин:
- распределение или разделение;
- возможность взаимодействия;
-
прозрачность;
- модель "клиент-сервер".
2.2. Мультипроцессоры и мультимашины
архитектуры. Мы увидим, что это отличие не всегда легко заметно, так как технический прогресс ведет к размыванию границ.
с фоннеймановской
архитектурой были установлены дополнительные процессоры. Подобная
мультипроцессорная архитектура появилась в начале 1960 г.г. (Burroughs 6000 в
1963 г., IBM/360-67 в 1966 г., ...), гораздо раньше, чем были разработаны
вычислительные сетеи. Системы, разрабо-анные для мультипроцессорных машин,
называются параллельными операционными системами (Parallel Operating Systems).
Мультипроцессорные машины подразделяются на два семейства:
- жестко
связанные или жестко соединенные мультипроцессоры (tightly coupled), в которых
процессоры связаны через общую память (рис.2.1.);
- слабо связанные или слабо
соединенные мультипроцессоры (loosely coupled), в которых процессоры связаны
через средство связи (как правило, шину), отличное от общей памяти (рис.2.2.).
Необходимо отметить, что эти виды архитектуры могут сочетаться между собой: каждый процессор может обладать локальной памятью и делить с остальными общую память. Кроме того, в настоящее время процессоры обладают одним или двумя уровнями кэширования...

Рис2.1. Жестко
связанные мультипроцессоры

Рис 2.2.Слабо
связанные процессы
архитектурой (рис.2.3.), то есть совокупности полносоставных компьютеров (процессоры, память, вводы-выводы...), связанных в сеть. В этом случае речь идет о распределенных вычислительных системах.

Рис 2.3.Мультимашинная
организация
Различия заключаются в
следующем:
- в случае распределенных систем (мультимашинная архитектура)
связь между процессорами осуществляется относительно медленно (сеть), а системы
независимы;
- в случае параллельных систем (мультипроцессорная архитектура)
связь осуществляется быстро (шина), а системы относительно сильно связаны между
собой.
применяться как при мультимашинной, так и при мультипроцессорной организации. Впрочем, существует несколько вариантов UNIX для мультипроцессоров (на Cray, на Sun...), в которых сосуществуют совершенно различные средства управления распределением по сети и управления связью между процессорами через шину. В данной книге мы рассматриваем использование средств, преназначенных для применения ресурсов, распределенных между различными машинами, доступ к которым возможен через сеть. Мы не рассматриваем ни средства, направленные исключительно на использование мультипроцессорной архитектуры, ни средства, предназначенные для работы в режиме реального времени, так как целью нашего исследования является совместная работа нескольких машин.
Трудно провести различие между терминами "распределенный", "разделенный" и "совместный".
- данные и обработка являются "распределенными" или "разделенными", то есть, выполнение операции требует использования нескольких процессоров;
- термин "совместный" (cooperatif) является более специфическим: диалог между двумя прикладными системами с целью осуществления некой задачи.
как способность систем к совместному использованию данных или к совместной работе с использованием стандартных интерфейсов. Она подразумевает возможность связи между машинами, изготовленными различными фирмами. Возможность взаимодействия подразумевает понятие "открытых систем",то есть систем, способных к коммуникации в неодно- родной среде.
2.4. Что называют распределенной обработкой данных
С точки зрения хронологии, взаимодействие между программами последовательно
приобретало следующие формы:
- обмен: программы различных систем посылают
друг другу сообщения (как правило, файлы);
- разделение: имеется
непосредственный доступ к ресурсам нескольких машин (совместное пользование
файлом, например);
- совместная работа: машины играют в реализации программы
взаимодополняющие роли.
Рассмотрим пример, иллюстрирующий эту эволюцию. Речь пойдет о проектировании
в области механики; традиционный подход заключается в следующем:
-
построение "проволочной модели" (maillage) (графического представления геометрии
физической модели) на рабочей станции;
- перенос на ЭВМ Cray файла модели,
вводящего код вычислений;
- результаты расчетов, выполненных на ЭВМ Cray
переносятся на рабочую станцию и обрабатываются графическим постпроцессором.
Этот способ обладает следующими недостатками:
- обмен данными
производится посредством переноса файлов с одной машины на другую;
возможности рабочей
станции, а некоторые расчеты, осуществляемые на последней, лучше было бы
выполнить на машине Cray.
Для того, чтобы избавиться от этих неудобств, необходимо перейти от
вышеназванных вариантов решения задач к применению методики совместной работы,
на основе понятия "прозрачности". Пользователь будет видеть только одну машину
(свою станцию) и только одну прикладную программу. Распределенная обработка
данных, таким образом, представляет собой программу, выполнение которой
осуществляется несколькими системами, объединенными в сеть. Как правило,
расчетная часть программы выполняется на мощном процессоре, а визуальное
отображение выводится на рабочей станции с улучшенной эргономичностью.
Разделение опирается на модель "клиент-сервер", к которой мы еще вернемся. Этот
вид обработки данных организуется по принципу треугольника (рис.2.4.):
-
пользователь обладает рабочей станцией;
- решение задач требует обращения к
устройству обработки данных (спецпроцессору, например) и к серверу данных, и все
это прозрачно для пользователя.

Рис 2.4. Треугольная
организация вычислительного процесса
2.5. Цели распределенной обработки данных
Целью распределенной обработки данных является оптимизация использования ресурсов и упрощение работы пользователя (что может вылиться в усложнение работы разработчика). Каким образом ?
- Оптимизация использования ресурсов.
Термин ресурс, в данном случае используется в самом широком смысле: мощность обработки (процессоры), емкость накопителей (память или диски), графические возможности (2-х или 3-х мерный графический процессор, в сочетании с растровым дисплеем и общей памятью), периферийные устройства вывода на бумажный но- ситель (принтеры, плоттеры). Эти ресурсы редко бывают собраны на одной машине: ЭВМ Cray обладает мощными расчетными возможностями, но не имеет графических возможностей, а также возможностей эффективного управления данными. Отсюда принцип совместной работы различных систем, используя лучшие качества каждой из них, причем пользователь имеет их в распоряжении при выполнении только одной программы.
- Упрощение работы пользователя.
Действительно, распределенная обработка данных позволяет:
- повысить
эффективность посредством распределения данных и видов обработки между машинами,
способными наилучшим образом управлять ими;
- предложить новые возможности,
вытекающие из повышения эффективности;
- повысить удобство пользования.
Пользователю более нет необходимости разбираться в различных системах и
осуществлять перенос файлов.
Основные недостатки этого подхода заключаются в следующем: - зависимость от характеристик и доступности сети. Программа не сможет работать, если сеть повреждена. Если сеть перегружена, эффективность уменьшается, а время реакции систем увеличивается. - проблемы безопасности. При использовании нескольких систем увеличивается риск, так как появляется зависимость от наименее надежной машины сети.
C другой стороны, преимущества весьма ощутимы:
- распределение и
оптимизация использования ресурсов. Это основная причина внедрения
распределенной обработки данных;
- новые функциональные возможности и
повышение эффективности при решении задач;
- гибкость и доступность. В
случае поломки одной из машин, ее пытаются заменить другой, способной выполнять
те же функции.
2.6. Распределение и параллелизм
Следует отметить, что распределение (или разделение) не яв- ляется синонимом параллелизма. Распределение видов обработки состоит в том, чтобы поручить их машинам, наилучшим образом приспособленным к этому. Параллелизм подразумевает понятие одновременности обработки. Распределение позволяет иногда проводить параллельную обработку. Мы вернемся к этому в следующих главах при рассмотрении средств обработки данных.
Прозрачностью называется возможность доступа к ресурсам или услугам, не зная
их местонахождения. С точки зрения прикладного программиста, речь идет о возмож-
ности использования одинаковых примитивов доступа, независимо от местонахождения
службы или необходимого ресурса. У пользователя имеется только один прикладной
интерфейс и он видит перед собой только один компьютер. С более концептуальной
точки зрения, прозрачность определяется как возможность видеть систему как
единый организм, а не как собрание независимых друг от друга объектов. Различают
несколько разновидностей прозрачности, в частности:
- прозрачность доступа: к
локальным или удаленным объектам можно обращаться посредством одинаковых
операций;
- прозрачность местонахождения: объекты должны быть доступны без
необходимости знать их физическое местоположение;
- прозрачность
одновременности доступа: несколько пользователей должны иметь возможность
одновременного доступа к данным, без нежелательных последствий;
-
прозрачность копирования: должна существовать возможность копировать данные из
файлов или из других объектов в целях повышения эффективности или обеспечения
доступности незаметно для пользователей;
- прозрачность при неисправностях:
пользователи или прикладные программы должны иметь возможность завершить свои
задания, даже в случае неисправностей аппаратной или программной части;
-
прозрачность при динамических изменениях конфигурации: система может динамически
менять свою конфигурацию, в целях повышения эффективности и в зависимости от
нагрузки.
Клиентом называется объект,запрашивающий доступ к службе или ресурсу. Сервер - это объект несущий службу или обладающий ресурсом.
Клиент и сервер могут находиться на одной и той же машине (использование локальных механизмов коммуникации) или на двух разных машинах (использование сетевых средств). В рамках нашего исследования, клиентом и сервером являются два процесса UNIX, связанные между собой через механизм IPC (Interprocess Communication), локальный или сетевой (рис.2.5.).

Рис 2.5. Модель
клиент-сервер
Клиент и сервер не играют симметричную роль. Процесс-сервер инициализируется и, затем, переходит в состояние ожидания запросов от возможных клиентов. Как правило, процесс-клиент запускается в интерактивном режиме и посылает запросы серверу. Сервер исполняет полученный запрос, причем это может подразумевать диалог с клиентом, а может и нет. Затем сервер вновь переходит в состояние ожидания других клиентов.
Различают два типа процессов-серверов:
- итеративные серверы:
процесс-сервер сам обрабатывает ответ. Этот тип сервера используется в случае,
если время обработки весьма непродолжительно или если сервер используется
единственным клиентом.
- параллельные серверы: процесс-сервер вызывает для
обработки вызова клиента другой процесс . Этот процесс создается системным
вызовом fork (). Порождающий процесс не блокируется по окончании выполнения
порожденного процесса и может, таким образом, ждать другие запросы.
С каждым сервером связан служебный (сервисный) адрес. Клиент посылает запросы по этому адресу. В зависимости от вида осуществляемой обработки данных, раз- личают серверы без состояния (stateless) и серверы с состоянием (statefull). Сервер без состояния не сохраняет о своих клиентах никакой информации. Сервер с состоянием сохраняет информацию о состоянии своих клиентов после каждого запроса. В случае разрыва связи, повторный запуск проще у серверов без состояния, но иногда это может привести к случайным срабатываниям.
Речь идет о средствах, предлагаемых средой TCP/IP (в ожидании появления
средств OSI). На рис.2.6. показаны эти средства в архитектуре TСP/IP. В
дальнейшем в данной работе анализируются:
- библиотека сокетов глава 4;
-
библиотека TLI (Transport Level Interface) глава 5;
- NFS (Network File
System) глава 6;
- RFS (Remote File Sharing) глава 7;
- X Window глава
8;
- XDR (eXternal Data Representation) глава 9;
- RPC (Remote Procedure
Call) фирмы Sun глава 10;
- NCS (Network Computing System) глава 11.
обработку
существует. Мы ввели основные понятия, о которых в дальнейшем будет рассказано
более подробно:
- распределенная, или разделенная, или совместно выполняемая
программа: выполнение программы двумя и более машинами, объединенными в
сеть;
- пользователю безразлично местоположение различных ресурсов,
необходимых для успешного выполнения программы, которую он выполняет со своего
рабочего места;
- модель "клиент-сервер" (initiator-responder по терминологии
OSI): клиентом является процесс, запрашивающий услуги у сервера, причем этот
второй процесс может находиться на том же компьютере, а может и нет.

Интерфейссокет или
TLI:интерфейс выше TCP или UDP
XDR:представление данных
RPC,NCS: вызов
удаленных процедур
NFS,RFS:управление распределением файлов
X11:работа с
окнами
Рис 2.6. Средства и услуги TCP
[Назад] [Содержание] [Вперед]
| Главная |