--PAGE_BREAK--2.2 Датчики или генераторы транзактов
Формат оператора:GENERATE A, B, C, D, E, где А – определяет время, через которое появляется новый транзакт, В – модификатор времени, через которое появляется новый транзакт.
Если В не вызов функции, то В задает разбежку генерируемых по равномерному закону значений.
С – время задержки первого транзакта.
D – предельное количество генерируемых заявок (по умолчанию бесконечность).
Е – приоритет всех генерируемых транзактов.
Вместо параметра А так же могут задаваться специальные встроенные функции GPSS.
2.3 Для имитации обслуживания в устройстве используем оператор ADVANCE.
Формат оператора:ADVANCE A, В, гдеА – среднее время обслуживания заявки на устройстве, В – разбежка среднего времени обслуживания при равномерном обслуживании в устройстве (если отсутствует, то используется дискретный закон) .
2.4 Операторы управления маршрутными узлами
В программе оператор TRANSFER:TRANSFER А, В, где В – метка, А – вероятность перехода по метке В.
2.5 Операторы управления объектами сбора статистики
QUEUE A – войти в очередь А.
DEPART A – выйти из очереди А.
При прохождении транзакты не задерживаются. Эти операторы не влияют на логику работы модели. Любой транзакт может войти во сколько угодно очередей без ограничений.
2.6 TERMINATE (Уничтожить, терминировать)
Служит для удаления транзактов из модели по завершении их обработки. Производит подсчет выведенных из модели транзактов, уменьшая величину специального счетчика — счетчика завершений.
Формат: , где: А — величина, на которую будет уменьшен счетчик завершений.
2.7 SEIZE (завладеть), RELEASE (освободить)
Оператор SEIZE, является парным с оператором RELEASE, использование их по одиночке не допустимо. Имена, записываемые в операнде А пары должны быть идентичны. Оператор служит приглашением ко входу в одно из устройств модели. Транзакт, подойдя к блоку SEIZE, пытается занять устройство, названное в операторе. Если устройство занято, транзакт ожидает освобождения устройства перед этим оператором. Перед оператором SEIZE может находиться любое количество транзактов. При попадании первого транзакта на обслуживание в устройство, происходит переключение, осуществляемое программой, запрещающее вход в устройство до окончания обслуживания.
Формат:, где А — имя (или номер) устройства.
Функция оператора RELEASE — моделировать освобождение устройства. Пройдя обслуживание в операторе ADVANCE, и исполнив, оператор RELEASE, транзакт переключает поименованное в операторе устройство из положения «занято» в положение «свободно» и разрешает вход в ADVANCE, первому из транзактов, ожидающих перед оператором SEIZE.
Формат: , где А — имя (или номер) устройства.
2.8 ENTER ( войти), LEAVE (отпустить)
Эта пара операторов выполняет те же функции, что и SEIZE и RELEASE, но не для устройств, а для STORAGE — «хранилищ», то есть для ресурсов, к которым может обращаться более одного транзакта. Такие объекты могут быть полезны при моделировании, например, распараллеленного процесса: обработки потока деталей на нескольких одинаковых станках, выхода публики из театра через несколько дверей и т.д. Эти «хранилища», или устройства параллельной обработки, должны быть предварительно описаны в программе при помощи оператора описания STORAGE (см. ниже). По логике своей работы связки операторов SEIZE – ADVANCE – RELEASE; ENTER- ADVANCE- LEAVE; абсолютно одинаковы, но употребляются для разных объектов.
2.9 FUNCTION ( функционировать )
Используется для определения характера функции, связывающей независимую переменную с рядом зависимых величин. Эта связь может иметь непрерывный или дискретный вид. Кроме того функция может быть представлена в символьном виде, когда значение функции вычисляется из выражения, приводимого в списке. Формат FUNCTION имеет вид:
X1,Y1/X2,Y2/,…/Xn,Yn> точки функции
Label – ярлык употребляется в обязательном порядке и служит для идентификации функции .
А - не имеет значения по умолчанию, определяет независимую переменную функции (аргумент), например, если используется равномерное распределение и БСВ берётся с 3-го генератора, то запись будет иметь вид RN3 (randomnumber). Операнд может кодироваться дополнительным выражением. Единственным ограничением является то, что аргумент не может прямо или косвенно ссылаться на функцию для которой он является независимой переменной. Значения функции могут задаваться числом с плавающей точкой.
B - не имеет значения по умолчанию, состоит из двух символов ( без пробела), первый из которых представляет собой обозначение типа функции, вида: C- непрерывная числовая, D – дискретная числовая, L - список числовых значений, E - дискретная символьная, M – список дискретных символов, S- селектор объектов; второй символ представляет собой целое число связанных пар значений функции, которые представляют собой точки функции и приводятся во второй строке описания формата. Если используется символ S, то он уточняется операндом С, используемым только в этом случае .
С - по умолчанию равен 0, применяется для перечисления типов объектов, если используются объекты разных типов, то приводятся их символы, разделяемые запятой без пробелов.
Рассмотрим пример записи функции :
SERVTIME FUNCTION RN7,D5
2,4/.55,7.5/.7,10.5/.8,13.5/1,16.5
2.10 STORAGE (Запомнить )
Используется для определения ёмкости одной или нескольких памятей. Исполнение STORAGE (впрочем, как и всех рассмотренных ) происходит только после успешного завершения процесса компиляции, при этом вводится в действие оговорённое число ресурсовSTORAGE. STORAGE в силу своей специфики должен располагаться в модуле описания, до того как началось движение транзактов, так как после компиляции программа последовательно исполняет все, стоящие до первого START. Формат STORAGE может быть представлен двумя способами :
,
Label - не имеет значения по умолчанию, отсутствие ярлыка приводит к ошибке компиляции. Ярлык является идентификатором памяти, ёмкость которой определяется. При этом формате можно определить только одну память.
А - не имеет значения по умолчанию, отсутствие приводит к ошибке компиляции. Операнд определяет ёмкость памяти, т.е. число моделируемых устройств обслуживания. Необходимо иметь в виду, что в этом формате можно использовать одну единицу ёмкости в заданный момент времени.
Приведём примеры записи:
1. SAM STORAGE 10,
2. 3 STORAGE 5.
В первом примере памяти SAM определяется ёмкость 10, во втором примере памяти за номером 3 определяется ёмкость 5.
Используя многоканальное обслуживание можно не определять STORAGE, в этом случае ёмкость по умолчанию практически равна бесконечности ( а именно, 2147483647 ).
При записи во втором формате — — можно определять несколько памятей сразу. Определитель памяти представляет пары обозначений, разделённых запятой, между собой пары отделяются слешем. Вначале пишется символ памяти, а затем её имя – первый член пары, после запятой пишется операнд А, В, характеризующий ёмкость памяти второй член пары. Символ S может быть отделён от имени памяти символом $ или имя может быть включено в круглые скобки, памяти одинаковой ёмкости могут записываться через тире.
Рассмотрим пример GPSS-ной модели и текст программы на языке GPSS, соответствующий этой модели.
1 Представим модель графически (рисунок 2.1)
B1 B2 B3
— генератор
-накопитель
— устройство
Рисунок 2.1
Опишем сеть аналитически.
Количество узлов – 5.
1 узел — для источника (генератора) заявок.Закон поступления заявок -равномерный;
2 узел — обслуживающее устройство. Закон обслуживания – экспоненциальный;
3 узел — обслуживающее устройство. Закон обслуживания – экспоненциальный;
4 узел — обслуживающее устройство. Закон обслуживания – экспоненциальный;
5 узел — приемник. Поглощает по 1 заявке.
Матрица переходов для примера сети представлена на рисунке 2.2
-
1
2
3
4
5
1
0
1
0
0
0
2
0
0
1
0
0
3
0
0,9
0
0,1
0
4
0,9
0
0
0
0,1
5
0
0
0
0
1
Рисунок 2.2 Матрица переходов для примера сети.
Модель на языке GPSSдолжна выглядеть так:
GENERATE 10
L3 QUEUE 1
SEIZE B1
DEPART 1
ADVANCE (EXPONENTIAL(1,0,2.1))
RELEASE B1
L1 QUEUE 1
SEIZE B2
DEPART 1
ADVANCE (EXPONENTIAL(1,0,6))
RELEASE B2
TRANSFER 0.9,L2,L1
L2 QUEUE 1
SEIZE B3
DEPART 1
ADVANCE (EXPONENTIAL(1,0,10))
RELEASE B3
TRANSFER 0.9,L4,L3
L4 TERMINATE1
START 1000
Занесём данный текст в программу GPSS WORLD и получим стандартный отчёт.
В отчете собираются следующие статистические данные:
- START TIME – начальное значение времени моделирования;
- END TIME – конечное значение времени моделирование;
- BLOCKS – число блоков, использованных при моделировании;
- FACILITIES – число устройств, использованных при моделировании;
- STORAGE – число многоканальных устройств, использованных при моделировании.
Информация об устройствах содержит следующие колонки:
- FACILITY — имя устройства;
- ENTRIES — количество транзактов, входивших в устройство;
- UTIL. — коэффициент загрузки устройства;
- AVE.TIME — среднее время пребывания транзакта в устройстве;
- AVAILABLE — состояние устройства в момент окончания моделирования (1 — устройство доступно, 0 — недоступно);
- OWNER — номер последнего транзакта, вошедшего в устройство;
- PEND — количество транзактов, ожидающих выхода устройства из режима прерывания;
- INTER — количество транзактов, пребывание которых в устройстве было прервано;
- RETRY — количество транзактов, ожидающих каких-либо условий, зависящих от состояния данного устройства;
- DELAY — количество транзактов, ожидающих возможности входа в устройство (обычно это транзакты, находящиеся в очереди);
Информация об очередях содержит следующие колонки:
- QUEUE — имя очереди;
- MAX — максимальная длина очереди (т.е. количество транзактов в ней) за время моделирования;
- CONT.- длина очереди в момент окончания моделирования;
- ENTRIES — количество транзактов, входивших в очередь;
- ENTRIES(0) — количество транзактов, которым не потребовалось ждать в данной очереди (нулевые входы);
- AVE.CONT.- средняя длина очереди;
- AVE.TIME — среднее время пребывания транзактов в очереди;
- AVE.(-0) — среднее время пребывания транзактов в очереди без учета нулевых входов (т.е. без учета транзактов с нулевым временем пребывания в очереди);
- RETRY — количество транзактов, ожидающих каких-либо условий, зависящих от состояния данной очереди.
продолжение
--PAGE_BREAK--3 Проектирование системы
В окончательном виде любая программа представляет собой набор инструкций процессора. Всё, что написано на любом языке программирования, — более удобная, упрощённая запись этого набора инструкций, облегчающая написание, отладку и последующую модификацию программы. Чем выше уровень языка, тем в более простой форме записывается одни и те же действия.
С ростом объёма программы становится невозможным удерживать в памяти все детали, и становится необходимым структурировать информацию, выделять главное и отбрасывать несущественное. Этот процесс называется повышением степени абстракции программы.
Первым шагом к повышению абстракции является использование функции. Следующий шаг – описание собственных типов данных, позволяющих структурировать и группировать информацию.
Объединение в модули описаний типов данных и функций, предназначенных для работы с ними, со скрытием от пользователя модуля несущественных деталей, является дальнейшим развитием структуризации программы.
Введение понятия класса является естественным развитием идей модульности. В классе структуры данных и функции их обработки объединяются. Класс используется только через его интерфейс – детали реализации для пользователя класса несущественны.
Класс является типом данных, определяемым пользователем. В классе задаются свойства и поведение какого-либо предмета или процесса в виде полей данных (аналогично структуре) и функции для работы с ними. Создаваемый тип данных обладает практически теми же свойствами, что и стандартные типы. В нашей программе мы использовали три класса:
- Класс FuncStandartсодержит описание всех стандартных функций, определённых языком имитационного моделирования GPSS.
В зависимости от выбранной пользователем функции вызывается соответствующий ей метод класса FuncStandart. Вызванный метод отправляет на консоль запрос пользователю на ввод параметров выбранной функции. В зависимости от введенныхпараметров, метод генерирует строку, содержащуюописание стандартной функции с уже заданными параметрами на языке имитационного моделирования GPSS.
- Класс GPSSOperatoriсодержит описание операторов языка имитационного моделирования GPSS.В зависимости от матрицы, сгенерированной в методе Matrixкласса GPSSText, вызываются соответствующие методы класса GPSSOperatori. Все методы класса возвращают строковое значение, содержащее описание требуемых операторов языка имитационного моделирования GPSS. Причем стандартные функции, которые используются в операторах как параметры, генерируются в классе FuncStandart.
- Класс GPSSTextописывает сгенерированный текст языка имитационного моделирования GPSS. Во-первых, метод класса Matrix, выводит на консоль запрос об операторах узлов, содержащихся в имитационной модели и о движении транзакта по соответствующим узлам. В зависимости от полученных данных генерируется матрица переходов. Во-вторых, в методе Programma, по матрице переходов совершается соответствующий вызов метода классаGPSSOperatori. В конечном итоге, результат работы программы записывается в файл GPSStext.txt. Этот файл содержит окончательно сгенерированный текст программы на языке имитациооного моделирования GPSS.
Идея классов является основой объектно-ориентированного программирования.
Основными свойствами ООП является инкапсуляция, наследование и полиморфизм.
Объединение данных с функциями их обработки в сочетании со скрытием ненужной для использования этих данных информации называется инкапсуляцией.
Наследование – это возможность создания иерархии классов, когда потоки наследуют все свойства своих предков, могут их изменять и добавлять новые.
Полиморфизм – возможность использования в различных классах иерархии одно имя для обозначения сходных по смыслу действий и гибко выбирать требуемое действие во время выполнения программы.
В нашей программе используется первые два свойства ООП.
Проектирование объектно-ориентированной программы представляет собой весьма сложную задачу, поскольку в процесс добавляется ещё один важный этап – разработка иерархий классов.
Представим иерархию классовнашей программы (рисунок 3.1)
Рисунок 3.1
4 РЕАЛИЗАЦИЯ СИСТЕМЫ
Как ранее уже описывалось, программа состоит из трёх классов:
- Класс FuncStandartсодержит описание всех стандартных функций, определённых языком имитационного моделирования GPSS.
- Класс GPSSOperatoriсодержит описание операторов языка имитационного моделирования GPSS.
- Класс GPSSTextописывает сгенерированный текст языка имитационного моделирования GPSS.
4.1 Класс
FuncStandart
-
- Метод stringfBETA() задает параметры функцииBETA(Stream,Min,Max,Shape1,Shape2) и возвращает строку содержащую описание этой функции с уже заданными пользователем параметрами.
- Метод stringfBINOMIAL()задает параметры функции BINOMIAL(Stream,TrialCount,Probability) и возвращает строку содержащую описание этой функции с уже заданными пользователем параметрами.
- Метод stringfDUNIFORM()задает параметры функции DUNIFORM(Stream,Min,Max) и возвращает строку содержащую описание этой функции с уже заданными пользователем параметрами.
- Метод stringf_1() задает параметры функций EXPONENTIAL(Stream,Locate,Scale), EXTVALA(Stream,Locate,Scale), EXTVALB(Stream,Locate,Scale), LAPLACE(Stream,Locate,Scale), LOGISTIC(Stream,Locate,Scale)и возвращает строку содержащую описание этих параметров с уже заданными пользователем значениями.
- Методstring f_2() задаетпараметрыфункцийGAMMA(Stream,Locate,Scale,Shape), INVGAUSS(Stream,Locate,Scale,Shape), INVWEIBULL(Stream,Locate,Scale,Shape), OGLAPLACE(Stream,Locate,Scale,Shape), LOGLOGIS(Stream,Locate,Scale,Shape),LOGNORMAL(Stream,Locate,Scale,Shape),PEARSON5(Stream,Locate,Scale,Shape),WEIBULL(Stream,Locate,Scale,Shape).
- Метод stringfGEOMETRIC()задает параметры функции GEOMETRIC(Stream,Probability) и возвращает строку содержащую описание этой функции с уже заданными пользователем параметрами.
- Метод stringfNEGBINOM()задает параметры функции NEGBINOM(Stream,SuccessCount,Probability) и возвращает строку содержащую описание этой функции с уже заданными пользователем параметрами.
- Метод stringfNORMAL()задает параметры функции NORMAL(Stream,Mean,StdDev) и возвращает строку содержащую описание этой функции с уже заданными пользователем параметрами.
- Метод stringfPARETO()задает параметры функции PARETO(Stream,Locate,Scale) и возвращает строку содержащую описание этой функции с уже заданными пользователем параметрами.
- Метод string fPEARSON6()задает параметры функции PEARSON6(Stream,Locate,Scale,Shape1,Shape2) и возвращает строку содержащую описание этой функции с уже заданными пользователем параметрами.
- Метод stringfPOISSON()задает параметры функции POISSON(Stream,Mean) и возвращает строку содержащую описание этой функции с уже заданными пользователем параметрами.
- Метод stringfTRIANGULAR()задает параметры функции
- TRIANGULAR(Stream,Min,Max,Mode) и возвращает строку содержащую описание этой функции с уже заданными пользователем параметрами.
- Метод stringfUNIFORM() задает параметры функции UNIFORM(Stream,Min,Max) и возвращает строку содержащую описание этой функции с уже заданными пользователем параметрами.
4.2 Класс
GPSSOperatori
- Описываются переменные целого типа nF, nST, nFas, nQ, ответственные за номер используемой функции, номер многоканального устройства, номер одноканального устройства, номер очереди соответственно.
- МетодGENERATEзадаёт параметры оператора GENERATEи возвращает строковое значение этого оператора с заданными пользователем значениями параметров.
На первом этапе определяется промежуток времени между появлениями транзактов. Он может быть: постоянным, случайным, заданным функцией, зависящим от функции, а также не задан.
При промежутке времени между появлениями транзактов заданном функцией или зависящем от функции, определяется, какой будет функция: стандартной или пользовательской, в зависимости от этого вызываются функцииFStandи FUNCTIONсоответственно.
На втором этапе определяется время задержки появления первого транзакта. Оно может быть: задано или не задано.
На третьем этапе определяется предельное число транзактов.Оно так же может быть: задано или не задано.
На четвёртом этапе определяется приоритет транзактов. Он может быть: задан или не задан.
- Метод ADVANCEзадаёт параметры оператора ADVANCEи возвращает строковое значение этого оператора с заданными пользователем значениями параметров.
В методе определяется время задержки транзакта. Оно может быть: постоянным, случайным, заданным функцией, зависящим от функции.
При времени задержки транзакта заданном функцией или зависящем от функции, определяется, какой будет функция: стандартной или пользовательской, в зависимости от этого вызываются функцииFStandи FUNCTIONсоответственно.
- Метод ENTERвозвращает строку содержащую операторы языка имитационного моделирования GPSS, описывающие многоканальное устройство.
На первом этапе в файл GPSStext.txt(файл для записи сгенерированного текста программы на языке имитационного моделирования GPSS) записывается описание многоканального устройства, то есть его имя и количество каналов.
На втором этапе определяется, на каком шаге программы пользователь желает получить статистику: нахождение транзакта в очереди перед ОУ, нахождение транзакта в ОУ, общее время обработки транзакта, а также возможен вариант без сбора статистики.
На третьем этапе записывается оператор захвата многоканального устройства с названием этого устройства и количеством захвачиваемых каналов.
На четвёртом этапе происходит переход на генерацию текста оператора ADVANCE.
На пятом этапе записывается оператор освобождения многоканального устройства с названием этого устройства и количеством освобождаемых каналов.
- Метод SIZEвозвращает строку содержащую операторы языка имитационного моделирования GPSS, описывающие одноканальное устройство.
На первом этапе определяется, на каком шаге программы пользователь желает получить статистику: нахождение транзакта в очереди перед ОУ, нахождение транзакта в ОУ, общее время обработки транзакта, а также возможен вариант без сбора статистики.
На втором этапе записывается оператор захвата одноканального устройства с названием этого устройства.
На третьем этапе происходит переход на генерацию текста оператора ADVANCE.
На четвертом этапе записывается оператор освобождения одноканального устройства с названием этого устройства.
- Метод FUNCTIONзадаёт параметры оператора FUNCTIONи возвращает строковое значение этого оператора с заданными пользователем значениями параметров.
В файл GPSStext.txtна первом этапе записывается номер генератора случайного числа; на втором этапе тип функции; на третьем число точек и их координаты.
- Метод Fstandartопределяет, какая стандартная функция будут вызываться, то есть обращается в класс FuncStandart, и возвращает строку, содержащую описание этой функции.
4.3 Класс
GPSSText
- Переменные oper, ukazat, matrixтипа vectorнаходящиеся в области private, определяют операторы принадлежащие узлам, указатели на узлы, матрицу переходов от одного узла к другому соответственно.
- Метод Matrixгенерирует матрицу переходов от одного узла к другому, а также определяет, какие операторы принадлежат узлам.
На первом этапе определяется оператор на соответствующем узле.
На втором этапе в соответствии с номером узла, определяется, какая строка будет генерироваться в матрице.
Если узел содержит генератор, одноканальное либо многоканальное устройство, то в столбец с номером узла, в который переходит дальше транзакт, записывается 1, в остальные столбцы записывается 0.
Если узел вероятностный, то в столбцы с номерами узлов, на которые совершается переход, записывается соответствующая вероятность, в остальные столбцы записываются нули.
Если узел является терминатором, то в соответствующую строку записываются все нули.
Причем, при каждом описании узла, в вектор operзаписывается оператор, соответствующий узлу.
- Метод Programmaокончательно генерирует текст программы, написанной на языке имитационного моделирования GPSS.
На первом этапе вызывается метод Matrix, который заполняет матрицу переходов и вектор операторов.
На втором этапе определяются узлы, на которых будут стоять указатели.
На третьем генерируется программа в соответствии с матрицей, операторами и указателями.
В конце программы выводится текст, подтверждающий корректное ее завершение, а также название файла, хранящего текст программы, написанной на языке имитационного моделирования GPSS.
5 ИСПЫТАНИЕ И ТЕСТИРОВАНИЕ СИСТЕМЫ
Для испытания и тестирования системы мы рассмотрели четыре контрольных модели.
С помощью программы, написанной на MicrosoftVisualStudioC++, мы получили GPSSтекст и сохранили его в файлGPSStext.txt.
Запустив сгенерированную программув GPSSWorldмы получили отчёт.
Рассмотрим тестовые четыре модели.
Модель 1(рисунок 5.1)
2
1
Рисунок 5.1
Система включает в себя два узла:
1 узел – генератор с постоянным законом поступления заявок и с заданной задержкой первой заявки (транзакта).
2 узел – одноканальное обслуживающее устройство с постоянным законом распределения времени обслуживания заявок.
Задана обратная связь на ОУ. Сбор статистики осуществляется перед ОУ.
Работа программы для данной модели выглядит следующим образом:
Количество узлов: 2
Введите оператор 1 узла:
1 — генератор;
2 — одноканальное устройство;
3 — многоканальное устройство;
4 — вероятностный узел;
5 — терминатор;
Ваш выбор: 1
На какой узел идет: 2
Введите оператор 2 узла:
1 — генератор;
2 — одноканальное устройство;
3 — многоканальное устройство;
4 — вероятностный узел;
5 — терминатор;
Ваш выбор: 2
На какой узел идет: 2
Промежуток времени между появлениями транзактов:
1 — Постоянный;
2 — Случайный;
3 — Задан функцией;
4 — Зависит от функции;
5 — Не задан;
Ваш выбор:1
Время между появлениями транзактов: 23
Время задержки появления первого транзакта:
1 — задано;
2 — не задано;
Ваш выбор: 1
Время: 2
Предельное число таранзактов:
1 — задано;
2 — не задано;
Ваш выбор: 2
Приоритет транзактов:
1 — задан;
2 — не задан;
Ваш выбор: 2
Узел 2
Время задержки транзакта:
1 — Постоянное;
2 — Случайное;
3 — Задано функцией;
4 — Зависит от функции;
Ваш выбор:1
Время задержки: 24
Сбор статистики:
1 — нахождение в очереди перед ОУ;
2 — нахождение в ОУ;
3 — общее время обработки транзакта (1+2);
4 — не требуется;
Ваш выбор: 1
Сбор статистики:
1 — нахождение в очереди перед ОУ;
2 — нахождение в ОУ;
3 — общее время обработки транзакта (1+2);
4 — не требуется;
Ваш выбор: 4
#####################################################
## Работа программы закончена! ##
## Tекст программы находится в файле GPSStext.txt! ##
#####################################################
Содержимоефайла “GPSStext.txt”:
GENERATE23,,2
U_2 QUEUEQ_1
SEIZE Fas_1
DEPART Q_1
ADVANCE 24
RELEASE Fas_1
TRANSFER ,U_2
Отчет:
GPSS World Simulation Report — Untitled Model 1.1.1
Monday, December 20, 2010 00:46:21
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 480000.000 9 1 0
NAME VALUE
F_1 10001.000
Q_1 10000.000
U_2 2.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 20870 0 0
U_2 2 QUEUE 40869 20869 0
3 SEIZE 20000 0 0
4 DEPART 20000 0 0
5 ADVANCE 20000 1 0
6 RELEASE 19999 0 0
7 TRANSFER 19999 0 0
8 GENERATE 1000 0 0
9 TERMINATE 1000 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
F_1 20000 1.000 24.000 1 2564 0 0 0 20869
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
Q_1 20869 20869 40869 1 10434.196 122547.993 122550.991 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
2564 0 480002.000 2564 5 6
21871 0 480012.000 21871 0 1
21872 0 480480.000 21872 0 8
Модель 2 (рисунок 5.2)
1 2 3
Рисунок 5.2
Система включает в себя два узла:
1 узел – генератор со случайным законом поступления заявок.
2 узел – одноканальное обслуживающее устройство сослучайным законом распределения времени обслуживания заявок. После, обслуживание заканчивается.
3 узел – терминатор.
Сбор статистики осуществляется в ОУ.
Работа программы для данной модели выглядит следующим образом:
Количество узлов: 3
Введите оператор 1 узла:
1 — генератор;
2 — одноканальное устройство;
3 — многоканальное устройство;
4 — вероятностный узел;
5 — терминатор;
Ваш выбор: 1
На какой узел идет: 2
Введите оператор 2 узла:
1 — генератор;
2 — одноканальное устройство;
3 — многоканальное устройство;
4 — вероятностный узел;
5 — терминатор;
Ваш выбор: 2
На какой узел идет: 3
Введите оператор 3 узла:
1 — генератор;
2 — одноканальное устройство;
3 — многоканальное устройство;
4 — вероятностный узел;
5 — терминатор;
Ваш выбор: 5
Промежуток времени между появлениями транзактов:
1 — Постоянный;
2 — Случайный;
3 — Задан функцией;
4 — Зависит от функции;
5 — Не задан;
Ваш выбор:2
Среднее время между появлениями транзактов: 23
+/-: 3
Время задержки появления первого транзакта:
1 — задано;
2 — не задано;
Ваш выбор: 3
Введено неверно!!!
Ваш выбор: 2
Предельное число таранзактов:
1 — задано;
2 — не задано;
Ваш выбор: 2
Приоритет транзактов:
1 — задан;
2 — не задан;
Ваш выбор: 2
Узел 2
Время задержки транзакта:
1 — Постоянное;
2 — Случайное;
3 — Задано функцией;
4 — Зависит от функции;
Ваш выбор:2
Среднее время задержки: 34
+/-: 4
Сбор статистики:
1 — нахождение в очереди перед ОУ;
2 — нахождение в ОУ;
3 — общее время обработки транзакта (1+2);
4 — не требуется;
Ваш выбор: 2
Сбор статистики:
1 — нахождение в очереди перед ОУ;
2 — нахождение в ОУ;
3 — общее время обработки транзакта (1+2);
4 — не требуется;
Ваш выбор: 4
Узел 3
Сколько транзактов извлечь: 1
#####################################################
## Работа программы закончена! ##
## Tекст программы находится в файле GPSStext.txt! ##
#####################################################
Содержимоефайла“GPSStext.txt”:
GENERATE 23,3
SEIZE Fas_1
QUEUE Q_1
ADVANCE 34,4
DEPART Q_1
RELEASE Fas_1
TERMINATE 1
Отчет:
GPSS World Simulation Report — Untitled Model 1.2.1
Monday, December 20, 2010 01:04:42
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 34037.787 7 1 0
NAME VALUE
F_1 10000.000
Q_1 10001.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 1482 481 0
2 SEIZE 1001 1 0
3 QUEUE 1000 0 0
4 ADVANCE 1000 0 0
5 DEPART 1000 0 0
6 RELEASE 1000 0 0
7 TERMINATE 1000 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
F_1 1001 0.999 33.979 1 1001 0 0 0 481
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
Q_1 1 0 1000 0 0.999 34.013 34.013 0
CEC XN PRI M1 ASSEM CURRENT NEXT PARAMETER VALUE
1001 0 22969.240 1001 2 3
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
1483 0 34058.351 1483 0 1
Модель 3(рисунок 5.3)
12 3 4
Рисунок 5.3
Система включает в себя два узла:
1 узел – генератор с экспоненциальным законом поступления заявок.
2 узел – одноканальное обслуживающее устройство с пуассоновским законом распределения времени обслуживания заявок.
3 узел – вероятностный, с вероятностью 0.2 транзакт идет на ОУ, иначе обслуживание завершается.
4 узел – терминатор (приемник).
Сбор статистики осуществляется перед ОУ и в ОУ.
Работа программы для данной модели выглядит следующим образом:
Количество узлов: 4
Введите оператор 1 узла:
1 — генератор;
2 — одноканальное устройство;
3 — многоканальное устройство;
4 — вероятностный узел;
5 — терминатор;
Ваш выбор: 1
На какой узел идет: 2
Введите оператор 2 узла:
1 — генератор;
2 — одноканальное устройство;
3 — многоканальное устройство;
4 — вероятностный узел;
5 — терминатор;
Ваш выбор: 2
На какой узел идет: 3
Введите оператор 3 узла:
1 — генератор;
2 — одноканальное устройство;
3 — многоканальное устройство;
4 — вероятностный узел;
5 — терминатор;
Ваш выбор: 4
На какой узел идет (по возрастанию): 2
Вероятность: 0.2
Второй узел: 4
Введите оператор 4 узла:
1 — генератор;
2 — одноканальное устройство;
3 — многоканальное устройство;
4 — вероятностный узел;
5 — терминатор;
Ваш выбор: 5
Промежуток времени между появлениями транзактов:
1 — Постоянный;
2 — Случайный;
3 — Задан функцией;
4 — Зависит от функции;
5 — Не задан;
Ваш выбор:3
1 — Стандартная функция;
2 — Пользовательская функция;
Ваш выбор: 1
1 — BETA(Stream,Min,Max,Shape1,Shape2);
2 — BINOMIAL(Stream,TrialCount,Probability);
3 — DUNIFORM(Stream,Min,Max);
4 — EXPONENTIAL(Stream,Locate,Scale);
5 — EXTVALA(Stream,Locate,Scale);
6 — EXTVALB(Stream,Locate,Scale);
7 — GAMMA(Stream,Locate,Scale,Shape);
8 — GEOMETRIC(Stream,Probability);
9 — INVGAUSS(Stream,Locate,Scale,Shape);
10 — INVWEIBULL(Stream,Locate,Scale,Shape);
11 — LAPLACE(Stream,Locate,Scale);
12 — LOGISTIC(Stream,Locate,Scale);
13 — LOGLAPLACE(Stream,Locate,Scale,Shape);
14 — LOGLOGIS(Stream,Locate,Scale,Shape);
15 — LOGNORMAL(Stream,Locate,Scale,Shape);
16 — NEGBINOM(Stream,SuccessCount,Probability);
17 — NORMAL(Stream,Mean,StdDev);
18 — PARETO(Stream,Locate,Scale );
19 — PEARSON5(Stream,Locate,Scale,Shape);
20 — PEARSON6(Stream,Locate,Scale,Shape1,Shape2 );
21 — POISSON(Stream,Mean);
22 — TRIANGULAR(Stream,Min,Max,Mode);
23 — UNIFORM(Stream,Min,Max );
24 — WEIBULL(Stream,Locate,Scale,Shape );
Ваш выбор: 4
Stream (целое, больше либо равно 1): 1
Locate (вещественное): 0
Scale (положительное вещественное): 10
Время задержки появления первого транзакта:
1 — задано;
2 — не задано;
Ваш выбор: 2
Предельное число таранзактов:
1 — задано;
2 — не задано;
Ваш выбор: 2
Приоритет транзактов:
1 — задан;
2 — не задан;
Ваш выбор: 2
Узел 2
Время задержки транзакта:
1 — Постоянное;
2 — Случайное;
3 — Задано функцией;
4 — Зависит от функции;
Ваш выбор:3
1 — Стандартная функция;
2 — Пользовательская функция;
Вашвыбор: 1
1 — BETA(Stream,Min,Max,Shape1,Shape2);
2 — BINOMIAL(Stream,TrialCount,Probability);
3 — DUNIFORM(Stream,Min,Max);
4 — EXPONENTIAL(Stream,Locate,Scale);
5 — EXTVALA(Stream,Locate,Scale);
6 — EXTVALB(Stream,Locate,Scale);
7 — GAMMA(Stream,Locate,Scale,Shape);
8 — GEOMETRIC(Stream,Probability);
9 — INVGAUSS(Stream,Locate,Scale,Shape);
10 — INVWEIBULL(Stream,Locate,Scale,Shape);
11 — LAPLACE(Stream,Locate,Scale);
12 — LOGISTIC(Stream,Locate,Scale);
13 — LOGLAPLACE(Stream,Locate,Scale,Shape);
14 — LOGLOGIS(Stream,Locate,Scale,Shape);
15 — LOGNORMAL(Stream,Locate,Scale,Shape);
16 — NEGBINOM(Stream,SuccessCount,Probability);
17 — NORMAL(Stream,Mean,StdDev);
18 — PARETO(Stream,Locate,Scale );
19 — PEARSON5(Stream,Locate,Scale,Shape);
20 — PEARSON6(Stream,Locate,Scale,Shape1,Shape2 );
21 — POISSON(Stream,Mean);
22 — TRIANGULAR(Stream,Min,Max,Mode);
23 — UNIFORM(Stream,Min,Max );
24 — WEIBULL(Stream,Locate,Scale,Shape );
Ваш выбор: 21
Stream (целое, больше либо равно 1): 2
Mean (положительное вещественное): 0.9
Сбор статистики:
1 — нахождение в очереди перед ОУ;
2 — нахождение в ОУ;
3 — общее время обработки транзакта (1+2);
4 — не требуется;
Ваш выбор: 3
Сбор статистики:
1 — нахождение в очереди перед ОУ;
2 — нахождение в ОУ;
3 — общее время обработки транзакта (1+2);
4 — не требуется;
Ваш выбор: 4
Узел 4
Сколько транзактов извлечь: 1
#####################################################
## Работа программы закончена! ##
## Tекст программы находится в файле GPSStext.txt!##
#####################################################
Содержимоефайла“GPSStext.txt”:
GENERATE (EXPONENTIAL(1,0,10))
U_2 QUEUE Q_1
SEIZE Fas_1
ADVANCE (POISSON(2,0.9))
DEPART Q_1
RELEASE Fas_1
TRANSFER 0.2,U_4,U_2
U_4 TERMINATE 1
Отчет:
GPSS World Simulation Report — Untitled Model 1.1.1
Monday, December 20, 2010 01:18:39
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 9645.033 8 1 0
NAME VALUE
F_1 10001.000
Q_1 10000.000
U_2 2.000
U_4 8.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 1000 0 0
U_2 2 QUEUE 1218 0 0
3 SEIZE 1218 0 0
4 ADVANCE 1218 0 0
5 DEPART 1218 0 0
6 RELEASE 1218 0 0
7 TRANSFER 1218 0 0
U_4 8 TERMINATE 1000 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
F_1 1218 0.109 0.865 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
Q_1 5 0 1218 475 0.121 0.957 1.569 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
1001 0 9665.050 1001 0 1
Модель 4 (рисунок 5.4)
3
1 2 5
4
Рисунок 5.4
Система включает в себя два узла:
1 узел – генератор с постоянным законом поступления заявок.
2 узел — вероятностный, с вероятностью 0.3 транзакт идет на одноканальное ОУ, иначе на многоканальное ОУ.
3 узел – одноканальное обслуживающее устройство с законом распределения времени обслуживания заявок заданным пользовательской функцией. После, обслуживание завершается.
4 узел – многоканальное обслуживающее устройство с постоянным законом распределения времени обслуживания заявок. После, обслуживание завершается.
5 узел – терминатор.
Сбор статистики осуществляется перед многоканальным ОУ.
Работа программы для данной модели выглядит следующим образом:
Количествоузлов: 5
Введите оператор 1 узла:
1 — генератор;
2 — одноканальное устройство;
3 — многоканальное устройство;
4 — вероятностный узел;
5 — терминатор;
Вашвыбор: 1
Накакойузелидет: 2
Введите оператор 2 узла:
1 — генератор;
2 — одноканальное устройство;
3 — многоканальное устройство;
4 — вероятностный узел;
5 — терминатор;
Ваш выбор: 4
На какой узел идет (по возрастанию): 3
Вероятность: 0.3
Второй узел: 4
Введите оператор 3 узла:
1 — генератор;
2 — одноканальное устройство;
3 — многоканальное устройство;
4 — вероятностный узел;
5 — терминатор;
Ваш выбор: 2
Накакойузелидет: 5
Введите оператор 4 узла:
1 — генератор;
2 — одноканальное устройство;
3 — многоканальное устройство;
4 — вероятностный узел;
5 — терминатор;
Ваш выбор: 3
На какой узел идет: 5
Введите оператор 5 узла:
1 — генератор;
2 — одноканальное устройство;
3 — многоканальное устройство;
4 — вероятностный узел;
5 — терминатор;
Ваш выбор: 5
Промежуток времени между появлениями транзактов:
1 — Постоянный;
2 — Случайный;
3 — Задан функцией;
4 — Зависит от функции;
5 — Не задан;
Ваш выбор:1
Время между появлениями транзактов: 34
Время задержки появления первого транзакта:
1 — задано;
2 — не задано;
Ваш выбор: 2
Предельное число таранзактов:
1 — задано;
2 — не задано;
Ваш выбор: 2
Приоритет транзактов:
1 — задан;
2 — незадан;
Вашвыбор: 2
Узел 3
Время задержки транзакта:
1 — Постоянное;
2 — Случайное;
3 — Задано функцией;
4 — Зависит от функции;
Ваш выбор:3
1 — Стандартная функция;
2 — Пользовательская функция;
Ваш выбор: 2
Номер генератора(аргумент ф-ии): 1
Тип функции:
1 — С кусочно-линейной (непрерывной) аппроксимацией (С);
2 — С ступенчатой (дискретной) аппроксимацией (D);
3 — Табличное, точечное задание функции без аппроксимации (L);
4 — Задание дискретной атрибутивной (E)
5 — Задание табличной атрибутивной (M)
Ваш выбор: 2
Число точек: 2
X[1]=0
Y[1]=1
X[2]=1
Y[2]=2
Сбор статистики:
1 — нахождение в очереди перед ОУ;
2 — нахождение в ОУ;
3 — общее время обработки транзакта (1+2);
4 — нетребуется;
Вашвыбор: 4
Узел 4
Число каналов: 5
Число захвачиваемых каналов: 1
Время задержки транзакта:
1 — Постоянное;
2 — Случайное;
3 — Задано функцией;
4 — Зависит от функции;
Ваш выбор:1
Время задержки: 23
Сбор статистики:
1 — нахождение в очереди перед ОУ;
2 — нахождение в ОУ;
3 — общее время обработки транзакта (1+2);
4 — не требуется;
Ваш выбор: 1
Сбор статистики:
1 — нахождение в очереди перед ОУ;
2 — нахождение в ОУ;
3 — общее время обработки транзакта (1+2);
4 — нетребуется;
Вашвыбор: 4
Узел 5
Сколько транзактов извлечь: 1
#####################################################
## Работа программы закончена! ##
## Tекст программы находится в файле GPSStext.txt!##
#####################################################
Содержимоефайла “GPSStext.txt”:
F_1 FUNCTIONRN1,D2
0,1/1,2
St_1 STORAGE 5
GENERATE 34
TRANSFER 0.3,U_4,U_3
U_3 SEIZE Fas_1
ADVANCE FN$F_1
RELEASE Fas_1
TRANSFER ,U_5
U_4 QUEUE Q_1
ENTER St_1,1
DEPART Q_1
ADVANCE 23
LEAVE St_1,1
TRANSFER ,U_5
U_5 TERMINATE 1
Отчет:
GPSS World Simulation Report — Untitled Model 1.3.1
Monday, December 20, 2010 02:06:40
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 34023.000 13 1 1
NAME VALUE
FAS_1 10003.000
F_1 10000.000
Q_1 10002.000
ST_1 10001.000
U_3 3.000
U_4 7.000
U_5 13.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 1000 0 0
2 TRANSFER 1000 0 0
U_3 3 SEIZE 298 0 0
4 ADVANCE 298 0 0
5 RELEASE 298 0 0
6 TRANSFER 298 0 0
U_4 7 QUEUE 702 0 0
8 ENTER 702 0 0
9 DEPART 702 0 0
10 ADVANCE 702 0 0
11 LEAVE 702 0 0
12 TRANSFER 702 0 0
U_5 13 TERMINATE 1000 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
FAS_1 298 0.018 2.000 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
Q_1 1 0 702 702 0.000 0.000 0.000 0
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
ST_1 5 5 0 1 702 1 0.475 0.095 0 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
1001 0 34034.000 1001 0 1
продолжение
--PAGE_BREAK--ЗАКЛЮЧЕНИЕ
В ходе выполнения курсового проекта, на языке высокого уровня С++ в средеMicrosoftVisualC++ была разработана программа генерации GPSSтекста.Возможностью данной программы является построения имитационной модели системы массового обслуживания.
На практике было выявлено, что использование данного приложения сильно упрощает построение самой модели СМО, так как нет необходимости в знании операторов языка имитационного уровня GPSS.
Генерируемый текст легко перемещается в среду GPSSи пользователь имеет возможность получить готовый отчет, содержащий все необходимые параметры для анализа имитационной модели.
СПИСОК ЛИТЕРАТУРЫ
1. Муравьев Г.Л. Моделирование систем В 2 ч. Ч.1. Конспект лекций–Брест: БГТУ 2003
2. Мороз А.И. Курс теории систем. Учебник для ВУЗов– Москва: Высшая школа 1987
3. Антонов А.В. Системный анализ. Учебник для ВУЗов – Москва: Высшая школа 2004
4. Кудрявцев Е.М.GPSSWorld. Основы имитационного моделирования различных систем.Учебник для ВУЗов – Москва 2004
5. Алтаев А.А. Имитационное моделирование на языке GPSS. Методическое пособие – Улан- Удэ2002
6. Петухов О.А., Морозов А.В., Петухова Е.О. Моделирование системное, имитационное, аналитическое. Учебное пособие – Санкт-Петербург 2008
7. Норенков И.П., Федорук Е.В.Имитационное моделирование систем массового обслуживания. Методические указания – Москва 1999
8. Кутузов О.И., Татарникова Т.М., Петров К.О. Распределенные информационные системы управления. Учебное пособие – Санкт-Петербург 2000
Приложение А
1 Одноканальная замкнутая СМО с одним устройством
B1
Рисунок 1Условное графическое обозначениеодноканальной замкнутойСМО с одним устройством
Система включает: одноканальное устройство (В1).
Система обслуживает входной процесс одного типа.
Закон поступления заявок – экспоненциальный.
В процессе обслуживания заявки поступают:
— на узел B1;
— из узла B1 обратно на узел В1;
— из узла S2 на узел S4.
Время обслуживания заявок распределено по – экспоненциальному закону.
GENERATE 10
L1 ADVANCE (Exponential(1,0,10))
QUEUE OHER
SEIZE B1
DEPART OHER
ADVANCE (EXPONENTIAL(1,0,2.1))
RELEASE B1
TRANSFER ,L1
GENERATE 480
TERMINATE1
START 1
2 Одноканальная замкнутая смо с несколькими устройствами
В1 В2
Рисунок 2 Условное графическое обозначениеодноканальной замкнутой смо с несколькими устройствами
Система включает: одноканальные устройства (B1, B2).
Система обслуживает входной процесс одного типа.
Закон поступления заявок – экспоненциальный.
В процессе обслуживания заявки поступают:
— на узел B1;
— из узла B1 на узел B2;
— из узла B2 обратно на узел B1.
Время обслуживания заявок распределено по – экспоненциальному закону.
GENERATE 10
L1 ADVANCE (Exponential(1,0,10))
QUEUE 1
SEIZE B1
DEPART 1
ADVANCE (EXPONENTIAL(1,0,2.1))
RELEASE B1
QUEUE 1
SEIZE B2
DEPART 1
ADVANCE (EXPONENTIAL(1,0,6))
RELEASE B2
TRANSFER ,L1
3 Одноканальная разомкнутая СМО с одним устройством
B1
Рисунок 3 Условное графическое обозначениеодноканальной разомкнутой смо с одним устройством
Система включает: одноканальное устройство (B1).
Система обслуживает входной процесс одного типа.
Закон поступления заявок – постоянный.
В процессе обслуживания заявки поступают:
— на узел B1;
— после прохождения узла B1 обслуживание завершается.
Время обслуживания заявок распределено по – случайному закону.
GENERATE 10
QUEUE 1
SEIZE B1
DEPART 1
ADVANCE 8,4
RELEASE B1
TERMINATE 1
START 10000
4 Одноканальная разомкнутая СМО с несколькими устройствами
B1 B2
Рисунок 4 Условное графическое обозначениеодноканальной разомкнутой смо с несколькими устройствами
Система включает: одноканальные устройства (B1, B2).
Система обслуживает входной процесс одного типа.
Закон поступления заявок – случайный.
В процессе обслуживания заявки поступают:
— на узел B1;
— из узла B1 на узел B2;
— после прохождения узла B2 обслуживание завершается.
Время обслуживания заявок распределено по – случайному закону.
GENERATE 10,3
QUEUE 1
SEIZE B1
DEPART 1
ADVANCE 8,4
RELEASE B1
QUEUE 1
SEIZE B2
DEPART 1
ADVANCE 6,2
RELEASE B2
TERMINATE 1
START 10000
5 Одноканальная разомкнутая СМО с обратной связью
B1
Рисунок 5 Условное графическое обозначениеодноканальной разомкнутой смо с обратной связью
Система включает: одноканальное устройство (B1).
Система обслуживает входной процесс одного типа.
Закон поступления заявок – случайный.
В процессе обслуживания заявки поступают:
— на узел B1;
— из узла B1 с вероятностью 0,1 обратно на узел B1, с вероятностью 0,9 обслуживание завершается.
Время обслуживания заявок распределено по – случайному закону.
GENERATE 10,3
QUEUE 1
L_1SEIZE B1
ADVANCE 8,4
RELEASE B1
TRANSFER 0.9,L_2,L_1
L_2TERMINATE1
START 10000
6 Одноканальная разомкнутая СМО с обратными связями и несколькими устройствами
B1 B2 B3
Рисунок 6 Условное графическое обозначениеодноканальной разомкнутой смо с обратными связями и несколькими устройствами
Система включает: одноканальные устройства (B1, B2, B3).
Система обслуживает входной процесс одного типа.
Закон поступления заявок – постоянный.
В процессе обслуживания заявки поступают:
— на узел B1;
— из узла B1 на узел B2;
— из узла В2 с вероятностью 0,9 обратно на узел В2, с вероятностью 0,1 на узел В3;
— из узла В3 с вероятностью 0,9 на узел В1, с вероятностью 0,1 обслуживание завершается.
Время обслуживания заявок распределено по – экспоненциальному закону.
GENERATE 10
L3 QUEUE 1
SEIZE B1
DEPART 1
ADVANCE (EXPONENTIAL(1,0,2.1))
RELEASE B1
L1 QUEUE 1
SEIZE B2
DEPART 1
ADVANCE (EXPONENTIAL(1,0,6))
RELEASE B2
TRANSFER 0.9,L2,L1
L2 QUEUE 1
SEIZE B3
DEPART 1
ADVANCE (EXPONENTIAL(1,0,10))
RELEASE B3
TRANSFER 0.9,L4,L3
L4 TERMINATE1
START 1000
7 Одноканальная разомкнутая СМО с вероятностным узлом
В2
В1 В4
В3
Рисунок 7 Условное графическое обозначениеодноканальной разомкнутой смо с вероятностным узлом
Система включает: одноканальные устройства (B1, B2, B3, B4).
Система обслуживает входной процесс одного типа.
Закон поступления заявок – случайный.
В процессе обслуживания заявки поступают:
— на узел B1;
— из узла В1 с вероятностью 0,3 на узел В2, с вероятностью 0,7 на узел В3;
— из узла В2 и узла В3 на узел В4;
— после прохождения узла В4 обслуживание завершается.
Время обслуживания заявок на распределено по – случайному закону.
GENERATE 10,3
QUEUE 1
SEIZE B1
DEPART 1
ADVANCE 8,4
RELEASE B1
TRANSFER 0.3,L_2,L_1
L_1QUEUE 2
SEIZE B2
DEPART 2
ADVANCE 6,4
RELEASE B2
QUEUE 4
SEIZE B4
DEPART 4
ADVANCE 6,4
RELEASE B4
L_2QUEUE 3
SEIZE B3
DEPART 3
ADVANCE 8,6
RELEASE B3
QUEUE 4
SEIZE B4
DEPART 4
ADVANCE 6,4
RELEASE B4
TERMINATE1
START 10000
8 Одноканальная разомкнутая СМО с двумя входными потоками
B1
Рисунок 8 Условное графическое обозначениеодноканальной разомкнутой смо с двумя входными потоками
Система включает: одноканальное устройство (B1).
Система обслуживает входные процессы двух типов.
Закон поступления заявок на первом и на втором канале – случайный.
В процессе обслуживания заявки поступают:
— на узел B1;
— после прохождения узла B1 обслуживание завершается.
Время обслуживания заявок распределено по – случайному закону.
GENERATE 30,2
QUEUE OHER1
SEIZE B1
DEPART OHER1
ADVANCE (Exponential(1,0,2.5))
RELEASE B1
TERMINATE
GENERATE 15,5.5
QUEUE OHER2
SEIZE B1
ADVANCE (Exponential(4,0,2.5))
DEPART OHER2
RELEASE B1
TERMINATE 1
START 1000
9 МногоканальнаязамкнутаяСМО
B1
В2
Рисунок 9Условное графическое обозначениемногоканальной замкнутой смо
Система включает: одноканальные устройства (B1, B2) и многоканальное устройство.
Система обслуживает входной процесс одного типа.
Закон поступления заявок – экспоненциальный.
В процессе обслуживания заявки поступают:
— на многоканальное устройство;
— с многоканального узел В1, если В1 занят, то на узел В2;
— из узла В1 и узла В2 на многоканальное;
Время обслуживания заявок на распределено по – экспоненциальному закону.
NAK STORAGE 3
GENERATE (Exponential(1,0,10))
L1 ADVANCE (Exponential(4,0,7))
ENTER NAK
TRANSFER BOTH,KAN1,KAN2
KAN1 SEIZE B1
QUEUE 1
ADVANCE (EXPONENTIAL(8,0,4))
RELEASE B1
DEPART 1
TRANSFER ,COME
KAN2 SEIZE B2
QUEUE 2
ADVANCE 1,0
RELEASE B2
DEPART 2
COME LEAVE NAK
ADVANCE (Exponential(1,0,2))
TRANSFER ,L1
GENERATE 480
TERMINATE 1
START 1
10 Многоканальная разомкнутая СМО
В1
B2
Рисунок10 Условное графическое обозначение многоканальной разомкнутой смо
Система включает: одноканальные устройства (B1, B2) и многоканальное устройство.
Система обслуживает входной процесс одного типа.
Закон поступления заявок – экспоненциальный.
В процессе обслуживания заявки поступают:
— на многоканальное устройство;
— с многоканального на узел В1, если В1 занят, то на узел В2;
— после прохождения узла В1 и узла В23 обслуживание заканчивается;
Время обслуживания заявок на распределено по – экспоненциальному закону.
NAK STORAGE 3
GENERATE (Exponential(1,0,10))
ENTER NAK
TRANSFER BOTH,KAN1,KAN2
KAN1 SEIZE B1
QUEUE 1
ADVANCE (EXPONENTIAL(8,0,4))
RELEASE B1
DEPART 1
TRANSFER ,COME
KAN2 SEIZE B2
QUEUE 2
ADVANCE 1,0
RELEASE B2
DEPART 2
COME LEAVE NAK
ADVANCE (Exponential(1,0,2))
TERMINATE 1
START 1000
продолжение
--PAGE_BREAK--Приложение
Б
2 Одноканальная замкнутая СМО с одним устройством
Полученный
отчёт
:
GPSS World Simulation Report — Untitled Model 1.2.1
Wednesday, December 15, 2010 10:09:06
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 480.000 10 1 0
NAME VALUE
B1 10001.000
L1 2.000
OHER 10000.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 47 0 0
L1 2 ADVANCE 232 1 0
3 QUEUE 231 45 0
4 SEIZE 186 0 0
5 DEPART 186 0 0
6 ADVANCE 186 1 0
7 RELEASE 185 0 0
8 TRANSFER 185 0 0
9 GENERATE 1 0 0
10 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1 186 0.912 2.353 1 34 0 0 0 45
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
OHER 46 45 231 15 18.194 37.807 40.432 0
CEC XN PRI M1 ASSEM CURRENT NEXT PARAMETER VALUE
49 0 480.000 49 0 1
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
34 0 483.814 34 6 7
33 0 513.195 33 2 3
50 0 960.000 50 0 9
3 Одноканальная замкнутая СМО с несколькими устройствами
Полученный
отчёт
:
GPSS World Simulation Report — Untitled Model 1.2.1
Friday, December 10, 2010 10:30:48
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 480.000 15 2 0
NAME VALUE
B1 10000.000
B2 10001.000
L1 2.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 48 0 0
L1 2 ADVANCE 115 2 0
3 QUEUE 113 0 0
4 SEIZE 113 0 0
5 DEPART 113 0 0
6 ADVANCE 113 1 0
7 RELEASE 112 0 0
8 QUEUE 112 44 0
9 SEIZE 68 0 0
10 DEPART 68 0 0
11 ADVANCE 68 1 0
12 RELEASE 67 0 0
13 TRANSFER 67 0 0
14 GENERATE 1 0 0
15 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1 113 0.571 2.426 1 48 0 0 0 0
B2 68 0.909 6.419 1 8 0 0 0 44
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1 45 44 225 47 19.896 42.444 53.651 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
8 0 480.784 8 11 12
48 0 480.880 48 6 7
49 0 485.117 49 2 3
29 0 489.126 29 2 3
50 0 490.000 50 0 1
51 0 960.000 51 0 14
4 Одноканальная разомкнутая СМО с одним устройством
Полученный
отчёт
:
GPSS World Simulation Report — Untitled Model 1.3.1
Wednesday, December 15, 2010 10:19:02
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 100007.316 7 1 0
NAME VALUE
B1 10000.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 10000 0 0
2 QUEUE 10000 0 0
3 SEIZE 10000 0 0
4 DEPART 10000 0 0
5 ADVANCE 10000 0 0
6 RELEASE 10000 0 0
7 TERMINATE 10000 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1 10000 0.800 8.002 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1 1 0 10000 6937 0.041 0.408 1.331 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
10001 0 100010.000 10001 0 1
5 Одноканальная разомкнутая СМО с несколькими устройствами
Полученный
отчёт
:
GPSS World Simulation Report — Untitled Model 1.4.1
Wednesday, December 15, 2010 10:21:47
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 99971.786 12 2 0
NAME VALUE
B1 10000.000
B2 10001.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 10001 0 0
2 QUEUE 10001 0 0
3 SEIZE 10001 0 0
4 DEPART 10001 0 0
5 ADVANCE 10001 1 0
6 RELEASE 10000 0 0
7 QUEUE 10000 0 0
8 SEIZE 10000 0 0
9 DEPART 10000 0 0
10 ADVANCE 10000 0 0
11 RELEASE 10000 0 0
12 TERMINATE 10000 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1 10001 0.798 7.973 1 10001 0 0 0 0
B2 10000 0.600 5.995 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1 3 0 20001 15110 0.101 0.504 2.060 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
10001 0 99974.589 10001 5 6
10002 0 99975.330 10002 0 1
6 Одноканальная разомкнутая СМО с обратной связью
Полученный
отчёт
:
GPSS World Simulation Report — Untitled Model 1.5.1
Wednesday, December 15, 2010 10:23:37
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 798179.384 7 1 0
NAME VALUE
B1 10000.000
L_1 3.000
L_2 7.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 79800 0 0
2 QUEUE 79800 32845 0
L_1 3 SEIZE 99679 1 0
4 ADVANCE 99678 0 0
5 RELEASE 99678 0 0
6 TRANSFER 99678 36954 0
L_2 7 TERMINATE 10000 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1 99679 1.000 8.007 1 46955 0 0 0 69799
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1 79800 79800 79800 0 39916.720 399256.926 399256.926 0
CEC XN PRI M1 ASSEM CURRENT NEXT PARAMETER VALUE
46955 0 469374.841 46955 3 4
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
79801 0 798181.975 79801 0 1
7 Одноканальная разомкнутая СМО с обратными связями и несколькими устройствами
Полученный
отчёт
:
GPSS World Simulation Report — Untitled Model 1.6.1
Wednesday, December 15, 2010 10:26:07
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 607511.412 19 3 0
NAME VALUE
B1 10000.000
B2 10001.000
B3 10002.000
L1 7.000
L2 13.000
L3 2.000
L4 19.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 60751 0 0
L3 2 QUEUE 69769 0 0
3 SEIZE 69769 0 0
4 DEPART 69769 0 0
5 ADVANCE 69769 0 0
6 RELEASE 69769 0 0
L1 7 QUEUE 161335 59750 0
8 SEIZE 101585 0 0
9 DEPART 101585 0 0
10 ADVANCE 101585 1 0
11 RELEASE 101584 0 0
12 TRANSFER 101584 0 0
L2 13 QUEUE 10018 0 0
14 SEIZE 10018 0 0
15 DEPART 10018 0 0
16 ADVANCE 10018 0 0
17 RELEASE 10018 0 0
18 TRANSFER 10018 0 0
L4 19 TERMINATE 1000 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1 69769 0.242 2.109 1 0 0 0 0 0
B2 101585 1.000 5.980 1 38150 0 0 0 59750
B3 10018 0.166 10.062 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1 59750 59750 241122 73236 29884.081 75293.505 108138.382 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
38150 0 607513.718 38150 10 11
60752 0 607520.000 60752 0 1
продолжение
--PAGE_BREAK--8 Одноканальная разомкнутая СМО с вероятностным узлом
Полученный
отчёт
:
GPSS World Simulation Report — Untitled Model 1.7.1
Wednesday, December 15, 2010 10:34:47
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 100163.273 28 4 0
NAME VALUE
B1 10000.000
B2 10003.000
B3 10001.000
B4 10002.000
L_1 8.000
L_2 18.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 10002 0 0
2 QUEUE 10002 0 0
3 SEIZE 10002 0 0
4 DEPART 10002 0 0
5 ADVANCE 10002 0 0
6 RELEASE 10002 0 0
7 TRANSFER 10002 0 0
L_1 8 QUEUE 2975 0 0
9 SEIZE 2975 0 0
10 DEPART 2975 0 0
11 ADVANCE 2975 1 0
12 RELEASE 2974 0 0
13 QUEUE 2974 0 0
14 SEIZE 2974 0 0
15 DEPART 2974 0 0
16 ADVANCE 2974 0 0
17 RELEASE 2974 0 0
L_2 18 QUEUE 10001 0 0
19 SEIZE 10001 0 0
20 DEPART 10001 0 0
21 ADVANCE 10001 0 0
22 RELEASE 10001 0 0
23 QUEUE 10001 0 0
24 SEIZE 10001 1 0
25 DEPART 10000 0 0
26 ADVANCE 10000 0 0
27 RELEASE 10000 0 0
28 TERMINATE 10000 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1 10002 0.802 8.035 1 0 0 0 0 0
B3 10001 0.796 7.971 1 0 0 0 0 0
B4 12975 0.777 5.996 1 10001 0 0 0 0
B2 2975 0.179 6.032 1 10002 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1 2 0 10002 6398 0.084 0.840 2.331 0
2 1 0 2975 2816 0.003 0.108 2.016 0
3 5 0 10001 3377 0.536 5.366 8.102 0
4 5 1 12975 5439 0.412 3.182 5.479 0
CEC XN PRI M1 ASSEM CURRENT NEXT PARAMETER VALUE
10001 0 100144.295 10001 24 25
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
10003 0 100166.033 10003 0 1
10002 0 100168.677 10002 11 12
9 Одноканальная разомкнутая смо с двумя входными потоками
Полученный
отчёт
:
GPSS World Simulation Report — Untitled Model 1.13.1
Wednesday, December 15, 2010 10:45:04
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 14938.999 14 1 0
NAME VALUE
B1 10001.000
OHER1 10002.000
OHER2 10000.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 497 0 0
2 QUEUE 497 0 0
3 SEIZE 497 0 0
4 DEPART 497 0 0
5 ADVANCE 497 0 0
6 RELEASE 497 0 0
7 TERMINATE 497 0 0
8 GENERATE 1000 0 0
9 QUEUE 1000 0 0
10 SEIZE 1000 0 0
11 ADVANCE 1000 0 0
12 DEPART 1000 0 0
13 RELEASE 1000 0 0
14 TERMINATE 1000 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1 1497 0.258 2.572 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
OHER2 2 0 1000 0 0.189 2.823 2.823 0
OHER1 1 0 497 427 0.015 0.450 3.193 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
1499 0 14949.557 1499 0 8
1498 0 14957.992 1498 0 1
10 Многоканальная замкнутая смо
Полученный отчёт:
GPSS World Simulation Report — Untitled Model 1.37.1
Wednesday, December 15, 2010 11:58:09
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 480.000 20 2 1
NAME VALUE
B1 10001.000
B2 10002.000
COME 16.000
KAN1 5.000
KAN2 11.000
L1 2.000
NAK 10000.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 36 0 0
L1 2 ADVANCE 526 29 0
3 ENTER 497 0 0
4 TRANSFER 497 1 0
KAN1 5 SEIZE 96 0 0
6 QUEUE 96 0 0
7 ADVANCE 96 1 0
8 RELEASE 95 0 0
9 DEPART 95 0 0
10 TRANSFER 95 0 0
KAN2 11 SEIZE 400 0 0
12 QUEUE 400 0 0
13 ADVANCE 400 1 0
14 RELEASE 399 0 0
15 DEPART 399 0 0
COME 16 LEAVE 494 0 0
17 ADVANCE 494 4 0
18 TRANSFER 490 0 0
19 GENERATE 1 0 0
20 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1 96 0.923 4.616 1 20 0 0 1 0
B2 400 0.832 0.998 1 8 0 0 1 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1 1 1 96 0 0.923 4.616 4.616 0
2 1 1 400 0 0.832 0.998 0.998 0
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
NAK 3 0 0 3 497 1 2.489 0.830 0 18
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
8 0 480.824 8 13 14
30 0 480.990 30 17 18
25 0 481.107 25 17 18
36 0 481.248 36 2 3
26 0 481.450 26 2 3
35 0 482.385 35 2 3
16 0 482.428 16 2 3
27 0 482.811 27 17 18
10 0 483.213 10 17 18
12 0 483.510 12 2 3
20 0 484.129 20 7 8
38 0 484.447 38 0 1
31 0 485.206 31 2 3
34 0 487.010 34 2 3
32 0 488.225 32 2 3
21 0 489.152 21 2 3
15 0 493.694 15 2 3
6 0 498.098 6 2 3
39 0 960.000 39 0 19
11 Многоканальная разомкнутая смо
Полученный отчёт:
GPSS World Simulation Report — Untitled Model 1.35.1
Wednesday, December 15, 2010 11:28:56
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 9865.175 17 2 1
NAME VALUE
B1 10001.000
B2 10002.000
COME 15.000
KAN1 4.000
KAN2 10.000
NAK 10000.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 1000 0 0
2 ENTER 1000 0 0
3 TRANSFER 1000 0 0
KAN1 4 SEIZE 712 0 0
5 QUEUE 712 0 0
6 ADVANCE 712 0 0
7 RELEASE 712 0 0
8 DEPART 712 0 0
9 TRANSFER 712 0 0
KAN2 10 SEIZE 288 0 0
11 QUEUE 288 0 0
12 ADVANCE 288 0 0
13 RELEASE 288 0 0
14 DEPART 288 0 0
COME 15 LEAVE 1000 0 0
16 ADVANCE 1000 0 0
17 TERMINATE 1000 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
B1 712 0.300 4.162 1 0 0 0 0 0
B2 288 0.029 1.000 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1 1 0 712 0 0.300 4.162 4.162 0
2 1 0 288 0 0.029 1.000 1.000 0
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
NAK 3 3 0 3 1000 1 0.331 0.110 0 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
1001 0 9906.107 1001 0 1
12 Многоканальная разомкнутая смо с несколькими устройствами
продолжение
--PAGE_BREAK--Полученный
отчёт
:
GPSS World Simulation Report — Untitled Model 1.36.1
Wednesday, December 15, 2010 11:41:57
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 10288.629 27 4 1
NAME VALUE
B1 10003.000
B2 10004.000
CAN1 10001.000
CAN2 10002.000
COME 25.000
KAN1 4.000
KAN2 15.000
NAK 10000.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 1000 0 0
2 ENTER 1000 0 0
3 TRANSFER 1000 0 0
KAN1 4 SEIZE 646 0 0
5 QUEUE 646 0 0
6 ADVANCE 646 0 0
7 DEPART 646 0 0
8 RELEASE 646 0 0
9 QUEUE 646 0 0
10 SEIZE 646 0 0
11 DEPART 646 0 0
12 ADVANCE 646 0 0
13 RELEASE 646 0 0
14 TRANSFER 646 0 0
KAN2 15 SEIZE 354 0 0
16 QUEUE 354 0 0
17 ADVANCE 354 0 0
18 DEPART 354 0 0
19 RELEASE 354 0 0
20 QUEUE 354 0 0
21 SEIZE 354 0 0
22 DEPART 354 0 0
23 ADVANCE 354 0 0
24 RELEASE 354 0 0
COME 25 LEAVE 1000 0 0
26 ADVANCE 1000 0 0
27 TERMINATE 1000 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
CAN1 646 0.503 8.016 1 0 0 0 0 0
CAN2 354 0.341 9.913 1 0 0 0 0 0
B1 646 0.369 5.875 1 0 0 0 0 0
B2 354 0.275 7.982 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1 1 0 646 0 0.503 8.016 8.016 0
2 1 0 646 597 0.007 0.111 1.461 0
3 1 0 354 0 0.341 9.913 9.913 0
4 1 0 354 334 0.002 0.065 1.146 0
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
NAK 3 3 0 3 1000 1 1.540 0.513 0 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
1001 0 10298.607 1001 0 1
Приложение
B
Листинг программы:
#include"stdafx.h"
#include
#include
#include
#include
#include
using namespace std;
ofstream file(«GPSStext.txt»);
class FuncStandart
{
public:
string fBETA()
{
float x;
ostringstream S;
cout
cin>>x;
S
cout
cin>>x;
S
cout
cin>>x;
S
cout
cin>>x;
S
cout
cin>>x;
S
return S.str();
}
string fBINOMIAL()
{
float x;
ostringstream S;
cout
cin>>x;
S
cout
cin>>x;
S
cout
cin>>x;
S
return S.str();
}
string fDUNIFORM()
{
float x;
ostringstream S;
cout
cin>>x;
S
cout
cin>>x;
S
cout
cin>>x;
S
return S.str();
}
string f_1()
{
float x;
ostringstream S;
cout
cin>>x;
S
cout
cin>>x;
S
cout
cin>>x;
S
return S.str();
}
string f_2()
{
float x;
ostringstream S;
cout
cin>>x;
S
cout
cin>>x;
S
cout
cin>>x;
S
cout
cin>>x;
S
return S.str();
}
string fGEOMETRIC()
{
float x;
ostringstream S;
cout
cin>>x;
S
cout
cin>>x;
S
return S.str();
}
string fNEGBINOM()
{
float x;
ostringstream S;
cout
cin>>x;
S
cout
cin>>x;
S
cout
cin>>x;
S
return S.str();
}
string fNORMAL()
{
float x;
ostringstream S;
cout
cin>>x;
S
cout
cin>>x;
S
cout
cin>>x;
S
return S.str();
}
string fPARETO()
{
float x;
ostringstream S;
cout
cin>>x;
S
cout
cin>>x;
S
cout
cin>>x;
S
return S.str();
}
string fPEARSON6()
{
float x;
ostringstream S;
cout
cin>>x;
S
cout
cin>>x;
S
cout
cin>>x;
S
cout
cin>>x;
S
cout
cin>>x;
S
return S.str();
}
string fPOISSON()
{
float x;
ostringstream S;
cout
cin>>x;
S
cout
cin>>x;
S
return S.str();
}
string fTRIANGULAR()
{
float x;
ostringstream S;
cout
cin>>x;
S
cout
cin>>x;
S
cout
cin>>x;
S
--PAGE_BREAK--
cout
cin>>x;
S
return S.str();
}
string fUNIFORM()
{
float x;
ostringstream S;
cout
cin>>x;
S
cout
cin>>x;
S
cout
cin>>x;
S
return S.str();
}
};
class GPSSOperatori:public FuncStandart
{
public:
int nF,nST,nFas,nQ;
string GENERATE()
{
int n,k,m,l;
float x,K,M,L;
ostringstream S;
S
M7:
cout
cout
cout
cout
cout
cout
M1:
cout
cin>>n;
switch (n)
{
case 1:
cout
cin>>x;
S
break;
case 2:
cout
cin>>x;
S
cout
cin>>x;
S
break;
case 3:
cout
cout
M2:
cout
cin>>k;
switch (k)
{
case 1:
S
break;
case 2:
FUNCTION();
S
break;
default:
cout
goto M2;
break;
}
break;
case 4:
cout
cin>>x;
S
cout
cout
cout
M3:
cout
cin>>k;
switch (k)
{
case 1:
S
break;
case 2:
FUNCTION();
S
break;
default:
cout
goto M3;
break;
}
break;
case 5:
break;
default:
cout
goto M1;
break;
}
cout
cout
cout
M4:
cout
cin>>k;
switch(k)
{
case 1:
cout
cin>>K;
break;
case 2: break;
default:
cout
goto M4;
break;
}
cout
cout
cout
M5:
cout
cin>>m;
switch(m)
{
case 1:
cout
cin>>M;
break;
case 2: break;
default:
cout
goto M5;
break;
}
cout
cout
cout
M6:
cout
cin>>l;
switch(l)
{
case 1:
cout
cin>>L;
break;
case 2: break;
default:
cout
goto M6;
break;
}
if((k==1)||(m==1)||(l==1))
{
if(n%2==1) S
else S
if((m==1)||(l==1))
{
if(k==1) S
else S
if(l==1)
if(m==1) S
else S
else S
}
else S
}
else
if(n==5)
{
cout
goto M7;
}
S
system(«cls»);
return S.str();
}
string ADVANCE()
{
int n,k;
float x;
ostringstream S;
S
cout
cout
cout
cout
cout
M1:
cout
cin>>n;
switch (n)
{
case 1:
cout
cin>>x;
S
break;
case 2:
cout
cin>>x;
S
cout
cin>>x;
S
break;
case 3:
cout
cout
M2:
cout
cin>>k;
switch (k)
{
case 1:
S
break;
case 2:
FUNCTION();
S
break;
default:
cout
goto M2;
break;
}
break;
case 4:
cout
cin>>x;
S
cout
cout
cout
M3:
cout
cin>>k;
switch (k)
{
case 1:
S
break;
case 2:
FUNCTION();
S
break;
default:
cout
goto M3;
break;
}
break;
default:
cout
goto M1;
break;
}
return S.str();
}
string ENTER(int ukaz)
{
nST++;
int n,x;
ostringstream S,Enter,Advance,Buf;
if(ukaz!=0) S
cout
cin>>x;
file
cout
cin>>x;
Enter
Advance
M2:
cout
cout
cout
cout
cout
M1:
cout
cin>>n;
switch(n)
{
case 1:
nQ++;
Buf
Enter.str("");
Enter
Buf.str("");
goto M2;
break;
case 2:
nQ++;
Buf
Advance.str("");
Advance
Buf.str("");
продолжение
--PAGE_BREAK--goto M2;
break;
case 3:
nQ++;
Buf
Enter.str("");
Enter
Buf.str("");
Buf
Advance.str("");
Advance
Buf.str("");
goto M2;
break;
case 4:
break;
default:
cout
goto M1;
break;
}
S
system(«cls»);
return S.str();
}
string SEIZE(int ukaz)
{
nFas++;
int n;
ostringstream S,Seize,Advance,Buf;
if(ukaz!=0) S
Seize
Advance
M2:
cout
cout
cout
cout
cout
M1:
cout
cin>>n;
switch(n)
{
case 1:
nQ++;
Buf
Seize.str("");
Seize
Buf.str("");
goto M2;
break;
case 2:
nQ++;
Buf
Advance.str("");
Advance
Buf.str("");
goto M2;
break;
case 3:
nQ++;
Buf
Seize.str("");
Seize
Buf.str("");
Buf
Advance.str("");
Advance
Buf.str("");
goto M2;
break;
case 4:
break;
default:
cout
goto M1;
break;
}
S
system(«cls»);
return S.str();
}
string TRANSFER(int ukaz,float ver,int uzel1,int uzel2)
{
ostringstream S;
if(ukaz!=0) S
S
system(«cls»);
return S.str();
}
string TERMINATE(int ukaz)
{
int x;
ostringstream S;
if(ukaz!=0) S
cout
cin>>x;
S
system(“cls»);
return S.str();
}
void FUNCTION()
{
nF++;
int n;
float x;
cout
cin>>n;
file
cout
cout
cout
cout
cout
cout
M1:
cout
cin>>n;
switch (n)
{
case 1:file
case 2:file
case 3:file
case 4:file
case 5:file
default:
cout
goto M1;
break;
}
cout
cin>>n;
file
for(int i=1;i
{
cout
cin>>x;
file
cout
cin>>x;
file
if(i
file
}
file
}
string FStand()
{
int n;
string S;
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
M1:
cout
cin>>n;
switch(n)
{
case 1:return fBETA();break;
case 2:return fBINOMIAL();break;
case 3:return fDUNIFORM();break;
case 4:return S="(EXPONENTIAL("+f_1();break;
case 5:return S="(EXTVALA("+f_1();break;
case 6:return S="(EXTVALB("+f_1();break;
case 7:return S="(GAMMA("+f_2();break;
case 8:return fGEOMETRIC();break;
case 9:return S="(INVGAUSS("+f_2();break;
case 10:return S="(INVWEIBULL("+f_2();break;
case 11:return S="(LAPLACE("+f_1();break;
case 12:return S="(LOGISTIC("+f_1();break;
case 13:return S="(LOGLAPLACE("+f_2();break;
case 14:return S="(LOGLOGIS("+f_2();break;
case 15:return S="(LOGNORMAL("+f_2();break;
case 16:return fNEGBINOM();break;
case 17:return fNORMAL();break;
case 18:return fPARETO();break;
case 19:return S="(PEARSON5("+f_2();break;
case 20:return fPEARSON6();break;
case 21:return fPOISSON();break;
case 22:return fTRIANGULAR();break;
case 23:return fUNIFORM();break;
case 24:return S="(WEIBULL("+f_2();break;
default:
cout
goto M1;
break;
}
}
};
class GPSSText:public GPSSOperatori
{
vector oper,ukazat;
vector matrix;
public:
GPSSText()
{
nF=0;nST=0;nFas=0;nQ=0;
}
void Matrix()
{
int k,n,m,uzel;
float x;
cout
cin>>uzel;
system(«cls»);
for(int i=1;i
{
M1:
cout
cout
cout
cout
cout
cout
cout
cin>>n;
if((n5))
{
cout
goto M1;
}
oper.push_back(n);
if(n==4)
{
M2:
cout
cin>>m;
if(m>uzel)
{
cout
goto M2;
}
for(int i=1;i
cout
cin>>x;
matrix.push_back(x);
M3:
cout
cin>>k;
if(k>uzel)
{
cout
goto M3;
}
for(int i=m+1;i
matrix.push_back(1-x);
for(int i=k+1;i
}
else
if(n==5)
for(int i=0;i
else
{
M4:
cout
cin>>m;
if(m>uzel)
{
cout
goto M4;
}
for(int i=1;i
matrix.push_back(1);
for(int i=m+1;i
}
продолжение
--PAGE_BREAK--