Распределенные алгоритмы
Категория реферата: Рефераты по информатике, программированию
Теги реферата: налоги и налогообложение, план дипломной работы
Добавил(а) на сайт: Ноздрин.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата
13.5 Слабое Завершение 285
Упражнения к Главе 13 289
Раздел 13.1 289
Раздел 13.2 289
Раздел 13.3 289
Раздел 13.4 290
Раздел 13.5 291
14 Отказоустойчивость в Синхронных Системах 291
14.1 Синхронные Протоколы Решения 292
14.1.1 Граница Способности восстановления 293
14.1.2 Алгоритм Византийского вещания 295
14.1.3 Полиномиальный Алгоритм Вещания 298
14.2 Протоколы с Установлением Подлинности 303
14.2.1 Протокол Высокой Степени Восстановления 304
14.2.2 Реализация Цифровых Подписей 307
14.2.3 Схема Подписи ЭльГамаля 308
14.2.4 Схема Подписи RSA 310
14.2.5 Схема Подписи Фиата-Шамира 310
14.2.6 Резюме и Обсуждение 313
14.3 Синхронизация Часов 315
14.3.1 Чтение Удаленных Часов 316
14.3.2 Распределенная Синхронизация Часов 318
Пролог
Распределенные системы и обработка распределенной информации получили значительное внимание в последние несколько лет, и почти каждый университет предлагает, по крайней мере, один курс по разработке распределенных алгоритмов. Существует большое число книг о принципах распределенных систем; см. например Tanenbaum [Tan88] или Sloman and Kramer [SK87], хотя они концентрируются в основном на архитектурных аспектах, а не на алгоритмах.
Было замечено, что алгоритмы – это основа любого применения
компьютеров. Поэтому кажется оправданным посвятить эту книгу полностью
распределенным алгоритмам. Эта книга направлена на то, чтобы представить
большую часть теории распределенных алгоритмов, которые развивались в
течение последних 15 лет. Эта книга может быть использована как учебник
для одно- или двух-семестрового курса по распределенным алгоритмам.
Преподаватель одно-семестрового курса может выбирать темы по своему
усмотрению.
Эта книга также обеспечит полезную вспомогательную и ссылочную информацию для профессиональных инженеров и исследователей, работающих с распределенными системами.
Упражнения. Каждая глава (за исключением глав 1 и 12) оканчивается
списком упражнений и маленьких проектов. Проекты обычно требуют, чтобы
читатель разработал маленькое, но нетривиальное расширение или практическое
решение по материалу главы, и в большинстве случаев у автора нет решения.
Если читатель добьется успеха в разработке этих маленьких проектов, то мне
бы хотелось иметь копию результата.
Список ответов (иногда частичных) у большинству упражнений доступен для преподавателей. Он может быть получен у автора или по анонимному ftp.
Исправления и предложения. Если читатель найдет ошибки и пропуски в этой книге, то пусть информирует автора (предпочтительно по электронной почте). Вся конструктивная критика, включая предложения по упражнения, очень приветствуется.
1 Введение: распределенные системы
Эта глава представляет причины для изучения распределенных алгоритмов, кратко описывая типы аппаратных и программных систем, для которых развивались распределенные алгоритмы. Под распределенной системой мы понимаем все компьютерные системы, где несколько компьютеров или процессоров кооперируются некоторым образом. Это определение включает глобальные компьютерные сети, локальные сети, мультипроцессорные компьютеры, в которых каждый процессор имеет свой собственный управляющий блок, а также системы со взаимодействующими процессами.
Различные типы распределенных систем и причины использования распределенных систем обсуждаются в разделе 1.1. Приводятся некоторые примеры существующих систем. Главная тема этой книги, однако, не то, как эти системы выглядят, или как они используются, но как заставить их работать. Более того, как заставить работать распределенные алгоритмы в этих системах.
Конечно, целиком структуру и функционирование распределенной системы нельзя полностью понять изучением только алгоритмов самих по себе. Чтобы понять такую систему полностью нужно также изучить ее архитектуру и программное обеспечение, то есть, разбиение цельной функциональности по модулям. Также, есть много важных вопросов, относящихся к свойствам языков программирования, используемых для разработки программного обеспечения распределенных систем. Эти вопросы будут обсуждаться в разделе 1.2.
Однако сейчас существует много превосходных книг по распределенным
системам, касающихся архитектурных и языковых аспектов. Смотрите Tanenbaum
[Tan88], Sloman and Kramer [SK87], Bal [Bal90], Coulouris [CD88], Goscinski
[Gos91]. Как уже говорилось, настоящий труд делает упор на алгоритмы
распределенных систем. Раздел 1.3 объясняет, почему разработка
распределенных алгоритмов отличается от разработки централизованных
алгоритмов, там также делается краткий обзор текущего состояния дел в
исследованиях и дается описание остальной части книги.
1.1 Что такое распределенная система?
В этой главе мы будем использовать термин «распределенная система», подразумевая взаимосвязанный набор автономных компьютеров, процессов или
процессоров. Компьютеры, процессы или процессоры упоминаются как узлы
распределенной системы. (В последующих главах мы будем использовать более
техническое понятие, см. определение 2.6.) Будучи определенными как
«автономные», узлы должны быть, по крайней мере, оборудованы своим
собственным блоком управления. Таким образом, параллельный компьютер с
одним потоком управления и несколькими потоками данных (SIMD) не подпадает
под определение распределенной системы. Чтобы быть определенными как
«взаимосвязанными», узлы должны иметь возможность обмениваться информацией.
Так как процессы могут играть роль узлов системы, определение включает программные системы, построенные как набор взаимодействующих процессов, даже если они выполняются на одной аппаратной платформе. В большинстве случаев, однако, распределенная система будет, по крайней мере, содержать несколько процессоров, соединенный коммутирующей аппаратурой.
Более ограничивающие определения распределенных систем могут быть также найдены в литературе. Tanenbaum [Tan88], например, называет систему распределенной, только если существуют автономные узлы прозрачные для пользователей системы. Система распределенная в этом смысле ведет себя как виртуальная самостоятельная компьютерная система, но реализация этой прозрачности требует разработки замысловатых алгоритмов распределенного управления.
1.1.1 Мотивация
Распределенные компьютерные системы могут получить предпочтение среди
ряда систем или их использования бывает просто не избежать, в силу многих
причин, некоторые из которых обсуждаются ниже. Этот список не
исчерпывающий. Выбор распределенной системы может быть мотивирован более
чем одним аргументов приведенным ниже. И некоторые из преимуществ могут
быть получены как полезный побочный эффект при выборе других причин.
Характеристики распределенных систем могут также варьироваться, в
зависимости от причины их существования, но об этом мы поговорим более
детально в разделах с 1.1.2 по 1.1.6.
1) Обмен информацией. Необходимость обмена данными между различными компьютерами возросла в шестидесятых, когда большинство основных университетов и компаний начали пользоваться своими собственными майнфреймами. Взаимодействие между людьми из различных организаций облегчилось благодаря обмену данными между компьютерами этих организаций, и это дало рост развитию так называемых глобальных сетей (WAN). Компьютерная система соединенная в глобальную сеть обычно снабжалась всем что необходимо пользователю: резервными хранилищами данных, дисками, многими прикладными программами и принтерами.
Рекомендуем скачать другие рефераты по теме: педагогические рефераты, реферат машини.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата