Разработка моделей, инструментальные средства моделирования систем. Язык моделирования GPSS. (Лекция 2.8)

Содержание

Слайд 2

Лекция Язык моделирования GPSS Разработка моделей, инструментальные средства моделирования систем Тема 2

Лекция

Язык моделирования GPSS

Разработка моделей, инструментальные средства моделирования систем

Тема 2

Слайд 3

1 Классификация инструментальных средств моделирования

1

Классификация инструментальных средств моделирования

Слайд 4

МОДЕЛИРОВАНИЕМ НАЗЫВАЕТСЯ ЗАМЕЩЕНИЕ ОДНОГО ОБЪЕКТА ДРУГИМ С ЦЕЛЬЮ ПОЛУЧЕНИЯ ИНФОРМАЦИИ О

МОДЕЛИРОВАНИЕМ НАЗЫВАЕТСЯ ЗАМЕЩЕНИЕ ОДНОГО ОБЪЕКТА ДРУГИМ С ЦЕЛЬЮ ПОЛУЧЕНИЯ ИНФОРМАЦИИ О

ВАЖНЕЙШИХ СВОЙСТВАХ ОБЪЕКТА-ОРИГИНАЛА С ПОМОЩЬЮ ОБЪЕКТА-МОДЕЛИ
Слайд 5

Имитационное моделирование — это метод исследования, при котором изучаемая система заменяется

Имитационное моделирование — это метод исследования, при котором изучаемая система заменяется

моделью, с достаточной точностью описывающей реальную систему, с которой проводятся эксперименты с целью получения информации об этой системе.
Экспериментирование с моделью называют имитацией (имитация — это постижение сути явления, не прибегая к экспериментам на реальном объекте).
Слайд 6

Классификация средств моделирования Средства моделирования Универсальные языки программирования Системы моделирования Языки

Классификация средств моделирования

Средства
моделирования

Универсальные
языки
программирования

Системы
моделирования

Языки
моделирования

Пакеты
имитационного
моделирования

Универсальные
пакеты

Предметно-
ориентированные

пакеты
Слайд 7

Сравнение универсальных языков программирования и систем моделирования Системы моделирования обеспечивают естественную

Сравнение универсальных языков
программирования и систем моделирования

Системы моделирования
обеспечивают естественную среду
для

разработки моделей;
Модели, созданные с помощью
систем моделирования проще
модифицировать и использовать;
Системы моделирования
обеспечивают более совершенные
механизмы отладки моделей
Системы моделирования
обеспечивают сокращение времени
и стоимости разработки модели;
Скорость выполнения прогонов
моделей, написанных на языках
программирования выше, чем
моделей, написанных на языках
моделирования;
Языки программирования
обеспечивают большую гибкость
моделей, чем системы
моделирования;
Языки программирования знает
большинство разработчиков;

Универсальные языки
программирования

Системы моделирования

Слайд 8

Сравнение языков и пакетов имитационного моделирования Языки моделирования по своей природе

Сравнение языков и пакетов
имитационного моделирования

Языки моделирования по своей
природе универсальны;
Разработка

модели на языке
моделирования
подразумевает написание кода;
Языки моделирования
предоставляют достаточно
широкие возможности
моделирования, но часто трудны
в использовании
Пакеты моделирования, как
правило, ориентированы на
решение определенных задач
Разработка модели в пакете
моделирования производится
с использованием
графического интерфейса;
Пакеты моделирования проще
изучать и использовать, но при
решении некоторых задач, они не
могут обеспечить достаточную
гибкость моделирования

Пакеты имитационного
моделирования

Языки моделирования

Слайд 9

Математические пакеты Mathematica, Maple, MathLab, Математические пакеты и моделирование очень эффективно

Математические пакеты Mathematica, Maple, MathLab,

Математические пакеты и моделирование

очень эффективно решают

задачи аналитического моделирования.

Для задач имитационного моделирования пакеты имеют:

генераторы случайных чисел

генераторы случайных величин с различными законами распределения;

средства программирования, необходимые для описания логики работы сложных систем;

средства статистической обработки результатов моделирования.

Некоторые пакеты имеют специальные средства для построения моделей (MathLab имеет пакет расширения Simulink)

Однако, математические пакеты весьма неудобны для имитационного моделирования.

Слайд 10

2 Общая характеристика GPSS World

2

Общая характеристика GPSS World

Слайд 11

GPSS – General Purpose Simulation System (общецелевая система моделирования) Разработана Дж.Гордоном

GPSS – General Purpose Simulation System

(общецелевая система моделирования)

Разработана Дж.Гордоном (США) в

фирме IBM в начале 60-х годов

Самый популярный в мире язык моделирования

Слайд 12

Литература по GPSS: 1. Шрайбер Т.Д. Моделирование на GPSS. М., Машиностроение,

Литература по GPSS:

1. Шрайбер Т.Д. Моделирование на GPSS. М., Машиностроение, 1980.-

592 с.

3. Кудрявцев Е.М. GPSS World. Основы имитационного моделирования различных систем. М., ДМК Пресс, 2004.- 320 с.

2. Руководство пользователя по GPSS World. /Перевод с английского/. Казань, изд-во «Мастер Лайн», 2002.- 384 с.

Слайд 13

Основными элементами этого языка являются транзакты и блоки, которые отображают соответственно

Основными элементами этого языка являются транзакты и блоки, которые отображают соответственно

динамические и статические объекты моделируемой системы.

Язык GPSS – это язык декларативного типа, построенный по принципу объектно-ориентированного языка.

Как и в каждом объектно-ориентированном языке в GPSS каждый объект имеет свойства и методы, которые изменяют эти свойства. В GPSS свойства объектов называют стандартными числовыми атрибутами (СЧА).

Слайд 14

1. Модели на GPSS более компактны, т.к. состоят из меньшего числа

1. Модели на GPSS более компактны, т.к. состоят из меньшего числа

операторов, чем такие же модели, написанные на процедурных языках ( - в GPSS встроено максимально возможное число логических программ, необходимых для моделирования систем; - в GPSS входят специальные средства для описания динамического поведения систем, меняющихся во времени, причем изменение состояний происходит в дискретные моменты времени). 2. GPSS удобен при программировании, поскольку интерпретатор GPSS многие функции выполняет автоматически ( - GPSS без специального на то указания пользователя собирает статистические данные, описывающие поведение модели, автоматически печатает итоговую статистику по завершении моделирования; - GPSS обслуживает таймер модельного времени, планирует события, которые должны произойти позднее в течение времени моделирования, вызывает их своевременное появление и управляет очередностью поступления).

Достоинства языка GPSS:

Слайд 15

Система GPSS ориентирована на класс объектов, процесс функционирования которых можно представить

Система GPSS ориентирована на класс объектов, процесс функционирования которых можно представить

в виде множества состояний и правил перехода из одного состояния в другое, определяемых в дискретной пространственно-временной области. Примерами таких объектов являются: вычислительные системы, сети ЭВМ, системы передачи сообщений, транспортные объекты, склады, магазины, предприятия и т.п. В качестве формальных моделей таких объектов используют: системы массового обслуживания, автоматы, стохастические сети и т.п.
Слайд 16

Простейшая система массового обслуживания Накопитель Прибор обслуживания Транзакты Обслуженные заявки Заявки Транзакты Блоки

Простейшая система массового обслуживания

Накопитель

Прибор обслуживания

Транзакты

Обслуженные заявки

Заявки

Транзакты

Блоки

Слайд 17

Транзакты Содержательное значение транзактов определяет разработчик модели C точки зрения программы,

Транзакты

Содержательное значение транзактов определяет разработчик модели

C точки зрения программы, транзакт

- это структура данных,
которая содержит поля:
имя или номер транзакта;
время появления транзакта;
текущее модельное время;
номер блока, в котором находится транзакт;
номер блока, куда он продвигается;
момент времени начала продвижения;
приоритет транзакта;
параметры транзакта: P1, P2, ...
Слайд 18

Транзакты Транзакты нумеруются по мере их появления в модели. Каждый транзакт

Транзакты

Транзакты нумеруются по мере их появления в модели.

Каждый транзакт занимает

некоторый объем памяти ЭВМ. Память под транзакты выделяется динамически. После того, как транзакт закончит свое движение по блокам модели, его необходимо уничтожить для освобождения памяти.
Слайд 19

Блоки C точки зрения программы, блок - это подпрограмма, написанная на

Блоки

C точки зрения программы, блок - это подпрограмма, написанная
на

макроассемблере или на языке Си, и содержащая набор
параметров (операндов) для обращения к ним.
Слайд 20

Взаимодействие блоков и транзактов Передача управления от блока к блоку в

Взаимодействие блоков и транзактов

Передача управления от блока к блоку в GPSS-программах

реализуется c помощью движения транзактов в модельном времени.

В начале моделирования в GPSS-модели не существует ни одного транзакта. В процессе моделирования транзакты входят в модель в определенные моменты времени, соответствующие логике функционирования моделируемой системы. Таким же образом транзакты покидают модель в зависимости от специфики моделирования. В общем случае в модели существует несколько транзактов, но в каждый момент времени движется только один из них. Если транзакт начал свое движение, он передвигается от блока к блоку по пути, указанному блок-схемой (логикой работы модели). В тот момент, когда транзакт входит в блок, вызывается соответствующая этому блоку подпрограмма.

Слайд 21

Накопитель Прибор обслуживания Порядок перемещения транзактов Генератор транзактов Приемник обслуженных транзактов

Накопитель

Прибор обслуживания

Порядок перемещения транзактов

Генератор
транзактов

Приемник
обслуженных
транзактов

Слайд 22

Транзакт перемещается в модели до тех пор, пока не выполнится одно

Транзакт перемещается в модели до тех пор, пока не выполнится одно

из трех условий:

1. Транзакт входит в блок, функцией которого является
задержка транзакта на определенное время

2. Транзакт входит в блок, функцией которого является
удаление транзакта из модели

3. Транзакт пытается войти в следующий блок, но блок
не принимает этот транзакт.
В этом случае транзакт остается в том блоке,
в котором в данное время находится, но позже
будет повторять попытки войти в следующий блок.
Когда условия в модели изменятся,
одна из таких попыток может быть успешной.
После этого транзакт продолжит свое перемещение по модели.

Слайд 23

Устройства Многоканальные устройства Логические ключи ресурс, который в любой момент времени

Устройства

Многоканальные
устройства

Логические
ключи

ресурс, который
в любой момент
времени
может быть
занят только
одним

транзактом
ресурсы, для
параллельной
обработки.
Могут быть
использованы
несколькими
транзактами.

Управляют
движением
транзактов,
разрешая или
запрещая проход

Объекты типа «ресурсы»
(обслуживающие устройства)

Слайд 24

Часы модельного времени Единица модельного времени определяется разработчиком таким образом, чтобы

Часы модельного времени

Единица модельного времени определяется разработчиком таким образом,
чтобы правильно

отобразить события реальной системы в модели.

Время измеряется в условных единицах.

Часы модельного времени продвигаются от одного события к другому.

Слайд 25

3 Построение программ в GPSS World

3

Построение программ в GPSS World

Слайд 26

Блоки Операторы описания данных Команды GPSS Типы операторов GPSS В GPSS

Блоки

Операторы
описания данных

Команды
GPSS

Типы операторов GPSS

В GPSS для ссылки на блоки и

объекты используются имена (идентификаторы).
Слайд 27

Формат GPSS-блоков : [ ] [ ] Имя блока - символы,

Формат GPSS-блоков :
[< Метка >]< Операция >< Операнды > [<; Комментарии

>]

Имя блока -
символы,
числа.
Параметр
обязателен
только для
некоторых
блоков

Глагол,
который
описывает
основное
функциональное
назначение
блоков.

Задают характеристики
блока. Число операндов
зависит от типа блока.
Всего не больше
семи операндов.
Обозначаются буквами
А, В, C, D, E, F, G.
Могут задаваться
по умолчанию.
Если операнд опущен,
то вместо него
ставится запятая.

Отделяется
от операндов
символом
;

Слайд 28

Ввод транзактов в модель, блок GENERATE Блок GENERATE (ГЕНЕРИРОВАТЬ) – это

Ввод транзактов в модель, блок GENERATE

Блок GENERATE (ГЕНЕРИРОВАТЬ) – это блок, через

который транзакты входят в модель. Не существует ограничений на количество разных блоков GENERATE в одной модели.

Формат блока:
GENERATE [A],[B],[C],[D],[E]

Слайд 29

Примеры распределений равномерное(Uniform); экспоненциальное(Exponential); Пуассона(Poisson); Гамма(Gamma); биномиальное(Binomial); треугольное(Triangular); нормальное(Normal);

Примеры распределений

равномерное(Uniform);
экспоненциальное(Exponential);
Пуассона(Poisson);
Гамма(Gamma);
биномиальное(Binomial);


треугольное(Triangular);
нормальное(Normal);
Слайд 30

Примеры: Пример 1 Задание равномерного закона распределения: GENERATE 6,4 Операнды: A

Примеры:

Пример 1
Задание равномерного закона распределения:
GENERATE 6,4
Операнды: A = 6, В =

4. Интервал времени поступления является случайным числом со средним значением 6 и полем допуска 8, то есть он может приобретать только одно из девяти разных значений: 2,3,4,5,6,7,8,9,10.
Пример 2
Задание детерминированного значения интервалов поступления:
GENERATE 10
Операнды: A = 10, В = 0 (по умолчанию).
Транзакты входят в модель каждые 10 единиц модельного времени.
Пример 3
Генерирование одного транзакта.
GENERATE ,,,1
Операнды: A = В = C = 0 (по умолчанию), D = 1.
В нулевой момент в модель входит один транзакт.
Блоки GENERATE являются основными средствами создания транзактов и ввода их в модель.
Слайд 31

Примеры: Пример 4 Для обращения к вероятностному распределению необходимо указать имя

Примеры:

Пример 4
Для обращения к вероятностному распределению необходимо
указать имя библиотечной процедуры и

её параметры, заключённые в
круглые скобки и отделённые друг от друга запятой:
<Имя процедуры>(G,А,В, …)
ЗдесьG – номер генератора равномерно распределённых случайных
чисел(от1 до999) – используется в качестве аргумента для формирования
случайных величин с заданным законом распределения. Остальные
параметры A, B, …, количество которых для разных распределений
составляет от 1 до 4, задают непосредственно параметры вероятностного
распределения.
GENERATE (Exponential(1,0,50));
1 - № генератора равномерно распределенных случайных чисел;
50 – математическое ожидание случайной величины;
0 - смещение распределения относительно нуля ( min. значение )
Слайд 32

Удаление транзактов из модели, блок TERMINATE Блок TERMINATE (ЗАВЕРШИТЬ) – это

Удаление транзактов из модели, блок TERMINATE

Блок TERMINATE (ЗАВЕРШИТЬ) – это блок,

через который транзакты выходят из модели. Не существует ограничений на количество разных блоков TERMINATE в одной модели.

Формат блока:
TERMINATE [A]

Операнд А является величиной уменьшения специального счетчика,
который называется счетчиком завершения.
Этот операнд задает величину, которая вычитается из счетчика каждый раз,
когда транзакт входит в блок TERMINATE. По умолчанию A = 0.
Вход транзакта в блок TERMINATE c нулевым значением операнда А
не вызывает уменьшения счетчика завершения.
Счетчик завершения – это ячейка в памяти ЭВМ, которая хранит целое положительное число.
Начальное значение этого счетчика устанавливается в начале моделирования.
Оно равняется значению операнда А команды START (НАЧАТЬ).
В процессе моделирования транзакты попадают в блок TERMINATE и,
таким образом, уменьшают значение счетчика на величину операнда А.
Моделирование заканчивается, когда значение счетчика становится
равным нулю или отрицательному числу.

Слайд 33

Способы управления продолжительностью моделирования Способ 1 1. В команде START операнду

Способы управления продолжительностью моделирования

Способ 1

1. В команде START операнду А присваивается

значение заданного числа транзактов. 2. Во всех блоках TERMINATE, через которые транзакты заданного типа покидают модель, операнду А присваивается значение «1» или другое, отличное от нуля (соответственно содержательному значению транзактов). 3. Во все других блоках TERMINATE используется значение операнда А по умолчанию (A = 0). Значение счетчика завершения не будет зависеть от этих блоков. Первый способ позволяет закончить моделирование, когда через модель пройдет заданное количество транзактов, например 1000:

GENERATE 40,5 … TERMINATE 1 START 1000

Слайд 34

Пусть разработчик выбрал за единицу модельного времени 1 мин и хочет

Пусть разработчик выбрал за единицу модельного времени 1 мин и хочет

смоделировать поведение системы на протяжении 8 часов. 1. Ввести в модель таймер-сегмент, состоящий из двух блоков:
2. Во всех других блоках TERMINATE в модели использовать значение операнда А по умолчанию (A = 0). Это означает, что прекращение моделирования, определяемое счетчиком завершения, не будет зависеть от других блоков TERMINATE. 3. В команде START операнд А должен равняться единице. Таким образом, в процессе моделирования завершение движения транзактов в других блоках TERMINATE не влияет на счетчик завершения. В момент времени T=480 транзакт выйдет из блока GENERATE и сразу же перейдет в блок TERMINATE. Счетчик завершения уменьшится на единицу, и интерпретатор завершит моделирование.

Способы управления продолжительностью моделирования

Способ 2

GENERATE 600 TERMINATE 1
START1

Слайд 35

Блок-диаграмма

Блок-диаграмма


Слайд 36

Элементы, отображающие одноканальное устройство обслуживания Основные свойства устройства: Каждое устройство в

Элементы, отображающие одноканальное устройство обслуживания

Основные свойства устройства:

Каждое устройство в любой момент

времени может обслуживать только один транзакт
Если в процессе обслуживания появляется новый транзакт, то он должен:
1) либо подождать своей очереди,
2) либо направиться в другое место,
3) либо, если вновь пришедший транзакт имеет больший приоритет, устройство прерывает текущее обслуживание и начинает обслуживать новый транзакт.

2. Когда транзакт поступает в устройство, он должен пробыть там необходимое для обслуживания время

Слайд 37

Действия транзакта для использования одноканального обслуживающего устройства: 1. Ждать своей очереди,

Действия транзакта для использования одноканального обслуживающего устройства:

1. Ждать своей очереди,
если

это необходимо

2. Когда подойдет очередь,
занять устройство.

3. Устройство находится
в состоянии занятости
до тех пор, пока не
закончится обслуживание.
Для обслуживания
необходим некоторый
интервал времени.

4. Когда обслуживание
закончится,
освободить устройство.

SEIZE (ЗАНЯТЬ)
SEIZE А

ADVANCE
(ЗАДЕРЖАТЬ,
– продвигать)
ADVANCE A[,B]

RELEASE (ОСВОБОДИТЬ)
RELEASE А.

Слайд 38

Свойства блока SEIZE : 1. Если в текущий момент времени устройство

Свойства блока SEIZE :
1. Если в текущий момент времени устройство используется,


то транзакт не может войти в блок и должен ожидать своей очереди.
2. Если устройство свободно, транзакт может войти в блок.
Вход транзакта в блок вызывает выполнение подпрограммы обработки этого
блока. Состояние устройства изменяется со СВОБОДНОЕ на ЗАНЯТОЕ.

Формат блока:
SEIZE A
Формат блока:
RELEASE А

Слайд 39

Формат блока: ADVANCE A[,B] Блок никогда не препятствует входу транзакта. Любое

Формат блока:
ADVANCE A[,B]
Блок никогда не препятствует входу транзакта. Любое число транзактов

может находиться в этом блоке одновременно. Когда транзакт попадает в такой блок, выполняется соответствующая подпрограмма и вычисляется время пребывания в нем транзакта. Вновь прибывший транзакт никак не влияет на уже находящийся в блоке транзакт.
Слайд 40

Классический случай использования последовательности SEIZE – ADVANCE – RELEASE: Смоделировать работу


Классический случай использования последовательности
SEIZE – ADVANCE – RELEASE:
Смоделировать работу

одноканальной системы массового обслуживания
на вход которой поступает однородный поток с интенсивностью λ=16±4, время обслуживание транзактов в приборе имеет экспоненциальное распределение с Тср =8. Заданное время моделирования 10 час.
GENERATE 16,4 ; Задание входного потока заявок
SEIZE PRIB ; заняли устройство с именем PRIB
ADVANCE (Exponential(1,0,8)); время обслуживания в устройстве
RELEASE PRIB ; освободили устройство с именем PRIB
TERMINATE 0 !
GENERATE 600
TERMINATE 1
START1
Транзакт, двигаясь по этой цепочке блоков, займет устройство c именем PRIB, задержится там на 16±4 единицы времени и затем покинет его. После того как транзакт войдет в блок RELEASE и соответствующая этому блоку подпрограмма закончится, интерпретатор попытается переместить транзакт в следующий блок модели (или удалить) и следующий транзакт может уже использовать устройство PRIB
Слайд 41

Блок-диаграмма

Блок-диаграмма

Слайд 42

Пример: отчет по устройствам

Пример: отчет по устройствам

Слайд 43

Элементы, отображающие многоканальное устройство обслуживания Определение емкости МКУ Все используемые в

Элементы, отображающие многоканальное устройство обслуживания

Определение емкости МКУ
Все используемые в модели

МКУ должны быть заранее описаны,
т.е. должно быть определено количество однотипных устройств,
входящих в МКУ.
Для этого используется оператор описания STORAGE ( память,
емкость хранилища (количество однотипных ячеек))
<Метка> STORAGE А
Формат оператора задания емкости МКУ
Слайд 44

Элементы, отображающие многоканальное устройство обслуживания 2. Использование МКУ Использование МКУ аналогично

Элементы, отображающие многоканальное устройство обслуживания

2. Использование МКУ
Использование МКУ аналогично использованию одноканального


устройства. Элементом, который занимает и использует МКУ,
является транзакт.
Блоки ENTER (ВОЙТИ) и LEAVE (ВЫЙТИ).

ENTER A [,B]

LEAVE A [,B]

Слайд 45

Пример: RAM STORAGE 100 ; Объем памяти компьютера в 100 Кбайт

Пример:

RAM STORAGE 100 ; Объем памяти компьютера в 100 Кбайт
GENERATE

16,4 ; Задание входного потока заявок



ENTER RAM ;занять одну ячейку памяти
(ENTER RAM , Р2 ) ; занять Р2 ячеек памяти
ADVANCE 5 ; обслуживание в течении 5 ед. времени
LEAVE RAM ;освободить одну ячейку памяти
( LEAVE RAM,P2 );освободить Р2 ячеек памяти
…………………………………….

Слайд 46

БЛОК-ДИАГРАММА

БЛОК-ДИАГРАММА

Слайд 47

Пример: отчет по многоканальным устройствам

Пример: отчет по многоканальным устройствам

Слайд 48

Сбор статистики об ожидании. Блоки QUEUE, DEPART Эти блоки обеспечивают в

Сбор статистики об ожидании. Блоки QUEUE, DEPART

Эти блоки обеспечивают в GPSS

возможность автоматического сбора статистических данных, описывающих вынужденное ожидание, которое может происходить время от времени в различных точках модели.
Являются регистратором очереди (не влияют на работу модели). Используются только в паре.

Формат блоков:
QUEUE (стать в очередь ) A [,B]
DEPART (покинуть очередь) A [,B]

Слайд 49

ПРИМЕР: Смоделировать работу одноканальной системы массового обслуживания на вход которой поступает

ПРИМЕР:

Смоделировать работу одноканальной системы массового обслуживания на вход которой поступает

однородный поток с интенсивностью λ=16±4, время обслуживание транзактов в приборе имеет экспоненциальное распределение с Тср =8. Собрать статистику о наличии очереди к прибору. Заданное время моделирования 10 час.
GENERATE 16,4 ; Задание входного потока заявок
QUEUE 1 ( Q_PRIB )
SEIZE PRIB ; заняли устройство с именем PRIB
DEPART 1 ( Q_PRIB )
ADVANCE (Exponential(1,0,8)); время обслуживания в устройстве
RELEASE PRIB ; освободили устройство с именем PRIB
TERMINATE 0
GENERATE 600
TERMINATE 1
START1
Слайд 50

Порядок работы регистратора очереди При входе транзакта в блок QUEUE (СТАТЬ

Порядок работы регистратора очереди

При входе транзакта в блок QUEUE (СТАТЬ В

ОЧЕРЕДЬ) выполняются четыре действия:
1) счетчик входов для данной очереди увеличивается на В;
2) длина очереди (счетчик текущего содержимого) для данной
очереди увеличивается на В;
3) значение текущей длины очереди хранится в стандартном числовом
атрибуте <имя очереди>;
4) транзакт присоединяется к очереди c запоминаем ее имени и
значения текущего модельного времени.
Транзакт перестает быть элементом очереди только после того, как
он переходит в блок DEPART (ПОКИНУТЬ ОЧЕРЕДЬ)
соответствующей очереди.
Когда это происходит, интерпретатор выполняет следующие операции:
1) длина очереди соответствующей очереди уменьшается на В;
2) используя привязку к значению времени, определяет: является ли
время, проведенное транзактом в очереди, нулевым; если да, то такой
транзакт по определению является транзактом c нулевым пребыванием
в очереди и одновременно изменяется счетчик нулевых вхождении,
3) ликвидируется «привязка» транзакта к очереди.
Слайд 51

Пример: Отчет по очередям QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME

Пример: Отчет по очередям
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0)

RETRY
1 (QPRIB) 1 0 37 30 0.08 1.293 6.837 0
Слайд 52

Блок-диаграмма

Блок-диаграмма

Слайд 53

УСЛОВНЫЕ ОПЕРАТОРЫ ОПЕРАТОР TEST Сравнение параметров может быть выполнено c помощью

УСЛОВНЫЕ ОПЕРАТОРЫ ОПЕРАТОР TEST

Сравнение параметров может быть выполнено c помощью блока TEST

(ПРОВЕРИТЬ)

Формат блока : TEST Х A,B[,C]

Слайд 54

Проверка числовых выражений. Блок TEST TEST Х A,B|,C|

Проверка числовых выражений. Блок TEST

TEST Х A,B|,C|

Слайд 55

Блок TEST :может работать в двух режимах: 1. в режиме альтернативного

Блок TEST :может работать в двух режимах: 1. в режиме альтернативного выхода

(если задан операнд С) 2. в режиме отказа (если операнд С не задан) Пример:

Режим отказа
TEST LE Ql,Q2
Проверяющий транзакт будет задержан в предыдущем блоке до тex пор, пока длина первой очереди не станет меньше или равна длине второй очереди.

Режим условного перехода
TEST LE Ql,Q2,ZN
Проверяющий транзакт перейдет в следующий по порядку блок, если длина первой очереди меньше или равна длине второй очереди. Если это условие не выполняется, транзакт перейдет в блок c меткой ZN
TEST LE Q1, 5, ZN
Транзакт перейдет к следующему блоку если на данный момент времени длина очереди Q1, будет меньше или равна 5, в противном случае переходим к блоку с меткой ZN.

Слайд 56

Блок-диаграмма

Блок-диаграмма

Слайд 57

ОПЕРАТОР TRANSFER (ПЕРЕДАТЬ) Он может быть использо­ван в девяти разных режимах.

ОПЕРАТОР TRANSFER (ПЕРЕДАТЬ)
Он может быть использо­ван в девяти разных

режимах. Рассмотрим три основных.
Блок TRANSFER в режиме безусловной передачи.
Его формат : TRANSFER ,B
Позиция блока – это номер или метка блока. Так как операнд А не используется, то перед операндом В должна стоять запятая. В ре­жиме безусловной передачи блок TRANSFER не может отказывать транзакту во входе. Если транзакт входит в блок, то он сразу же пытается войти в блок В.
Слайд 58

Статистический режим. В этом режиме осуществляется передача транзакта в один из

Статистический режим. В этом режиме осуществляется передача транзакта в один из

двух блоков случайным образом.
Формат блока: TRANSFER A,[B],C
При задании вероятности (операнд А) используется не более трех цифр, первый символ записи частоты «.» (десятичная точка), если используется действительное число, которое должно быть в пределах от 0 до 1,0 (например, 0,235). Если операнд – положительное целое число, то вероятность интерпретируется в долях тысячи.
Слайд 59

Режим BOTH. Если в операнде А стоит зарезервированное сло­во BOTH, то

Режим BOTH. Если в операнде А стоит зарезервированное сло­во BOTH, то

блок TRANSFER работает в режиме BOTH.
В этом режиме входящий транзакт сначала пытается перейти к блоку, указанному в операнде В. Если это сделать не удается, тран­закт пытается перейти в блок, указанный в операнде C. Если тран­закт не сможет перейти ни к тому, ни к другому блоку, то он остается в блоке TRANSFER и при каждом просмотре списка текущих собы­тий, будет повторять в том же порядке попытки перехода до тех пор, пока не сможет выйти из блока TRANSFER.
Слайд 60

ПРИМЕР 1. TRANSFER ,PRIB ; при каждом входе транзакт будет направляться

ПРИМЕР 1.
TRANSFER ,PRIB ; при каждом входе транзакт будет направляться к

блоку с меткой PRIB.
ПРИМЕР 2.
TRANSFER .3,PRIB_1,PRIB_2 ; транзакт с вероятностью 0,3 будет направляться к блоку с меткой PRIB_2 и с вероятностью 0,7 к блоку с меткой PRIB_1.
ПРИМЕР 3.
TRANSFER .3,,PRIB_2 ; транзакт с вероятностью 0,3 будет направляться к блоку с меткой PRIB_2 и с вероятностью 0,7 к следующему по порядку блоку.
ПРИМЕР 4.
TRANSFER BOTCH,PRIB_1,PRIB_2 ; транзакт будет вначале направляться к блоку с меткой PRIB_1, а если он занят, то будет далее пытаться войти в блок с меткой PRIB_2. Если оба блока заняты то он будет ждать до тех пор пока один из блоков не освободится.
Слайд 61

БЛОК-ДИАГРАММА Транзакт будет направлен к блоку с меткой OPER Транзакт с

БЛОК-ДИАГРАММА

Транзакт будет направлен к блоку с меткой OPER
Транзакт с вероятностью

0,125 будет направлен к блоку с меткой Wzw и с вероятностью 0,875 к блоку с меткой SAM.
Слайд 62

Параметры транзактов Параметры транзактов – это свойства транзакта, определяемые пользователем. Множество

Параметры транзактов

Параметры транзактов – это свойства транзакта, определяемые пользователем. Множество параметров

транзакта – набор стандартных числовых атрибутов, которые принадлежат транзакту. Параметры транзакта являются локальными переменными, которые доступны только данному транзакту.
В процессе перемещения транзакта по модели, его параметры могут задаваться и модифицироваться в соответствии c логикой работы модели.

Особенности параметров транзактов:
1. Доступ к параметрам транзактов осуществляется таким образом:
P<номер> или Р$<имя>,
где P – СЧА транзакта, определяющий его групповое имя, т.е. имя всех параметров
транзакта.
2. Номера (имена) конкретных членов множества параметров задаются
c помощью целых чисел 1, 2, ... или символьных имен.
Например, P22 – это 22-параметр транзакта,
P$COLOR – параметр c именем COLOR.
3. При входе транзакта в модель начальное значение всех его параметров
устанавливается в ноль.
4. Значения параметров транзактов и их изменение определяет пользователь.
5. Значениями параметров транзактов могут быть любые числа.
6. Транзакт может обращаться только к своим параметрам.
7. Параметры можно использовать в качестве операндов блоков и в качестве
аргументов функций.

Слайд 63

Изменение значений параметров транзактов. Блок Assign (Назначить) При входе транзакта в

Изменение значений параметров транзактов. Блок Assign (Назначить)

При входе транзакта в этот

блок значения параметров могут задаваться или изменяться.
Формат блока:

ASSIGN A [ +,-],B[,C]

Слайд 64

Пример: ASSIGN 3, 25 3-ему параметру транзакта присваивается значение 25. ASSIGN

Пример:

ASSIGN 3, 25
3-ему параметру транзакта присваивается значение 25.

ASSIGN 1,FN$TYPE
1-ому

параметру транзакта присваивается значение функции TYPE .

ASSIGN 4-,5
Значение 4-го параметра транзакта уменьшается на 5

Слайд 65

Стандартные числовые атрибуты В языке GPSS атрибуты (свойства) объектов – это

Стандартные числовые атрибуты

В языке GPSS атрибуты (свойства) объектов – это СЧА.

Каждый объект имеет свой набор СЧА. Доступ к СЧА осуществляется при использовании специальных обозначений этих атрибутов. Имя СЧА состоит из двух частей:
1) групповое имя – состоит из одной или двух букв, идентифицирует тип объекта (прибор, очередь) и тип информации о нем (свободен, текущее значение длины очереди ;
2) имя конкретного члена группы.
<Групповое имя><Число> или <Групповое имя>$<Имя>

Таблица 1-СЧА устройств

Слайд 66

Таблица 2 - СЧА многоканальных устройств

Таблица 2 - СЧА многоканальных устройств

Слайд 67

Таблица 3 - СЧА очередей

Таблица 3 - СЧА очередей

Слайд 68

Примеры СЧА объектов: FR3– возвращает значение загрузки прибора с номером 3;

Примеры СЧА объектов:


FR3– возвращает значение загрузки прибора с

номером 3;
FT$Auto_Master – возвращает среднее время занятия транзактом прибора с именем Auto_Master.
S22 – возвращает количество занятых приборов в многоканальном устройстве с номером 22;
SM$Kassa_2m – возвращает максимальное количество занятых приборов в многоканальном устройстве с именем Kassa_2m.
Q$Q_5– возвращает значение длины очереди Q_5.
QZ12 – возвращает количество входов транзактов в прибор,
для которых время ожидания в очереди равно нулю.
Слайд 69

СЧА системы и транзактов АС1 – значение абсолютного модельного времени (с

СЧА системы и транзактов

АС1 – значение абсолютного модельного времени (с

момента
начала моделирования );
С1 – значение относительного модельного времени (с момента последней команды RESET)
TG1– текущее значение счетчика завершения;
Z1 – свободная оперативная память ЭВМ в байтах.
MP<Число> или MP$<Имя> – транзитное время транзакта
(абсолютное модельное время минус значение, содержащееся в параметре <Число> или <Имя>);
PR– приоритет транзакта;
M1– резидентное время транзакта(абсолютное модельное время минус время появления транзакта в модели )