Главная » Просмотр файлов » Введение в распределённые алгоритмы. Ж. Тель (2009)

Введение в распределённые алгоритмы. Ж. Тель (2009) (1185665), страница 12

Файл №1185665 Введение в распределённые алгоритмы. Ж. Тель (2009) (Введение в распределённые алгоритмы. Ж. Тель (2009).pdf) 12 страницаВведение в распределённые алгоритмы. Ж. Тель (2009) (1185665) страница 122020-08-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 12)

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

Построение программного кода в значительной мереопределяется особенностями языка программирования и, в первую очередь, те­ми базовыми конструкциями, которые представлены в этом языке. В этой книгенас будут интересовать алгоритмы, а не их программные реализации, поэтомупри описании базовой модели мы будем говорить о состояниях процессов и опереходах из одних состояний в другие (см. §2.1.2), а не о выполнении опера­торов из некоторого заданного множества. Конечно, для описания алгоритмовнужна строгая формальная система обозначений.

В гл. А рассказывается о томпрограммном псевдокоде, который используется в этой книге.В этом параграфе мы обсудим некоторые из основных конструкций, кото­рые присутствуют в реальных языках программирования, предназначенных для15)Carrier sense multiple access with collision detection. — Прим, nepee.38Гл. 1. Введение: распределенные системыпроектирования распределенных систем.

Мы ограничимся лишь кратким опи­санием этих конструкций; их подробное описание, а также примеры реальныхязыков программирования, в которых задействованы эти конструкции, можнонайти, например, в книге Бала [21]. В любом языке, предназначенном для со­здания распределенных прикладных программ, должны быть средства для пред­ставления параллельного выполнения, взаимодействия процессов и недетерминизма. Средства представления параллельных вычислений, безусловно, нужныдля того, чтобы программа для различных узлов позволяла работать этим узламодновременно.

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

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

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

Коммуникация посредством обмена сообщениями позволяет обеспечитькак коммуникацию, так и синхронизацию. А вот совместно используемая па­мять годится только для коммуникации: чтобы синхронизовать работу процес­сов, которые связаны посредством совместно используемой памяти, требуетсяаккуратно применять дополнительные средства.1.2. Архитектура и языки39В тех языках, в которых коммуникация обеспечивается путем обмена сообще­ниями, имеются операторы отправления сообщений send и приема сообщений re­ceive. Связь происходит при выполнении оператора отправления сообщения в од­ном из процессов (этот процесс называется отправителем) и оператора приемасообщения в другом процессе (этот процесс называется получателем). Аргумен­тами операции отправления являются адрес получателя, а также дополнительныеданные, составляющие содержание сообщения.

Эти дополнительные данные ста­новятся доступны получателю, когда выполнится оператор приема сообщения.Таким образом осуществляется взаимосвязь процессов. Операция приема со­общений может завершиться только после того, как будет выполнена операцияотправления сообщения. Таким образом достигается синхронизация. В некоторыхязыках нет операции приема сообщения в явном виде; вместо этого в результатеприема сообщения происходит автоматическая неявная активизация некоторойоперации или процедуры.В языке может поддерживаться синхронный обмен сообщениями; в этомслучае оператор отправления сообщения завершает свое выполнение только по­сле того, как начнется выполнение оператора приема сообщения. Иначе говоря,отправитель остается заблокированным, до тех пор пока не будет принято сооб­щение, и благодаря этому достигается двухсторонняя синхронизация.Сообщения могут отправляться по двухточечной связи, т.

е. одному получате­лю от одного отправителя, или широковещательно, и в этом случае одно и то жесообщение будет доставлено всем получателям. В последнем случае для сооб­щения, которое отправляется целому множеству получателей (хотя и не обяза­тельно всем процессам), используется термин «широковещательное сообщение».Несколько более структурированным базовым средством связи является вызовудаленной процедуры (RPC 16^). Чтобы установить соединение с процессом Ь,процесс а вызывает процедуру, входящую в состав процесса Ь, путем отправ­ления сообщения, содержащего параметры этой процедуры; при этом процесс априостанавливает свое выполнение, до тех пор пока результат вычисления этойпроцедуры не будет возвращен ему с другим сообщением.Альтернативу обмену сообщениями как средству связи составляет совместноиспользуемая память ; один из процессов присваивает значение некоторой пере­менной, а другой процесс считывает это значение.

В этом случае труднее добитьсясинхронизации процессов, потому что считывание нужного значения может про­изойти до того, как оно будет присвоено переменной. Применяя такие средствасинхронизации, как семафоры [60] или мониторы [107], можно реализоватьпередачу сообщений через совместно используемое окружение. И наоборот, припомощи механизма обмена сообщениями можно реализовать виртуальную модельсовместно используемой памяти, хотя это крайне неэффективный способ.Недетерминизм. При выполнении процесса есть много точек, в которых этовыполнение может быть продолжено по разным направлениям. Операция при­ема сообщения часто оказывается недетерминированной, потому что сообщение16iRemote Procedure Call. — Прим, перев.40Гл.

1. Введение: распределенные системыможет быть получено от многих разных отправителей. Недетерминизм можно вы­разить, например, при помощи охраняемых команд, или команд с предохрани­телями. В самом общем виде охраняемая команда представляет собой списокоператоров, каждому из которых предшествует булево выражение (его предо­хранитель). Процесс может продолжить свое выполнение, выбрав любой из техоператоров, предохранитель которого принимает значение true.

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

В этом параграфе мы покажем, что искусство разраба­тывать распределенные алгоритмы очень сильно отличается от умения создаватьцентрализованные алгоритмы. Распределенные и централизованные системы от­личаются в целом ряде аспектов, которые мы обсудим в § 1.3.1; в качестве иллю­страции в § 1.3.2 мы приведем несколько примеров. Поэтому изучение распреде­ленных алгоритмов — это отдельная область научных исследований (см. § 1.3.3),введением в которую может служить эта книга. В §1.4 говорится о том, какиецели ставил перед собой автор книги, и приводится перечень результатов, вклю­ченных в эту книгу.1.3.1.

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

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

Характеристики

Тип файла
PDF-файл
Размер
18,19 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6376
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее