
Имитационное моделирование
Моделирование одноканальных бесприоритетных систем
Цель работы: изучение средств языка GPSS для построения имитационных моделей одноканальных бесприоритетных систем. Исследование моделей на ЭВМ, обработка результатов моделирования.
Краткие сведения Основные операторы
-
ИУ STORAGE Ем или STORAGE ИУ,Ем - описание накопителя, имеющего ограниченную емкость, где:
-
ИУ - имя устройства (память)
-
Ем - емкость устройства.
ENTER ИУ,Ем - блок занятия памяти,
LEAVE ИУ,Ем - блок освобождения памяти.
TRANSFER ,ИБ - блок передачи транзактов, безусловный режим, где:
-
ИБ - имя блока куда передается транзакт.
TRANSFER BOTH,ИБ1,ИБ2 - блок передачи транзактов, условный режим, где
-
BOTH - ключевое слово, обозначающее режим, когда транзакт пытается сначала войти в блок ИБ1, и если это невозможно, то - в ИБ2. Если невозможен вход в ИБ2, то транзакт остается в блоке TRANSFER.
GATE X Им,ИБ - блок передачи транзактов, где
-
Х - условие проверки:
-
LS - логический переключатель "установлен"
-
LR - логический переключатель "сброшен"
-
U - прибор занят
-
NU - прибор не занят
-
SF - память заполнена
-
SNF - память не заполнена
-
Им - имя устройства, прибора или логического переключателя
-
ИБ - имя блока, в который передается транзакт, если условие Х не выполняется
Операторы для повторения сеанса моделирования
-
RESET - управляющий оператор, устанавливает начало измеряемого сеанса моделирования (обнуляет счетчики статистики без удаления транзактов из модели).
-
CLEAR - управляющий оператор, возвращает текущую модель в исходное состояние (восстанавливает все статистические счетчики, удаляет все транзакты из модели, системные часы устанавливаются в 0).
Примеры Пример 1
GENERATE 8,2
TRANSFER BOTH,Path1,Path2 ;
Балансировка
Path1 SEIZE
Device1 ;
Занимаем устройство 1
ADVANCE 5,3
RELEASE Device1 ;
Освобождаем устройство
TRANSFER ,Out ;
Выводим заявку из сети
Path2 SEIZE Device2 ;
Занимаем устройство 2
ADVANCE 7,2
RELEASE Device2 ;
Освобождаем устройство
Out TERMINATE 1
START
TIME END TIME BLOCKS FACILITIES STORAGES
0.000
813.630 10 2 0
LABEL
LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1
GENERATE 100
0 0
2
TRANSFER 100 0 0
PATH1
3
SEIZE 93 0 0
4
ADVANCE 93 0 0
5
RELEASE 93 0 0
6
TRANSFER 93 0 0
PATH2
7
SEIZE 7 0 0
8
ADVANCE 7 0 0
9
RELEASE 7 0 0
OUT
10 TERMINATE 100 0 0
FACILITY
ENTRIES UTIL. AVE.
TIME AVAIL. OWNER PEND INTER RETRY DELAY
DEVICE1
93 0.581
5.087 1 0
0 0 0 0
DEVICE2
7 0.053
6.143 1 0
0 0 0 0
Из отчета можно видеть, как работает балансировка для 100 заявок поступивших в сеть. Из 100 заявок, 93 поступило на первое устройство и 7 – на второе. Из чего можно заключить, что нагрузка 8±2 не является критичной – так как в основном со всеми заявками справлялся блок первого устройства.
START
TIME END TIME BLOCKS FACILITIES STORAGES
0.000
316.698 10 2 0
LABEL
LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1
GENERATE 101
0 0
2
TRANSFER 101 0 0
PATH1
3
SEIZE 61 0 0
4
ADVANCE 61 0 0
5
RELEASE 61 0 0
6
TRANSFER 61 0 0
PATH2
7
SEIZE 40 0 0
8
ADVANCE 40 1 0
9
RELEASE 39 0 0
OUT
10 TERMINATE 100 0 0
FACILITY
ENTRIES UTIL. AVE.
TIME AVAIL. OWNER PEND INTER RETRY DELAY
DEVICE1
61 0.888
4.609 1 0 0 0 0 0
DEVICE2
40 0.905
7.161 1 101 0 0 0 0
Вот так может измениться отчет, если заявки начнут поступать в систему с интервалом 3±2:
Видно, как нагружаются оба устройства с увеличением интенсивности потока.