Программирование в GPSS - Объектно-ориентированные средства GPSSЕсли общеалгоритмические средства языка GPSS предоставляют нам набор возможностей, которые в том или ином виде имеются в подавляющем большинстве языков программирования, то объектно-ориентированные средства — это специфическая часть языка GPSS, характерная лишь для него и его различных версий, как бы лицо этого языка. Основой объектно-ориентированных средств является набор типовых моделей определенного класса реальных объектов, т.е. абстрактные объекты типа транзактов, устройств и т.д. В программах на языке GPSS можно обращаться с такими абстрактными объектами и операциями над ними так же, как в языках алгоритмических обращаемся с числовыми переменными и арифметическими операциями. В то же время абстрактные объекты языка GPSS, несомненно, соответствуют более "крупным" фрагментам реального мира, чем числовые переменные. Благодаря этому можно писать на GPSS компактные и легко обозримые модели сложных систем. На стадии выполнения модели компьютером каждый абстрактный объект представляется определенной группой ячеек оперативной памяти. Путем изменения содержимого таких ячеек имитируется изменение состояний объектов. Поскольку все абстрактные объекты взаимодействуют во времени, то представление времени на этапе машинной обработки модели играет особую роль. Понимание пользователем механизма представления модельного времени чрезвычайно важно для успешного применения языка. Модельное время представляется в памяти ЭВМ содержимым фиксированной ячейки С1. Численное значение времени С1 логически никак не связано с физическим временем, в котором работает применяемая ЭВМ. В начальном состоянии модели время С1 - равно нулю. Симулятор анализирует модель и вычисляет, когда должно произойти первое событие, которое изменит состояние модели. После этого симулятор наращивает содержимое ячейки С1 - сразу до значения, соответствующего моменту наступления этого события, и имитирует событие путем соответствующего изменения состояния модели. Затем анализируется полученное новое состояние модели, вновь определяется, когда произойдет очередное событие, и время С1 устанавливается равным моменту его наступления. Эта процедура наращивания времени С1 по принципу "от события к событию" повторяется до тех пор, пока не будет достигнуто заданное конечное состояние модели. Подобный принцип изменения модельного времени применяется почти во всех языках имитационного программирования дискретных систем. Модельное время измеряется в безразмерных единицах. Определение размерности единицы времени относится к вопросу интерпретации модели. В тексте модели размерность единицы времени нигде не указывается. Пользователь должен все интервалы времени в тексте модели задавать в одних и тех же единицах. Кроме того, модельное время в GPSS всегда выражается целым числом единиц. Хотя известно, что в дискретных системах время не обязательно должно быть дискретным, в GPSS, тем не менее, введено дискретное время. Это сделано для того, чтобы результаты выполнения модели на ЭВМ не зависели от типа ЭВМ. Ведь в случае непрерывного времени его значения в ЭВМ неизбежно бы округлялись, а результат операции округления зависит от типа ЭВМ. В некоторых случаях это приводило бы к нарушениям последовательности событий в системе. Так как время в модели может принимать только значения 0, 1, 2, ..., то любой интервал времени, меньший единичного, представляется нулем. Следовательно, если моделируемые события разделены менее чем единичным интервалом времени, то в модели они наступят одновременно, как бы "слипнутся" во времени. Отсюда вытекает важный вывод, что единицу времени необходимо выбирать достаточно мелкой, чтобы в модели не происходило «слипания» слишком большого числа событий.
|
