Моделирование систем и языки программирования - pismo.netnado.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Название работы Кол-во страниц Размер
Basic. I ii урок. Вводный урок. Язык программирования Basic. 3 384.02kb.
Моделирование и формализация Моделирование как метод познания Моделирование 1 142.77kb.
«ит в биофизике: моделирование люминесценции растворов органических... 1 246.25kb.
Валентин Стецюк 1 36.29kb.
Механика для квантовой механики 2 321.3kb.
Лабораторная работа №3 Изучение учебного отладочного устройства уоу... 1 391.47kb.
Журнал «Банковские технологии», февраль 2003 Практический опыт имитационного... 1 167.96kb.
Граф научных интересов 1 77.85kb.
Методические указания и контрольные задания Цели изучения дисциплины... 1 64.57kb.
Основные понятия теории систем сущность и принципы тсса [Г. 1 337.39kb.
Учебно-методический комплекс учебной дисциплины Математическое моделирование... 4 543.23kb.
Игра в обучении иностранному языку на начальном этапе изучения английского... 1 123.24kb.
Урок литературы «Война глазами детей» 1 78.68kb.
Моделирование систем и языки программирования - страница №1/1

Моделирование систем и языки программирования


Большое значение при реализации модели на ЭВМ имеет вопрос правильного выбора языка программирования (ЯМ).

Язык программирования должен отражать внутреннюю структуру моделируемого объекта при описании широкого круга понятий. Высокий уровень языка моделирования значительно упрощает программирование моделей. Основными моментами при выборе ЯМ является:



  • проблемная ориентация;

  • возможности сбора, обработки, вывода результатов;

  • быстродействие;

  • простота отладки;

  • доступность восприятия.

Этими свойствами обладают процедурные языки высокого уровня. Для моделирования могут быть использованы языки Имитационного моделирования (ЯИМ) и общего назначения (ЯОМ).

Более удобными являются ЯИМ. Они обеспечивают:



  • удобство программирования модели системы;

  • проблемная ориентация.

Недостатки ЯИМ:

  • неэффективность рабочих программ;

  • сложность отладки;

  • недостаток документации.

Основные функции языка программирования:

  • управление процессами (согласование системного и машинного времени);

  • управление ресурсами (выбор и распределение ограниченных средств описываемой системы).

Как специализированные языки, ЯИМ обладают некоторыми программными свойствами и понятиями, которые не встречаются в ЯОН. К ним относятся:

Совмещение. Параллельно протекающие в реальных системах S процессы представляются с помощью последовательно работающей ЭВМ. ЯИМ позволяют обойти эту трудность путём введения понятий системного времени.

Размер. ЯИМ используют динамическое распределение памяти (компоненты модели системы М появляются в ОЗУ и исчезают в зависимости от текущего состояния. Эффективность моделирования достигается так же использованием блочных конструкций: блоков, подблоков и т.д.

Изменения. ЯИМ предусматривают обработку списков, отражающих изменения состояний процесса функционирования моделируемой системы на системном уровне.

Взаимосвязь. Для отражения большого количества между компонентами модели в статике и динамике ЯИМ включаем системно организованные логические возможности и реализации теории множеств.

Стохастичность. ЯИМ используют специальные программные генерации последовательностей случайных чисел, программы преобразования в соответствующие законы распределения.

Анализ. ЯИМ предусматривают системные способы статистической обработки и анализа результатов моделирования.
1.Замечания о языках моделирования

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

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

Исторически первым языком моделирования можно считать GPSS (General Purpose Sistems Simulatoг), разработанный фирмой IBM. Он получил у нас распространение в связи с тем, что в составе операционной системы отечественных ЭВМ ЕС имелся соответствующий транслятор. Первое представление о языке GPSS дает простейший пример, приведенный ниже.

Моделируется СМО с одним прибором и неограниченным числом мест для очереди. Заявки поступают через случайные промежутки времени, распределенные равномерно в интервале [12, 24], который иначе можно записать в виде 18±6. Время обслуживания заявки в приборе распределено аналогично, но в интервале 164. Предполагается получить одну реализацию длиной 1000, т.е. имитировать функционирование указанной СМО в течение 1000 единиц системного времени. В процессе моделирования должны быть собраны статистические данные, по которым исследователь смог бы судить о загрузке прибора, длине очереди, времени ожидания.

Приведем текст программы на языке GPSS.

SIMULATE

Моделирование СМО с одним npи6opом и очередью

GENERATE 18, 6 генерирование заявок через интервалы 18±6

QUEUE QPR постановка в очередь, имя которой QPR

SEIZE PR занятие прибора

DEPART QPR уход из очереди

ADVANCE 16,4 обслуживание (задержка на время 16±4)

RELEASE PR освобождение прибора

TERMINATE уход заявки из системы

Второй сегмент: условие остановки

GENERATE 1000 выдача таймером сигнала в момент 1000

TERMINATE 1 завершение реализаций (прогона)

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

GPSS называют языком транзактов, так как в нем понятие транзакта играет существенную роль.



Транзакт- это временный объект, который появляется в системе, продвигается в ней и покидает систему. Само слово транзакт ассоциируется с пассивным объектом, которого кто-то ведет (transact - вести). Активность – это постоянно присутствующий в системе объект, который занимается передвижением транзактов Активность принимает транзакт на некоторое время, а потом передает его другой активности. Примеры транзактов: заявки, детали, покупатели. Примеры активностей: приборы, ячейки буфера; станки, склады; кассиры, продавцы.

Применительно к программе моделирования транзакты и активности - это некоторые структуры данных, содержимое которых меняется, моделируя передвижение транзактов. Информация, содержащаяся в атрибутах транзактов и активностей, зачастую дублируется. Например, момент перехода заявки из буфера в прибор может быть записан и в транзакте, описывающем заявку, и в активности, описывающей буфер, и в активности, описывающей прибор. В некоторых языках моделирования используется структуры данных только одного вида: либо транзакты, либо активности. Чаще используются оба вида, но какой-то является ведущим. По этому признаку подробная классификация языков моделирования приведена Е. Киндлером [Языки программирования. М.: Энергоиздат, 1985]

Разработки языков моделирования велись в направлении устранения неудобств и предоставления пользователю все более универсальных средств для составления программ. Это привело фактически к слиянию универсальных языков с языками моделирования. Уже язык SIMULA-67 (Норвегия,1968) в дополнении к средствам языка ALGOL-60 содержит удобный аппарат описания новых понятий, средства обработки текстовой информации, стандартные средства ввода-вывода, средства для организации квазипараллельного исполнения компонентов программы. SIMULA-67 позволяет создать специализированный язык моделирования и пакет прикладных программ для конкретной предметной области с использованием терминов из этой области. Это значительно облегчает специалистам разных областей использование моделирования на ЭВМ для решения своих проблем.

Многие из языков моделирования позволяют в рамках одной программы моделировать системы, в которых взаимодействуют дискретные и непрерывные процессы. К таким языкам относятся НЕДИС, GASP IV, СИМФОР, СЛАМ II и др.

При моделировании предпочтение отдают языку, который более знаком, универсален. Вместе с увеличением числа команд возрастают трудности использования ЯИМ. Получены экспертные оценки ЯИМ по степени их эффективности.

Баллы

Возможности

Простота применения

Предпочтение пользователя

5

SIMULA

GPSS

SIMSCRIPT

4

SIMSCRIPT

SIMSCRIPT

GPSS

3

GPSS

SIMULA

SIMULA

Суммарный бал:

SIMULA -11

SIMSCRIPT -13

GPSS -12


Если предпочтение отдаётся блочной конструкции модели при наличии минимального опыта в моделировании, то следует выбрать язык GPSS, но при этом следует помнить, что он негибок, требует большого объёма памяти и затрат машинного времени для счёта.

До недавнего времени основными недостатками GPSS были низкий уровень входного языка, невозможность реализации нестандартных вычислений, скрытость от программиста внутренней логики поведения модели. Радикальные изменения произошли с переходом к Windows-версиям. Студенческая версия GPSS WORLD 4.2.1 (2000 г.) бесплатно распространяется через Интернет (www. Minutemansoftware.com)/

В эпоху персональных компьютеров разработаны программные средства, объединяющие идеологию моделирования (как правило, по схеме процессов) с богатыми возможностями персональных компьютеров по обеспечению сервиса. Обычно это - мощные инструментальные программные системы, совместимые с такими распространёнными языками как :MODUL-2, ТURBO-C, TURBO-C++.

Приобрело популярность объектно-ориентированное программирование. В понятии «объект» совмещены структуры данных к описанию процедур, способных оперировать с этими данными. Понятие процесса можно рассматривать в двух смыслах: как структуру данных и как алгоритм. Здесь эти два понятия объединены в одном понятии объекта. Объекты взаимодействуют между собой подобно процессам в системе SIMULA-67 послужил идейным источником объектно-ориентированного программирования. Объектно-ориентированное программирование лежит в основе многих коммерческих инструментов, одним из которых является AnyLogic [http//www.anylogic.com], довольно популярный в последнее время.



2. Приложение: язык программирования GPSS


Этот язык с 1968 года входит в математическое обеспечение машин фирмы IBM, один из наиболее популярных языков ИМ.

Общие сведения.

GPSS составлен из объектов и операций (логических правил). Объекты делятся на семь классов:



  • динамические (ДО);

  • аппаратно-ориентированные (АО);

  • статические (СО);

  • операционные (ОО);

  • вычислительные (ВО);

  • запоминающие (ЗО);

  • группирующие (ГО).

До — элементы потока обслуживания заявки или "транзакты". Они создаются и уничтожаются, с каждым транзактом может быть связано некоторое число "параметров"

АО — соответствуют элементам оборудования, которые управляются ДО.

К ним относятся:


  • накопители;

  • устройства;

  • логические переключатели.

СО:

  • очереди;

  • таблицы.

ЗО:

ячейки;


матрицы ячеек.

ГО:


  • группы;

  • списки.

ВО:

  • арифметические и булевы переменные;

  • функции.

Каждой очереди соответствует перечень транзактов, задержанных ы какой-либо точке системы и запись длительности этих задержек: Tз={iз}.

Таблицы могут использоваться для построения распределений выбранных величин.

ОО - блоки – формируют логику системы, давая транзактам указания, куда идти дальше.

Для того чтобы смоделировать систему, необходимо составить её описание в терминах 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.


0.1 Аппаратно - ориентированные блоки.


К группе АО - блоков относятся:

SEIZE - блок занятия прибора;

RELEASE - освобождение прибора;

PREEMT - захват устройства;

RETURN - возврат захваченного прибора старому транзакту;

ENTER - вход в устройство (накопитель);

LEAVE - выход из накопитель;

LOGIG - изменение логических переключателей.

Введение в моделирующую программу устройств и накопителей позволяет автоматически регистрировать статическую информацию.

Для управления ключами используется оператор LOGIG. Предусмотрено три режима изменения состояния ключа: сброс в "0", установка в "1", инвертированное изменение состояния ключа на противоположное.


0.2Динамически - ориентированные блоки.


В процесс моделирования транзакты создаются, порождают другие транзакты, собираются и уничтожаются. Каждому сообщению соответствует набор параметров, количество которых может быть установлено до 100. По умолчанию количество параметров принимается равным 12. Сообщениям можно присваивать приоритет от 0 до 127. По умолчанию приоритет равен 0. С динамической категорией объектов связаны блоки, которые можно разделить на пять групп: задержки, создания и уничтожения, изменения маршрутов, синхронизация, изменения атрибутов сообщений.

Группы: задержки: ADVANCE ;

создания: GENERATE;

уничтожения: TERMINATE, SPLIT, ASSEMBLE;

изменения маршрутов: TRANSFER, LOOP, GATE, TEST;

синхронизации: MATCH, GATHER;

изменения атрибутов сообщений: ASSIGN, INDEX, MARK, PRIORITY.

Функции блоков:

ADVANCE - задержка транзактов;

GENERATE - генерации;

TERMINATE - уничтожения;

SPLIT - расщепления;

ASSEMBLE - соединения;

TRANSFER - передачи;

LOOP -организации цикла;

GATE - проверка состояния;

TEST - сравнения атрибутов;

MATCH - синхронизации;

GATHER - сбора;

ASSIGN - изменений значений параметров;

INDEX - увеличение индекса;

MARK - ;


PRIORITY - изменение приоритета;

0.3Вычислительная категория


В вычислительной категории используются объекты 3-х видов: арифметические, логические, и функции. Арифметические объекты описываются блоком variable в режиме целых чисел и FVARIABLE в режиме с плавающей точкой. Название карты описывают арифметические действия над СЧА. Аргументы и результаты рассматриваются как целые числа. При вычислении используются операции: +, –, *, / (с отбрасыванием остатка, d - деление по модулю (остаток считается положительным ). Допускается использование не более 5-ти скобок.

FVARIABLE - описывает арифметические сочетания различных СЧА, вычисляемых в режиме с плавающей запятой. От аргументов и промежуточных результатов не берётся целая часть, а только от конечного результата.

Блок - BVARIABLE - логическое высказывание, состоящее из некоторой совокупности СЧА и логических атрибутов. При вычислении используется 3 типа операторов: логические, условные и булевы, например, 2 BVARIABLE М1 'LE' P6.

Функции описываются с помощью блока FUNCTION в виде совокупности диапазонов, например:

3 FUNCTION RN1,C5

0,0/.35,11/.42,1.7/.75,2.2/1.0,3.8


0.4Статическая категория


К ней относятся блоки:

QUEUE - для занятия очереди;

DEPART - для освобождения из очереди;

TABULATE - для регистрации частоты попадания заданного СЧА;

TABLE - для вывода характеристик таблицы;

SAVEVALUE - для сохранения информации в специальных ячейках ОЗУ;

MSAVEVALUE - для сохранения информации в ячейках ОЗУ;

MATRIX - для описания матрицы;

INITIAL - для присвоения ячейкам и матрицам начальных значений.

0.5Группирующая категория


К ней относятся блоки LINK и UNLINK, позволяющие переводить сообщения из списка текущих активных событий в списки пользователя неактивных событий и обратно. Использования списков позволяет моделировать различные дисциплины обслуживания событий.

0.6Специальные типы блоков


Они используются для составления сложных моделей. К ним относятся блоки вывода статистики (PRINT, TRACE, UNTRACE), изменения модели (EXECUTE, CHANGE) блоки BUFFER и HELP, а так же блоки управления группами транзактов (JOIN, REMOVE, EXAMINE, SCAN, ALTER).

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

HELP - для составления пользователем независимых программ, которые могут взаимодействовать с GPSS.

JOIN - для включения транзакта или числового значения в группу.

REMOVE - обратная функция JOIN.

EXAMINE - предоставляет возможность пользователю выбора пути, по которому пойдёт транзакт в зависимости от того, принадлежит он группе или нет.

SCAN - для анализа получения значений атрибутов транзактов и изменения их пути.

ALTER - для изменения значений атрибутов транзактов из группы.


0.7Примеры решения задач моделирования на GPSS


Пример 1. Моделирование непрерывной случайной величины распределённой по экспоненциальному закону с  = 0.1.

10 SIMULATE

20 EXPON FUNCTION RN1, C24

30 0.0/.1,.104/.2,.222/.3,.365/.4,.509/.5,.69

.6,.915/.7,1.2/.75,1.38/.8,1.6/.84,1.83/.88,2.12

.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5

.98,3.9/.99,4.6/.995,5.3/.995,6.2/.999,7.01.9997,8.0

40 GENERATE 10,FN$EXPON

50 MARK1

60 TABULATE XTIME

70 TERMINATE 1

80 XTIME TABLE P1,0,2,100

90 START 200

100 END


Модель включает 4 блока, выполняющие следующие функции:

40 - генерирование транзакта;

50 - присвоение параметру 1 транзакта значения, равного текущему значению часового времени;

60 - уничтожение транзакта;

10 - признак, необходимый для прогона модели;

20 - описание функции (EXPON - метка, RN1 - генератор случайной функции, число пар координат-24);

30 - задание значений пар координат функции;

80 - определение таблицы; XTIME - метка, табулируемой величиной является Р1 значение параметров последовательных транзактов, верхний предел первого интервала равен 0, ширина интервала - 2, общее число интервалов - 100;

90 - признак ввода данных, необходимый для выполнения моделирования; прогон модели должен завершится после прохождения через неё 200 транзактов;

100 - признак конца программы.



Пример 2. Составить модель композиции двух случайных величин X1 и X2 имеющих экспоненциальные распределения с параметрами 1 и 2 (Х= X1 + X2), удовлетворяющих обобщённому закону Эрланга 1-ого порядка: g(t)= 12(e-1- e-2)/(-2).

Рис. 10.1. К задаче моделирования композиции 2-х случайных величин.

10 SIMULAT

20 EXPON FUNCTION RN1, C24

30 0.0/.1,.104/.2,.222/.3,.365/.4,.509/.5,.69

.6,.915/.7,1.2/.75,1.38/.8,1.6/.84,1.83/.88,2.12

.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5

.98,3.9/.99,4.6/.995,5.3/.995,6.2/.999,7.01.9997,8.0


40 GENERATE 0,0,,1

50 ASSIGN 1,K500

60 INPUT ADVANCE 10,FN$EXPON

70 ADVANCE 20, FN$EXPON

80 TABULATE XTIME

90 LOOP 1,INPUT

100 TERMINATE 1

110 XTIME TABLE M1,0,5,100

120 START 1

130 END.


Функции блоков:

40 - генерирование 1-ого транзакта в момент времени t=0;

50 - присвоение параметру 1 значения, равного 500;

60 - моделирование экспоненциального распределённых временных интервалов с параметром 1;

70 - моделирование экспоненциального распределённых временных интервалов с параметром 2;

80 - формирование таблиц частот XTIME для суммарных интервалов;

90 - контроль числа прохождений транзактов через сегмент блоков, начинающийся с блока INPUT;

100 - уничтожение транзакта.



Пример 3. Моделирование однолинейной системы с пуассоновским входящим потоком с параметром  = 0.1 1/сек. И экспоненциальным временем обслуживания с параметром  = 0.2 1/сек.

10 SIMULATE

20 LINE EQU 1

30 EXPON FUNCTION RN1,C24

40 0.0/.1,.104/.2,.222/.3,.365/.4,.509/.5,.69

.6,.915/.7,1.2/.75,1.38/.8,1.6/.84,1.83/.88,2.12

.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5

.98,3.9/.99,4.6/.995,5.3/.995,6.2/.999,7.01.9997,8.0

50 GENERATE 10, FN$EXPON

60 ASSIGN 1,LINE

70 QUEUE O1

80 SEIZE LINE

90 DEPART O1

100 ADVANCE 5,FN$EXPON

110 RELEASE LINE

120 TABULATE XTIME

130 TERMINATE 1

140 XTIME TABLE M1,0,10,100

150 START 500

160 END.


9 блоков: 50 - генерирование транзактов;

60 - назначение параметру 1 транзакта номера, соответствующего прибору LINE;

70 - вхождение транзакта в очередь на прибор;

80 - занятие прибора;

90 - выход из очереди;

100 - моделирование обслуживания;

110 - освобождения прибора;

120 - формирование таблицы частот XTIME для времени прохождения транзакта;

130 - уничтожение транзакта;

20 - назначение величины 1 переменной LINE.



Пример 4. Моделирование работы однолинейной системы, имеющей 3 Пуассоновских потока требований с относительными приоритетами и параметрами 1=0.01 1/сек., 2=0.04 1/сек., 3=0.05 1/сек. Экспоненциальный закон обслуживания 1=0.2 1/сек.

10 SIMULATE

20 LINE EQU 1

30 EX FUNCTION

40 0.0/.1,.104/.2,.222/.3,.365/.4,.509/.5,.69

.6,.915/.7,1.2/.75,1.38/.8,1.6/.84,1.83/.88,2.12

.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5

.98,3.9/.99,4.6/.995,5.3/.995,6.2/.999,7.01.9997,8.0

50 GENERATE 100, FN$EX,,,3

60 TRANSFER ,INPUT

70 GENERATE 25, FN$EX,,,2

80 TRANSFER ,INPUT

90 GENERATE 20, FN$EX,,,1

100 INPUT ASSIGN 1,LINE

110 QUEUE LINE

120 SEIZE LINE

130 DEPART LINE

140 ADVANCE 5,FN$EX

150 RELEASE LINE

160 TERMINATE 1

170 START 1000

60, 80 - безусловная передача транзактов;



50, 70, 90 - генерирование транзактов с приоритетами 3, 2, 1.