Распределенные вычисления 12-13x

advertisement
НИУ ВШЭ – Нижний Новгород
Программа дисциплины «Распределенные вычисления»
для направления 09.03.04 – Программная инженерия
Правительство Российской Федерации
Нижегородский филиал
Федерального государственного автономного образовательного
учреждения высшего профессионального образования
"Национальный исследовательский университет
"Высшая школа экономики"
Факультет бизнес-информатики и прикладной математики
Программа дисциплины
«Распределенные вычисления»
для направления 09.03.04 – Программная инженерия
подготовки бакалавра
Адаптировано из программы НИУ ВШЭ Пермь
Автор программы: Замятина Елена Борисовна, e_zamyatina@mail.ru
Лядова Людмила Николаевна, lnlyadova@gmail.com
Сухов Александр Олегович, sukhov.psu@gmail.com
Автор адаптации:
Кащеев Н.И..к.т.н., профессор, e-mail: nkasheev@hse.ru
Одобрена на заседании кафедры «Базовая кафедра МЕРА» «___»____________ 2015г.
Зав. кафедрой Н.И. Кащеев
Рекомендована секцией УМС «Прикладная математика»
Председатель В.А. Калягин
Утверждена УМС НИУ ВШЭ – Нижний Новгород
Председатель В.М. Бухаров
«___»____________ 2015г.
«___»_____________2015г.
Нижний Новгород, 2015 г.
НИУ ВШЭ – Нижний Новгород
Программа дисциплины «Распределенные вычисления»
для направления 09.03.04 – Программная инженерия
Область применения и нормативные ссылки
Настоящая программа учебной дисциплины устанавливает минимальные требования к знаниям и умениям студента и определяет содержание и виды учебных занятий и
отчетности.
Программа предназначена для преподавателей, ведущих данную дисциплину,
учебных ассистентов и студентов направления подготовки 09.03.04 «Программная инженерия», изучающих дисциплину «Распределенные вычисления».
Программа разработана в соответствии с:
·
ОС ФГАОУ ВПО НИУ ВШЭ по направлению 09.03.04 «Программная
инженерия»;
·
Учебным планом университета по направлению 09.03.04 «Программная
инженерия», утвержденным в 2012г.
Цели освоения дисциплины
Курс «Распределенные вычисления» предназначен для изучения принципов организации распределенной обработки данных. Распределенная обработка данных предполагает, что вычисления проводятся в гомогенной или гетерогенной многопроцессорной
или мультикомпьютерной вычислительной среде.
Компетенции обучающегося, формируемые в результате освоения
дисциплины
В результате освоения дисциплины студент должен знать:
При изучении курса студенты должны выполнить индивидуальные задания, которые
заключаются в реализации распределенных алгоритмов, реализации простой агентной
системы и применении современных технологий, которые поддерживают Cloudвычисления. Знание основ данной дисциплины абсолютно необходимо для со-
временного специалиста в области прикладной математики и информатики
Студент должен уметь:
Курс призван повысить общую эрудицию студентов, показать место и значение методов и средств создания моделей распределенных ИС в различных областях.
В результате освоения дисциплины студент осваивает следующие компетенции:
Компетенция
Понимание основных концепций, принципов, теорий и
фактов, связанных с информатикой
Умение применять основы
информатики и программирования к проектированию, конструированию и тестированию программных продуктов
Код по ОС
НИУ
ПК-1
ПК-10
Дескрипторы – основные признаки освоения
(показатели достижения
результата)
Студент демонстрирует понимание основ
функционирования
сети
Использует опыт и
интуицию, использует
современные компьютерные технологии
при выполнении зада-
Формы и методы обучения,
способствующие формированию и развитию компетенции
Лекции и практические
работы
Лекции и практические
работы
2
НИУ ВШЭ – Нижний Новгород
Программа дисциплины «Распределенные вычисления»
для направления 09.03.04 – Программная инженерия
Компетенция
Код по ОС
НИУ
Дескрипторы – основные признаки освоения
(показатели достижения
результата)
Формы и методы обучения,
способствующие формированию и развитию компетенции
ний учебной дисциплины
Место дисциплины в структуре образовательной программы
Настоящая дисциплина относится к циклу общепрофессиональных дисциплин,
обеспечивающих подготовку бакалавра. Курс опирается на следующие курсы «Архитектура вычислительных систем» и «Программирование». Курс играет важную роль в развитии понимания будущими специалистами программирования и функционирования компьютерных систем и сетей.
Тематический план учебной дисциплины
Трудоемкость дисциплины – 5 зачетных единиц.
Наименование тем
1.
1.1.
1.2.
1.3.
1.4.
1.5.
Всего
часов
Лекции
Практические занятия
Самостоятельная
работа
Теоретические предпосылки создания распределенных систем обработки
информации
Причины для перехода к распределенной обработке данных
Определение распределенной
системы
14
2
2
10
1
Классификация ВС, которые соответствуют этому определению
Компоненты распределенной
вычислительной системы
Примеры распределенных систем
14
2
2
10
14
2
2
10
1.6.
1.7.
2.
2.1.
2.2.
2.3.
Задачи распределенных систем
Связь пользователей с ресурсами
Прозрачность и открытость
Масштабируемость
3
НИУ ВШЭ – Нижний Новгород
Программа дисциплины «Распределенные вычисления»
для направления 09.03.04 – Программная инженерия
3.
Достоинства и недостатки распределенных систем различных классов
3.1.
Классификация распределенных
вычислительных систем
Характеристики локальных и
глобальных вычислительных систем
Характеристики многопроцессорного компьютера как набора
процессоров, объединённых
коммуникационной системой
3.2.
3.3.
3.4.
3.5.
3.6.
14
2
2
10
Вычислительные системы корпоративного уровня
4.
Особенности разработки программного обеспечения для распределенных
систем
4.1.
Особенности реализации распределенного программного обеспечения для глобальных сетей, исходя из следующих характеристик
4.2
Проблемы реализации программного обеспечения для локальных сетей. Проблемы распределённого
управления процессами, выполняющимися на разных узлах:
4.3.
Проблемы разработки программного обеспечения для много процессорных компьютеров
14
2
2
10
4.4.
Проблемы разработки программного обеспечения для взаимодействующих процессов
5.
5.1.
Особенности реализации распределенных алгоритмов
14
2
Отличие распределенных систем
от централизованных компьютерных систем:
2
10
4
НИУ ВШЭ – Нижний Новгород
Программа дисциплины «Распределенные вычисления»
для направления 09.03.04 – Программная инженерия
5.2.
Определение распределенного алгоритма.Система переходов
5.3.
Синхронизация времени.
6.
Распределенные интеллектуальные системы на основе агентов
6.1.
Определение и особенности программного агента.
.
Координация, кооперация, коммуникация агентов.
Реактивные и интеллектуальные
агенты.
Примеры применения многоагентных систем.
7.
7.1.
7.2.
7.3.
7.4.
7.5.
8.
7.6.
7.7.
7.8.
14
2
2
10
14
2
2
10
Волновые алгоритмы распространения информации
7Определение волнового алгоритма.
14
2
2
10
2
10
Распределенная обработка данных
Распределенные
базы
данных, понятия, характеристики, классическая распределенная
система БД. Общее с распределенными файловыми системами.
Критерии разделения данных между узлами сети.
Определение Дэйта, двенадцать свойств Дэйта.
.
Кольцевой волновой алгоритм.
Древовидный волновой алгоритм.
1. Алгоритм голосования.
2. Алгоритм «Эхо».
3. Алгоритм Финна.
7.9.
9.
9.1
9.2
9.3
9.4
PIF-алгоритм
Волновые алгоритмы обхода сайтов
Алгоритм обхода полного графа.
Алгоритм обхода тора.
Алгоритм обхода гиперкуба.
14
2
Алгоритм Тарри
5
НИУ ВШЭ – Нижний Новгород
Программа дисциплины «Распределенные вычисления»
для направления 09.03.04 – Программная инженерия
10
10.1
10.2
10.3
11
Алгоритмы выбора лидера
Алгоритм смещения.
Алгоритм для древовидных струтур.
10
2
8
10
5
5
10
5
5
Алгоритм для кольцевых структур (Алгоритм Ле-Ланна, Алгоритм Чанга Робертса).
Технология Net.Remoting
1
Назначение среды .NET Remoting.
1Сценарии использования среды
11.2
Remoting.
2
11.3 Виды классов среды CLR с точки
1
зрения
Remoting.
11.4
Преимущества
и
недостатки
1Remoting.
11.5
Архитектура среды Remoting. Схе1ма выполнения удаленного вызова.
11.6
Основные сущности Remoting: со1общения, каналы, посредники, тру1бы.
11.7 Применение Remoting в распределен1 ных системах. Соответствие требованиям, предъявляемым крас1 пределенным системам.
11.8
Преимущества
и
недостатки
1
Remoting.
11.9 Использование Remoting
в1 .NET Framework.
11.1
12
Технология WCF
12.1
Основные принципы технологии
WCF.
12.2
WCF-сервисы и клиенты. Параметры точки доступа.
6
НИУ ВШЭ – Нижний Новгород
Программа дисциплины «Распределенные вычисления»
для направления 09.03.04 – Программная инженерия
13
13.1
13.2
13.3
13.4
13.5
GRID-технология. Основные понятия. Типы GRID-систем.
Примеры использования GRID
Понятие GRID-технологии. Приме10
ры проектов, созданных с помощью
данной технологии. Причины развития GRID.
Решаемые с помощью данной технологии задачи:
4
6
36
122
Типы GRID-систем
Компоненты хранилища данных
Amazon.com
Инструментарий Globus Toolkit и
его основные компоненты
14
Cloud-вычисления
Ито
го
180
22
Формы контроля знаний студентов
Тип контроля
Форма контроля
Текущий конДомашнее
троль
задание
Промежуточный Экзамен
Итоговый
Экзамен
1 год
2 3
* *
Параметры
*
устная форма 2 вопроса и 1 задача
устная форма 2 вопроса и 1 задача
*
Решение задач
Критерии оценки знаний, навыков
Текущий контроль осуществляется в виде еженедельных мини-контрольных работ,
соответствующих домашнему заданию, на 8 и 16 неделе. Промежуточный контроль – экзамен по окончании первого модуля, итоговый - экзамен на последней неделе второго
модуля. Учитываются результаты домашней работы (ДР). Каждая форма текущего контроля оценивается по 10-балльной шкале, оценка выставляется в рабочую ведомость преподавателя. Домашняя и контрольная работы содержат несколько задач. Для каждой из
задач студент должен представить решение в электронном виде, включая исходный код и
исполняемый файл программы.
Домашнее задание
оценка в 10 баллов проставляется в исключительных случаях самостоятельно проведенной работы, результаты которой могут в дальнейшем использоваться в учебном
процессе или в исследовательской работе студента;
7
НИУ ВШЭ – Нижний Новгород
Программа дисциплины «Распределенные вычисления»
для направления 09.03.04 – Программная инженерия
оценка в 8-9 баллов проставляется при самостоятельно разработанном или удачно
адаптированном и отлично представленном исследовании по выбранной тематике;
оценка в 6-7 баллов проставляется при своевременно выполненном и самостоятельно представленном исследовании по выбранной тематике;
оценка в 4-5 баллов проставляется при частичном, несамостоятельном участии в
выполнении работ над заданием;
оценка в 2-3 балла проставляется, когда студент не может самостоятельно представить работу или когда работа носит явные признаки заимствований (работу предлагается
переделать);
оценка в 1 балл проставляется при наличии каких-либо демонстративных проявлений безграмотности и неэтичного отношения к работе.
Экзамен
На экзамене, представляющем собой ответы на вопросы и решение задачи с последующим собеседованием, оценка проставляется следующим образом:
высшая оценка в 9 баллов (10 баллов только в исключительных случаях) проставляется при отличном выполнении заданий (полных, с примерами и возможными обобщениями ответах на вопросы, при правильном решении задачи и детальном ее представлении);
почти отличная оценка в 8 баллов проставляется при полностью правильных ответах на вопросы и решении задачи, но при отсутствии примеров и обобщений, а также детального представления решаемой задачи;
оценка в 7 баллов проставляется при правильных ответах на вопросы и правильном
решении задачи, но при отсутствии пояснений и обобщений, а также детального представления решаемой задачи;
оценка в 6 баллов проставляется при наличии отдельных неточностей в ответах на
вопросы или неточностях в решении задачи непринципиального характера (описки и случайные ошибки);
оценка в 4-5 баллов проставляется в случаях, когда в ответах на вопросы и в решении задачи имеются существенные неточности и ошибки, свидетельствующие о недостаточном понимании изучаемой дисциплины;
оценка в 2-3 балла проставляется при наличии лишь отдельных положительных
моментов в ответах на вопросы и в решении задачи;
оценка в 1 балл проставляется в тех случаях, когда наряду с неправильными ответами на вопросы и решением задачи имеют место какие-либо демонстративные проявления безграмотности или неэтичное отношение к изучаемой дисциплине.
По результатам устного собеседования с преподавателем возможны корректировки
оценки в ту или иную сторону.
Порядок формирования оценок по дисциплине
Вначале формируется промежуточная оценка первого модуля.
Опромежуточная = 0,5* Оэкзамен + 0,5* Онакопленная1
Накопленная оценка за текущий контроль первого периода учитывает результаты
студента по текущему контролю следующим образом:
Онакопленная1 = 0,5* Од/з1 +0,5*Оаудит.
Способ округления накопленной оценки промежуточного контроля в форме экзамена - арифметический.
Далее формируется накопленная оценка второго периода Онакопленная2
8
НИУ ВШЭ – Нижний Новгород
Программа дисциплины «Распределенные вычисления»
для направления 09.03.04 – Программная инженерия
Онакопленная2 = 0,5*Од/з2 + 0,5*Оаудит.
Результирующая оценка за дисциплину рассчитывается следующим образом:
Онакопленная Итоговая = (Опромежуточная + Онакопленная2):2
Орезульт = 0,6*Онакопленная Итоговая + 0,4*Оитоговый экзамен
В диплом выставляет результирующая оценка по учебной дисциплине.
Способ округления результирующей оценки по учебной дисциплине – арифметический.
Содержание дисциплины
Раздел 1. ОСНОВНЫЕ ПРИНЦИПЫ ОРГАНИЗАЦИИ РАСПРЕДЕЛЕННЫХ СИСТЕМ ОБРАБОТКИ
ИНФОРМАЦИИ
Тема 1. Теоретические предпосылки создания распределенных
систем обработки информации
1. Причины для перехода к распределенной обработке данных:
 использование ресурсов нескольких вычислительных узлов (использование памяти другого вычислительного узла, вычислительных ресурсов
процессора другого вычислительного узла, использование специализированных вычислительных узлов для печати и т.д.);
 расширяемость распределенной вычислительной системы (в компьютерную сеть можно легко добавить новые вычислительные узлы, при этом
программное обеспечение не потребует изменений);
 повышение производительности обработки данных за счет распараллеливания;
 совместная работа географически удаленных друг от друга пользователей,
которые ведут совместную работу над одним проектом, оперативный обмен информацией между участниками проекта;
 повышение надежности системы за счет репликаций. предполагается, что
при выходе из строя вычислительного узла другие узлы продолжают работу и берут на себя обязанность выполнить работу вышедшего из строя узла;
 упрощение разработки программного обеспечения за счет специализации
(разбиение программного обеспечения на модули и использование специализированных узлов);
2. Определение распределенной системы:
 как набора независимых компьютеров, которые пользователи представляют в виде единой системы;
 как набора автономных компьютеров, процессов или процессоров.
3. Классификация ВС, которые соответствуют этому определению:
 многопроцессорные ВС;
 компьютерные сети;
 взаимодействующие процессы, которые могут выполняться на одной и той
же аппаратуре.
4. Компоненты распределенной вычислительной системы:
9
НИУ ВШЭ – Нижний Новгород
Программа дисциплины «Распределенные вычисления»
для направления 09.03.04 – Программная инженерия


аппаратура,
программное обеспечение, в том числе и программное обеспечение промежуточного уровня (middleware). Роль программного обеспечения промежуточного уровня.
5. Примеры распределенных систем.
Тема 2. Задачи распределенных систем
1.
2.
3.
4.
Связь пользователей с ресурсами.
Прозрачность.
Открытость.
Масштабируемость.
Тема 3. Достоинства и недостатки распределенных систем
различных классов
1. Классификация распределенных вычислительных систем:
 Локальные сети.
 Глобальные сети.
 Мультипроцессорные вычислительные системы.
 Взаимодействующие процессы, которые выполняются на одном компьютере.
1. Характеристики локальных и глобальных вычислительных систем:
 Параметры надежности. Под параметром надёжности понимают степень
надёжности передачи данных в компьютерной сети. Если сеть является
глобальной, то вероятность потери переданного сообщения достаточно
велика, и алгоритмы должны предусматривать действия, нейтрализующие
последствия таких сбоев. Локальные сети более надежны, и алгоритмы
для них могут быть разработаны в предположении абсолютной надежности коммуникаций.
 Время, затрачиваемое на передачу сообщения. Время, затрачиваемое на
передачу сообщения в глобальных сетях на порядки больше, чем время
передачи в локальных сетях. Временем обработки сообщения в глобальных сетях всегда можно пренебречь при сравнении его со временем, необходимым для передачи.
 Однородность. Вычислительные узлы локальных сетей могут отличаться
своей производительностью, тем не менее, для обеспечения функционирования сети можно использовать единое программное обеспечение и одни и
те же протоколы. В глобальных сетях используется множество различных
протоколов и программное обеспечение, соответствующее разным стандартам. Поэтому следует обращать внимание на преобразование информации при переходе от одного протокола к другому и на совместимость
стандартов.
 Безопасность. При использовании глобальной сети следует уделять большое внимание разработке программных средств защиты вычислительных
узлов от внешних атак.
2. Характкристики многопроцессорного компьютера как набора процессоров, объединённых коммуникационной системой. Процессоры однородны и находятся на небольшом расстоянии друг от друга (порядка одного метра или менее). Назначение многопроцессорных компьютеров:
 повышение скорости вычислений (в этом случае его принято называть параллельным)
 повышение надёжности (репликационная система).
10
НИУ ВШЭ – Нижний Новгород
Программа дисциплины «Распределенные вычисления»
для направления 09.03.04 – Программная инженерия

В параллельном компьютере вычисления поделены на подвычисления,
каждое из которых осуществляется одним из узлов.
 В репликационной системе каждый узел проводит вычисление целиком,
после чего результаты сравниваются для того, чтобы обнаружить и скорректировать ошибки.
 Кластер - простая вычислительная система, ресурсы которой используются одной рабочей группой. Это несколько десятков компьютеров, на которых производятся вычисления, объединенных с помощью локальной сети.
В отличие от кластера, определенного в параллельных системах, в распределенных системах кластеризация осуществляется только на уровне программного обеспечения.
3. Вычислительные системы корпоративного уровня как вычислительная система, которая обслуживает несколько групп пользователей, работающих над разными проектами.
В такой сети уже необходимо устанавливать правила совместного использования ресурсов, а в некоторых случаях и взаиморасчетов. Масштаб таких систем, как правило,
небольшой, и можно обходиться «ручным» администрированием для организации работы ресурсов и пользователей.
4. Глобальные системы (грид-система) - это система, в которой участвуют несколько отдельных организаций, географически удаленных друг от друга. Организации предоставляют друг другу свои ресурсы по определенным правилам и с определенными протоколами взаимодействия. Неэффективность или невозможность применения методов
«ручного» администрирования. Примеры
5. Cloud-компьютинг. Достоинства и недостатки, особенности организации вычислений в
облаке. Примеры использования.
Тема 4. Особенности разработки программного обеспечения для
распределенных систем
1. Особенности реализации распределенного программного обеспечения для глобальных
сетей, исходя из следующих характеристик:
 Надежность обмена данными по типу точка-точка (сообщение, которое
отослано по линии связи от одного вычислительного узла другому может
быть искажено или утеряно из-за падения напряжения в сети или других
технических неполадок). Доставка сообщения с большим опозданием или
в порядке, отличном от того, в котором они посылались.
 Выбор путей коммуникации. Использование для взаимодействия двух вычислительных узлов в глобальной сети промежуточных узлов. Решение
проблемы маршрутизации (выбора пути между взаимодействующими узлами).
 Контроль перегрузок из-за генерации сообщений в сети одновременных
сообщений.
 Предотвращение тупиков. Передача сообщения по типу «сохранить-ипередать», т.е. временное сохранение сообщения в локальной памяти промежуточного узла. Необходимость управления памятью промежуточного
узла.
 Безопасность. Необходимость использования надежных методов для
аутентификации пользователей, криптографических методов и сканирования входящей информации.
2. Проблемы реализации программного обеспечения для локальных сетей. Проблемы
распределённого управления процессами, выполняющимися на разных узлах:
 Широковещание и синхронизация – предполагает наличие схемы передачи сообщений, с помощью которой каким-либо образом можно «дозваниваться» до всех процессов, с тем, чтобы они могли дождаться выполнения
некоторого глобального условия.
11
НИУ ВШЭ – Нижний Новгород
Программа дисциплины «Распределенные вычисления»
для направления 09.03.04 – Программная инженерия






Выборность. Умение распределенного алгоритма выбирать один из процессов из множества для выполнения конкретной задачи, например, для
генерирования вывода или инициализация структуры данных.
Обнаружение завершения. Умение распределённого алгоритма обнаруживать, что произошло завершение распределённых вычислений, тем самым,
определить момент получения окончательных результатов.
Распределение ресурсов. Выполнение специального механизма – волнового алгоритма для опроса всех процессов для определения месторасположения ресурса.
Взаимное исключение. Проблема взаимного исключения возникает при
использовании конкурирующими распределёнными процессами общего
ресурса, например, принтера или файла, который должен быть перезаписан.
Обнаружение тупиков и их разрешение. При разделении ресурсов некоторыми процессами распределённого алгоритма может возникнуть циклическое ожидание. По этой причине распредёлённый алгоритм должен предусматривать обходы тупиковых ситуаций.
Распределенная поддержка файлов. Обеспечение распределенным алгоритмом целостности удаленных файлов при запросах на чтение и запись.
разработки программного обеспечения для много процессорных компьюте-
3. Проблемы
ров:
 Разработка системы передачи сообщений. В многопроцессорном компьютере возникают те же проблемы, что и в компьютерной сети: маршрутизация, предотвращение тупиков и перегрузок, но решение проблем упрощается из-за регулярности сетевой топологии.
 Балансировка загрузки. Вычислительные узлы должны быть загружены
равномерно, иначе нельзя получить выигрыша от применения нескольких
вычислительных узлов. Различают статическую (шаги вычислений определяются во время компиляции) и динамическую балансировки. Очень часто задачу структурируют, и реализация её приводит к разработке сложных программных систем. Однако задачу можно упростить, организовав
программу в виде набора (последовательных) взаимодействующих процессов. Каждый процесс при этом является реализацией хорошо определенной, простой задачи.
4. Проблемы разработки программного обеспечения для взаимодействующих процессов.
Приложение, состоящее из взаимодействующих процессов, выполняющихся на одном
компьютере, является локально распределенным. Взаимодействующие процессы, имеют доступ к одной физической памяти, при этом возникают хорошо известные проблемы:
 при записи в память и чтения информации из памяти. Эти проблемы разрешаются применением взаимоисключений с использованием разделяемых переменных.
 сборка мусора.
Тема 5. Особенности реализации распределенных алгоритмов.
1. Отличие распределенных систем от централизованных компьютерных систем:
 Неполные знания о глобальном состоянии. В централизованных алгоритмах управление алгоритмом основывается на наблюдениях состояния
системы. Узлы в распределенной системе имеют доступ только к их собственному состоянию и не к глобальному состоянию всей системы. Следовательно, нет возможности делать решение управления основанным на
глобальном состоянии. Узел может получать информацию относительно
состояния других узлов и принимать решения, основываясь на этой ин-
12
НИУ ВШЭ – Нижний Новгород
Программа дисциплины «Распределенные вычисления»
для направления 09.03.04 – Программная инженерия
формации. В отличие от централизованных систем, факт, что полученная
информация является старой, может стать причиной получения недопустимой информации, потому что состояние другого узла, возможно, изменилось между посылкой информации состояния и решения, основанного
на этом. Состояние подсистемы связи (то есть, какие сообщения находятся
в транзите в некоторый момент момент времени) никогда непосредственно не наблюдается узлами. Эта информация может только быть выведена
косвенно, при сравнении информации, посланной и полученной узлами.
 Отсутствие глобального кадра времени. События, составляющие выполнение централизованного алгоритма, полностью упорядочиваются по
времени их появления, это правило выполняется для каждой пары событий, каждое событие в паре происходит ранее или позже чем другое. Для
некоторых пар событий должно выполняться правило, что каждое событие
происходит перед другим. Для других пар выполняется правило, что ни
одно из событий не происходит перед другим. Взаимное исключение может быть достигнуто в централизованной системе, если доступ процесса p
к ресурсу начинается позже чем доступ процесса q, то доступ процесса p
начался после того, как доступ процесса q закончился. Действительно, все
такие события (старт и окончание доступа процессов p и q) полностью
упорядочиваются отношением временного предшествования; в распределенной системе они - не упорядочиваются, и та же самая стратегия не является достаточной. Процессы p и q могут начать обращаться к ресурсу, в
то время как начало одного не предшествует началу другого.
 Недетерменизм. Выполнение распределенной системы обычно недетерминировано, из-за возможных различий в быстродействии выполнения
компонентов системы.
2. Определение распределенного алгоритма.
Система переходов
3. Синхронизация времени. Часы Лэмпорта. Каузальность событий.
Тема 6. Распределенные интеллектуальные системы на основе
агентов
1.
2.
3.
4.
5.
Определение и особенности программного агента.
Структура программного агента.
Координация, кооперация, коммуникация агентов.
Реактивные и интеллектуальные агенты.
Примеры применения многоагентных систем.
Тема 7. Распределенная обработка данных
1. Распределенные базы данных, понятия, характеристики, классическая распределенная система БД. Общее с распределенными файловыми системами.
2. Критерии разделения данных между узлами сети.
3. Определение Дэйта, двенадцать свойств Дэйта.
.
Раздел 2. ФУНДАМЕНТАЛЬНЫЕ РАСПРЕДЕЛЕННЫЕ АЛГОРИТМЫ
Тема 8. Волновые алгоритмы распространения информации
4. Определение волнового алгоритма.
13
НИУ ВШЭ – Нижний Новгород
Программа дисциплины «Распределенные вычисления»
для направления 09.03.04 – Программная инженерия
5.
6.
7.
8.
9.
10.
Кольцевой волновой алгоритм.
Древовидный волновой алгоритм.
Алгоритм голосования.
Алгоритм «Эхо».
Алгоритм Финна.
PIF-алгоритм.
Тема 9. Волновые алгоритмы обхода сайтов
1.
2.
3.
4.
Алгоритм обхода полного графа.
Алгоритм обхода тора.
Алгоритм обхода гиперкуба.
Алгоритм Тарри.
Тема 10. Алгоритмы выбора лидера
1. Алгоритм смещения.
2. Алгоритм для древовидных структур.
3. Алгоритм для кольцевых структур (Алгоритм Ле-Ланна, Алгоритм Чанга Робертса).
Раздел 3. ТЕХНОЛОГИИ РАСПРЕДЕЛЕННОЙ ОБРАБОТКИ ДАННЫХ
Тема 11. Технология клиент-сервер
Развитие архитектуры распределенных приложений:
прикладные программы с монолитной структурой;
архитектура "клиент-сервер" со связями "один к одному";
структура приложений "один к одному" для сети;
многопотоковые серверы;
архитектура с виртуальным сервером (диспетчером);
архитектура с несколькими многопотоковыми серверами (multi-threaded, multiservers architecture) и схемы организации взаимодействия клиентов и серверов.
Требования к программированию приложений "клиент-сервер":
не использовать монолитное кодирование (приложения с модульной структурой,
разрабатываемые "сверху вниз");
глобальные переменные неприемлемы;
"поклиентное обслуживание";
использование архитектуры с "независимыми средствами";
обеспечить переносимость через устранение зависимости от ОС и СУБД.
Архитектура сервера: коммуникационный модуль, диспетчер, исполнительные (обслуживающие, обрабатывающие) модули.
Архитектура клиента: коммуникационный модуль и интерфейс пользователя.
Режимы взаимодействия клиента и сервера (синхронный и асинхронный режим).
Поддержка технологий распределенных приложений на уровне ОС: средства
управления процессами и потоками, синхронизация вычислений.
Модель и уровни взаимодействия открытых систем OSI. Стек протоколов.
Понятие и сервисы промежуточной среды.
Виды промежуточных сред.
Гетерогенные и гомогенные распределенные системы.
Протоколы прикладного уровня: жесткий и гибкий. Структуры данных при использовании жесткого и гибкого протоколов, структуры заголовков. Преимущества и недостатки видов протоколов прикладного уровня.
Варианты распределения взаимодействия между приложениями:
14
НИУ ВШЭ – Нижний Новгород
Программа дисциплины «Распределенные вычисления»
для направления 09.03.04 – Программная инженерия
файловая система;
общий сервер, реализующий поклиентское обслуживание;
виртуальный сервер.
Преимущества и недостатки каждого варианта.
Подходы к формированию каталогов сервисов в сети:
статическое;
динамическое, от клиента по запросу функции;
динамическое, от клиента по отказу сервера;
динамическое, предложение от сервера;
динамическое, с централизованным каталогом на одном узле.
Преимущества и недостатки каждого подхода.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Классификация DSL
Внешние и внутренние DSL
Декларативные и императивные DSL
Примеры DSL
Малые языки Unix
Язык реляционных баз данных SQL
Microsoft Office Excel
MDKScript
Встроенный язык 1С: Предприятие
Язык создания парсеров ANTLR
Тема 12. Технология Net.Remoting
1.
2.
3.
4.
5.
6.
7.
8.
Назначение среды .NET Remoting.
Сценарии использования среды Remoting.
Виды классов среды CLR с точки зрения Remoting.
Преимущества и недостатки Remoting.
Архитектура среды Remoting. Схема выполнения удаленного вызова. Основные сущности Remoting: сообщения, каналы, посредники, трубы.
Применение Remoting в распределенных системах. Соответствие требованиям, предъявляемым к распределенным системам.
Преимущества и недостатки Remoting.
Использование Remoting в .NET Framework.
Тема 13. Технология WCF
1.
2.
Основные принципы технологии WCF. Преимущества и недостатки WCF. Распределенное исполнение. Сервис-ориентированная архитектура. Предпосылки появления
WCF.
WCF-сервисы и клиенты. Параметры точки доступа. Конфигурирование WCFсервисов. Связывание. Виды связывания.
Отличия от других промежуточных сред.
Тема 14. GRID-технология. Основные понятия. Типы GRID-систем.
Примеры использования GRID
1.
2.
Понятие GRID-технологии. Примеры проектов, созданных с помощью данной технологии. Причины развития GRID.
Решаемые с помощью данной технологии задачи:
a. массовая обработка потоков данных большого объема;
b. многопараметрический анализ данных;
c. моделирование на удаленных суперкомпьютерах;
d. реалистичная визуализация больших наборов данных;
e. сложные бизнес-приложения с большими объемами вычислений.
15
НИУ ВШЭ – Нижний Новгород
Программа дисциплины «Распределенные вычисления»
для направления 09.03.04 – Программная инженерия
3.
4.
5.
Типы GRID-систем:
a. вычислительный GRID;
b. GRID для интенсивной обработки данных;
c. семантический GRID для оперирования данными из различных баз данных.
Компоненты хранилища данных Amazon.com.
Инструментарий Globus Toolkit и его основные компоненты:
a.
b.
c.
d.
Globus Resource Allocation Manager;
Monitoring and Discovery Service;
Globus Security Infrastructure;
Global Access to Secondary Storage.
Тема 15. Cloud-вычисления
1.
2.
3.
4.
Технологии Cloud-вычислений
Основные понятия Cloud-вычислений
Мультитенантная архитектура
Технологии Cloud-вычислений
Образовательные технологии
Традиционное чтение лекций. Разбор практических задач.
Методические рекомендации преподавателю
Темы индивидуальных заданий для проведения практических занятий должны отличаться для каждого нового учебного года
Методические указания студентам
Рекомендуется подготовка к каждому занятию по заданиям, озвученным преподавателем на предыдущем занятии.
Для более глубокого усвоения курса предполагается использование студентами дополнительной литературы, работа в библиотеке, поиск информации в сети Интернет
Оценочные средства для текущего контроля и аттестации студента
Тематика заданий текущего контроля
Примеры домашних заданий
1. Модифицировать механизмы планирования потоков в Linux
2. Разработать библиотеку на С для использования при создании потоков в linux
3. Модифцировать ядро windows NT
4. Написать системный драйвер для устройства
5. Разработать алгоритм журналирования ФС
6. Создать систему вывода информации о памяти.
Вопросы для оценки качества освоения дисциплины
Примерный перечень вопросов к экзамену по всему курсу или к каждому промежуточному и итоговому контролю для самопроверки студентов
16
НИУ ВШЭ – Нижний Новгород
Программа дисциплины «Распределенные вычисления»
для направления 09.03.04 – Программная инженерия
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Программная модель микропроцессорной системы.
Взаимодействие программ на ассемблере с программами на языке С.
Резидентный обработчик прерываний от клавиатуры с подключением
как до, так и после системного.
Работа с памятью
Взаимодействие прикладных и системных обработчиков прерываний.
Работа драйверов
Журналирование файловых систем
Переключение потоков
Загрузка процессов
Выгрузка процессов.
Безопасность адресного пространства
Примеры заданий промежуточного /итогового контроля
Практические задания к экзамену:
Задача 1. Создать структуру потока
Задача 2. Написать драйвер
Учебно-методическое и информационное обеспечение дисциплины
1. Литература:
Основная:
1. Лядова Л.Н., Мызникова Б.И., Фролова Н.В. Основы информатики и информационных технологий / Перм. ун-т. Пермь, 2007.
2. Поддержка разработки распределенных приложений в Microsoft .NET Framework
[Электронный ресурс] : учебный курс. - Электрон. дан. (502 Мб; 371 Мб) // Основы
информационных технологий : учеб. курсы Интернет-Университета информ. технологий / Интернет-Университет информационных технологий. - М.: ИНТУИТ.ру,
2007. - Ч. 2.
3. Таненбаум. Э. Распределенные системы: принципы и парадигмы. – СПб: Питер,
2003. – 877 с.
Дополнительная:
4. Таненбаум, Э. Современные операционные системы / Э. Таненбаум. - 2-е изд. СПб. : Питер, 2005. - 1038 с. - (Классика Computer Science).
5. Таненбаум, Э. Распределенные системы : принципы и парадигмы / Э. Таненбаум,
М. Стеен. - СПб. : Питер, 2003. - 877 с. - (Классика Computer Science).
6. Advances in Randomized Parallel Computing / edited by Panos M. Pardalos, Sanguthevar Rajasekaran. - Dordrecht : Kluwer Academic Publishers, 1999. - 286 p. - (Combinatorial Optimization ; v. 5).
Материально-техническое обеспечение дисциплины
Занятия проходят в компьютерных классах, оснащенных преподавательским компьютером, персональными компьютерами, объединенных в локальную сеть с возможностью выхода в интернет. В рамках практических занятий используется ПО, установленное
в компьютерных классах.
17
Download