Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Моделирование систем. Практикум

.pdf
Скачиваний:
7
Добавлен:
12.11.2023
Размер:
17.79 Mб
Скачать

бор логических путей может основываться на статистических или логических условиях, действующих в момент выбора.

При составлении блок-диаграммы рекомендуется сначала на­ чертить общий график функционирования системы S. Затем со­ ставить отдельную блок-диаграмму для соответствия основных функций с блоками GPSS/PC, после чего внести детали. Чтобы вы­ явить эти дополнительные подробности, некоторые части систе­ мы S нужно проанализировать более тщательно. Степень детали­ зации зависит от моделируемой системы и от того, что нужно уз­ нать в процессе моделирования. Начинающие программисты со­ ставляют слишком подробную блок-диаграмму. Часто в этом нет необходимости. Блок-диаграммы получили широкое применение при описании систем, но форма представления обычно зависит и от самой системы S, и от специалиста, описывающего эту систему. Поэтому при построении блок-диаграмм следует соблюдать опре­ деленные условия, являющиеся основой создания программы на языке моделирования.

В GPSS/PC имеется определенное количество типов блоков для задания объектов и операций над ними. Каждому блоку соот­ ветствует графическое изображение на блок-диаграмме. Стрелки между блоками указывают маршруты потоков сообщений. Чтобы применить язык моделирования GPSS/PC, каждый блок блок-диа­ граммы заменяется соответствующим оператором GPSS/PC.

2.2. СРЕДА И ФУНКЦИОНАЛЬНАЯ СТРУКТУРА ЯЗЫКА МОДЕЛИРОВАНИЯ GPSS/PC

2.2.1. Введение в систему GPSS/PC

Объекты в моделируемой системе S предназначены для раз­ личных целей. Выбор объектов в конкретной моделируемой систе­ ме зависит от характеристик модели и в некоторых случаях от спе­ циалиста, составляющего модель. Совершенно не обязательно, чтобы в одной модели участвовали все типы объектов. Обязатель­ ным является лишь то, что в каждой модели должны быть блоки и сообщения, иначе просчитать ее будет невозможно. Какие объек­ ты, помимо сообщений и блоков, будут включены в модель, зави­ сит от того, какие именно используют блоки и операнды блоков (которые могут повлечь появление операторов описания других объектов).

Транзакты (сообщения) — это динамические объекты GPSS/PC. Они создаются в определенных точках модели, продви­

21

гаются интерпретатором через блоки, а затем уничтожаются. Со­ общения являются аналогами единиц-потоков в реальной системе S. Сообщения могут представлять собой различные элементы даже в одной системе S. Например, в модели ЭВМ одни сообщения мо­ гут являться прообразами программ пользователя, решаемых на данной ЭВМ, а другие представляют поток отказов в аппаратных средствах компьютера. С каждым сообщением в GPSS/PCсвязаны параметры. Параметры могут использоваться для связи конкрет­ ных числовых данных с этим сообщением. В приведенном выше примере параметрами сообщений 1-го типа могут быть: время об­ служивания программы центральным процессором; число обра­ щений к дискам; идентификация пользователя и т. д. Сообщения движутся от блока к блоку так, как движутся элементы, которые они представляют (программы в примере с ЭВМ). Каждое продви­ жение считается событием, которое должно происходить в кон­ кретный момент времени. Интерпретатор GPSS/PC автоматиче­ ски определяет моменты наступления событий. Втех случаях, ко­ гда событие не может произойти, хотя момент его наступления по­ дошел (например, при попытке занять устройство, когда оно уже занято), сообщение (транзакт) прекращает продвижение до сня­ тия блокирующего условия. Сообщения нумеруются последова­ тельно, начиная с единицы. Параметры сообщений принимают значения из множества целых чисел. Каждое сообщение имеет один или более параметров; параметры нумеруются. Номера пара­ метров используются для ссылок на значения, присвоенные пара­ метрам. Сообщению может присваиваться приоритет, используе­ мый системой в ходе моделирования.

Странзактами связаны следующие понятия:

отметка времени (MARK TIME) — значение модельного времени, когда транзакт впервые появился в системе;

семейство транзактов (ASSEBMLY SET) — совокупность объединенных в группу транзактов;

индикатор задержки (DELAY INDIKATOR) — указывает номер блока, перед которым находится транзакт, не имея возможности войти в него;

индикатор трассировки (TRACE INDIKATOR) — указывает номера блоков, которые проходятся активным транзактом;

текущий блок (CURRENT BLOCK) — номер блока, в кото­ ром находится активный транзакт;

следующий блок (NEXT BLOCK) — номер блока, следую­ щего за текущим блоком на пути движения активного транзакта;

22

списки (CHAINS) — упорядоченные массивы информа­ ции, отображающие состояние транзактов в моделируемой системе S.

Транзакты (сообщения) в процессе имитации могут быть в сле­ дующих состояниях:

активное (ACTIVE) — транзакт, имеющий наивысший при­ оритет в списке текущих событий;

приостановленное (SUSPENDED) — транзакт находится в ожидании активизации в списках будущих или текущих со­ бытий;

пассивное (PASSIVE) — транзакт временно переводится в список пользователя, список задержки или список ожида­ ния;

завершившееся (TERMINATE) — транзакт уничтожен и больше не выполняется в текущей модели;

прерванное (PREEMTED) — обработка транзакта некото­ рым устройством прервана и транзакт переведен в один или более списков прерывания.

После того как система S описана, исходя из операций, кото­ рые она выполняет, ее нужно описать на языке GPSS/PC, исполь­ зуя блоки, которые выполнят соответствующие операции в моде­ ли. Ниже перечислены некоторые свойства этих блоков. В после­ дующих разделах подробно обсуждаются выполняемые ими опе­ рации. В блоках могут происходить события четырех основных типов:

1)создание или уничтожение транзактов (сообщений);

2)изменение числового атрибута объекта;

3)задержка сообщения на определенный период времени;

4)изменение маршрута транзакта (сообщения) в модели М. Аналогами обслуживающих приборов в реальных системах .S'в

GPSS/PCявляются объекты типа «оборудование». К объектам этого типа относятся одноканальные устройства, многоканальные уст­ ройства и логические ключи.

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

23

ний, занимавших устройство, что позволяет вычислить среднее время занятости устройства одним сообщением. В реальных сис­ темах объекты типа «устройство» могут иногда прерывать обслу­ живание одних элементов и начинать обслуживание других.

Например, в порт может прибыть судно с грузом высокого приоритета и потребовать немедленного обслуживания у одного из причалов. Прибывшее судно прервет, таким образом, разгрузку любого судна, находящегося у причала (впоследствии разгрузка этого судна возобновится). Такое прерывание можно легко пред­ ставить средствами GPSS/PC, поскольку устройство GPSS/PC тоже может быть временно прервано другим сообщением. Само устройство в логических и статистических целях продолжает счи­ таться занятым. После окончания прерывания автоматически во­ зобновляется обслуживание прерванного сообщения.

В GPSS/PC многоканальные устройства представляют собой объекты типа «оборудование»для параллельной обработки, они мо­ гут быть использованы несколькими транзактами (сообщениями) одновременно. Многоканальные устройства используются для представления физического оборудования, например, зрительно­ го зала театра, стоянки автомобилей и, в некоторых случаях, ос­ новной памяти в системах для обработки данных. Пользователь определяет емкость каждого многоканального устройства, ис­ пользуемого в модели, а интерпретатор ведет учет числа единиц многоканальных устройств, занятых в каждый момент времени. Если сообщение пытается занять больше единиц многоканально­ го устройства, чем свободно вданный момент, обработка этого со­ общения задерживается до того момента, пока в многоканальном устройстве освободится достаточный объем. Программа автома­ тически ведет подсчет числа транзактов, входящих в многоканаль­ ное устройство, а также определяет среднее число единиц много­ канальных устройств, занятых одним сообщением, и среднее вре­ мя пребывания транзакта (сообщения) в многоканальном устрой­ стве. Эти статистические данные выдаются в конце счета и позволяют определить, насколько эффективно используются в системе объекты параллельной обработки и достаточна ли их ем­ кость.

Ранее происходившие в моделируемой системе S события мо­ гут заблокировать и изменить движение последующих событий. Например, кассир кинотеатра, уходя на обед, ставит табличку «К следующему окну», и все последующие клиенты обращаются в другую кассу. Для моделирования таких ситуаций введены логиче­ ские ключи. Транзакт может устанавливать эти ключи в положение «включено» или «выключено». Впоследствии состояние ключа

24

может быть проверено другими транзактами для определения пути их следования. Транзакт может установить ключ (установка ключа соответствует состоянию «включено»), сбросить его (состояние «выключено») или инвертировать, т. е. изменить на противопо­ ложное значение состояния ключа. Состояние ключа может быть изменено любым другим транзактом, и любое сообщение может использовать состояние ключа для выбора одного из двух возмож­ ных путей или ожидать момента изменения состояния ключа.

Арифметические переменные позволяют вычислять арифмети­ ческие выражения, состоящие из стандартных числовых атрибу­ тов (СЧА), которые описаны ниже. Запись выражения перемен­ ной аналогична записи соответствующих операторов языка Фор­ тран. В выражении переменной используют операторы, арифме­ тические действия и вызовы библиотечных функций.

Булевские переменные позволяют пользователю проверять в од­ ном блоке GPSS/PC одновременно несколько условий, исходя из состояния или значения объектов и их атрибутов, т. е. в данном блоке проводится обращение к булевской переменной, выражение которой содержит в себе проверку нескольких условий. Булевская переменная имеет значение 1, если выражение переменной истин­ но, и 0, если выражение переменной ложно.

Выражениями, используемыми в арифметических и булевских переменных, являются комбинации математических операторов, библиотечных функций, СЧА и констант, составленные по прави­ лам элементарной алгебры. Выражения вычисляются слева напра­ во с учетом иерархии операций. Оценка арифметических выраже­ ний производится в формате с плавающей точкой с двойной точ­ ностью (64 бит). Результат оценки усекается и хранится как целое число.

Используя функции, пользователь может проводить вычисле­ ния непрерывных или дискретных функциональных зависимо­ стей между аргументом функции (независимая величина) и зави­ симым значением функции. Функции широко применяются, на­ пример, для задания случайного интервала времени между гене­ рацией двух сообщений. Все функции в GPSS/PC задаются таб­ личным способом с помощью специальных операторов описания функции.

Ячейки сохраняемых величин и матрицы ячеек сохраняемых величин также относятся к объектам GPSS/PC. Эти ячейки ис­ пользуются для хранения некоторой числовой информации. На­ пример, значение, занесенное в ячейку, может представлять собой длину очереди в какой-то конкретной точке модели. Любое сооб­ щение может произвести запись информации в эти объекты. Впо­ следствии записанную в эти объекты информацию может считы-

25

ватьлюбое сообщение. Например, в случае моделирования работы порта для построения зависимости ожидания судов в очереди оп­ ределенной длины от времени достаточно через каждые X единиц времени (Xзадается пользователем) заносить значение длины оче­ реди в ячейки (каждое значение в отдельную ячейку). В конце сче­ та значения этих ячеек будут распечатаны, и по ним можно по­ строить искомую зависимость.

В любой системе S движение потока транзактов (сообщений) может быть задержано из-за недоступности оборудования. Напри­ мер, требуемые устройства могут быть уже заняты или многока­ нальные устройства, в которые нужно войти, уже заполнены. В этом случае задержанные сообщения ставятся в очередь — еще один тип объектов GPSS/PC. Учет этих очередей составляет одну из основных функций интерпретатора GPSS/PC.

Пользователь может определить специальные точки в модели, в которых нужно собирать статистику об очередях. Тогда интер­ претатор автоматически будет собирать статистику об очередях (длину очереди, среднее время пребывания в очереди и т. д.). Чис­ ло задержанных сообщений и продолжительность этих задержек определяется только в этих заданных точках. Интерпретатор также автоматически подсчитывает в этих точках общее число сообще­ ний, поступающих в очередь. Это делается примерно так же, как для устройства и памятей. В определенных счетчиках подсчитыва­ ется число сообщений, задерживающихся в каждой очереди, так как может представлять интерес число сообщений, прошедших какую-либо точку модели без задержки. Интерпретатор подсчиты­ вает среднее время пребывания транзакта в очереди (для каждой очереди) и максимальное число транзактов (сообщений) в очере­ ди.

Как сказано выше, интерпретатор автоматически накапливает определенную статистику относительно устройств, памятей и оче­ редей. Пользователь может также собрать дополнительную стати­ стическую информацию. Например, необходимо собрать стати­ стику о времени пребывания зрителя в кассе кинотеатра (время в очереди, время на приобретение билета). Поскольку в данной мо­ дели участвуют разные переменные (время, затрачиваемое на при­ обретение билета, длина очереди к окошку и т. д.), общее время пребывания сообщений в модели не может быть одинаковым. Сначала определяется диапазон значений, в которых может коле­ баться время пребывания сообщений в системе S. Для удобства об­ работки информации этот диапазон следует как-то упорядочить (например, по числовым значениям). Самый простой способ дос­ тижения такого упорядочивания — устанавливать диапазон зна­ чений, скажем, от 5до 6 мин и затем табулировать те значения, ко-

26

торые попадают в этотдиапазон. Если задается ряд последователь­ ных диапазонов (например, 5—6, 6—7, 7—8 и т. д.), можно учесть все значения, которые попадают в каждый из заданных диапазо­ нов. В результате табулируются частоты попадания значений вре­ мени пребывания сообщений в каждый из диапазонов (например,

вдиапазон 6...7 мин попало 568 значений). Для упрощения табули­ рования в GPSS/PC предусмотрен специальный объект — табли­ ца.

Таблица состоит из частотных классов, куда заносится число попаданий конкретного числового атрибута в каждый конкретный частотный класс. Для каждой таблицы вычисляется математиче­ ское ожидание и среднеквадратичное отклонение. Эта статистика является стандартной для всех таблиц. При задании таблиц могут понадобиться различные режимы работы таблиц. Режим работы зависит от того, какая статистика нужна.

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

вэтом плане применение GPSS/PCособенно удобно. Описав усло­ вия, которые воздействуют на отдельные сообщения, и задав ин­ терпретатору такой режим, по которому он будет продвигать сооб­ щения заданным образом, можно по выходной статистике устано­ вить взаимосвязь различных типов сообщений.

Для того чтобы обеспечить правильную временною последова­ тельность событий в модели системы S, организованы часы, хра­ нящие значения текущего момента в модели. Все отрезки времени моделируемой системы измеряются целыми числами. В отличие от обычных часов, измеряющих время в определенных единицах, обычно в секундах, часы в GPSS/PC меняют значение только для того, чтобы указать время наступления ближайшего события. На­ пример, если текущее значение часов модели равно 2, а очередное событие должно наступить в момент времени 7, то значение часов увеличивается сразу на 5 единиц. Отметим, что единицы времени в модели не обязательно должны быть конкретными единицами времени, такими, как секунда или час. Основной единицей време­ ни в модели можно выбрать любую единицу, которая позволит по­ лучить необходимую точность моделирования. Важно помнить,

27

единицы времени выбирают исходя из требований пользователя к точности моделирования [13].

Поскольку целью построения любой модели является исследо­ вание моделируемой системы, интерпретатор GPSS/PC автомати­ чески собирает стандартную статистику по каждому типу объек­ тов, занятых в модели. В зависимости от того, какие объекты и как используются в модели, пользователь имеет возможность полу­ чать дополнительную статистику как в процессе счета модели, так и по окончании счета. Эта дополнительная статистика помогает оценить результаты счета модели. Стандартная статистика ис­ пользуется и при отладке модели, и при оценке самой системы S.

2.2.2. Описание объектов GPSS/PC

Транзакты. Любую модель рассматриваемой системы S в тер­ минах языка GPSS можно представить в виде комбинации компо­ нентов, которые составляют интерпретатор GPSS/PC. Транзакт — это некоторое сообщение (заявка, требование на обслуживание), которое поступает извне на вход системы и подлежит обработке [2, 9, 19]. Транзакт — обязательный элемент каждой модели на GPSS. Транзакты генерируются и уничтожаются, производя при этом воздействия на объекты, образующие модель системы S. В терми­ нах систем массового обслуживания (Q-схем) транзактам можно сопоставить требования, сообщения или заявки, поступающие в систему на обслуживание [13].

В то же время транзакт это самостоятельный объект системы GPSS. Отличие одних транзактов от других состоит в назначаемом им наборе параметров. Структурно транзакт в моделируемой сис­ теме S не определяется, его существование предполагается после генерации и прохождения по заданным компонентам системы. Ра­ бота системы происходит под действием транзактов, которые оп­ ределяют собой пространственно-временнбе продвижение реаль­ ных объектов в реальной системе. Само моделирование заключа­ ется в продвижении сообщений (транзактов) от блока к блоку ана­ логично функционированию реальной системы. Генерирование транзактов осуществляется блоком GENERATE.

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

28

Продвижение транзактов в модели осуществляет блок GENERATE, за­ держку транзактов во времени может произвести блок ADVANCE, вывод транзактов из модели осуществляет блок TERMINATE. Каждый блок системы GPSSимеет входы и выходы, с помощью которых осуществляется их связь в моде­

ли через транзакты.

Рис . 2.1. Структура

GPSS- модели

В системе GPSS блоки GENERATE и

 

TERMINATE имеют особый статус: блок

GENERATE имеет только выход, блок TERMINATE имеет только вход. Блок GENERATE генерирует транзакты, блок TERMINATE завершает процесс продвижения транзактов.

Структура (Р/да-модели имеет вид [13,16], показанный на рис.

2.1.

В системе GPSS/PC версии 2.0 имеется 46 блоков, каждый из которых имеет по несколько параметров с определенными функ­ циональными назначениями.

Списки. В GPSS/PC транзакты или сообщения хранятся в спи­ сках. Списки представляют собой структуры данных, в которых размещена информация отранзактах. Списки относятся к элемен­ там внутренней организации GPSS, они обеспечивают внутрен­ нюю логику работы моделирующей системы S. Сообщение в лю­ бой момент времени находится в одном из пяти списков: текущих событий, будущих событий, прерываний, пользователя, синхро­ низации.

В списке текущих событий транзакты расположены в порядке убывания приоритета. Внутри класса транзакты с одинаковыми приоритетами располагаются в порядке поступления их в список. В списке текущих событий транзакт находится либо в активном состоянии (в способности к продвижению к следующему блоку), либо в состоянии задержки (когда движение транзакта блокирует­ ся какими-либо объектами моделирующей системы).

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

Список прерываний содержит транзакты, обслуживание кото­ рых (дальнейшее продвижение по модели) прервано на одном или более устройствах. В списке прерываний транзакты расположены

29

в порядке поступления. Транзакты находятся в списке прерыва­ ний до тех пор, пока не будут сняты все условия прерываний.

Список пользователя представляет собой список транзактов, удаленных из списка текущих событий с помощью блока LINK и помещенных в список пользователя как временно неактивные

Список синхронизации или список синхронизируемых транзак­ тов содержит транзакты, которые вданный момент находятся в со­ стоянии сравнения и при этом:

ожидают в блоках ASSEMBLE или GATHER прихода за­ данного числа транзактов из той же группы или из того же семей­ ства;

находятся в блоках MATH в ожидании поступления транзакта из того же семейства на сопряженный блок MATCH.

Списки призваны оптимизировать работу моделирующей сис­ темы S, представляющей собой программу-интерпретатор. В зада­ чу интерпретатора входит, прежде всего, определение ближайшего следующего события, которое должно произойти. После того как определено следующее событие (события), интерпретатор должен выполнить ряд проверок, чтобы определить, существуют ли в сис­ теме условия для наступления этого события, если условия суще­ ствуют, то интерпретатор переходит к обработке события. При этом интерпретатор может собирать некоторую статистическую информацию. Эта статистика впоследствии является частью вы­ ходных данных, по которым можно судить о работе моделируемой системы. Основной цикл программы выявления ближайшего следующего события и его обработка повторяется столько раз, сколько нужно для завершения моделирования. Таким образом, основной задачей, которую выполняет интерпретатор, является просмотр возможных событий. При этом просмотр должен быть организован так, чтобы затрачиваемое на него время было мини­ мальным. Также должен учитываться вопрос об изменении услов­ ного времени при организации просмотра возможных событий. Общую внутреннюю последовательность событий можно разбить на три фазы: изменение значения условного времени, просмотр списка текущих событий, движение транзактов. Структура списка GPSS/PC показана на рис. 2.2.

Устройства. Устройства в системе GPSS/PC формируются с помощью блоков SEIZE, RELEASE, PREEMPT, RETURN. Нали­ чие в модели устройств позволяет автоматически регистрировать статистическую информацию. Устройства моделируют реальные объекты, в которых может происходить обработка транзактов (со­ общений). В GPSS предусмотрена возможность прерывания уст­ ройств. Имеются средства логической проверки состояния уст-

зо

Соседние файлы в папке книги