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

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

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

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

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

Осьвремени всегда рисуется горизонтально, время увеличивается слева направо. Сим­волы Wi(x)a и Ri(x)b означают соответственно, что выполнены запись процес­сом Р в элемент данных х значения а и чтение из этого элемента процессом Р,возвратившее Ь. Мы полагаем, что каждый элемент данных первоначально былинициализирован нулем. Если с процессом доступа к данным не было никакихпроблем, мы можем опустить индексы у символов Wn R.В качестве примера на рис. 6.5, а процесс Р1 осуществляет запись в элементданных Ху изменяя его значение на а. Отметим, что в принципе эта операция,W1(x)aj сначала производит копирование значения в локальное хранилище дан­ных Р1, а затем распространяет его и на другие локальные копии. В нашем примереР2 позже читает значение х из его локальной копии в хранилище и обнаружи­вает там значение а.

Такое поведение характерно для хранилища данных, сохра­няющего строгую непротиворечивость. В противоположность ему, на рис. 6.5, бпроцесс Р2 производит чтение после записи (возможно, лишь на наносекундупозже, но позже) и получает нуль (NIL). Последующее чтение возвращает а. Такоеповедение для хранилища данных, сохраняющего строгую непротиворечивость,некорректно.Р1:Р2:W(x)aR(x)aР1:Р2:W(x)aR(x)NILR(x)aРис. 6.5. Поведение двух процессов, работающих с одним и тем же элементом данных.Горизонтальная ось — время. Хранилище со строгой непротиворечивостью (а).Хранилище без строгой непротиворечивости (б)Итак, когда хранилище данных строго непротиворечиво, все операции записимгновенно замечаются всеми процессами.

Выдерживается абсолютный глобаль­ный порядок по времени. Если элемент данных изменяется, все последующиеоперации чтения, совершаемые с данными, возвращают новое значение, при этомневажно, как скоро после изменения производится чтение, и не имеет значения,какой процесс производит чтение и где он расположен. Соответственно, если про­изводится чтение, оно возвращает это текущее значение, и неважно, как быстропосле этого производится следующая запись.338Глава 6. Непротиворечивость и репликацияВ следующем пункте мы ослабим требования этой модели, заменив абсолют­ное время временными интервалами, и точно определим приемлемое поведениедля конфликтующих операций.6.2.2.

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

Вместо этого читателяучат программировать так, чтобы точный порядок выполнения инструкций (насамом деле, ссылок на память) не имел никакого значения. Если важна очеред­ность событий, следует использовать семафоры или другие операции синхрони­зации. Принятие этого аргумента означает согласие на модель слабой непротиво­речивости.Последовательная непротиворечивость {sequential consistency) — это менее строгая модель непротиворечивости. Впервые она была определена в [250] в контек­сте совместно используемой памяти мультипроцессорных систем. В общем, хра­нилище данных считается последовательно непротиворечивым, если оно удовле­творяет следующему условию: результат любого действия такой же^ как если быоперации {чтения и записи) всех процессов в хранилище данных выполнялись бы внекотором последовательном порядке у причем операции каждого отдельного процесса выполнялись бы в порядке, определяемом его программой.Это определение означает, что когда процессы выполняются параллельно наразличных (возможно) машинах, любое правильное чередование операций чте­ния и записи является допустимым, но все процессы видят одно и то же чередо­вание операций.

Отметим, что о времени никто не вспоминает, то есть никто нессылается на «самую последнюю» операцию записи объекта. Отметим, что в дан­ном контексте процесс «видит» записи всех процессов, но только свои собствен­ные чтения.Итак, время роли не играет, что мы и видим на рис. 6.6. Рассмотрим работучетырех процессов с одним элементом данных х. На рис. 6.6, а сначала процессР1 осуществляет запись W{x)a в элемент х. Позднее (по абсолютному времени)процесс Р2 также осуществляет запись, устанавливая значение хвЬ.

Однако обапроцесса, РЗ и Р4, сначала читают значение b и лишь затем — значение а. Други­ми словами, операция записи процесса Р2 представляется им происходящейраньше записи процесса Р1.6.2. Модели непротиворечивости, ориентированные на данныеР1 W(x)aР2W(x)bРЗР4R(x)bR(x)aR(x)b R(x)a339P1 W(x)aP2W(x)bR(x)bR(x)aP3P4R(x)a R(x)bРис. 6.6. Хранилище данных с последовательной непротиворечивостью (а).Хранилище данных без последовательной непротиворечивости (б)В противоположность происходящему на рис.

6.6, а, на рис. 6.6, б последова­тельная непротиворечивость нарушается, поскольку не все процессы видят оди­наковое чередование операций записи. В частности, для процесса РЗ дело выгля­дит так, что элемент данных сначала принимает значение Ь, а затем — а. С другойстороны, Р4 полагает, что итоговое значение элемента данных — Ь.Модель непротиворечивости, более слабая, чем строгая непротиворечивость,но более сильная, чем последовательная — это линеаризуемость {linearizability).Согласно этой модели операции получают отметку времени, используя глобаль­ные часы, имеющие конечную точность.

Такие часы могут быть реализованы в рас­пределенной системе из предположения, что у процессов имеются слабо синхро­низированные часы, которые обсуждались в предыдущей главе. Пусть tsop{x) —это отметка времени, назначенная операции ОР, которая работает с элементомданных X, причем ОР — это операция чтения {К) или записи (W). Хранилищеданных называется линеаризуемым, если каждая операция имеет отметку време­ни и соблюдается следующее условие [199]: результат всякого действия такойже у как если бы все операции {чтения и записи) всех процессов с хранилищем данных выполнялись бы в некотором последовательном порядке, причем операции каждого отдельного процесса выполнялись бы в этой последовательности в порядкеопределенном в их программах, и, кроме того, если tsopi(x) < tSoP2{x), то операция0Р1(х) в этой последовательности должна предшествовать операции 0Р2(у).Отметим, что линеаризуемое хранилище данных обладает еще и последова­тельной непротиворечивостью.

Разница между ними состоит в том, что при уче­те упорядоченности во внимание принимаются также установки синхронизиро­ванных часов. На практике линеаризуемость используется в первую очередь длясодействия в формальном подтверждении параллельных алгоритмов [199]. До­полнительные ограничения, такие как сохранение упорядоченности в соответст­вии с отметками времени, делает затраты на реализацию линеаризации выше,чем на реализацию последовательной непротиворечивости, как показано в [20].Последовательная непротиворечивость напоминает сериализуемость в тран­закциях, о которой мы говорили в предыдущей главе.

Напомним, что набор па­раллельно выполняющихся транзакций считается сериализуемым, если итоговыйрезультат может быть получен путем выполнения этих транзакций последова­тельно с определенной очередностью. Основная разница заключается в степенидетализации: последовательная непротиворечивость определяется в понятиях опе­раций записи и чтения, а сериализуемость — в понятиях транзакций, которыеобъединяют эти операции в одно целое.340Глава 6. Непротиворечивость и репликацияЧтобы получить более конкретное представление о последовательной непро­тиворечивости, рассмотрим три параллельно выполняюш.ихся процесса, Р1, Р2иРЗ, приведенные в табл.

6.1 [130]. Элементы данных в этом примере представ­лены тремя целыми переменными — х, у и z, которые хранятся в последователь­но непротиворечивом хранилище данных (возможно, распределенном), предна­значенном для совместного доступа. Предположим, что каждая из переменныхинициализирована нулем. В этом примере присвоение соответствует операциизаписи, а инструкция print — одновременным операциям чтения обоих аргумен­тов.

Все инструкции считаются неделимыми.Таблица 6 . 1 . Три параллельно выполняющихся процессаПроцесс Р1х=1;prlnt(y.z):Процесс Р2Процесс РЗz=l:prlnt(x.y):у=1:print(x.z):При выполнении возможны различные варианты чередования. Имея шестьнезависимых выражений, мы получаем 720 (6!) потенциально возможных после­довательностей выполнения, хотя некоторые из них нарушают порядок, задан­ный в программах.

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

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

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