Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 1_12.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
233.47 Кб
Скачать

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 используются вычислительные объекты: переменные и функции.

Задания для самостоятельной работы:

  1. Приведите фрагмент программы, который моделирует обработку детали на станке. Название устройства – MACHINE, время обработки – 10 ед. модельного времени.

  2. Напишите сегмент программы, который описывает процесс шлифования изделия. Шлифование занимает 3-5 минут, в каждый момент времени может обрабатываться только одно изделие. Единица модельного времени – 1 мин.