II -й учебный вопрос. Таким образом, транзакт, попав в указанный опреатор TEST, перейдет к следующему по порядку оператору при условии

ПРИМЕР GPSS-модели – 50 мин

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

В операторе ADVANCE реализуется случайная задержка заявки в соответствии с законом распределения Эрланга 2-го порядка в виде суммы двух экспоненциально распределенных случайных величин со средними значениями в 20 секунд (одна единица модельного времени равна одной секунде) так, что средняя задержка заявки в приборе составляет 40 секунд.

Еще одной особенностью данной модели является наличие двух операторов TERMINATE. Первый оператор удаляет из модели обслуженные заявки (транзакты), при этом из «Счетчика завершений» вычитается единица. Второй оператор удаляет из модели необслуженные заявки, то есть заявки, заставшие при поступлении в систему накопитель заполненным и получившие отказ в обслуживании, при этом из «Счетчика завершений» также вычитается единица. Возникает вопрос: «Можно ли для вывода из модели обслуженных и необслуженных заявок использовать только один оператор TERMINATE?». Ответ: «Да, можно!». Зачем же тогда надо было использовать 2 оператора TERMINATE? Ответ достаточно простой. Второй оператор нужен только для того, чтобы получить информацию о доле обслуженных и доле потерянных (не обслуженных) заявок. Из стандартного отчета (рис.6.9) видно, что число обслуженных транзактов, прошедших через первый оператор TERMINATE, равно 938291, а число необслуженных (потерянных) транзактов, прошедших через второй оператор TERMINATE, равно 61709. Таким образом, вероятность потери заявки в моделируемой системе составляет 61709/(938291+61709)=0,061709, то есть 6,2% от общего числа поступивших в систему заявок. Отметим, что наличие в обоих операторах TERMINATE операнда, равного 1, означает, что моделирование завершится при достижении суммарного числа обслуженных и необслуженных заявок, покинувших систему, значения, указанного в операнде А команды START (в данной модели это значение равно 500000). Если в первом операторе TERMINATE операнд будет отсутствовать, что по умолчанию соответствует значению 0, то моделирование завершится, когда число необслуженных (потерянных) заявок достигнет указанного в команде START значения. И наоборот, если операнд будет отсутствовать во втором операторе TERMINATE, то моделирование завершится, когда число обслуженных заявок достигнет указанного в команде START значения.

На рис.6.9 представлен стандартный отчет, полученный для рассмотренной модели при задании команды START 1000000, означающем, что моделирование завершается после прохождения через систему миллиона заявок (транзактов).

Следует обратить внимание на то, что завершение процесса моделирования происходит по числу транзактов, прошедших через операторы TERMINATE, а не по числу транзактов, сформированных оператором GENERATE. В нашей модели через операторы TERMINATE с номерами (LOC) 8 и 9 прошли соответственно 938291 и 61709 транзактов (см. раздел LABEL отчета), что в сумме составляет ровно 1000000 транзактов, как указано в команде START. В то же время, количество транзактов, сформированных в операторе GENERATE равно 1000006, то есть на 6 транзактов больше, чем покинуло модель. Эти шесть транзактов на момент завершения моделирования остались в модели и, как видно в том же разделе отчета, они находятся в блоках QUEUE (2 транзакта), ENTER (1 транзакт), ADVANCE (3 транзакта).

ВЫВОД

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: