Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
оссо.docx
Скачиваний:
2
Добавлен:
16.09.2019
Размер:
196.24 Кб
Скачать

Базовые примитивы передачи сообщений в распределенных системах.

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

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

Способы адресации в распределенных системах.

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

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

Буферизуемые и небуферизуемые примитивы.

Небуферизируемый.вызов ПОЛУЧИТЬ сообщает ядру машины, на которой он выполняется, адрес буфера, в который следует поместить пребывающее для него сообщение.

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

Процесс, который заинтересован в получении сообщений, обращается к ядру с запросом о создании для него почтового ящика и сообщает адрес, после все сообщения с данным адресом будут ящике. Такой способ часто называют буферизуемым примитивом.

Надежные и ненадежные примитивы. Сообщения могут теряться. Предположим, что используются блокирующие примитивы. Когда отправитель посылает сообщение, то он приостанавливает свою работу до тех пор, пока сообщение не будет послано.

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

Вызов удаленных процедур (RPC).

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

Характерными чертами вызова локальных процедур являются:

--Асимметричность, то есть одна из взаимодействующих сторон является инициатором;

--Синхронность, то есть выполнение вызывающей процедуры при останавливается с момента выдачи запроса и возобновляется только после возврата из вызываемой процедуры.

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

Проблемы взаимодействия операционных систем в гетерогенных сетях. Гетерогенность. сеть - это совокупность связанных между собой компьютеров. Каждая сеть имеет свой номер на сетевом уровне при выполнении маршрутизации. Когда две или более сетей организуют совместную транспортную службу, то такой режим взаимодействия обычно называют межсетевым взаимодействием internetworking.

Понятие interoperability входит обеспечение согласования верхних уровней стека коммуникационных протоколов, реализуемых серверами и редиректорами операционных систем и некоторыми сетевыми приложениями.

неоднородные (гетерогенные), которые состоят из различных рабочих станций, операционных систем и приложений, а для реализации взаимодействия между компьютерами используют различные протоколы. Разнообразие всех компонентов, из которых строится сеть, порождает еще большее разнообразие структур сетей, получающихся из этих компонентов Если рассмотреть более сложные образования, получающиеся в результате объединения отдельных сетей в единую большую сеть, то становится понятным то множество проблем, связанных с проектированием, администрированием и управлением такой гетерогенной интерсетью. В идеале это объединение неоднородных сетей должно быть прозрачным для пользователя.

Основные подходы к реализации взаимодействия сетей. Основные проблемы при организации взаимодействия различных сетей связаны с тем, что эти сети используют различные стеки коммуникационных протоколов. Общность различных стеков протоколов проявляется только на нижнем уровне- физическом и канальном. В настоящее время туту нет проблем, тк большинство стеков могут истользовать общие протоколы Ethernet?toiken ring. Соединение 2x компов использ на нижнем уровне разные протоколы, а на верхнем одинаковые выполняется аппаратно с помощью маршрутизатора. задачи верхних уровней решить труднее. Из-за большей мощности и их разнообразия. Чем больше функций у протокола, тем больше у него аспектов по которым он отличается от своего собрата по функ-му назначанию.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]