
- •Общие задания для лабораторной работы
- •1. Создание и уничтожение транзактов
- •2. Моделирование одноканальных устройств
- •3. Моделирование многоканальных устройств
- •4. Работа с блоками передачи управления
- •5. Моделирование систем с использованием блоков split, assemble, match
- •6. Моделирование систем с использованием блоков preempt, return
- •Варианты индивидуальных заданий
- •Результаты работы
- •Список литературы
2. Моделирование одноканальных устройств
Устройства используются при моделировании систем для имитации работы оборудования единичной емкости, например, процессор, канал передачи данных, человек, компьютер. Устройство в любой момент времени может обрабатывать только одно сообщение (транзакт). Если в процессе обслуживания появляется новый транзакт, то он должен:
- либо подождать своей очереди;
- либо направиться в другое место;
- либо прервать обслуживание текущего транзакта.
Для использования одноканального устройства транзакту необходимо выполнить следующие шаги.
ждать очереди, если необходимо;
когда подходит очередь занять устройство;
устройство находится в состоянии занятости, пока не закончится обслуживание, для обслуживания необходим некоторый интервал времени;
когда обслуживание закончится, освободить устройство.
Второй и четвертый шаги реализуются блоками SEIZE и RELEASE.
Блок SEIZE имеет следующий формат:
SEIZE A
Свободный блок SEIZE позволяет вошедшему в него сообщению занять указанное устройство. Блок SEIZE задерживает сообщение, если устройство занято или находится в состоянии недоступности.
В поле А задается номер (имя) занимаемого устройства.
Сообщение, занявшее устройство, затем пытается перейти к следующему по номеру блоку. Устройство остается занятым до тех пор, пока занимающее его сообщение не войдет в соответствующий блок RELEASE. Прежде чем освободить устройство, сообщение может пройти через неограниченное число блоков.
Блок RELEASE имеет следующий формат:
RELEASE A
Блок RELEASE предназначен для освобождения устройства, в поле А задается номер (имя) освобождаемого устройства.
Транзакты обслуживаются устройствами в течение некоторого промежутка времени. Для моделирования такого обслуживания, т.е. для задержки транзактов на определенный отрезок модельного времени (реализация шага 3), служит блок ADVANCE (задержать), имеющий следующий формат:
ADVANCE A,B
Операнды в полях A и B имеют тот же смысл, что и в соответствующих полях блока GENERATE. Следует отметить, что транзакты, входящие в блок ADVANCE, переводятся из списка текущих событий в список будущих событий, а по истечении вычисленного времени задержки возвращаются назад, в список текущих событий, и их продвижение по блок-схеме продолжается. Если вычисленное время задержки равно 0, то транзакт в тот же момент модельного времени переходит в следующий блок, оставаясь в списке текущих событий.
Например:
GENERATE 100,40
SEIZE 1
ADVANCE 80,50
RELEASE 1
…..
Здесь транзакты, поступающие в модель из блока GENERATE через случайные интервалы времени, имеющие равномерное распределение на отрезке [60;140], попадают в блок SEIZE и занимают устройство с номером 1. Далее в блоке ADVANCE определяется случайное время задержки транзакта, имеющее равномерное распределение на отрезке [30;130], и транзакт переводится в список будущих событий. По истечении времени задержки транзакт возвращается в список текущих событий и входит в блок RELEASE и освобождает устройство 1. Заметим, что в списке будущих событий, а значит и в блоке ADVANCE может одновременно находиться произвольное количество транзактов.
В рассмотренных выше примерах случайные интервалы времени подчинялись равномерному закону распределения вероятностей. Для получения случайных величин с другими распределениями в GPSS используются вычислительные объекты: переменные и функции.
Задания для самостоятельной работы:
Приведите фрагмент программы, который моделирует обработку детали на станке. Название устройства – MACHINE, время обработки – 10 ед. модельного времени.
Напишите сегмент программы, который описывает процесс шлифования изделия. Шлифование занимает 3-5 минут, в каждый момент времени может обрабатываться только одно изделие. Единица модельного времени – 1 мин.