Программирование в GPSS - Объектно-ориентированные средства GPSS

Если общеалгоритмические средства языка GPSS предоставляют нам набор воз­можностей, которые в том или ином виде имеются в подавляющем большинстве язы­ков программирования, то объектно-ориентированные средства — это спе­цифическая часть языка GPSS, характерная лишь для него и его различных версий, как бы лицо этого языка.

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

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

Модельное время представляется в памяти ЭВМ содержимым фиксированной ячейки С1. Численное значение времени С1 логически никак не связано с физическим временем, в котором работает применяемая ЭВМ.

В начальном состоянии модели время С1 - равно нулю. Симулятор анализирует модель и вычисляет, когда должно произойти первое событие, которое изменит состояние модели. После этого симулятор наращивает содержимое ячейки С1 - сразу до значения, соответствующего моменту наступления этого события, и имитирует событие путем соответствующего изменения состояния модели. Затем анализируется полученное новое состояние модели, вновь определяется, когда произойдет очередное событие, и время С1 устанавливается равным моменту его наступления. Эта процедура наращивания времени С1 по принципу "от события к событию" повторяется до тех пор, пока не будет достигнуто заданное конечное состояние модели.

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

Кроме того, модельное время в GPSS всегда выражается целым числом единиц. Хотя известно, что в дискретных системах время не обязательно должно быть дискретным, в GPSS, тем не менее, введено дискретное время. Это сделано для того, чтобы результаты выполнения модели на ЭВМ не зависели от типа ЭВМ. Ведь в случае непрерывного времени его значения в ЭВМ неизбежно бы округлялись, а результат операции округления зависит от типа ЭВМ. В некоторых случаях это приводило бы к нарушениям последовательности событий в системе.

Так как время в модели может принимать только значения 0, 1, 2, ..., то любой интервал времени, меньший единичного, представляется нулем. Сле­до­ва­тель­но, если моделируемые события разделены менее чем единичным интервалом вре­мени, то в модели они наступят одновременно, как бы "слипнутся" во времени. От­сюда вытекает важный вывод, что единицу времени необходимо выбирать дос­та­точ­но мелкой, чтобы в модели не происходило «слипания» слиш­ком большого чис­ла событий.



 
Оглавление
Программирование в GPSS
прагматический аспект
Классы объектов языка GPSS
Интерпретации транзактов
Интерпретаций устройст
Элементы реальных систем
Очереди и таблицы
Блоки
Модельное время
Общеалгоритмические средства GPSS
Стандартные числовые атрибуты
Арифметические переменные
Логические (булевы) переменные
Функции
Ячейки и матрицы ячеек
Задание начальных значений ячеек и матриц
Объектно-ориентированные средства GPSS
Создание и уничтожение транзактов
Задержка транзактов в блоках ADVANCE
Операции занятия и освобождения устройств
Операции захвата и освобождения устройств
Операции блокирования и разблокирования устройств
Описание памятей и работа с ними
Операции с ключами
Блок GATE
Синхронизация транзактов
Изменение параметров транзактов
Управление маршрутами транзактов в модели
Сбор статистики с помощью очередей
Сбор статистики с помощью таблиц
Стандартные числовые атрибуты
Атрибуты транзактов
Атрибуты блоков
Системные атрибуты
Атрибуты оборудования
Статистические атрибуты
Атрибуты ячеек SAVEVALUE
Функции и переменные
Атрибуты списков пользователя
Атрибуты группы
Системные атрибуты
Блоки COUNT и SELECT
Все страницы