УДК 004.75
ФОРМАЛЬНЫЙ ЯЗЫК ОПИСАНИЯ ЗАДАЧИ В РАСПРЕДЕЛЕННЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ
Т.А. Гайфулин, А.С. Новиков
Для достижения оптимальной нагрузки в любой момент времени распределенные вычислительные системы рассмотрены как системы массового обслуживания с неограниченной очередью. Предложен формальный язык описания задачи и узла в данных системах.
Ключевые слова: язык описания задачи, распределенные системы, вычислительные системы, система массового обслуживания.
При эксплуатации информационных распределенных вычислительных сетей одной из основных проблем является обеспечение оптимального использования распределенных ресурсов, вследствие неравномерности нагрузки, возникающей в разное время и на разных участках сети. А именно от этого зависит общая эффективность распределенной системы, выражающаяся в таких показателях как, высокая производительность вычислительных средств, оптимальное использование сетевого трафика. Безусловно, проблему можно решить подключением дополнительных вычислительных ресурсов, взятых из некого резерва, которые покрывали бы чрезмерную нагрузку, однако, такой подход к решению проблемы отрицательно влияет на экономическую эффективность использования системы в целом. К тому же, неравномерность нагрузки системы, зависящая как минимум от поступающего потока задач, является процессом стохастическим во времени, что также не позволяет решить проблему таким статическим методом.
Существуют множество классических методов для достижения оптимальной нагрузки в распределенных системах, которые обладают неоспоримыми достоинствами, подробно изучены и успешно применяются на практике. Эффективность моделей, в рамках которых работают этим методы, сильно зависит от использованных методов анализа входной информации, систем мониторинга состояния работы различных участков сети, методов управления, скорости реакции на динамические изменения характера нагрузки и т.д. Недооценка любого из факторов может привести к ухудшению эффективности всей системы. К таким классическим методам можно отнести методы линейного программирования, теории графов, теории вероятности и т.д. Однако, резервы повышения эффективности и оптимальности работы распределенных вычислительных сред себя не исчерпали. И новые методы, подходы, отличающиеся от классических, обещают качественно повлиять на улучшение характеристик подобных систем.
Весь процесс распределения задач в распределенных вычислитель-
254
ных системах можно представить в виде иерархичной схемы, где каждая иерархия (уровень, вычислительный узел) выполняет определенную задачу. Такой задачей может быть обработка потока данных, мониторинг функционирования вычислительной системы, анализ соответствия потока входных заявок доступным ресурсам.
Идея распараллеливания вычислений основана на том, что большинство задач может быть разделено на набор меньших задач, которые могут быть решены одновременно. Распределенная вычислительная система реализует параллельную обработку данных на большом количестве вычислительных узлов. Таким образом, распределенные вычисления требуют координации действий. Роль координатора, менеджера задач, может постоянно выполнять какой-либо определенный узел (в централизованной вычислительной системе) или же, если система автономна и децентрализована, тот или иной узел, в зависимости от условий функционирования.
Одной из проблем при создании программных средств для решения поставленной задачи является формальное описание задачи. При формализации задачи отталкиваются от ее общего описания. Это позволяет четко выделить прототип моделирования и его основные свойства. Как правило, этих свойств довольно много, причем некоторые невозможно описать количественными соотношениями. Кроме того, в соответствии с поставленной целью необходимо выделить параметры, которые известны (исходные данные) и которые следует найти (результаты). Пусть типы данных, воспринимаемые системой будут следующие:
- идентификаторы - последовательности символов, не содержащие пробелов;
- строки - произвольные последовательности символов, заключенные в двойные кавычки.
Тогда, блок описания задачи будет выглядеть так: ЗАДАЧА = <1ё задачи><приоритет задачи><1ё узла><сложность за-дачи>[тело задачи], где
<id задачи> - идентификатор задачи (уникальный номер); <приоритет задачи> = <цифра>|<число>, чем число больше, тем выше приоритет задачи;
<id узла> - идентификатор узла (уникальный номер); <сложность задачи> = <цифра>|<число>, чем число больше, тем выше сложность задачи;
[тело задачи] - характеристики задачи, данные, передаваемые на вычислительный узел для обработки.
Аналогично составим блок описания узла: УЗЕЛ = <1ё узла><статус узла><1ср>[тело узла], где <id узла> - идентификатор узла (уникальный номер); <статус узла> - одно из ключевых слов: НЕ ДОСТУПЕН|СВОБОДЕН|ВЫПОЛНЯЕТ ЗАДАЧУ | ВЫПОЛНЯЕТ
РОЛЬ АРБИТРА;
<^р> - среднее время выполнения задачи на данном узле, величина изменяющаяся во времени;
[тело узла] - характеристики узла: объем ОЗУ, количество вычисляемых операций в секунду (частота процессора), время отклика (время, которое необходимо для завершения той или иной работы), время обслуживания. Если система свободна и, следовательно, длина очереди запросов равна нулю, то время отклика равно времени обслуживания.
Можно предположить, что подобная распределенная система наверняка будет представлять собой систему массового обслуживания. Исходя из описанных выше параметров, можно сделать предположение, что рассматриваемая нами система - это п-канальная СМО с неограниченной очередью. Поток заявок, поступающих в СМО, имеет интенсивность X, а поток обслуживании - интенсивность ¡л. Определим предельные вероятности состояний СМО и показатели ее эффективности.
Система может находиться в одном из состояний 50, Б1, 52,..., 5к,..., 5п,..., - нумеруемых по числу заявок, находящихся в СМО: Б0 - в системе нет заявок (все каналы свободны); Б1 - занят один канал, остальные свободны; Б2 - заняты два канала, остальные свободны;..., Бк - занято к каналов, остальные свободны;..., 8п - заняты все п каналов (очереди нет); Бп+1 — заняты все п каналов, в очереди одна заявка;..., Бп+Г - заняты все п каналов, г заявок стоит в очереди.
Граф состояний системы показан на рис. 1. Стоит обратить внимание на то, что интенсивность потока обслуживаний (переводящего систему из одного состояния в другое справа налево) не остается постоянной, а по мере увеличения числа заявок в СМО от 0 до п увеличивается от величины т до пт, так как соответственно увеличивается число каналов обслуживания. При числе заявок в СМО большем, чем п, интенсивность потока обслуживании сохраняется равной пт.
Рис.1. Граф состояний системы
Таковы формулы для предельных вероятностей состояний п-канальной СМО с неограниченной очередью [1]:
Р о =
л р р* р* 1+—+ — +...+— +
„и+1
V1
1! 2!
н! и!(я-,
Р РК Р*
Р\ =-гтР0'-'Рк = ^тР0'-'Рх = —гРа' 1! £! и!
(1) (2)
(3)
Вероятность того, что заявка окажется в очереди,
(4)
Для л-канальной СМО с неограниченной очередью можно найти: - среднее число занятых каналов:
к = — = р, - среднее число заявок в очереди:
(5)
(6)
среднее число заявок в системе:
(7)
Среднее время пребывания заявки в очереди и среднее время пребывания заявки в системе, находятся по формулам Литтла [2] (8) и (9) -при любом характере потока заявок, при любом распределении времени обслуживания, при любой дисциплине обслуживания среднее время пребывания заявки в системе (очереди) равна среднему числу заявок в системе (в очереди), деленному на интенсивность потока заявок, т.е.
Стоит заметить, что для СМО с неограниченной очередью при г < 1 любая заявка, пришедшая в систему, будет обслужена, т.е. вероятность отказа Ротк = 0, относительная пропускная способность Q = 1, а абсолютная пропускная способность равна интенсивности входящего потока заявок, т.е. А = 1 [1].
Таким образом, на данном этапе исследования и разработки динамической стратегии распределения была описана вычислительная распределенная система как п-канальная СМО с неограниченной очередью и представлен разработанный формальный язык описания задачи и узла, что является основанием для проведения дальнейшего исследования. В дальнейшем планируется разработать непосредственно сам алгоритм распределения, зависящий от условий состояния среды, пересчитываемый в течение жизненного цикла работы системы, результате работы которого вычислительные задачи перераспределяются по узлам сети, в соответствии с оптимальным на данный момент планом. Несмотря на априорную сложность таковой задачи, использование динамической стратегии оправдано
л
(8)
Т = — Т
. л пи.'
А
(9)
за счет изначальной ориентации на меняющиеся условия функционирования системы. Поэтому преимущества этого подхода проявляются в системах, где заранее не известно поведение системы, в той или иной ситуации, вызванной эндогенными или экзогенными факторами.
Список литературы
1. Системы массового обслуживания: Учебное пособие для вузов. Матвеев В.Ф., Ушаков В .Г. - М., МГУ, 1984. - 242 с.
2. Лифшиц А. Л., Мальц Э.А. Статистическое моделирование систем
массового обслуживания - М.: Советское радио, 1978. - 249 с.
Гайфулин Тимур Альбертович, магистрант, timur.gayfulin@gmailcom, Россия, Тула, Тульский государственный университет,
Новиков Александр Сергеевич, канд. техн. наук, доц., thesis-tsu@yandex.ru, Россия, Тула, Тульский государственный университет
THE FORMAL TASK DEFINITION LANGUAGE IN DISTRIBUTED SYSTEMS
T.A. Gayfulin, A.S. Novikov
To reach the optimal charge at any specific time, the distributed systems were considered as infinite queueing systems. We suggested the formal task and node definition language in these systems.
Key words: task definition language, istributed systems, computing systems, queue-ing system.
Gayfulin Timur Albertovich, undergraduate, timur.gayfulin@gmail.com, Russia, Tula, Tula State University,
Novikov Alexandr Sergeevich, candidate of technical sciences, docent, thesis-tsu@yandex.ru, Russia, Tula, Tula State University