![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Компьютеры, Программирование
Программное обеспечение
Синхронизация в распределенных системах |
К вопросам связи процессов, реализуемой путем передачи сообщений или вызовов RPC, тесно примыкают и вопросы синхронизации процессов. Синхронизация необходима процессам для организации совместного использования ресурсов, таких как файлы или устройства, а также для обмена данными. В однопроцессорных системах решение задач взаимного исключения, критических областей и других проблем синхронизации осуществлялось с использованием общих методов, таких как семафоры и мониторы. Однако эти методы не совсем подходят для распределенных систем, так как все они базируются на использовании разделяемой оперативной памяти. Например, два процесса, которые взаимодействуют, используя семафор, должны иметь доступ к нему. Если оба процесса выполняются на одной и той же машине, они могут иметь совместный доступ к семафору, хранящемуся, например, в ядре, делая системные вызовы. Однако, если процессы выполняются на разных машинах, то этот метод не применим, для распределенных систем нужны новые подходы. Алгоритм синхронизации логических часов В централизованной однопроцессорной системе, как правило, важно только относительное время и не важна точность часов. В распределенной системе, где каждый процессор имеет собственные часы со своей точностью хода, ситуация резко меняется: программы, использующие время (например, программы, подобные команде make в U IX, которые используют время создания файлов, или программы, для которых важно время прибытия сообщений и т.п.) становятся зависимыми от того, часами какого компьютера они пользуются. В распределенных системах синхронизация физических часов (показывающих реальное время) является сложной проблемой, но с другой стороны очень часто в этом нет никакой необходимости: то есть процессам не нужно, чтобы во всех машинах было правильное время, для них важно, чтобы оно было везде одинаковое, более того, для некоторых процессов важен только правильный порядок событий. В этом случае мы имеем дело с логическими часами. Введем для двух произвольных событий отношение "случилось до". Выражение a ® b читается "a случилось до b" и означает, что все процессы в системе считают, что сначала произошло событие a, а потом - событие b. Отношение "случилось до" обладает свойством транзитивности: если выражения a ® b и b ® c истинны, то справедливо и выражение a ® c. Для двух событий одного и того же процесса всегда можно установить отношение "случилось до", аналогично может быть установлено это отношение и для событий передачи сообщения одним процессом и приемом его другим, так как прием не может произойти раньше отправки. Однако, если два произвольных события случились в разных процессах на разных машинах, и эти процессы не имеют между собой никакой связи (даже косвенной через третьи процессы), то нельзя сказать с полной определенностью, какое из событий произошло раньше, а какое позже. Ставится задача создания такого механизма ведения времени, который бы для каждого события а мог указать значение времени Т(а), с которым бы были согласны все процессы в системе. При этом должно выполняться условие: если а ® b , то Т(а) &l ; Т(b).
Кроме того, время может только увеличиваться и, следовательно, любые корректировки времени могут выполняться только путем добавления положительных значений, и никогда - путем вычитания. Рассмотрим алгоритм решения этой задачи, который предложил Lampor . Для отметок времени в нем используются события. На рисунке 3.6 показаны три процесса, выполняющихся на разных машинах, каждая из которых имеет свои часы, идущие со своей скоростью. Как видно из рисунка, когда часы процесса 0 показали время 6, в процессе 1 часы показывали 8, а в процессе 2 - 10. Предполагается, что все эти часы идут с постоянной для себя скоростью. В момент времени 6 процесс 0 посылает сообщение А процессу 1. Это сообщение приходит к процессу 1 в момент времени 16 по его часам. В логическом смысле это вполне возможно, так как 6&l ;16. Аналогично, сообщение В, посланное процессом 1 процессу 2 пришло к последнему в момент времени 40, то есть его передача заняла 16 единиц времени, что также является правдоподобным. Рис. 3.6. Синхронизация логических часов а - три процесса, каждый со своими собственными часами; б - алгоритм синхронизации логических часов Ну а далее начинаются весьма странные вещи. Сообщение С от процесса 2 к процессу 1 было отправлено в момент времени 64, а поступило в место назначения в момент времени 54. Очевидно, что это невозможно. Такие ситуации необходимо предотвращать. Решение Lampor 'а вытекает непосредственно из отношений "случилось до". Так как С было отправлено в момент 60, то оно должно дойти в момент 61 или позже. Следовательно, каждое сообщение должно нести с собой время своего отправления по часам машины-отправителя. Если в машине, получившей сообщение, часы показывают время, которое меньше времени отправления, то эти часы переводятся вперед, так, чтобы они показали время, большее времени отправления сообщения. На рисунке 3.6,б видно, что С поступило в момент 61, а сообщение D - в 70. Этот алгоритм удовлетворяет сформулированным выше требованиям. Алгоритмы взаимного исключения Системы, состоящие из нескольких процессов, часто легче программировать, используя так называемые критические секции. Когда процессу нужно читать или модифицировать некоторые разделяемые структуры данных, он прежде всего входит в критическую секцию для того, чтобы обеспечить себе исключительное право использования этих данных, при этом он уверен, что никакой процесс не будет иметь доступа к этому ресурсу одновременно с ним. Это называется взаимным исключением. В однопроцессорных системах критические секции защищаются семафорами, мониторами и другими аналогичными конструкциями. Рассмотрим, какие алгоритмы могут быть использованы в распределенных системах. Централизованный алгоритм Наиболее очевидный и простой путь реализации взаимного исключения в распределенных системах - это применение тех же методов, которые используются в однопроцессорных системах. Один из процессов выбирается в качестве координатора (например, процесс, выполняющийся на машине, имеющей наибольшее значение сетевого адреса). Когда какой-либо процесс хочет войти в критическую секцию, он посылает сообщение с запросом к координатору, оповещая его о том, в какую критическую секцию он хочет войти, и ждет от координатора разрешение.
Если в этот момент ни один из процессов не находится в критической секции, то координатор посылает ответ с разрешением. Если же некоторый процесс уже выполняет критическую секцию, связанную с данным ресурсом, то никакой ответ не посылается; запрашивавший процесс ставится в очередь, и после освобождения критической секции ему отправляется ответ-разрешение. Этот алгоритм гарантирует взаимное исключение, но вследствие своей централизованной природы обладает низкой отказоустойчивостью. Распределенный алгоритм Когда процесс хочет войти в критическую секцию, он формирует сообщение, содержащее имя нужной ему критической секции, номер процесса и текущее значение времени. Затем он посылает это сообщение всем другим процессам. Предполагается, что передача сообщения надежна, то есть получение каждого сообщения сопровождается подтверждением. Когда процесс получает сообщение такого рода, его действия зависят от того, в каком состоянии по отношению к указанной в сообщении критической секции он находится. Имеют место три ситуации: Если получатель не находится и не собирается входить в критическую секцию в данный момент, то он отсылает назад процессу-отправителю сообщение с разрешением. Если получатель уже находится в критической секции, то он не отправляет никакого ответа, а ставит запрос в очередь. Если получатель хочет войти в критическую секцию, но еще не сделал этого, то он сравнивает временную отметку поступившего сообщения со значением времени, которое содержится в его собственном сообщении, разосланном всем другим процессам. Если время в поступившем к нему сообщении меньше, то есть его собственный запрос возник позже, то он посылает сообщение-разрешение, в обратном случае он не посылает ничего и ставит поступившее сообщение-запрос в очередь. Процесс может войти в критическую секцию только в том случае, если он получил ответные сообщения-разрешения от всех остальных процессов. Когда процесс покидает критическую секцию, он посылает разрешение всем процессам из своей очереди и исключает их из очереди. Алгоритм oke Ri g Совершенно другой подход к достижению взаимного исключения в распределенных системах иллюстрируется рисунком 3.7. Все процессы системы образуют логическое кольцо, т.е. каждый процесс знает номер своей позиции в кольце, а также номер ближайшего к нему следующего процесса. Когда кольцо инициализируется, процессу 0 передается так называемый токен. Токен циркулирует по кольцу. Он переходит от процесса к процессу 1 путем передачи сообщения по типу "точка-точка". Когда процесс получает токен от своего соседа, он анализирует, не требуется ли ему самому войти в критическую секцию. Если да, то процесс входит в критическую секцию. После того, как процесс выйдет из критической секции, он передает токен дальше по кольцу. Если же процесс, принявший токен от своего соседа, не заинтересован во вхождении в критическую секцию, то он сразу отправляет токен в кольцо. Следовательно, если ни один из процессов не желает входить в критическую секцию, то в этом случае токен просто циркулирует по кольцу с высокой скоростью. Сравним эти три алгоритма взаимного исключения.
Видео по запросу от кабельных сетей – расширение их слабых предложений в духе «плата-за-просмотр»: они предоставляют десятки наименований фильмов, вышедших несколько месяцев назад, однако это не очень большой шаг вперед. «Вы можете получить доступ лишь к узкому слою контента, так как только подборщики контента решают, что смогут увидеть зрители», – говорит Олсоп.[9-8] Edge TV, напротив, работает не на их, а на наших машинах. Место нескольких скромных хранилищ кабельных компаний занимает распределенная система из сотен тысяч или даже миллионов устройств, находящихся в домах пользователей. Такая распределенная сеть позволяет не только хранить больший объем данных, но и избавляет от ограничений дискового пространства и пропускной способности, которые характерны для централизованной сети. Таким образом, можно хранить и передавать миллионы часов видео. Иногда передача будет мгновенной, в других случаях загрузка будет происходить постепенно. В подобной децентрализованной системе наиболее востребованные материалы, вроде свежих выпусков шоу, идущих в прайм-тайм, и новых хитовых фильмов, появятся на множестве тысяч жестких дисков, в то время как невостребованные произведения вроде «Моя мама – машина»[67], по всей видимости, можно будет найти только на нескольких десятках жестких дисков. Все решит рынок
1. Исследование индуцированной шумом синхронизации в системах с дискретным временем
2. Автоматизированная система распределения мест и оценок качества олимпиадных заданий
3. Рациональное распределение ресурсов как один из важнейших аспектов системы финансового менеджмента
4. Интегрированные системы управления распределенной корпорацией
5. Разработка системы синхронизации положения траверсы гидравлического пресса усилием 75000тс
9. Организация распределения продукции в логистической системе
11. Система распределения доходов
12. Происхождение Солнечной системы и Земли
13. Вселенная, Галактика и Солнечная система
14. Происхождение и развитие солнечной системы
15. Солнечная система в центре внимания науки
17. Солнечная система (Солнце, Земля, Марс)
18. Строение солнечной системы
20. Тросовые системы в космосе
21. Анализ устойчивости и поддержание орбитальной структуры космической системы связи
25. Бактериальная система секреции белков первого типа
28. Транспортная система (Восточного Казахстана)
29. Шпора по РПС (Распределение Производственных Сил) (Шпаргалка)
30. Геодезические опорные сети. Упрощенное уравнивание центральной системы
31. Расчет показателей разработки элемента трехрядной системы
32. Банковская система Франции
33. Изменения, произошедшие в финансовой системе России, в переходе к рыночной экономике
37. Налоговая система РФ на современном этапе
41. Планирование в системе государственного управления
42. Система таможенных органов РФ
43. Расходы бюджетной системы на социальные цели
44. Налоговые системы развитых стран и их сравнение с налоговой системой России
45. Доходы бюджетной системы Российской Федерации
46. Задачи, основные функции и система ОВД
47. Становление системы социальной защиты государственных служащих в Российской Федерации
48. Природа и система административного права
49. Место обязательственного права в системе гражданского права
50. Система юридических лиц в гражданских правоотношениях
51. Письменные доказательства в системе доказательств гражданского процесса
52. Правовые системы современности. Мусульманское право
53. Возникновение и система развития права Канады
58. Государственная служба Приказной системы управления
59. Характеристика налоговой системы Великобритании
60. Предмет, источники и система конституционного права зарубежных стран
61. Система законодательства в области СМИ Германии
62. Финансовая система Республики Узбекистан
63. Судебная власть и судебная система РК
64. Федеральная резервная система и политика НацБанка РБ: сравнительный анализ
65. Банковская система Республики Казахстан: проблемы и перспективы.
66. Избирательная система РФ (избирательное право, виды избирательных систем, избирательный процесс)
67. Разделение властей в системе государственных органов
68. Задачи, система и функции органов юстиции Российской Федерации
73. Основные виды налогов в системе налогового законодательства РФ
74. Налоговая система (шпаргалка)
75. Анализ современных моделей реформирования налоговой системы
76. Анализ налоговой системы России. Некоторые аспекты
77. Налоговые системы зарубежных стран
78. Современная налоговая система РФ
79. Налоговая система Кыргызстана
80. Понятие, назначение и правовая основа паспортной системы Российской Федерации
81. Избирательная система в Алтайском крае
82. Конституционное право в системе права Республики Беларусь
83. Изменения в таможенно-тарифной системе России
85. Особенности системы законодательства федеративного государства
89. Трудовой договор (контракт) в системе трудовых правоотношений и кадровая работа на предприятиях
90. Работник, коллектив, предприятие в новой системе трудовых правоотношений
92. Политическая система государства /на англ. языке/
93. Вольво, система охлаждения
94. Система образования (Республики Казахстан)
96. Новое в словообразовательной системе современного французского языка