
Практическое занятие №4 Моделирование обслуживания в многоканальных смо
Очень часто в поле зрения исследователей попадают многоканальные СМО с параллельно работающими приборами, однородными по свойствам, например, времени обслуживания заявки. Язык предоставляет для моделирования таких параллельно работающих приборов специальное средство - «Многоканальное устройство».
В модели может быть несколько многоканальных устройств, различающихся символическими или числовыми именами. Число приборов, моделируемых многоканальным устройством, определяется пользователем и называется емкостью многоканального устройства.
Многоканальное устройство вводится парой взаимодополняющих друг друга блоков — ENTER (войти) и LEAVE (выйти). Когда транзакт входит в первый из них, моделируется событие «Занятие одного из группы параллельноработающих приборов», а когда он попадает во второй - «Освобождение параллельно работающего прибора».
Общий вид блоков:
ENTER А, В
LEAVE А, В.
Операнд А указывает имя многоканального устройства (по умолчанию — ошибка), а В — число приборов, занимаемых при входе одного транзакта (по умолчанию — единица). Графическое изображение блоков приведено на рисунке 1.
Рисунок 1 - Графическое изображение блоков ENTER (слева) и LEAVE (справа)
В конце прогона интерпретатор автоматически распечатывает статистику по многоканальным устройствам . Емкость многоканального устройства задается оператором STORAGE (многоканальное устройство).
Общий вид оператора: Имя STORAGE А, где «Имя» — соответствует символическому или числовому наименованию многоканального устройства (операнд А в блоках ENTER и LEAVE). Операнд А определяет емкость многоканального устройства.
Пример 1. В порту пять причалов, время обслуживания судов на каждом из них составляет 10±3 суток. Написать сегмент GPSS-модели, моделирующий параллельную обработку судов.
Введем многоканальное устройство с именем PORT, тогда
PORT STORAGE 5
.
.
.
ENTER PORT
ADVANCE 10.3
LEAVE PORT
Оператор STORAGE помещается в программе перед оператором GENERATE.
Блок TRANSFER (передать) обеспечивает передачу транзактов в указанный блок. Блок TRANSFER имеет девять режимов передачи транзактов:
Режим безусловной передачи. Используется, когда возникает необходимость передать транзакт безусловным образом в блок, отличный от последующего. Форма представления:
Transfer , b
Наличие запятой указывает на безусловный режим использования блока.
Операнд В указывает положение, занимаемое блоком, в который транзакт должен сделать попытку входа. Положение блока может задаваться либо символически, либо в виде номера блока. Символьное имя использовать более удобно. В режиме безусловной передачи блок TRANSFER не может отказать транзакту во входе. Когда транзакт входит в блок он сразу же пытается занять его. Если этот блок отказывает в приеме, то транзакт остаётся в блоке TRANSFER и в цепи текущих событий. При каждом последующем просмотре цепи снова делается попытка поместить транзакт в блок В.
Графическая интерпретация блока TRANSFER в режиме безусловной передачи представлена на рисунке 2:
(В)
Рисунок 2 - Блок TRANSFER в режиме безусловной передачи.
Режим статистической передачи. Используется когда необходимо передать транзакт в один из блоков случайным образом, при этом необходимо выбрать одну из двух возможностей: