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



Пример использования блока GATE с логическим оператором, связанным с устройствами.

Пример 2.Входной поток требований поступает в систему с двумя обслуживающими устройствами равномерно в течение 5±1 мин. Если требования застают первое устройство занятым, то они поступают на обработку во второе устройство. Время обработки для первого устройства равно 9±1 мин., для второго — 13±1 мин. Смоделировать процесс обработки требований в течение 3 часов (180 мин.).

Подобная ситуация характерна для систем, когда каждое входящее в систему требование в первую очередь отправляется на более быстродействующее устройство обслуживания. Если же это устройство занято, то приходится использовать устройство менее быстродействующее.

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

 

GENERATE 5,1GATE NU 1,FACIL2SEIZE 1; 1-е устройствоADVANCE 9,1RELEASE 1TERMINATE ***************************************************************** ADVANCE 13,1 RELEASE 2 TERMINATE GENERATE 180 TERMINATE 1 START 1
Программа 2.

 

Для этой программы рассмотрим формат записи блока GATE с логическим оператором — оператором NU, связанным с устройством:

GATE NU 1, FACIL 2

В поле <X> задан логический оператор NU, который указывает на то, что устройство, заданное в поле <A> (у нас устройство под номером 1), свободно. Если логическое условие не выполняется, то транзакт отправляется к блоку, имя которого задано в поле <B> (у нас отправление происходит по метке FACIL2).

В противоположность оператору NU может быть использован оператор U — логический оператор, соответствующий занятому устройству.

Задание к примеру 2. Изучить и объяснить файл стандартного отчета для программы 2.

Ввести в программу блоки, по которым создается статистика по очередям.

Изменить среднее время поступления транзактов в систему в соответствии с данным рядом чисел: 2, 3, 4, 6, 7, 9, 13, 15, 21 (мин.).

Изменить среднее время обработки первого устройства при среднем времени поступления требований в систему, равном 5 мин.: 7, 9, 11, 15. В то же время среднее время обработки второго устройства оставить неизменным. Изменить также среднее время обработки второго устройства при неизменном времени обработки первого устройства: 7, 9, 11, 15. Изучить и объяснить файл стандартного отчета.

Изменить для блока GATE логическое условие с NU на U. Для логического условия U последовательно изменять параметры полей <A>, <B> блока GATE, получить загрузку обоих устройств или только одного из двух. Изучить и объяснить файл стандартного отчета.

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

Примеры по моделированию систем с использованием блока TEST. Применение операторов VARIABLE, INITIAL.

Пример 3.Смоделировать процесс обслуживания равномерного потока требований с интервалом 5±1 мин. двумя приборами: обслуживание на первом приборе длится 9±1 мин., на втором — 13±1 мин. Причем в течение первых 100 мин. обслуживание производить на первом приборе, а по истечении 100 мин. — на втором приборе.

Пример 4.Смоделировать процесс обслуживания равномерного потока требований с интервалом 5±1 мин. двумя приборами: обслуживание на первом приборе длится 9±1 мин., на втором — 13±1 мин. Причем в течение первых 100 мин. обслуживание производить на втором приборе, а по истечении 100 мин. — на первом приборе.

Условия примеров различаются в последовательности начального обслуживания требований, которое связано с процессом функционирования системы.

Программы решения примеров 3 и 4 представлены как программы 3 и 4.


Табл.

ATR1 VARIABLE SQR(10000) GENERATE 5,1 TEST LE C1,V$ATR1,FACIL2 SEIZE 1; 1-е устройство ADVANCE 9,1 RELEASE 1 TRANSFER ,EXIT FACIL2 SEIZE 2; 2-е устройство с меткой FACIL2 ADVANCE 13,1 RELEASE 2 EXIT TERMINATE 1 ******************************************************** START 100
Программа 3.
ATR1 VARIABLE SQR(10000) ******************************************************** GENERATE 5,1 TEST GE C1,V$ATR1,FACIL2 SEIZE 1; 1-е устройство ADVANCE 9,1 RELEASE 1 TRANSFER ,EXIT ******************************************************** FACIL2 SEIZE 2; 2-е устройство с меткой FACIL2 ADVANCE 13,1 RELEASE 2 EXIT TERMINATE 1 ******************************************************** START 100
Программа 4.

 

В программах применены новые объекты GPSS World — переменные типа арифметических. Оператор описания арифметической переменной не входит в основное тело программы, он содержит следующие три поля:

1) поле метки, содержащее имя переменной (в программах — ATR1), которое используется при обращении к этой переменной;поле операции, содержит слово VARIABLE;

2) поле операндов, в котором задается выражение, используемое для вычисления значения переменной (в программах — SQR(10000), что означает ).

Формат описания арифметической переменной для программ 3,4:

ATR 1 VARIABLE SQR (10000)

Поле метки отделяется от поля операции (VARIABLE) как минимум одним пробелом, поле операндов (задаваемое выражение) отделяется от поля операции также пробелом. Пробелы между символами недопустимы. Первый пробел записи считается концом выражения. При любом обращении к переменной в любом месте программы должно употребляться выражение V$ATR1. Символ V обозначает тип объекта GPSS World —переменную. Знак $ употребляется для связи объекта как переменной с конкретным обозначением (например, ATR1).

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

TEST < X > < A >,< B >,< C >

Блок TEST определяет номер следующего блока для вошедшего в него транзакта (сообщения) в зависимости от того, выполняется требуемое условие или нет. Блок управляет потоком транзактов, проверяя выполнение алгебраических отношений между значениями, заданных в полях <A> и <B>. Во вспомогательном поле операции <X> записывается один из шести условных операторов:

LE — меньше или равно (как в программе 3). Отношение истинное, если значение аргумента поля <A> меньше или равно значению аргумента поля <B>;

GE — больше или равно (как в программе 4). Отношение истинное, если значение аргумента поля <A> больше или равно значению аргумента поля <B>;

E — равно. Отношение истинное, если значения обоих аргументов полей <A> и <B> равны;

L — меньше. Отношение истинное, если значение аргумента поля <A> меньше значения аргумента поля <B>;

NE — не равно. Отношение истинное, если значения аргументов полей <A> и <B> не равны.

Если отношение аргументов (числовых атрибутов), заданных в полях <A> и <B>, истинно, транзакт переходит к следующему по номеру блоку (который расположен за блоком TEST). Если отношение ложно, транзакт переходит к блоку, номер или имя которого задан полем <C> (в программах по метке блока устройства FACIL2). В поле <C> задается номер или имя блока для входящего транзакта, если отношение величин, заданных в полях <A> и <B>, ложно. В программах 3 и 4 в поле <A> задан стандартный числовой атрибут С1 — условное относительное время моделирования. В поле <B> задана переменная через имя ATR1 (V$ATR1), которая численно равна 100.

В программе 3 пока значение условного относительного времени не достигнет 100, транзакты от блока TEST будут переходить к следующему по номеру блоку (к блоку SEIZE под номером 30). Как только величина С1 станет больше 100, транзакты будут переходить к блоку, имя которого определено в поле <C>, т.е. к блоку с меткой FACIL2 и с номером 100 — SEIZE. Пока С1£100, транзакты на обслуживание отправляются в 1-е устройство. Как только С1 станет больше 100, транзакты начинают отправляться на обслуживание в 2-е устройство.

В программе 4 транзакты после блока TEST будут направляться к следующему по номеру блоку — блоку SEIZE под номером 30, когда значение условного относительного времени С1 будет больше числа 100, которое определено через арифметическую переменную под именем ATR1. Если же значение С1 меньше или равно величины 100, то транзакты отправляются по метке к блоку, заданный в поле <C>. Начало отсчета относительного времени моделирования начинается с нуля, поэтому сначала транзакты будут отправляться к блоку, заданному в поле <C>, т.е. к блоку SEIZE под номером 100.

В поле <В> блока TEST может быть задана ячейка сохраняемых величин, которая определяется с помощью оператора INITIAL. Использование оператора INITIAL дано в программе 5, которая решает ту же задачу, что и программа 3.

 

initial x13,100; В ячейку под номером 13 записывается число 100 ********************************************************* GENERATE 5,1 TEST LE C1,x13,FACIL2; Сравнение С1 и ячейки х13 SEIZE 1; 1-е устройство ADVANCE 9,1 RELEASE 1 TRANSFER ,EXIT FACIL2 SEIZE 2; 2-е устройство с меткой FACIL2 ADVANCE 13,1 RELEASE 2 EXIT TERMINATE 1 START 100
Программа 5.

 

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

INITIAL <A>,<B>

Оператор INITIAL записывается вне тела основной программы и может не нумераваться. Оператор INITIAL позволяет задавать начальные значения ячеек, элементов матриц и логических переключателей.

В приводимой программе в поле <A> оператора INITIAL задается ячейка под номером 13 (Х13), в которую записывается число 100. В поле <B> задается определяемая величина. Операнд может быть целым или именем. В программе ссылка на ячейку под заданным номером 13 производится как Х13 (в поле <B> блока TEST). Фактически в поле <B> блока TEST задано число 100.

Задание к примерам 3, 4: В программе 3 ввести переменные, по которым задать средние времена обработки — натуральные числа от 3 до 19 для первого устройства и от 19 до 3 для второго устройства, соответственно. В исходных программах поменять условия сравнения в поле <X> блока TEST на "меньше", "не равно". При этом произвести замену среднего времени обработки в первом устройстве — задать числа от 3 до 15. В программах 3, 4, 5 ввести блоки для регистрации данных об очередях перед устройствами.

С помощью блоков TEST, GATE написать программу по обработке требований в системе, состоящей из пяти устройств, и предусмотреть обработку либо только в четных по номеру устройствах, либо в нечетных. Длительность функционирования системы задать в течение 3 часов, длительность обработки в каждом из устройств 9±1 мин., интервал генерации требований 7±1 мин. Изучить и объяснить получаемые результаты моделирования.


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

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






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