Имитационное моделирование на языке GPSS. Методическое пособие по дисциплине "Компьютерное моделирование". Алтаев А.А. - 38 стр.

UptoLike

Составители: 

38
Блок FAVAIL
18
делает доступными устройства, указанные как номер или диапазон
номеров устройств в поле А. Блок FAVAIL отменяет все режимы, заданные блоком
FUNAVAIL для данных устройств.
Рассмотрим пример использования блоков FUNAVAIL и FAVAIL:
FUNAVAIL 1—15
ADVANCE 30
FAVAIL 1—l0
ADVANCE 15
FAVAIL 11—15
(т. е. недоступные устройства с 1-го по 15-е становятся доступными: через 30 единиц
времениустройства с 1-го 10-е, а через 45 единиц
времениустройства с 11-го по 15-
е).
Часто два и более приборов работают рядом. GPSS позволяет моделировать
однородные параллельные приборы с помощью специальных средств, называемых
многоканальным устройством, или памятями. Для введения в программу памяти
требуется описать ее картой STORAGE, а изменение состояния памяти производится
блоками ENTER, LEAVE, SUNAVAIL, SAVAIL. Блок ENTER моделирует событие
«занятие одного из группы параллельно
работающих приборов», LEAVE
19
«освобождение параллельно работающего прибора».
Поле А блока ENTER интерпретируется как номер памяти, поле Вуказывает число
единиц памяти, занимаемых транзактом при входе в блок. При выходе транзактов из
блока ENTER никаких изменений в содержимом памяти не происходит.
Если поле В пустое, то число единиц памяти полагает равным 1. В этом поле может
быть
записан 0 и тогда содержимое памяти увеличится на 0 единиц. Если в памяти нет
достаточного числа свободных единиц, чтобы удовлетворить запрос транзакта, то этот
транзакт не может быть обслужен блоком ENTER. Если для последующего транзакта
число единиц памяти достаточно, он входит в память раньше первого.
Поле А определяет номер памяти, а поле В
число единиц, которые надлежит
освободить при входе транзакта в блок LEAVE. Не всегда освобождается такое же число
единиц памяти,
как было занято. Транзакт, освобождающий память, не обязательно
должен был ее занимать. Однако необходимо, чтобы в сумме освобождалось столько
единиц памяти, сколько было занято (иначе содержимое памяти будет возрастать и после
ее заполнения в системе наступит насыщение), и чтобы содержимое памяти не стало
отрицательным (т. е. не освобождалось больше единиц памяти, чем
было занято). При
выполнении блока LEAVE задержки не возникают. Аналогично тому, как в блоке ENTER
транзакт может занять 0 единиц памяти, в блоке LEAVE он может освободить 0 единиц.
Пример 8. Построить программу модели многоканальной системы массового
обслуживания с очередью. В парикмахерской три мастера, очередь к ним общая. Клиенты
приходят с интервалом (10 ± 5) минут, обслуживание парикмахером клиента
занимает (25
± 10) минут. Смоделировать работу парикмахерской в течение одного рабочего дня (8
часов).
SIMULATE Начало моделирования
PARIK STORAGE 3 Три парикмахера
GENERATE 10,5 Приход клиентов
QUEUE OCHER Занятие очереди
ENTER PARIK,1 Начало стрижки
DEPART OCHER Освобождение очереди
ADVANCE 25,10 Стрижка
18
AVAIL (сделать доступным)
19
LEAVE - выйти
  Блок FAVAIL18 делает доступными устройства, указанные как номер или диапазон
номеров устройств в поле А. Блок FAVAIL отменяет все режимы, заданные блоком
FUNAVAIL для данных устройств.
  Рассмотрим пример использования блоков FUNAVAIL и FAVAIL:
FUNAVAIL 1—15
ADVANCE 30
FAVAIL             1—l0
ADVANCE 15
FAVAIL             11—15
(т. е. недоступные устройства с 1-го по 15-е становятся доступными: через 30 единиц
времени — устройства с 1-го 10-е, а через 45 единиц времени — устройства с 11-го по 15-
е).
    Часто два и более приборов работают рядом. GPSS позволяет моделировать
однородные параллельные приборы с помощью специальных средств, называемых
многоканальным устройством, или памятями. Для введения в программу памяти
требуется описать ее картой STORAGE, а изменение состояния памяти производится
блоками ENTER, LEAVE, SUNAVAIL, SAVAIL. Блок ENTER моделирует событие
«занятие одного из группы параллельно работающих приборов», LEAVE19 –
«освобождение параллельно работающего прибора».
    Поле А блока ENTER интерпретируется как номер памяти, поле В — указывает число
единиц памяти, занимаемых транзактом при входе в блок. При выходе транзактов из
блока ENTER никаких изменений в содержимом памяти не происходит.
    Если поле В пустое, то число единиц памяти полагает равным 1. В этом поле может
быть записан 0 и тогда содержимое памяти увеличится на 0 единиц. Если в памяти нет
достаточного числа свободных единиц, чтобы удовлетворить запрос транзакта, то этот
транзакт не может быть обслужен блоком ENTER. Если для последующего транзакта
число единиц памяти достаточно, он входит в память раньше первого.
    Поле А определяет номер памяти, а поле В — число единиц, которые надлежит
освободить при входе транзакта в блок LEAVE. Не всегда освобождается такое же число
единиц памяти, как было занято. Транзакт, освобождающий память, не обязательно
должен был ее занимать. Однако необходимо, чтобы в сумме освобождалось столько
единиц памяти, сколько было занято (иначе содержимое памяти будет возрастать и после
ее заполнения в системе наступит насыщение), и чтобы содержимое памяти не стало
отрицательным (т. е. не освобождалось больше единиц памяти, чем было занято). При
выполнении блока LEAVE задержки не возникают. Аналогично тому, как в блоке ENTER
транзакт может занять 0 единиц памяти, в блоке LEAVE он может освободить 0 единиц.
    Пример 8. Построить программу модели многоканальной системы массового
обслуживания с очередью. В парикмахерской три мастера, очередь к ним общая. Клиенты
приходят с интервалом (10 ± 5) минут, обслуживание парикмахером клиента занимает (25
± 10) минут. Смоделировать работу парикмахерской в течение одного рабочего дня (8
часов).
         SIMULATE                        Начало моделирования
PARIK STORAGE              3             Три парикмахера
         GENERATE          10,5          Приход клиентов
         QUEUE             OCHER         Занятие очереди
         ENTER             PARIK,1       Начало стрижки
         DEPART            OCHER         Освобождение очереди
         ADVANCE           25,10         Стрижка

  18
       AVAIL (сделать доступным)
  19
       LEAVE - выйти
  38