Лекция: While counter < card(Out(this)) do
begin receive token; counter := counter + 1 end ;
return(OK)
end ;
Процессы для не-инициаторов:
begin receive token from u; pre(this) := u; counter := counter + 1 ;
for (u Î Out(this))&(u ¹ pre(this)) do out token to u ;
While counter < card(Out(this)) do
begin receive token; counter := counter + 1 end ;
out token to pre(this)
End
Отчётность:
В результате выполнения лабораторной работы должны быть представлены следующие материалы:
1. Программа;
2. Исходные тексты;
3. Презентация работы;
4. Презентация, в которой освещаются вопросы реализации консервативных алгоритмов.
Лабораторная работа №2
Разработка и реализация централизованного алгоритма балансировки для ВС с произвольной топологией
Постановка задачи:
Разработать централизованный алгоритм балансировки. Решение о переносе объекта с одного вычислительного узла распределенной системы на другой выполняется одним из процессов, который предварительно получает сообщения от всех вычислительных узлов об их загрузке. Сеть имеет произвольную топологию и является ориентированной. Схема сети прилагается.
Предположим, что распределенное приложение представляет собой взаимодействующие процессы, располагающиеся на различных вычислительных узлах.
Рекомендация: при выполнении работы использовать программные средства технологии .Net.
Централизованный алгоритм балансировки приведен в предыдущей лабораторной работе
Для передачи сообщений в сети следует реализовать волновой алгоритм