Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указанияи Варж.doc
Скачиваний:
9
Добавлен:
02.04.2015
Размер:
944.13 Кб
Скачать

3.5.2 Правило окончания по времени испытаний

Довольно часто в процессе ИМ требуется определить не средние значения атрибутов объектов, а значения зависящие от времени: производительность, динамику процесса, суммарные затраты за какой то период времени и т.д. В этом случае в качестве контрольной точки берётся не число стартов, а период времени (рабочая смена, сутки, месяц и т.д.). Основным условием при этом является приведение всех рассматриваемых при моделировании интервалов времени к одному масштабу, например, если предельное время задано в сутках, а темп прихода транзактов в минутах, то правильнее все интервалы времени исчислять в минутах. Для реализации правила окончания ИМ по времени программа должна проделать следующие действия :

1. Принять предельный интервал абсолютного времени АС1 - Ту за условную единицу отсчёта (машинная единица).

2. Суммировать времена движения транзактов .

3. Проверять условие АС1 - 0. 3.2

Проиллюстрируем условие 3.2) на рис.3.6. Первый уничтоженный транзакт отмечает своё время на оси АС1, второй приплюсовывает время своего движения к точке Т1, третий к точке Т2 и т. д., до тех пор, пока последний у – ый интервал текущего времени транзакта не сравняется или

АС1пр

0.0 Т1 Т2 Ty-1 АС1Ty

Рис.3.6 Иллюстрация правила окончания ИМ по времени

не превысит значение АС1пр. На рисунке это значение Ту больше предельного значения.

4. Выполнение условия 3.2 приводит к появлению машинной единицы (см. п.1), которая сравнивается со значением операнда А =1 ОБ START, результат обнуляется, что приводит к выдаче сигнала о прекращении процесса ИМ.

Указанные действия программы реализуются следующим образом:

-Обязательно вводится дополнительный парный программный модуль:

GENERATEAC1пр.

TERMINATE1 ,

называемый таймером, который учитывает накапливаемое время движения транзактов. Значение операнда А ОБ GENERATEравняется заданному предельному интервалу АС1пр., других операндов нет.

- В обязательном порядке обнуляются значения операндов А всех ОБ TERMINATEмодуля исполнения МФ.

- Значение операнда А ОУ STARTв модуле управления устанавливается равным 1.

Рассмотрим этот простой алгоритм на примере Д), который модифицируем для окончания по времени работы в течение 5 ч. или 300 минут.

Д) SIMULATE Е) SIMULATE

GENERATE 50 GENERATE 50

TERMINATE 1 TERMINATE 0

GENERATE 75 GENERATE 75

TERMINATE 1 TERMINATE 0

START 3 GENERATE 300

END TERMINATE 1

START 1

END

Рассмотрим некоторые особенности примера Е).

Транзакты в МФ не терминируются, а лишь отмечают факт своего прохода отметкой на оси АС1 (запомним это важное обстоятельство на будущее), таймер срабатывает при выполнении условия 3.2. Показания операндов А ОБ TERMINATEи ОУSTARTвычитаются, обнуляются, что служит командой для прекращения процесса ИМ.

Для обратного перехода к управлению с помощью числа стартов необходимо:

- Удалить из модуля управления МФ таймер.

- Записать в поле операнда А ОУ STARTжелаемое число стартов.

- Записать в поля операндов А ОБ TERMINATEжелаемые значения.

В примере Е) мы впервые сталкиваемся с весьма важным обстоятельством, когда 2 транзакта из разных ГСЧ приходят в одно и тоже время, такие моменты в нашем примере наступают в 150 и 300 временных дискрет, в эти моменты транзакты становятся связанными по времени. Возникает вопрос, как они проходят по МФ? Нельзя забывать, что транзакты двигаются один за другим по одному в единицу времени. Для решения этой проблемы в GPSS/Hпредусмотрены чёткие правила:

- Транзакты одинакового приоритета записываются в списке текущих событий - СТС в порядке возрастания их ИН. Следовательно проблема решается просто: вначале исполняется транзакт с меньшим ИН, а затем с большим ИН, но имеющим одно и тоже время. При этом засечка на оси АС1 будет одинаковой.

- При разных приоритетах, если транзакты связаны по времени первым движется транзакт, имеющий больший приоритет.