Главная » Просмотр файлов » Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы)

Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (1162619), страница 89

Файл №1162619 Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы)) 89 страницаЭ. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (1162619) страница 892019-09-20СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Эта последовательность допустима для хранилища с причиннойнепротиворечивостью, но недопустима для хранилища со строгойили последовательной непротиворечивостьюРассмотрим теперь второй пример. На рис. 6.8, а мы видим, что W2{x)h по­тенциально зависит от W1{x)a, поскольку b может быть результатом вычис­лений, в которые входит значение, прочитанное операцией R2{x)a. Две операциизаписи связаны причинно-следственной связью, а значит, все процессы должнынаблюдать их в одинаковом порядке.

Таким образом, рис. 6.8, а некорректен.С другой стороны, на рис. 6.8, б операция чтения из процесса Р2 убрана, и теперь344Глава 6. Непротиворечивость и репликацияW1(x)a и W2(x)b стали параллельными операциями записи. Хранилище с при­чинное! непротиворечивостью не требует, чтобы параллельные операции записиобладали глобальной упорядоченностью, и потому рис. 6.8, б корректен.Р1: W(x)aР2:РЗ:Р4:R(x)aW(x)bR(x)bR(x)aR(x)aR(x)bP1: W(x)aP2:P3:P4:W(x)bR(x)bR(x)aR(x)aR(x)bРис. 6.8, Нарушение причинной непротиворечивости хранилища (а).

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

Позже мыеще вернемся к использованию векторных отметок времени для определенияпричинно-следственной связи.6.2.4. Непротиворечивость FIFOв случае причинно-следственной непротиворечивости допустимо, чтобы на раз­личных машинах параллельные операции записи наблюдались в разном порядке,но операции записи, связанные причинно-следственной связью, должны иметьодинаковый порядок выполнения, с какой бы машины ни велось наблюдение.Следующим шагом в ослаблении непротиворечивости будет освобождение от по­следнего требования. Это приведет нас к непротиворечивости FIFO (FIFO consis­tency), которая подчиняется следующему условию: операции записи, осуществ­ляемые единичным процессом, наблюдаются всеми остальными процессами в томпорядке, в котором они осуществляются, но операции записи, происходящие вразличных процессах, могут наблюдаться разными процессами в разном порядке.Непротршоречивость FIFO в случае распределенных систем с совместно ис­пользуемой памятью называют также непротиворечивостью PRAM (PRAM con­sistency).

Она описана в [268]. Сокращение PRAM происходит от Pipelined RAM(конвейерная оперативная память), потому что запись, производимая одним про­цессом, может быть конвейеризована, в том смысле, что процесс не должен те­рять скорость, ожидая окончания одной операции записи, чтобы начать другую.Сравнение непротиворечивости FIFO с причинной непротиворечивостью иллю­стрирует рис.

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

Если из­ложить это другими словами, в этой модели все операции записи во всех процес­сах являются параллельными. Эта модель может быть реализована просто путемименования каждой операции парой (процесс, очередной помер) и осуществлени­ем операций записи каждого из процессов в порядке их номеров.P1:W(x)aР2:РЗ:Р4:R(x)aW(x)bW(x)cR(x)bR(x)aR(x)a R(x)cR(x)b R(x)cРис. 6.9. Допустимая последовательность событий для непротиворечивости FIFOРассмотрим вновь три процесса из табл. 6.1, опираясь на этот раз на непроти­воречивость FIFO вместо последовательной непротиворечивости. При условиинепротиворечивости FIFO различные процессы могут наблюдать выполнениеинструкций в различном порядке (табл. 6.3). Так, например, в варианте 1 пока­зано, как выглядит последовательность событий с точки зрения процесса Р1,в варианте 2 — с точки зрения процесса Р2, а в варианте 3 — с точки зрения про­цесса РЗ (наблюдаемые результаты создают инструкции, выделенные жирнымшрифтом).

В условиях последовательной непротиворечивости три различныхпредставления были бы недопустимы.Таблица 6.3. Очередность выполнения инструкций с точки зрения трех процессов,представленных в табл. 6.1ВариантИнструкцииПечать123х=1:х=1:y=l;print(y,z):у=1:print(x.z):у=1:prlnt(x.z);z=l:prlnt(x.z);prlnt(y.z):printCx.y);z=l:z=l:x=l;prlnt(x.y):prlnt(x.y):prlnt(y.z):001001Если мы объединим результаты трех процессов, то получим итоговый резуль­тат 001001, что, как мы говорили раньше, в условиях последовательной непроти­воречивости невозможно.

Основное различие между последовательной непроти­воречивостью и непротиворечивостью FIFO состоит в том, что в первом случае,хотя порядок выполнения инструкций не регламентирован, все процессы, покрайней мере, с ним согласны. Во втором же случае им нет нужды ни с чем со­глашаться. Разные процессы могут наблюдать операции в разном порядке.Иногда непротиворечивость FIFO может приводить к результатам, проти­воречащим здравому смыслу. В примере, взятом из [174], предполагается, чтоцелые переменные х и у инициализируются нулями. Кажется, что в ситуации,346Глава 6. Непротиворечивость и репликацияпредставленной в табл.

6.4, возможны три результата: будет прерван процесс Р1,будет прерван процесс Р2, ни один из процессов не будет прерван (если первымипроизойдут обе операции присваивания). Однако в случае непротиворечивостиFIFO могут быть прерваны оба процесса. Такой результат получится в случае,если Р1 осуществит чтение R1(y)0 до обнаружения выполненной процессом Р2записи W2(y)1j а Р2 осуществит чтение R2(x)0 до обнаружения выполненнойпроцессом Р1 записи W1(x)1. При последовательной непротиворечивости суще­ствует шесть допустимых вариантов чередования выражений, и ни один из нихне ведет к прерыванию обоих процессов.Таблица 6.4. Два параллельных процессаПроцесс Р1Процесс Р 2х=1:if (у == 0) k1ll(P2):У=1:1f(x= =0)k1ll(Pl):6.2.5. Слабая непротиворечивостьХотя непротиворечивость FIFO и дает большую производительность, чем болеестрогие модели непротиворечивости, для многих приложений она остается из­лишне строгой, поскольку требует, чтобы операции записи одного процесса ото­всюду наблюдались в одном и том же порядке.

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

Это можно сделать, введя так называемую пе­ременную синхронизации {synchronization variable). Переменная синхронизации Sимеет только одну ассоциированную с ней операцию, synchronize(S), которая син­хронизирует все локальные копии хранилища данных. Напомним, что процесс Росуществляет операции только с локальной копией хранилища. В ходе синхро­низации хранилища данных все локальные операции записи процесса Р распро­страняются на остальные копии, а операции записи других процессов — на ко­пию данных Р.Используя переменные синхронизации для частичного определения непроти­воречивости, мы приходим к так называемой слабой непротиворечивости {weakconsistency) [130].

Модель слабой непротиворечивости имеет три свойства."¥ Доступ к переменным синхронизации, ассоциированным с хранилищем дан­ных, производится на условиях последовательной непротиворечивости.6.2. Модели непротиворечивости, ориентированные на данные3474 С переменной синхронизации не может быть произведена ни одна опера­ция до полного и повсеместного завершения предшествующих ей опера­ций записи.4^ С элементами данных не может быть произведена ни одна операция дополного завершения всех операций с переменными синхронизации.Первый пункт гласит, что все процессы могут наблюдать за всеми операция­ми над переменными синхронизации, которые с точки зрения этих процессовпроисходят в одинаковом порядке. Другими словами, если процесс Р1 вызываетоперацию synchronlze(Sl) в то же самое время, когда процесс Р2 вызывает опера­цию synchron1ze(S2), результат будет точно таким же, как если бы операцияsynchronlze(Sl) была вызвана раньше операции synchronize(S2), или наоборот.Второй пункт указывает на то, что синхронизация очищает конвейер.

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

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

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

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