Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мим.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Пример использования арифметических переменных

Арифметические переменные (переменные с фиксированной точкой) и арифметические переменные с плавающей точкой описываются соответственно операторами 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: