Язык программирования GPSS
Этот язык с 1968 года входит в математическое обеспечение машин фирмы IBM, один из наиболее популярных языков ИМ.
Общие сведения.
GPSS составлен из объектов и операций (логических правил). Объекты делятся на семь классов:
- динамические (ДО);
- аппаратно-ориентированные (АО);
- статические (СО);
- операционные (ОО);
- вычислительные (ВО);
- запоминающие (ЗО);
- группирующие (ГО).
До — элементы потока обслуживания заявки или "транзакты". Они создаются и уничтожаются, с каждым транзактом может быть связано некоторое число "параметров"
АО — соответствуют элементам оборудования, которые управляются ДО.
К ним относятся:
- накопители;
- устройства;
- логические переключатели.
СО:
- очереди;
- таблицы.
ЗО:
ячейки;
матрицы ячеек.
ГО:
- группы;
- списки.
ВО:
- арифметические и булевы переменные;
- функции.
Каждой очереди соответствует перечень транзактов, задержанных ы какой-либо точке системы и запись длительности этих задержек: Tз={tiз}.
Таблицы могут использоваться для построения распределений выбранных величин.
ОО - блоки – формируют логику системы, давая транзактам указания, куда идти дальше.
Для того чтобы смоделировать систему, необходимо составить её описание в терминах GPSS, затем симулятор генерирует транзакты, продвигает через заданные блоки и выполняет действия соответствующие блокам. Продвижение создаёт блок GENERATE. Каждое продвижение транзакта является событием, которое должно произойти в определённый момент времени. Симулятор регистрирует время наступления каждого события, затем производит обработку событий в правильной хронологической последовательности.
Если транзакты заблокированы, то симулятор продвинет их тогда, когда изменятся блокирующие правила. Симулятор моделирует часы, их показания в любой момент времени называют абсолютным временем. Относительное время показывает текущее время в модели. При помощи специальной операции относительное время может устанавливаться в нуль и последующий счёт времени будет производиться от этой точки. Другой операцией в нуль могут устанавливаться оба значения времени. Все времена в модели изображаются целыми числами. Симулятор рассчитывает схему по принципу ближайшего события. Центральной задачей симулятора является просмотр и проверка всех возможных событий. Транзакты входят в цепи. Существует пять видов цепей:
1) Цепь текущих событий включает в себя те транзакты, планируемое время наступления которых равно или меньше текущего часового.
2) Цепь будущих событий включает в себя транзакты, время которых не дошло для обслуживания.
3) Цепь прерванных событий.
4) Цепь парных транзактов – в текущий момент времени имеют статус парности (ожидают прибытия синхронизирующих транзактов).
5) Цепь пользователя включает транзакты, которые пользователь удалили из цепи текущих транзактов.
Цепь текущих событий организуется в порядке убывания приоритетов транзактов и в порядке очерёдности поступления.
В зависимости от различных условий и требований пользователь система помещает транзакты в те или иные цепи.
Программа на GPSS создаётся в текстовом редакторе в определённом формате. Формат ввода содержит 3 различные поля: поле метки (позиции 5-9), поле операции (позиции 13-23) и поле переменных (позиции 26-80). Поле переменных содержит подполя, которые обозначены A, B, C, D, …,H. Последующие отделяются от предыдущих запятыми. Пропущенное значение в поле переменных выделяется запятыми (кроме конца поля).
Каждый из объектов требует определённого числа ячеек ОЗУ, в которых во время моделирования хранятся атрибуты объекта (АТО). АТО, к которым может обращаться программист, называются стандартными числовыми атрибутами (СЧА). Все СЧА имеют одно- или 2-х буквенные мнемонические обозначения. Мнемонические обозначения указывают на тип СЧА, а целочисленное значение – на конкретный СЧА.
Номера блоков можно определять символическими обозначениями. При этом обозначение должно включать от 3-х до 5-ти знаков, отличных от пробела, первые три из которых должны быть буквами. Эти ограничения необходимы для того, чтобы избежать смешивания атрибутов системы и символов. Дополнительным ограничением является недопустимость таких специальных знаков, как "–", "+", " ² " и т.д.
Если в полях А, В, С блока представлены стандартные числовые атрибуты Nj или Wj, то необходимо, чтобы номер блока был представлен в качестве аргумента. Если этот номер блока определяется символически, то такое представление должно быть отличным от мнемонических обозначений, указанных СЧА (N или W). В префикса символического имени используется знак доллара $. Пользователь может относительную адресацию. В символической записи CROSS±n символ CROSS указывает на нужный блок, а число n–на номер блока, отсчитываемого от номера блока CROSS. При косвенной адресации предполагается, что нужный аргумент представлен некоторым параметром. Последний обозначается *, за которой следует целое число. Например, S*10 соответствует текущему значению накопителя, номер которого задан параметром 10 (буква S - означает накопитель). Косвенная адресация неприменима только для СЧА С1, М1, RNn.
Дата добавления: 2019-02-08; просмотров: 479;