Записать и запустить на выполнение программу для решения примера 1.



Изучение процессов циклической обработки требований.

Пример 1. Пусть каждое требование проходит 5 циклов обработки на приборе со временем 3±1 мин. по равномерному закону. Входной поток требований подчиняется равномерному закону со временем 5±2 мин. Смоделировать процесс обработки ровно 100 требований.

Решение примера 1 приводится как программа 1.

 

******************************************************** MET1 EQU sqr(25) MET2 EQU (sqr(9)+2^2) ********************************************************* GENERATE 5,2,,100; Генерация 100 транзактов ASSIGN 13,MET1 SEIZE 1 CYCL5 ADVANCE MET2,2 LOOP 13,CYCL5 RELEASE 1 TERMINATE 1 Уничтожение транзактов (вывод из системы) ********************************************************** START 100; Задание числа счетчика завершений
Программа 1.

 

В данном примере организация пятикратного цикла обработки осуществляется блоками ASSIGN и LOOP. Обращение к заданным числовым значениям (5 и 7) производится через метки MET1, MET2 посредством оператора EQU.

Формат записи блока ASSIGN:

ASSIGN 13,МЕТ1

В поле <A> задан параметр транзакта под номером 13 (взят произвольно). Этому параметру сопоставляется число 5, которое переопределяется через метку МЕТ1 поля <B>. Значение поля <B> присваивается параметру, номер которого задается в поле <A>. Задание числа 5 осуществляется оператором EQU.

Формат записи оператора EQU:

МЕТ1 EQU SQR (25)

Метка МЕТ1 — это имя в поле метки оператора. В поле <A> оператора вычисляется выражение:

МЕТ2 EQU ( SQR (9)+2^2)

Оператор EQU с меткой МЕТ2 в поле <A> вычисляет выражение:

Обращение к метке МЕТ1 задает число 5. Обращение к метке МЕТ2 задает число 7.

Формат записи блока LOOP:

LOOP 13, CYCL 5

В поле <A> задан номер параметра (такой же, как и в поле <A> парного блока ASSIGN), определяющего число циклов. В поле <B> задан по метке блок, на который переходит транзакт, если параметр, на который сделана ссылка в поле <A>, не равен нулю. Прохождение транзактом одного цикла уменьшает значение поля <A> на единицу. Когда значение параметра в поле <A> становится равным нулю, то транзакт переходит к следующему по номеру блоку (в рассматриваемом случае к блоку RELEASE). Начало цикла начинается с блока ADVANCE с меткой CYCL5, окончание цикла — с блока LOOP. Если транзакт входит в блок LOOP со значением параметра, равным n,то этот транзакт войдет в блокLOOP n раз и вернется к началу этого цикла (n -1) раз.

В файле стандартного отчета (нажатием клавиши F7) приводятся следующие статистики (результаты моделирования):

 

Файл стандартного отчета программы 1.
 START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY 0 3499 7 1 0 77824LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY 1 GENERATE 100 0 0 2 ASSIGN 100 0 0 3 SEIZE 100 0 0 YCL5 ADVANCE 500 0 0 5 LOOP 500 0 0 6 RELEASE 100 0 0 7 TERMINATE 100 0 0 FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY 1 100 0.998 34.94 1 0 0 0 0 0 XACT_GROUP GROUP_SIZE RETRY POSITION 0 0

 

Задача повторного пятикратного обслуживания решается блоком LOOP, который отправляет транзакты на блок ADVANCE. Из файла стандартного отчета видно, что через блоки LOOP и ADVANCE проходит в пять раз больше транзактов, чем через остальные блоки. Среднее время обслуживания в устройстве также в пять раз больше (в позиции AVE_TIME), чем время обслуживания, которое задается в поле <A> блока временной задержки ADVANCE (см. PRIM11.GPS).

Задание к примеру 1: Снять ограничение на поступление требований в систему. Изменить номер параметра транзактов, по которому осуществляется циклическая обработка: присвоить параметру числа 2, 153, 678, 999. В заданные номера параметра занести числа 3, 7, 9, 11, вычисленные как корень квадратный из соответствующего числа. Вычисления зафиксировать оператором EQU.


Дата добавления: 2018-09-23; просмотров: 232; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!