- •Лабораторная работа №1 Изучение блоков динамической категории gpss/pc: generate, terminate, seize, release, advance
- •20 Transfer .7,chan1,chan2
- •20 Transfer both,chan1,chan2
- •20 Transfer all, chan1,chan4,4
- •Transfer pick,3,6
- •Assign 13,мет1
- •Loop 13, cycl5
- •Лабораторная работа №4 Системы с накопителями: блоки enter, leave, оператор storage. Управление потоком сообщений: блоки gate, test. Операторы variable, fvariable, initial.
- •Leave nak
- •Enter nak
- •20 Gate nu 1,facil2
- •Пример использования арифметических переменных
- •210 Funavail 1,re,facil2, ,re,facil3,re,facil4
- •230 Favail 1
- •510 Sunavail nak
- •530 Savail nak
- •20 Gate snv nak,facil2
- •110 Msavevalue mat2,1,1,c1
- •120 Msavevalue mat2,1,2,100
- •150 Msavevalue mat2-,2,2,2
- •Tabulate ttab1
- •135 Tabulate ttab2
- •70 Tabulate tab1
- •20 Gate snf nak1,exit
- •50 Link waz1,fifo,chan1
- •100 Unlink g waz1,chan1,1,13,16,que2
- •205 Link waz1,fifo
- •Лабораторная работа №9 Создание и управление групп транзактов gpss/pc: блоки join, remove, examine
- •120 Remove gr1,,p23,,,chan2
- •140 Remove gr1,,21
- •Examine gr17,,chan2
- •Examine gr1,6778,chan2
- •Листинг программы
- •Intlines storage 30
- •190 Transfer ,Breakoff
- •390 Terminate
- •570 Nonefree terminate
- •850 Terminate
- •Xact_group group_size retry
- •Лабораторная работа №11
- •Моделирование многофазных систем массового обслуживания
- •I теоретическая часть
- •1.1 Двухфазная система обслуживания
- •1.2 Трехфазная система обслуживания
- •II практическая часть
- •2.1 Моделирование в системе matlab
- •2.2 Моделирование в системе gpss/pc
- •Xact_group group_size retry
- •I теоретическая часть
- •II практическая часть
- •2.1 Моделирование в системе matlab
- •2.2 Моделирование в системе gpss/pc
- •Xact_group group_size retry
Пример использования арифметических переменных
Арифметические переменные (переменные с фиксированной точкой) и арифметические переменные с плавающей точкой описываются соответственно операторами VARIABLE и FVARIABLE. Только при описании переменных с плавающей точкой (FVARIABLE) допускается применение дробных констант, округление результатов происходит после вычисления заданного выражения.
Пример 5. Вычислить и сохранить следующие величины:
Пример решения примера приводится в программе 6.
Программа 6 |
simulate asl fvariable (sqr(49)+1/2+3/2) as2 variable (sqr(49)+1/2+3/2) as3 fvariable (log(15)+sqr(8)) as4 variable (log(15)+sqr(8)) 10 generate 5 20 savevalue mmml,v$asl 30 savevalue mmm2,v$as2 40 savevalue mmm3,v$as3 50 savevalue mmm4,v$as4 100 terminate 1 start 1 end |
Задание к примеру 5.
Вычисленные значения с помощью операторов VARIABLE и FVARIABLE проверить на стандартном калькуляторе, сравнить и объяснить полученные результаты (на калькуляторе и по файлу стандартного отчета).
Лабораторная работа №5
Недоступность устройств. Блоки FUNAVAIL, FAVAIL.
Недоступность многоканальных устройств. Блоки SUNAVAIL, SAVAIL.
Накопление и синхронизация сообщений. Блоки GATHER, MATCH.
Логические ключи. Блоки LOGIC, GATE.
Цель работы: изучение возможностей системы GPSS/PC для моделирования ситуаций с помощью блоков FUNAVAIL и FAVAIL, SUNAVAIL и SAVAIL, когда в течение определенного времени устройство (многоканальное устройство) обслуживания становится недоступным. Изучение блока GATHER для сбора сообщений одного семейства (ансамбля). Осуществление синхронизации продвижения двух транзактов одного ансамбля (семейства), движущихся по разным путям модели. Изучение ситуаций с коммутируемыми объектами с помощью блоков LOGIC и GATE.
Изучение состояний недоступности устройств обслуживания:
блоки FUNAVAIL, FAVAIL
Блоки FUNAVAIL, FAVAIL предусмотрены для адекватного отображения состояния недоступности в статистике использования устройства обслуживания требований, заявок и т.п. Блок FUNAVAIL делает недоступным устройство до тех пор, пока не вступит в действие блок FAVAIL. Эти блоки действуют совместно. Для блока FUNAVAIL предусмотрены специальные режимы работы, задание которых приводит к следующим действиям над транзактами (сообщениями и т.п.), связанными с недоступным устройством:
— управляющему транзакту, который занимал и генерировал прерывание на устройстве в тот момент, когда оно стало недоступным, может быть разрешено продолжение использования этого устройства;
— прерванные транзакты, которые были прерваны другими транзактами при использовании этого устройства, могут продолжать претендовать на устройство в течение периода недоступности; могут быть сняты из рассмотрения на использование устройства и направлены к вспомогательному блоку или могут претендовать на устройство только по окончании периода недоступности;
— над задержанными транзактами, которые ожидали устройство для его занятия или прерывания в момент, когда оно стало недоступным, совершаются те же действия, что и над прерванными транзактами.
Пример 6. Поток требований, поступающий в систему каждые 5 мин., сначала направляется в первое устройство обслуживания. Каждые 55 мин. на время 15 мин. первое устройство становится недоступным. При этом каждые 11 мин. на время 9 мин. делается попытка прервать поток требований, поступающих в первое устройство. В случае недоступности первого устройства требования направляются на обслуживание во второе, третье и четвертое устройства. Длительность обслуживания: в первом устройстве составляет 4 мин., в остальных — 11 мин. Смоделировать работу системы по обслуживанию 100 требований.
Решение примера 6 приводится как программа 6.
Программа 6 |
SIMULATE 10 GENERATE 5; Генерирование потока требований 20 FACIL1 SEIZE 1; Устройство №1 с меткой FACIL1 30 ADVANCE 4 40 RELEASE 1 100 exit1 TERMINATE 1 ************************************************************** 200 GENERATE 55; Генерирование потока команд по недоступности 210 FUNAVAIL 1,re,FACIL2,,re,FACIL3,re,FACIL4; Недоступность 1-го 220 ADVANCE 15 230 FAVAIL 1; Снятие недоступности 1-го устройства 250 TERMINATE ************************************************************** 300 FACIL2 SEIZE 2; Устройство №2 с меткой FACIL2 310 ADVANCE 11 320 RELEASE 2 350 TRANSFER ,exit1 ************************************************************** 400 FACIL3 SEIZE 3; Устройство №3 с меткой FACIL3 410 ADVANCE 11 420 RELEASE 3 450 TRANSFER ,exit1 ************************************************************** 500 FACIL4 SEIZE 4; Устройство №4 с меткой FACIL4 510 ADVANCE 11 520 RELEASE 4 550 TRANSFER ,exit1 ************************************************************** 600 GENERATE 11; Генерирование потока прерываний 610 PREEMPT 1 620 ADVANCE 9 630 RETURN 1 650 TERMINATE START 100; Задание числа счетчика завершений ;end |
Блоки, связанные с устройствами, FUNAVAIL и FAVAIL, PREEMPT и RETURN действуют попарно. Попытка прерывания первого устройства блоком PREEMPT позволяет задействовать все рабочие поля блока FUNAVAIL. Один блок FUNAVAIL осуществляет распределение требований по устройствам.
Формат записи блока FUNAVAIL:
