Имитационное моделирование системы массового обслуживания на языке GPSS World

ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ СИСТЕМЫ МАССОВОГО ОБСЛУЖИВАНИЯ НА ЯЗЫКЕ GPSS WORLD

B.Т. Аверьянов, кандидат военных наук;

C.В. Полынько. Санкт-Петербургский университет ГПС МЧС России

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

IMITATING MODELLING OF SYSTEM OF MASS SERVICE IN LANGUAGE GPSS WORLD

V. T. Averyanov; S.V. Polynko. Saint-Petersburg university of State fire service of EMERCOM of Russia

In article the imitating model of system of mass service which represents the algorithm reflecting its behaviour, i.e. reflecting changes of condition СМО in time at the set streams of the demands arriving on inputs of system is considered.

Key words: imitating model, system of mass service

Описание системы массового обслуживания

В математических моделях сложных объектов, представленных в виде систем массового обслуживания, фигурируют средства обслуживания, называемые обслуживающими аппаратами (ОА), и обслуживаемые заявки, называемые транзактами. Так, в моделях систем обработки и передачи данных ОА отображают микропроцессоры и линии связи, а транзакты - поступающие на обработку заявки и пакеты данных.

Состояние СМО характеризуется состояниями ОА, транзактов и очередей к ОА. Состояние ОА описывается двоичной переменной, которая может принимать значения «занят» или «свободен». Переменная, характеризующая состояние транзакта, может иметь значения «обслуживания» или «ожидания». Состояние очереди характеризуется количеством находящихся в ней транзактов [1, 2].

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

Параметры входных потоков заявок - внешние параметры СМО.

Выходными параметрами являются величины, характеризующие свойства системы -качество ее функционирования. Примеры выходных параметров: производительность СМО -среднее число заявок, обслуживаемых в единицу времени; коэффициенты загрузки оборудования - отношение времен обслуживания к общему времени в каждом ОА; среднее время обслуживания одной заявки. Основное свойство ОА, учитываемое в модели СМО, -это затраты времени на обслуживание, поэтому внутренними параметрами в модели СМО являются величины, характеризующие это свойство ОА. Обычно время обслуживания рассматривается как случайная величина и в качестве внутренних параметров фигурируют параметры законов распределения этой величины.

Имитационное моделирование позволяет исследовать СМО при различных типах

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

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

Основной тип ОА - устройства, именно в них происходит обработка транзактов с затратами времени. К ОА относятся также накопители (памяти), отображающие средства хранения обрабатываемых данных в вычислительных системах. Накопители характеризуются не временами обслуживания заявок, а емкостью - максимально возможным количеством одновременно находящихся в накопителе заявок.

К элементам имитационных моделей СМО, кроме ОА, относят также узлы и источники заявок. Связи ОА между собой реализуют узлы, то есть характеризуют правила, по которым заявки направляются к тому или иному ОА [1, 2].

Для описания моделей СМО при их исследовании на ЭВМ разработаны специальные языки имитационного моделирования. Существуют общецелевые языки, ориентированные на описание широкого класса СМО в различных предметных областях, и специализированные языки, предназначенные для анализа систем определенного типа. Примером общецелевых языков служит широко распространенный язык GPSS [3].

Для описания имитационной модели на языке GPSS полезно представить ее в виде схемы, на которой отображаются элементы СМО - устройства, накопители, узлы и источники. Описание на языке GPSS есть совокупность операторов (блоков), характеризующих процессы обработки заявок. Имеются операторы и для отображения возникновения заявок, задержки их в ОА, занятия памяти, выхода из СМО, изменения параметров заявок (например, приоритетов), вывода на печать накопленной информации, характеризующей загрузку устройств, заполненность очередей и т. п.

Пути продвижения заявок между ОА отображаются последовательностью операторов в описании модели на языке GPSS специальными операторами передачи управления (перехода). Для моделирования используется событийный метод. Соблюдение правильной временной последовательности имитации событий в СМО обеспечивается интерпретатором GPSS World - программной системой, реализующий алгоритмы имитационного моделирования [3].

Построение структурной схемы модели

Имеется система передачи данных, состоящая из (рис.1):

- 3-х пунктов-накопителей A,B и C;

- 4-х линий AB1, AB2, BC1 и BC2.

Причем пакеты данных из AB1 поступают в BC1, а из AB2 соответственно в BC2.

Система передачи данных обеспечивает передачу пакетов данных из пункта A в пункт C через промежуточный пункт B. В пункт А пакеты поступают через 6±2 мс. Там они буферизуются и передаются по любой из двух линий. В пункте В они снова буферизуются и передаются по следующим линиям в пункт C. Во время передачи пакетов по линии возможны сбои, вероятности которых отображены на схеме.

Требуется смоделировать прохождение через систему 500 пакетов данных и определить максимальные объемы буферов в пунктах A и B и характеристики их заполнения.

10% 5%

10% -щь

Рис. 1. Структурная схема модели

Описание сети в виде системы массового обслуживания

В данной модели системы передачи данных представляем (рис. 2):

- пункты - статистические объекты типа очередь;

- линии - аппаратные объекты типа прибор;

- пакеты данных - транзакты.

За единицу модельного времени (е.м.в.) принята 1мс.

Рис. 2. Модель системы передачи данных

Формализация и алгоритмизация модели

Формально схема модели имеет вытянутый вид с некоторым количеством узлов (переходов). Это делается для реализации передачи пакетов по четырем линиям и моделирования сбоев в них. Алгоритм (рис. 3):

1. Генерация транзакта через 6±2 е.м.в.

2. Равновероятная передача заявок: АВ1 - переход в пункт 3; АВ2 - переход в пункт 16.

3. Вход в пункт - накопитель А.

4. Занятие линии АВ1.

5. Передача транзакта по линии АВ1 за 3±1 е.м.в. (ожидание).

6. Освобождение линии АВ1.

7. Сбой линии АВ1: 10% переходит в пункт 4.

8. Выход из пункта - накопителя А.

9. Вход в пункт - накопитель В.

10. Занятие линии ВС1.

11. Передача транзакта по линии ВС1 за 3 е.м.в. (ожидание).

12. Освобождение линии ВС1.

13. Сбой линии ВС1: 5 % переходит в пункт 10.

14. Выход из пункта - накопителя В .

15. Безусловная передача транзактов в пункт 28.

16. Вход в пункт - накопитель А.

17. Занятие линии АВ2.

18. Передача транзакта по линии АВ2 за 3±2 е.м.в. (ожидание).

19. Освобождение линии АВ2.

20. Сбой линии АВ2: 10 % переходит в пункт 17.

21. Выход из пункта - накопителя А.

22. Вход в пункт - накопитель В.

23. Занятие линии ВС2.

24. Передача транзакта по линии ВС2 за 3±1 е.м.в. (ожидание).

25. Освобождение линии ВС2.

26. Сбой линии ВС2: 5 % переходит в пункт 23.

27. Выход из пункта - накопителя В.

28. Удаление транзакта из модели.

29. Повторение 1-28 пока через пункт 28 не проследует 500 транзактов.

Имитационный эксперимент

Текст программы. * V #16

* Объявление имен

*

ABUF equ 1 BBUF equ 2 CAB1 equ 1 CAB2 equ 2 CBC1 equ 3 CBC2 equ 4 ABUF STORAGE 3

BBUF STORAGE 8

*

* Основной сегмент модели

*

GENERATE 6,2,,500; Ввод пакетов в модель TRANSFER 50,AB1,AB2; Передача на CAB1 и CAB2 AB1 ENTER ABUF ; Вход в пункт А AB1Er SEIZE CAB1; Линия AB1 ADVANCE 3,1; Время передачи по AB1 RELEASE CAB1 ; Линия AB1 TRANSFER 10,,AB1Er ; Передача на AB1Er

LEAVE ABUF ; Выход из пункта А ENTER BBUF; Вход в пункт B BClEr SEIZE CBC1 ; Линия BC1 ADVANCE 3; Время передачи по BC1 RELEASE CBC1 ; Линия BC1 TRANSFER .05, BC1Er ; Передача на BC1Er

LEAVE BBUF; Выход из пункта B TRANSFER ,OUT; Передача пакетов на метку AB2 ENTER ABUF ; Вход в пункт А AB2Er SEIZE CAB2; Линия AB2 ADVANCE 3,2 ; Время передачи по AB2 RELEASE CAB2 ; Линия AB2 TRANSFER 10,,AB2Er ; Передача на AB2Er LEAVE ABUF ; Выход из пункта А ENTER BBUF; Вход в пункт B BC2Er SEIZE CBC2; Линия BC2 ADVANCE 3,1; Время передачи по BC2 RELEASE CBC2 ; Линия BC2 TRANSFER 05,,BC2Er ; Передача на BC2Er

LEAVE BBUF; Выход из пункта B

*

* Сегмент счетчика

*

OUT TERMINATE 1; Пункт C. Выход пакетов из модели

START 500

Описание программы

Оператор Функции оператора

<symb> EQU <numb> Позволяет определить символические имена объектов GPSS: symb - символическое, а numb - соответствующее ему числовое имя объекта

<name> STOREGE A Описание объекта типа память: name - символическое или числовое имя памяти; В - емкость памяти

GENERATE A,B,C,D,E,F,G Обеспечивает поступление транзактов в модель; A - среднее значение интервала поступления транзактов в модель; B -разброс или модификатор среднего значения А; C - время поступления первого транзакта; D - общее число генерируемых транзактов; Е - уровень приоритета транзактов; F - количество параметров транзактов; G - тип параметра

SEIZE A Занятие прибора транзактом: А - имя прибора

RELEASE A Освобождение прибора транзактом: А - имя прибора

ENTER A[3] Занятие памяти: А - имя памяти; В - число занимаемых единиц

LEAVE A[,В] Освобождение памяти: А - имя памяти; В - число освобожденных единиц

TRANSFER, [A],B [C,D] Передать транзакт, позволяет направлять транзакт на метку: А -определяет режим передачи; В и С - метки, на которые производится пересылка; D - используется только в режиме А^ для указания значения индекса. Безусловный режим: TRANSFER, B - безусловная передача на метку указанную в поле В. Статистический режим: TRANSFER, А^,С ; А - десятичная дробь начинающаяся с точки, определяющая вероятность перехода в метку С; дополнение до 1 значения операнда А определяет вероятность перехода на метку В

ADVANCE A[B] Задержка: А - средняя величина задержки, В - модификатор разброса этой величины

TERMINATE [A] Завершить, вывод транзактов из модели

START A,B,C,D Инициирует начало работы интерпретатора GPSS: А -начальное значение счетчика моделирования; В - признак подавления вывода статистических результатов; С - начальное значение счетчика промежуточной выдачи статистики; D -признак распечатки списков

Листинг результатов моделирования

GPSS World Simulation Report - #16_end.26.9 Tuesday, May 04, 2005 01:11:51 START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 3014.613 28 4 2 NAME VALUE AB1 3.000 AB1ER 4.000 AB2 16.000 AB2ER 17.000 ABUF 1.000 BBUF 2.000 BC1ER 10.000 BC2ER 23.000 CAB1 1.000 CAB2 2.000 CBC1 3.000 CBC2 4.000 OUT 28.000

LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

1 GENERATE 500 0 0

2 TRANSFER 500 0 0 AB1 3 ENTER 246 0 0

AB1ER 4 SEIZE 281 0 0

5 ADVANCE 281 0 0

6 RELEASE 281 0 0 7 TRANSFER 281 0 0

8 LEAVE 246 0 0

9 ENTER 246 0 0 BC1ER 10 SEIZE 255 0 0

11 ADVANCE 255 0 0

12 RELEASE 255 0 0 13 TRANSFER 255 0 0

14 LEAVE 246 0 0 15 TRANSFER 246 0 0 AB2 16 ENTER 254 0 0

AB2ER 17 SEIZE 277 0 0

18 ADVANCE 277 0 0

19 RELEASE 277 0 0 20 TRANSFER 277 0 0

21 LEAVE 254 0 0

22 ENTER 254 0 0 BC2ER 23 SEIZE 265 0 0

24 ADVANCE 265 0 0

25 RELEASE 265 0 0 26 TRANSFER 265 0 0

27 LEAVE 254 0 0 OUT 28 TERMINATE 500 0 0 FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY

CAB1 281 0.271 2.911 1 0 0 0 0 0 CAB2 277 0.285 3.100 1 0 0 0 0 0 CBC1 255 0.254 3.000 1 0 0 0 0 0 CBC2 265 0.259 2.950 1 0 0 0 0 0 STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE C. UTIL. RETRY DELAY

ABUF 2 2 0 2 500 1 0.570 0.285 0 0 BBUF 2 2 0 2 500 1 0.518 0.259 0 0

Таким образом, после проведения имитационного эксперимента из листинга результатов видно, что максимальные объемы буферов в пунктах А и В:

- пункта А - 2 единицы;

- пункта В - 2 единицы.

Загрузка пункта А - 29 % , а пункта В - 26 %.

Временные потери, возникающие из-за сбоев в каналах связи:

- по направлению AB1: 35x2.911=101.885;

- по направлению Bd: 9x3.000=27.000;

- по направлению AB2: 23x3.100=71.300;

- по направлению BС2: 11x2.950=32.45.

Итого: 232.635 е.м.в. (232.635мс = 0.232635c), а время моделирования равно 3014.613

е. м.в.

Хотелось бы отметить, что язык GPSS сильно отличается от алгоритмических языков программирования. Хотя язык GPSS не требует специальной подготовки в области программирования, а наличие интерактивной среды со стандартным интерфейсом, которую система GPSS World, позволяет до минимума свести взаимодействие пользователя с инструментальной ЭВМ и ее операционной системой. Однако построение моделей и организация вычислительного эксперимента требуют некоторых знаний из области теории массового обслуживания, теории вероятностей и математической статистики.

Литература

1. Вентцель Е.С. Исследование операций: задачи, принципы, методология. 2-е изд., стер. М.: Наука, 1988. 208 с.

2. Таранцев А.А. Инженерные методы теории массового обслуживания. 2-е изд., перераб. и доп. СПб.: Наука, 2007. 175 с.

3. Руководство пользователя GPSS World. Эллина-компьютер. Казань, 2003.