Краткое руководство по моделированию на языке GPSS (1049434)
Текст из файла
38
МГТУ им. Н.Э.Баумана
Кафедра ИУ5
Краткое руководство по моделированию на языке GPSS
(методическое пособие)
СОДЕРЖАНИЕ
Введение
Общие положения
Объекты GPSS
Именование объектов
Типы данных
Правила описания СЧА и СЛА
Системные СЧА
Арифметическое выражение
Логическое выражение
Транзакты
Блоки генерации и задержки транзактов
Блок GENERATE
Блок PRIORITY
Блок MARK
Блок ASSIGN
Блок TERMINATE (упрощенная транскрипция)
Блок ADVANCE
Ресурсы
Приборы
Блок SEIZE
Блок RELEASE
Памяти
Оператор STORAGE
Блок ENTER
Блок LEAVE
Логические ключи
Блок LOGIC
Блоки и операторы организации вычислений
Блок SAVEVALUE
Оператор MATRIX
Блок MSAVEVALUE
Оператор VARIABLE
Оператор FUNCTION (упрощенная транскрипция)
Оператор INITIAL
Блоки управления движением транзактов
Блок TRANSFER (упрощенная транскрипция)
Блок TEST
Блок GATE
Блок LOOP
Блоки и операторы сбора статистики
Блок QUEUE
Блок DEPART
Оператор TABLE
Блок TABULATE
Блоки работы с семейством транзактов
Блок SPLIT
Блок ASSEMBLE
Блок MATCH
Останов процесса моделирования
Приложение. Список дополнительных блоков и расширений.
Блоки работы со списками пользователя
Блок LINK
Блок UNLINK
Приборы с прерыванием
Блок PREEMPT
Блок RETURN
Расширенные описания блоков
Блок TRANSFER (полный вариант)
Блок SELECT
Оператор FUNCTION (полный вариант)
Сводный список стандартных атрибутов объектов языка GPSS
Введение
GPSS представляет собой алгоритмический язык, ориентированный на описание параллельных процессов с последующим моделированием путем построения имитационного процесса.
Программа на языке GPSS, как и во многих алгоритмических языках, представляет собой последовательность операторов. Особенностью реализации языка GPSS является описание развития процессов посредством обращений к некоторым фиксированным процедурам посредством движущихся по этим описаниям динамических объектов, называемых транзактами. Видимо, в силу задания оператора в виде обращения к некоторой стандартной подпрограмме, исполняемые операторы в GPSS называются блоками. Таким образом, программа имитационной модели задается в виде последовательности блоков. Эта последовательность называется в дальнейшем треком. Под оператором в языке GPSS понимается некоторое описание, не входящее в трек, но описывающее некоторые параметры блоков или характеристики управления. Кроме того, в GPSS существует ряд ключевых слов, выполняющих служебные функции, структура которых фиксирована и оговаривается заранее. Концепция языка GPSS опирается на понятия объектов, которые являются основным инструментом создания имитационной модели. Система GPSS имеет развитую библиотеку процедур.
Общие положения
Объекты GPSS
Объекты являются концептуальными единицами, с помощью которых создается имитационная модель. Объекты либо создаются автоматически – при ссылке на них в модели, либо должны быть обязательно описаны перед их использованием.
В языке GPSS существуют следующие объекты:
основные
-
транзакты
-
блоки
-
операторы
ресурсы
-
приборы
-
памяти
-
ключи
группы и списки
-
семейства транзактов
-
группы транзактов
-
числовые группы
-
списки пользователя
вычислительные
-
датчики случайных чисел
-
функции
-
переменные
-
булевские переменные
-
сохраняемые величины
-
матрицы сохраняемых величин
статистические
-
очереди
-
таблицы
Каждый представленный объект имеет набор стандартных числовых атрибутов (СЧА) и стандартных логических атрибутов (СЛА), определяющий свойства объекта.
Именование объектов
Для идентификации объектов в модели используются имена. Имена могут быть числовыми и символическими. Основными именами являются числовые имена.
Числовое имя - целое положительное число.
Символическое имя - последовательность символов. Символы включают прописные буквы А-Z, строчные буквы a-z, цифры 0-9 и символ _ (подчеркивание).
Правила создания символических имен:
-
длина имени от 1 до 250 символов,
-
имя должно начинаться с символа,
-
имя не должно быть ключевым словом GPSS.
Система GPSS не различает в обозначениях верхний и нижний регистры (прописные или строчные буквы).
Нельзя присваивать объектам имена операторов и блоков, а также стандартных числовых атрибутов, используемых в системе.
Имена используются также в качестве меток операторов или блоков GPSS.
Типы данных
В системе выделяют три типа данных: целочисленный (Integer), вещественный (Real) и строковый (String). Первые два относятся к числовому типу данных.
Целочисленный тип - 32-разрядные целые числа. Если во время арифметических операций происходит переполнение целого числа, то выполняется его преобразование к вещественному числу.
Вещественный тип - это числа с двойной точностью с плавающей запятой. Они имеют точность 15 десятичных цифр и диапазон экспоненты от -306 до 306.
Строковая константа - последовательность символов ASCII, взятая в двойные кавычки. Строковая константа может иметь любой размер. Для создания и управления строковыми константами в системе имеются строковые процедуры, которые находятся в библиотеке процедур. Строковые константы используются при выводе результатов моделирования в файл результата и формирования собственных сообщений.
Типы данных преобразуются либо явным образом при помощи вызова соответствующих процедур, либо неявно при вычислении выражения.
Правила описания стандартных числовых и стандартных логических атрибутов
Каждый тип объектов имеет набор стандартных числовых (СЧА) и стандартных логических (СЛА) атрибутов, определяющий свойства объектов данного типа. Как правило, у этих атрибутов имя начинается с префикса, однозначно соответствующего типу объекта.
Стандартные числовые и логические атрибуты конкретного объекта данного типа могут быть заданы одним из следующих способов:
1) < имя СЧА/СЛА типа объекта><j> – где j – положительное целое число, определяющее числовое имя объекта.
Пример:
Q1 – текущая длина очереди с именем 1
2) <имя СЧА/СЛА типа объекта >$ <имя> – где имя – символическое имя объекта.
Пример:
Q$SERVER – текущая длина очереди с именем SERVER
3) <имя СЧА/СЛА типа объекта >*<j> – где j – положительное целое число, определяющее числовое имя параметра активного транзакта, который содержит числовое имя объекта (косвенная адресация).
Пример:
Q*1 – текущая длина очереди, числовое имя которой содержится в первом параметре транзакта
4) <имя СЧА/СЛА типа объекта >*< имя >(или <имя СЧА/СЛА типа объекта >*$<имя >) – где имя – символическое имя параметра активного транзакта, который содержит числовое имя объекта (косвенная адресация).
Пример:
Q*CHANNEL ( или Q*$CHANNEL ) – текущая длина очереди , числовое имя которой содержится в параметре транзакта с именем CHANNEL.
Примечание.
Системные СЧА и СЧА транзактов (кроме СЧА Р (значение параметра активного транзакта) являются «атомарными». Такие СЧА являются законченными, для их вычисления не требуется задания имени объекта.
Системные СЧА
Таблица 1 – Системные СЧА
C1 | Текущее значение условного времени. Автоматически изменяется в модели и устанавливается в 0 управляющими операторами CLEAR или RESET. Вещественное значение. |
RN № | Число, вычисляемое датчиком случайных чисел (№ - до 7 датчиков). Датчик генерирует последовательность равномерно распределенных целочисленных случайных чисел в интервале 0 – 999. При использовании датчика в качестве аргумента функции или объекта в переменной значение будет дробью от 0 до 0.999999. |
Арифметическое выражение
Арифметическое выражение представляет собой комбинацию арифметических операторов, стандартных числовых атрибутов, библиотечных функций и констант, которая удовлетворяет правилам элементарной алгебры. Выражение вычисляется согласно приоритетам арифметических операций. Вычисление происходит слева направо. Порядок вычислений может быть изменен с помощью круглых скобок.
При использовании арифметического выражения в качестве операнда блока, оно должно быть записано в круглых скобках.
Пусть имеем запись некоторой операции в виде: А<знак операции>В
Результат такой операции представлен в таблицах 2 и 3.
Таблица 2 - Арифметические операции в порядке возрастания приоритета.
Знак операции | Операция | Результат |
+ | Сложение | A+B возвращает значение суммы А и В |
- | Вычитание | A-B возвращает значение разности А и В |
# | Умножение | A#B возвращает значение произведения А и В |
/ | Деление | A/B возвращает значение частного от деления А на В |
\ | Целочисленное деление | A\B возвращает значение целочисленного деления А на В |
@ | Целый остаток | A@B возвращает целый остаток от деления А на В |
^ | Возведение в степень | A^B возвращает значение А , возведенное в степень В |
Логическое выражение
Логическое выражение принимает одно из двух значений: 1 или 0.
Таблица 3 - Логические операции
Знак операции | Операция | Результат |
& , AND' | Логическое «И» | A&B возвращает 1, если числовые значения А и В отличны от нуля, в противном случае - 0 |
| , 'OR' | Логическое «ИЛИ» | A OR B возвращает 1, если хотя бы одно из числовых значения А или В отлично от нуля, в противном случае – 0 |
Таблица 4 - Условные операции отношения
Знак операции | Операция | Результат |
> , 'G' | Больше | A>B возвращает 1, если числовое значение А больше В, в противном случае – 0 |
>= , 'GE' | Больше или равно | A>=B возвращает 1, если числовое значение А больше или равно В, в противном случае - 0 |
= , 'E' | Равно | A=B возвращает 1, если числовое значение А равно В, в противном случае – 0 |
!= , 'NE' | Не равно | A!=B возвращает 1, если числовое значение А не равно В, в противном случае - 0 |
<= , 'LE' | Меньше или равно | A<=B возвращает 1, если числовое значение А меньше или равно В, в противном случае - 0 |
< , 'L' | Меньше | A<B возвращает 1, если числовое значение А меньше В, в противном случае – 0 |
Транзакты
Транзакты – это динамические объекты, которые создаются в определенные моменты модельного времени, продвигаются интерпретатором системы через блоки модели и затем уничтожаются. Фундаментальное свойство транзакта – инициативность, когда выполнение любого блока в программе возможно лишь при подходе к нему транзакта. Иными словами, развитие процессов в имитационной модели выполняют транзакты. Транзакты не могут непосредственно ссылаться друг на друга. С каждым транзактом связана некоторая совокупность параметров, организованная в виде вектора. Эта совокупность называется параметры транзакта и имеет префикс Р.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.