Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Гистограмма плотности распределения времени ожидания заявок в очереди.



 

8. Гистограмма плотности распределения времени пребывания заявок в системе.

 

Пример 2. «Многоканальное устройство»

По заданной схеме построить имитационную модель и провести моделирование в течение 8 часов.

 

В СМО поступает простейший поток заявок, интервалы между которыми распределены по равномерному закону в интервале от 5 до 9 секунд со средним значением 7 секунд. Заявки выбираются на обслуживание из накопителя неограниченной емкости в порядке поступления. Система содержит два идентичных обрабатывающих приборов.

Длительность обслуживания заявок в устройстве – величина случайная, распределенная по равномерному закону в интервале от 4 до 12 секунд со средним значением 8 секунд. В отчете отобразить данные по МКУ и очередям.

На это раз не будем строить гистограмму, просто уясним способ решения.

 

За единицу времени возьмем 1 минуту.

 

Usel STORAGE 2

GENERATE 7, 2

QUEUE Ocher

ENTER Usel; попытка занять один из приборов устройства        Usel

DEPART Ocher

ADVANCE 8, 4

LEAVE Usel; освобождение одного прибора многоканального  устройства Usel

TERMINATE

GENERATE 480; время моделирования 480 минут

TERMINATE 1; уменьшение времени моделирования на 1 минуту.

START 1

 

Рассмотрим изменения, внесенные в предыдущую GPSS-модель.

Первое изменение заключается в появлении в GPSS-модели «Области описания», которая содержит оператор STORAGE, задающий имя ( U s el )многоканального устройства (памяти) и количество обслуживающих приборов (ёмкость памяти), равное 2.

Второе изменение состоит в использовании операторов ENTER и LEAVE, моделирующих занятие и освобождение многоканального устройства, вместо операторов SEIZE и RELEASE, использующихся для одноканального устройства. Заметим, что в операторах ENTER и LEAVE, в отличие от SEIZE и RELEASE, могут использоваться два операнда A и B, где второй операнд B определяет количество занимаемых или освобождаемых приборов (каналов), причем при отсутствии операнда B его значение по умолчанию принимается равным 1.

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

Представим результаты моделирования. Для отображения данных по МКУ, поставить галочку напротив пункта «Storages» в пункте «Edit/Settings …» и странице «Reports».

 

"

Здесь:

STORAGE – символическое имя или номер многоканального устройства;

CAP. – емкость МКУ;

REM. – количество свободных каналов в момент завершения моделирования;

MIN. – наименьшее количество занятых каналов в процессе моделирования;

MAX. – наибольшее количество занятых каналов в процессе моделирования;

ENTRIES – количество входов в МКУ;

AVL. - доступность устройства;

AVE.C. – среднее количество занятых каналов;

UTIL. – коэффициент использования МКУ;

RETRY – количество транзактов, ожидающих выполнения некоторого специфического условия;

DELAY – количество транзактов, ожидающих занятия устройства.

 

 

Описание языка моделирования GPSS

GENERATE (ГЕНЕРИРОВАТЬ)

Назначение оператора: генерирование транзактов в соответствии с заданным правилом формирования интервалов между транзактами.

Формат оператора:

                     GENERATE [A], [B], [C], [D], [E]

Значения операндов:

A – средний интервал времени между генерируемыми транзактами или вероятностное распределение интервала из встроенной библиотеки процедур, заключённое в круглые скобки; [по умолчанию – ноль];

B – величина полуинтервала равномерно распределенного интервала или модификатор таблично заданной функции; [по умолчанию – ноль];

С – смещение – момент формирования первого транзакта; [по умолчанию – ноль];

D – ограничитель – число генерируемых данным оператором транзактов; [по умолчанию – не ограничено];

Е – уровень приоритета от 0 до 127 (чем больше номер, тем выше приоритет); [по умолчанию – ноль].

Примечание. Несмотря на то, что операнды A и D – необязательные операнды, в операторе GENERATE обязательно должен использоваться один из них: либо операнд A, либо операнд D.

 

TERMINATE (ЗАВЕРШИТЬ)

Назначение оператора: удаление транзактов из модели.

Формат оператора:

                     TERMINATE [A]

Значения операндов:

A – указатель уменьшения счетчика завершений (целое положительное число); [по умолчанию – ноль].

 

ADVANCE (ЗАДЕРЖАТЬ)

Назначение оператора: задержка транзакта на заданное время.

Формат оператора:

                     ADVANCE [A], [B]

Значения операндов:

A – среднее время задержки или вероятностное распределение из встроенной библиотеки процедур, заключённое в круглые скобки; [по умолчанию – ноль];

B – величина полуинтервала равномерно распределенного интервала задержки или модификатор таблично заданной функции; [по умолчанию – ноль].

 

SEIZE (ЗАНЯТЬ)

Назначение оператора: занятие транзактом прибора.

Формат оператора:

                     SEIZE A

Значения операндов:

A – идентификатор (число или имя) занимаемого прибора.

 

RELEASE (ОСВОБОДИТЬ)

Назначение оператора: удаление транзакта из прибора (освобождение прибора).

Формат оператора:

                     RELEASE A

Значения операндов:

A – идентификатор (число или имя) освобождаемого прибора.

 

QUEUE (СТАТЬ В ОЧЕРЕДЬ)

Назначение оператора: занесение транзакта в очередь (точнее – регистрация статистики очереди, связанная с фиксацией момента поступления транзакта в очередь и увеличением ее длины).

Формат оператора:

                     QUEUE A, [B]

Значения операндов:

A – идентификатор (число или имя) очереди;

B – количество элементов, на которое должна увеличиться длина очереди; [по умолчанию – один].

 

DEPART (ПОКИНУТЬ ОЧЕРЕДЬ)

Назначение оператора: удаление транзакта из очереди (точнее – регистрация статистики очереди, связанная с уменьшением ее длины и фиксацией момента удаления транзакта из очереди с целью определения времени ожидания).

Формат оператора:

                     DEPART A, [B]

Значения операндов:

A – идентификатор (число или имя) очереди;

B – количество элементов, на которое должна уменьшиться длина очереди; [по умолчанию – один].

 

ENTER (ВОЙТИ)

Назначение оператора: вход транзакта в многоканальное устройство.

Формат оператора:

                     ENTER A, [B]

Значения операндов:

A – идентификатор (число или имя) многоканального устройства;

B – количество занимаемых приборов многоканального устройства; [по умолчанию – один].

 

LEAVE (ВЫЙТИ)

Назначение оператора: удаление транзакта из многоканального устройства.

Формат оператора:

                     LEAVE A, [B]

Значения операндов:

A – идентификатор (число или имя) многоканального устройства;

B – количество освобождаемых приборов многоканального устройства; [по умолчанию – один].

 

TEST (ПРОВЕРИТЬ)

Назначение оператора: поверка значения (обычно СЧА) и передача активного транзакта в блок, отличный от последующего, если указанное условие не выполняется.

Формат оператора:

                     TEST Х A, B, [C],

Значения операндов:

A – проверяемое значение;

B – контрольное значение;

C – имя (метка) блока назначения C; [по умолчанию – Режим отказа];

Х – оператор отношения, определяющий условие проверки операнда

А с операндом В:

 

Значения Х Интерпретация в смысле блока TEST
G A больше B?
GE A больше или равно B?
E A равно B?
NE A не равно B?
LE A меньше или равно B?
L A меньше B?

 

Блок TEST может функционировать в двух режимах:

· в режиме альтернативного выхода (если задан операнд C );

· в режиме отказа (если операнд C не задан).

Когда транзакт пытается войти в блок TEST в режиме альтернативного выхода и проверяемое условие не выполняется, транзакт передается блоку, указанному в

операнде С.

Когда транзакт пытается войти в блок TEST в режиме отказа (при отсутствии операнда С ) и заданное условие не выполняется, транзакт блокируется до тех пор, пока условие не будет выполнено.

 

TRANSFER (ПЕРЕДАТЬ)

Назначение оператора: передача транзакта в блок, отличный от последующего.

Режимы использования оператора TRANSFER:

1) режим безусловной передачи;

2) режим статистической передачи;

3) режим BOTH (ОБА);

4) режим ALL (ВСЕ);

5) режим PICK (выборочный);

6) режим FN (функциональный);

7) режим P (параметрический);

8) режим SBR (подпрограммный);

9) режим SIM (одновременный).

 

Далее рассматриваются только первый, третий и четвертый режим.

Режим безусловной передачи

Назначение оператора: безусловная передача транзакта в блок, отличный от последующего.

Формат оператора:

                     TRANSFER, B

Значения операндов:

A – НЕ используется, что является признаком режима безусловной передачи;

B – имя блока, к которому направляется активный транзакт.

Режим BOTH (ОБА)

Назначение оператора: В этом режиме каждый входящий транзакт сначала пытается перейти к блоку, указанному в поле В. Если это сделать не удается, транзакт пытается перейти к блоку, указанному в поле С. Если транзакт не сможет перейти ни к тому, ни к другому блоку, оно остается в блоке TRANSFER и будет повторять в том порядке попытки перехода при каждом просмотре списка текущих событий, до тех пор, пока не сможет выйти из блока TRANSFER.

Формат оператора:

                     TRANSFER A, B, C

Значения операндов:

A – равно BOTH, что является признаком режима ОБА;

B, С – имена блоков, к которым может направляется активный транзакт.

 

Режим ALL (ВСЕ)

Назначение оператора: В этом режиме каждый входящий транзакт прежде всего пытается перейти к блоку, указанному в поле В. Если транзакт в этот блок войти не может, то последовательно проверяются все блоки в определенном ряду в поисках первого, способного принять этот транзакт, включая блок, указанный операндом С. Номер каждого проверяемого блока вычисляется как сумма номера предыдущего блока и шага, заданного операндом D

Формат оператора:

                     TRANSFER A, B, C, D

Значения операндов:

A – равно ALL, что является признаком режима ВСЕ;

B – первый блок к которому направляется транзакт;

C – последний блок к которому направляется транзакт;

D – шаг, количество операторов который пропускает транзакт до следующего блока, если и блок который указ в операнде C, цикл начинается с начала.

 

TABULATE (ТАБУЛИРОВАТЬ)

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

Формат оператора:

                     TABULATE A, [B]

Значения операндов:

A – имя таблицы, в которую заносится соответствующее значение и которая должна быть описана с помощью оператора описания (команды) TABLE;

B – весовой коэффициент; [по умолчанию – Коэффициент равен 1]. При попадании активного транзакта в оператор TABULATE обновляется статистика, связанная с таблицей, указанной в операнде A

 


Поделиться:



Последнее изменение этой страницы: 2019-10-24; Просмотров: 183; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.047 с.)
Главная | Случайная страница | Обратная связь