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

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

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

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

Возможна ли при подсчете поколений ссылок такая ситуация, когда объектбудет сочтен мусором и уничтожен, поскольку невозможно определить, к ка­кому поколению относится этот объект, хотя на него еще имеются ссылки?21. Возможно ли при подсчете поколений ссылок, чтобы значение G[i] оказалосьменьше нуля?22. При работе со списком ссылок, если после посылки команды ping процессу Рне был получен ответ, процесс удаляется из списка ссылок на объект.

Будетли правильным удалить этот процесс?23. Опишите очень простой способ определения момента достижения шага ста­билизации при сборке мусора путем трассировки по [255].Глава 5Синхронизация5.1. Синхронизация часов5.2. Логические часы5.3.Глобальное состояние5.4. Алгоритмы голосования5.5. Взаимное исключение5.6. Распределенные транзакции5.7. ИтогиВ предыдущих главах мы рассматривали процессы и связь между процессами.Хотя связь и очень важна, это еще не все. Не менее важны вопросы взаимодейст­вия и синхронизации процессов друг с другом.

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

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

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

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

Распределенныетранзакции делают нечто похожее, но посредством совершенствования механиз­ма контроля за параллельным выполнением. Взаимные исключения и транзак­ции будут обсуждаться в отдельных разделах.Существуют распределенные алгоритмы на любой «вкус и цвет» для распре­деленных систем самых разных типов. Множество примеров (и дополнительнойинформации) можно найти в [17, 421, 497]. Более формальный подход к изо­билию существующих алгоритмов проводится в [277].5 . 1 .

Синхронизация часовв централизованных системах время определяется однозначно. Если процессунеобходимо время, он организует системный вызов, и ядро выдает ему ответ. Ес­ли процесс Л запрашивает время, а немного позже то же самое делает процесс J3,значение, которое получит 5, будет больше (или, возможно, равно) значению, по­лученному А. Оно не может быть меньше. В распределенных системах достиже­ние договоренности о времени не столь тривиально.Для того чтобы понять, к чему могут привести проблемы определения гло­бального времени, достаточно одного примера с программой make операционнойсистемы UNIX.

Обычно в UNIX большие программы разбиваются на несколькофайлов исходного текста, и внесение изменений в один из этих файлов требуетповторной компиляции не всех, а только одного из этих файлов. Такой подходзначительно повышает производительность работы программистов. Например,если программа содержит 100 файлов, а исправлен был только один, достаточноперекомпилировать только этот файл.Обычная методика применения программы make проста. Когда программистзаканчивает свою работу, изменив все файлы с текстом программы, он запускаетпрограмму make, которая проверяет время последней модификации всех файловс исходным текстом и всех объектных файлов программы.

Если файл с исход­ным текстом input.c имеет время последней модификации 2151, а соответствую­щий ему объектный файл input.o — 2150, make считает, что input.c со времени соз­дания input.o был изменен, и перекомпилирует его. С другой стороны, еслиoutput.c имеет время последней модификации 2144, а output.o — 2145, компиля­ция не требуется. Таким образом, программа make проверяет все файлы с исход­ным текстом в поисках тех из них, которые нуждаются в повторной компиляции,вызывая при необходимости компилятор.Представим теперь, что произойдет, если в распределенной системе отсутст­вует глобальное соглашение о времени. Предположим, что output.o, как и ранее.276Глава 5.

Синхронизацияимеет отметку времени изменения 2144, а output.c после создания был модифи­цирован, но получил отметку времени 2143, потому что часы на машине, где оннаходится, немного запаздывают, как это показано на рис. 5.1. Тогда программаmake не станет вызывать компилятор. В результате исполняемый файл програм­мы будет содержать смесь объектных файлов из старых и новых исходных фай­лов. При исполнении это легко может привести к ошибкам, и программист сой­дет с ума, пытаясь понять, что в его коде не так.Компьютер,на которомвыполняетсякомпиляцияКомпьютер,на которомвыполняетсяредактирование214421452146фI,^s.^ Создан файл output.o214212147I<Время по локальнымчасам214321442145Ф11^ \Создан файл output.c<Время по локальнымчасамРис.

5 . 1 . Когда каждая из машин имеет собственные часы, событие, происшедшее позжедругого, может быть отнесено к более раннему времениПоскольку время лежит в основе человеческого мышления, а эффект от отсут­ствия синхронизации может быть, как мы сейчас показали, столь печален, изуче­ние синхронизации можно начать с простого вопроса: Можно ли синхронизиро­вать все часы в распределенной системе?5.1.1. Физические часыПочти все компьютеры имеют встроенные периодические процессы для подсчетавремени. Несмотря на постоянное использование для этих устройств названия«часы», они не являются часами в обычном смысле этого слова.

Пожалуй, болееправильным словом было бы таймер (timer). Таймер компьютера — это обычноособым образом обработанный кристалл кварца. Находясь под напряжением,этот кристалл колеблется с постоянной частотой, которая зависит от свойств крис­талла, таких как способ разрезания и величина напряжения.

С каждым кристал­лом ассоциированы два регистра — счетчик (counter) и регистр хранения (holdingregister). Каждое колебание кристалла уменьшает счетчик на единицу. Когда зна­чение счетчика достигает нуля, генерируется прерывание и счетчик перезагружа­ется из регистра хранения. Таким образом, можно запрограммировать таймер ге­нерировать прерывания 60 раз в секунду или с любой другой желаемой частотой.Каждое прерывание вызывается одним тиком таймера (clock tick).Когда система загружается в первый раз, она обычно просит пользователя вве­сти дату и время, которые пересчитываются в число тиков, начиная с определен­ной стартовой даты, и сохраняются в памяти. Многие компьютеры имеют специ­альную микросхему CMOS RAM с питанием от аккумулятора, в результате в нихнет необходимости вводить время при каждой загрузке.

После каждого тика тай­мера процедура обработки прерывания добавляет единицу к хранящемуся в па­мяти времени. Таким образом, часы (программные) сохраняют верное время.5.1. Синхронизация часов277Для единственного компьютера и единственных часов маленькая неточностьэтих часов не вызовет проблемы. Поскольку все процессы в машине используютодни и те же часы, они будут внутренне непротиворечивы. Так, например, еслифайл input.c имеет отметку времени 2151, а файл input.o — 2150, make перекомпи­лирует этот файл, даже если часы отстают на два деления и истинное время со­ставляет соответственно 2153 и 2152.

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

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

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

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