Язык GPSS представляет собой интерпретирующую языковую систему,
применяющуюся для описания пространственного движения объектов. Такие
динамические объекты в GPSS называются транзактами и представляют собой элементы
потока. В процессе имитации транзакты "создаются" и "уничтожаются". Функцию
каждого из них можно представить как движение через модель M с поочередным
воздействием на ее блоки. Каждый транзакт имеет набор параметров. В GPSS также
введены понятия прибора, многоканального устройства (накопителя) и очереди, которые
соответствуют постоянным элементам системы. 1. Прибор - это элемент системы, который может находиться в двух состояниях
"свободно" и "занято". В состояние "занято" прибор переводится транзактом,
поступившим в него. Все остальные транзакты, после этого поступившие к прибору,
встают в очередь к нему, т. е. включаются в упорядоченный список, и ожидают
освобождения прибора. Занявший прибор транзакт через некоторое время освобождает
его (переводит в состояние "свободно"). Прибор занимается транзактом, стоящим первым
в очереди, либо, если очередь пуста, остается в состоянии "свободно" до прихода
следующего транзакта. 2. Многоканальное устройство - это элемент системы, имеющий определенную
емкость, которая измеряется целым положительным числом. Транзакт занимает какое-то
количество каналов и, через некоторое время, освобождает их. Причем число
освобождаемых каналов может отличаться от первоначально занятых. Как и в приборах,
организуется очередь, если нет требуемого количества каналов. 3. Очередь - это элемент системы, упорядоченный список транзактов к прибору
или многоканальному устройству.
Приборы, многоканальные устройства и очереди идентифицируются числовыми
номерами или символьными именами. Под символьным именем в GPSS понимается
последовательность от 3 до 5 символов, причем первые три символа обязательно
латинские буквы.
Модель на языке GPSS строится путем объединения набора стандартных блоков в
некоторую программу, определяющую логику функционирования исследуемой системы.
В языке имеется более 40 блоков, каждый из которых имеет определенное
стилизованное обозначение и наименование, указывающее на функциональное
назначение блока. Для детализации функций, выполняемых блоком, у каждого из них
имеется набор параметров.
Каждому транзакту в исследуемой системе в соответствие ставится сегмент
модели, т. е. самостоятельная последовательность связанных блоков, которая описывает
весь жизненный цикл временных элементов одного класса, начиная с их появления в
системе и заканчивая их уходом из нее. Модель может включать несколько сегментов.
Каждый сегмент модели начинается с одного или нескольких блоков GENERATE,
которые создают транзакты, и заканчивается блоком TERMINATE, который эти
транзакты удаляет из модели. Каждый транзакт, появившийся в модели, последовательно
обрабатывается блоками, входящими в сегмент. Одновременно в модели обрабатывается
только один транзакт, остальные транзакты модели ждут своей очереди на обработку.
Порядок обработки транзактов задается календарем модели, который в GPSS
называется цепью будущих событий (ЦБС). ЦБС - это упорядоченный по времени начала
обработки список транзактов, обработка которых запланирована на будущие моменты
времени. Те транзакты, которые могут обрабатываться в данный момент системного
времени, но из-за сложившихся в системе условий не обрабатываются, включаются в
другой упорядоченный список-цепь текущих событий (ЦТС). Работа монитора
моделирующей программы на языке GPSS заключается в том, что в начале из ЦБС
выбирается транзакт с наименьшим временем начала обработки и переносится в ЦТС.
Время начала обработки этого транзакта присваивается таймеру модели. Затем монитор
последовательно пытается начать обработку всех транзактов, которые находятся в ЦТС.
Если какой-то транзакт начинает обрабатываться, то он обрабатывается до тех пор, пока
либо выйдет из модели, либо его обработка будет задержана на какое-то время и транзакт
будет перенесен в ЦБС, или очередной по описанию сегмента блок не сможет
обрабатывать транзакт в связи со сложившимися в модели условиями.
Транзакты в ЦТС просматриваются до тех пор, пока ни один из них дальше
обрабатываться уже не сможет. Тогда монитор опять выбирает из ЦБС транзакт с
минимальным временем, изменяет значение таймера и все выше описанное повторяется.
Модель заканчивает работу тогда, когда переменная модели, называемая "счетчик
завершения", получит значение меньшее или равное 0. Начальное значение счетчика
завершения задается при запуске модели в карте START, а изменяется блоком
TERMINATE.
Опубликовал Kest
December 15 2009 11:59:00 ·
0 Комментариев ·
6668 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.