Миков А.И., Замятина Е.Б.

2007 г.


Лабораторные работы должны быть выполнены магистрами 1 года обучения, которые изучают курс «Распределенные системы и алгоритмы» и обучаются по специальности 010501,010500 (направления) «Прикладная математика и информатика».

Лабораторные работы предполагают реализацию алгоритмов балансировки распределенного приложения, представляющего собой набор взаимодействующих процессов, расположенных на разных вычислительных узлах ВС. Первые три лабораторные работы предлагают студентам реализовать централизованный алгоритм балансировки. Это означает, что на одном из узлов располагается процесс, который управляет сбором информации о загрузке других вычислительных узлов, направляя сообщения всем другим процессам, принимает решение о необходимости выполнения балансировки и выполняет перенос объектов с наиболее загруженного вычислительного узла на менее загруженный. Однако топология ВС предлагается разная: древовидная, произвольная сеть (ориентированная), произвольная (неориентированная). В четвертой лабораторной работе студенты должны реализовать децентрализованный алгоритм и выполнить перенос объекта на соседние узлы. При реализации алгоритмов студентам рекомендуется использовать технологию .NET. Технология .NET, программные средства .NET Remoting являются удобными средствами для реализации этих алгоритмов и программных средств, оптимизирующих выполнение распределённого приложения.

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


Лабораторная работа №1.

Разработка централизованного алгоритма балансировки распределенного приложения

Постановка задачи:

Разработать централизованный алгоритм балансировки распределенного приложения, которое представляет собой набор взаимодействующих процессов. Процессы располагаются на разных вычислительных узлах. Решение о переносе объекта с одного вычислительного узла распределенной системы на другой выполняется одним из процессов, который предварительно получает сообщения от всех вычислительных узлов об их загрузке. Сеть имеет древовидную топологию. Предположим, что распределенное приложение реализует алгоритм, описывающий работу туристического агентства.

Клиенты обращаются в туристическое агентство с целью забронировать подходящие апартаменты на время отдыха. Клиенты высказывают свои пожелания (стоимость номера, сроки пребывания в апартаментах, наличие пансиона, отдаленность от моря и т.д). Туристическое агентство в свою очередь делает запросы в отели и предлагает возможные варианты клиентам.

Рекомендация: при выполнении работы использовать программные средства технологии .NET.

Описание централизованного алгоритма балансировки

Обычно практичное и полное решение задачи балансировки загрузки состоит из четырех шагов:

- Оценка загрузки вычислительных узлов.

- Инициация балансировки загрузки.

- Принятие решений о балансировке.

- Перемещение объектов.

В последующих частях конкретизируется каждый шаг балансировки с рассмотрением различных методов решения.