COUNT – определение числа объектов, удовлетворяющих заданному условию, с записью в параметр активной заявки. Пусть необходимо узнать число свободных ОУ или число накопителей с коэффициентом использования меньше 700 (в долях от 1 000) и др. Для этого используется оператор COUNT, который имеет следующий формат записи:
COUNT X A,B,C,[D],[E]
Оператор COUNT работает в двух режимах: условном или логическом. Режим работы определяется логическим или условный оператором X, который задает условие, например, подсчет числа свободных накопителей, занятых ОУ и др. Для ОУ используются следующие логические операторы: NU, U, NI, I, FV, FNV, для накопителей: SE, SNE, SF, SNF, SV, SNV, для логических ключей: LR, LS. Содержание логических операторов изложено при рассмотрении оператора GATE (см. ЛР№4). При использовании логических операторов операнды D и Е могут быть опущены.
В качестве условных операторов используются следующие: L, NE, LE, E, G, GE, MAX, MIN, NE. Здесь MAX (MIN) – наибольшее (наименьшее) значение из всех значений СЧА объектов, удовлетворяющих заданному условию, а NE – значение проверяемого СЧА должно быть не равно заданному значению. Содержание остальных условных операторов – см. ЛР№5-7. Если используются условные операторы, то операнды D и Е должны быть заданы.
Операнд А это номер параметра, вошедшей в оператор COUNT заявки, в котором будет организован счетчик числа объектов. Операнд А может быть именем, положительным целым числом, выражением в скобках, СЧА или СЧА*параметр.
Операнды В и С определяют соответственно нижнюю и верхнюю границы диапазона изменения номеров или имен объектов, для которых проверяется заданное условие. Значение операнда С должно быть больше или равно значению операнда В. Операнды А и В могут быть такими же, как и операнд А.
Операндом D задается значение, которое сравнивается со значением операнда Е. Операнды D и Е используются только совместно с условными операторами L, LE, E, NE, G, GE. Если условный оператор не используется, то операнд D можно не задавать.
Операнд Е это какое-либо из СЧА проверяемых объектов. Необходимо записывать только мнемоническое обозначение атрибута, поскольку диапазон изменения номеров объектов задан операндами В и С.
Примеры использования:
- COUNT L 3,4,8,Х$ВЬ2,FT – оператор COUNT работает в условном режиме. Подсчитывается число ОУ в диапазоне от 4 до 8 (операнды В и С), среднее время обслуживания (операнд Е) в которых одной заявки меньше времени, записанного в сохраняемой ячейке Вb2 (операнд D), и заносится в параметр 3 (операнд А) вошедшей в оператор COUNT заявки.
- COUNT SNF 2,Pogr1,Pogr3 – оператор COUNT работает в логическом режиме. Определяется и заносится в параметр 2 (операнд А) вошедшей в оператор заявки число незаполненных (оператор SNF) накопителей в диапазоне от Pogr1 до РоgrЗ (операнды В и С). Операнды D и Е не используются. В данном примере накопители указаны именами. По условиям оператора COUNT необходимо этим именам предварительно присвоить командой EQU последовательные номера.
- COUNT E KolQ_0,ObsQ1,ObsQ6,0,Q – оператор COUNT работает также в условном режиме. Определяется количество очередей (операнд Е) в диапазоне от ObsQ1 до ObsQ6 (операнды В и С), длины которых равны нулю (операнд D), и заносится в параметр активной заявки с именем KolQ_0) (операнд А). Именам очередей ObsQ1-0bsQ6 командами EQU должны быть присвоены последовательные номера.
SELECT – выбор первого объекта в заданном диапазоне с записью номера в параметр активной заявки. Оператор SELECT выбирает первый объект в заданном диапазоне, который удовлетворяет определенному условию. Номер этого объекта заносится в заданный параметр вошедшей в оператор заявки. Оператор SELECT имеет следующий формат записи:
SELECT X A,B,C,[D],[E],[F]
Логические и условные операторы Х здесь имеют тот же смысл, что и в операторе COUNT. Назначение операндов А, В, С, D и Е также аналогично. Операнд F задает номер альтернативного оператора для входящей заявки, если заданному условию не удовлетворяет ни один объект в указанном диапазоне. Если операнд F не используется, то заявка будет направлена к следующему по номеру оператору. Например:
- SELECT MIN 2,1,6,,FR – оператор SELECT работает в условном режиме (условный оператор MIN). В диапазоне от 1 до 6 (операнды В и С) определяется первое ОУ с минимальным коэффициентом использования (операнд Е). Номер выбранного ОУ записывается в параметр 2 (операнд А) вошедшей в оператор заявки. Операнды D и F не используются. Заявка из оператора SELECT будет направлен к следующему оператору.
- SELECT SV PPogr,Pogr1,Pogr3,,Met4 – оператор SELECT работает в логическом режиме. Из диапазона отPogr1 до РоgrЗ (операнды В и С) определяется первый накопитель, который является доступным (логический оператор SV). Номер найденного накопителя записывается в параметр заявки с именем PPogr (операнд А). Операнды D и Е не используются. Если доступный накопитель не будет найден, активная заявка будет направлен к оператору с меткой Met4 (операнд F). В противном случае – к следующему оператору. Именам накопителей Pogr1-РоgrЗ командами EQU должны быть присвоены последовательные номера.
- SELECT LE 4,Aa1,Aa7,X$Bb3,Q – оператор SELECT также работает в условном режиме (условный оператор LE). Из очередей Aal-Аа7 (операнды В и С) выбирается первая очередь (операнд Е), длина которой меньше или равна значению ячейки Вb3 (операнд D). Номер очереди записывается в параметр 4 (операнд А) вошедшей в оператор заявки. Операнд F не используется, поэтому заявка из оператора SELECT направляется к следующему оператору. Именам очередей Aa1-Аа7 также командами EQU должны быть присвоены последовательные номера [30, 31].
Электронные материалы по курсу
Помимо данного учебно-методического комплекса для успешного освоения курса «Моделирование», выполнения лабораторных работ и курсового проекта рекомендуется дополнительно ознакомиться с материалами, которые выдаются в электронном виде. Характеристика материалов приведена в таблице 40.
Таблица 40
Папка
Файл
Описание
Пример задания на проектирование многопоточной СМО с отказами доступа входных очередей и пояснительной записки к курсовому проекту.
Базовая имитационная модель (ИМ) многопоточной СМО с отказами доступа входных очередей.
Модификация базовой ИМ, реализованная для решения первой задачи анализа второй части курсового проекта.
Модификация базовой ИМ, реализованная для решения второй задачи анализа второй части курсового проекта.
Генератор случайных чисел для определения числа прогонов ИМ для обеспечения заданной точности моделирования по лимитирующему процессу.
Граф сети Петри модели многопоточной СМО с отказами доступа входных очередей.
Бланк защиты курсового проекта. Распечатанный бланк вкладывается (не подшивается!) в сброшюрованную пояснительную записку для оформления протокола проверки и защиты проекта.
Образец оформления титульного листа курсового проекта для студентов заочного отделения.
Правила оформления пояснительной записки к курсовому проекту.
Продолжение таблицы 40
Папка
Файл
Описание
Программа моделирования систем автоматического управления. Используется в лабораторной работе №2.
Дистрибутив системы автоматизации функционального и схемотехнического проектирования Circuit Maker. ПО используется в лабораторных работах №1 и №2.
Дистрибутив ПО моделирования GPSS World. ПО используется в лабораторных работах №3–6 и в курсовом проектировании.
Программа моделирования временных ингибиторных сетей Петри. Используется в лабораторной работе №7 и, при необходимости, в курсовом проектировании.
Расчет статического риска сбоя для схемы примера выполнения лабораторной работы №1.
Реализация схемы примера выполнения лабораторной работы №1 в Circuit Maker. Используется для модельных экспериментов анализа статического сбоя.
Реализация схемы примера выполнения части 1 лабораторной работы №2 в программе tau.exe.
Реализация схемы примера выполнения части 1 лабораторной работы №2 в Circuit Maker.
Варианты индивидуальных заданий для выполнения части 2 лабораторной работы №2 (к задаче идентификации).
Расчеты по примеру решения задаче идентификации к части 2 лабораторной работы №2.
Продолжение таблицы 40
Папка
Файл
Описание
Пример реализации в IngProject сети Петри модели процессов возникновения/устранения отказов к лабораторной работе №7.
Пример реализации в IngProject сети Петри модели СМО параллельного обслуживания с переменным размером пакета заявок.
Пример реализации в IngProject сети Петри модели магистрального канала передачи данных.
Дополнительный пример реализации в GPSS СМО с равномерно распределенным размером (в знаках) пакетов входного потока и зависимостью времени обслуживания в ОУ от размера пакета.
Дополнительный пример реализации в GPSS СМО с управлением количеством единовременно обслуживаемых заявок.
Литература
1. Шалагинов А.В. Моделирование: экскурс в дисциплину. – Новосибирск: НГТУ, 1998. – 24 с.
2. Шеннон Р. Имитационное моделирование систем – искусство и наука. – М.: Мир, 1978. – 418 с.
3. Основы автоматизированного проектирования радиоэлектронной аппаратуры: УМК/ Сост. и общ. ред. О.Е.Шестопаловой. – Новополоцк: ПГУ, 2004. – 224 с.
4. Барышников Ю.А. Моделирование: конспект лекций для специальности «Вычислительные машины, комплексы, системы и сети». – Екатиринбург: ГОУ ВПО «УГТУ-УПИ», 2005. – 87 с.
5. Советов Б.Я., Яковлев С.А. Моделирование систем. Учебник для вузов. – М.: Высш. шк., 2005. – 343 c.
6. Тарасик В.П. Математическое моделирование технических систем. – Мн.: Дизайн ПРО, 2004. – 640 c.
7. Володин Д.О., Матчин В.Т., Минаков В.И и др. Моделирование информационных процессов и систем. – М.: МГДД(Ю)Т, МИРЭА, ГНИИ ИТТ «Информика», 2002. – 50 с.
8. Громов Ю.Ю., Земской Н.А., Лагутин А.В. и др. Системный анализ в информационных технологиях: Учеб. пособие. – Тамбов: ТГУ, 2004. – 176 с.
9. Семенов А. Д., Артамонов Д. В., Брюхачев А. В. Идентификация объектов управления: Учебн. пособие. – Пенза: Изд-во Пенз. гос. ун-та, 2003. – 211 с.
10. Моделирование дискретный устройств: методические указания по курсу «Проектирование элементов и устройств систем управления» /сост. В.В. Муханов, А.В. Серегин. – Екатиринбург: ГОУ ВПО «УГТУ-УПИ», 2006. – 43 с.
11. Анхимюк В.Л.. Опейко О.Ф.. Михеев Н.Н. Теория автоматического управления. – Мн.: Дизайн ПРО, 2000. – 352 с.
12. Дрейпер Н. Прикладной регрессионный анализ: В 2-х кн. Кн.1. – М.: Финансы и статистика, 1986. – 365 с.
13. Дрейпер Н. Прикладной регрессионный анализ: В 2-х кн. Кн.2. – М.: Финансы и статистика, 1987. – 352 с.
14. Яворский В.А. Планирование научного эксперимента и обработка экспериментальных данных. – Долгопрудный: МФТИ, 2006. – 24 с.
15. Жирабок А.Н. Планирование эксперимента для построения математических моделей. // Соросовский образовательный журнал, 2001. – том 7, №9. – С. 121-127.
16. Соболь И.М. Метод Монте-Карло. – М.: Наука, 1978. – 64 с.
17. Паньгина Н.Н., Паньгин А.А. Статистическое моделирование: метод Монте-Карло. // Компьютерные инструменты в образовании, 2002. – №5. – С. 30-43.
19. Афанасьева О.В., Голик Е.С., Первухин Д.А. Теория и практика моделирования сложных систем: Учеб. пособие. – СПб: СЗТУ, 2005г. – 131 с.
20. Блюмин С.Л., Корнеев А.М. Дискретное моделирование систем автоматизации и управления. – Липецк: ЛЭГИ, 2005г. – 124 с.
21. Murata T. Petri Nets: Properties, Analysis and Applications // Proceedings of the IEEE. – 1989. –Voll.77. –№4.
22. Khoromskaia V. Petri Nets Based Modelling of Control Flow // Вестник РУДН, серия «Прикладная и компьютерная математика». – 2004. ––№1. – С. 74-84.
23. Shestopalova O.E., Skriplenok S.A. Ingproject – Petri Nets Software Tool for Queuing Systems Simulation // Проблемы проектирования и производства РЭС: Сборник материалов Международной научно-технической конференции. Секция «Информатика». – Новополоцк: ПГУ, 2008. – С. 91-94.
24. Моделирование систем с использованием теории массового обслуживания: Учеб. пособие/ Под ред. д.т.н. Д.Н.Колесникова. – СПб: СПбГПУ, 2003. – 180 с.
25. Башарин Г. П. Модели информационно-вычислительных систем: Сборник научных трудов. – М.: Наука, 1994. – 78 с.
26. Вычислительные системы, сети и телекоммуникации./ Под ред. В.Л. Брейдо. – СПб: Питер, 2003. – 688 с.
27. Лаврусь О.Е., Миронов С.Ф. Теория массового обслуживания: методические указания, учебная программа и задания для контрольных работ для студентов заочной формы обучения специальности 071900 «Информационные системы в технике и технологиях». – Самара: СамГАПС, 2002. – 38 с.
29. Окольнишников В.В. Представление времени в имитационном моделировании // Вычислительные технологии. – 2005. – том 10. –№5. – С. 57-78.
30. Кудрявцев Е.М. GPSS World. Основы имитационного моделирования различных систем. – М.: ДМК Пресс, 2004. – 320 c.
31. Боев В.Д. Моделирование систем. Инструментальные средства GPSS World: Учеб. пособие. – СПб.: БХВ-Петербург, 2004. – 368 c.
Приложение 1. Элементы стандартного отчета GPSS
Строка заголовка стандартного отчета содержит имя файла модели, который создал отчет. Также в нее включена дата и время прогона модели:
GPSS World Simulation Report - Пример_2.8.24.2
Tuesday, September 02, 2003 11:45:55
1.Общая информация о результатах работы модели:
- START TIME – начальное время. Абсолютное модельное время в момент начала моделирования. Устанавливается равным абсолютному модельному времени с помощью оператора RESET или CLEAR;
- END TIME – конечное время. Абсолютное модельное время, когда счетчик завершения принимает значение 0;
- BLOCKS – количество операторов, использованных в текущей модели, к моменту завершения моделирования;
- FACILITIES – количество устройств, использованных в модели, к моменту завершения моделирования;
- STORAGES – количество накопителей, использованных в текущей модели к моменту завершения моделирования.
2.Информация об именах. Файл статистики содержит информацию об именах, которые просматривает GPSS в ходе моделирования:
- NAME – перечень заданных пользователем имен, содержащихся в программе модели;
- VALUE – числовое значение, присваиваемое имени.
3.Информация о блоках (операторах):
- LABEL – метка, алфавитно–цифровое имя данного оператора (если оно задано);
- LOC – числовой номер позиции данного оператора в модели;
- BLOCK TYPE – тип оператора GPSS;
- ENTRY COUNT – количество заявок, вошедших в данный оператор, с начала работы программы или после последнего выполнения оператора RESET или CLEAR;
- CURRENT COUNT – количество заявок, находящихся в данном операторе к моменту завершения моделирования;
- RETRY – количество заявок, ожидающих специального условия, зависящего от состояния данного оператора.
4.Информация об объектах типа «устройство». Элементы статистики, представленные в данном разделе, имеют следующее содержание:
- FACILITY – имя или номер устройства;
- ENTRIES – количество раз, когда устройство было занято или занято с прерыванием с начала моделирования или после последнего выполнения оператора RESET или CLEAR;
- UTIL. – коэффициент использования, доля времени моделирования, в течение которого устройство было занято;
- AVE.TIME –среднее время занятия устройства одной заявкой в течение времени моделирования с начала моделирования или после выполнения оператора RESET или CLEAR;
- AVAIL. – состояние устройства в конце моделирования (равно 1, если устройство доступно; 0 – если недоступно);
- OWNER – номер заявки, который занимает устройство (0 – устройство не занято);
- PEND – количество заявок, ожидающих выполнения с прерыванием других заявок (т. е. вошедших в операторы PREEMPT в режиме прерывания);
- INTER – количество заявок, прерванных на данный момент (количество заявок в списке прерываний);
- RETRY – количество заявок, ожидающих выполнения специального условия, зависящего от состояния данного устройства;
- DELAY – количество заявок, ожидающих занятия устройства (входят так же заявки, ожидающие занятия устройства в режиме прерывания с помощью операторов PREEMPT).
5.Информация об объектах типа «очередь»:
- QUEUE – имя или номер очереди;
- МАХ – максимальное содержимое очереди в течение периода моделирования, который начинается с момента трансляции модели или применения оператора RESET или CLEAR;
- СОNT. – текущее содержимое очереди в конце процесса моделирования;
- ENTRY – общее количество входов заявок в очередь в течение времени моделирования;
- ENTRY(0) – общее количество входов заявок в очередь с нулевым временем ожидания;
- AVE.C0NT. – среднее значение содержимого очереди в течение времени моделирования;
- AVE.TIME – среднее время пребывания одной заявки в очереди с учетом всех входов в очередь;
- AVE.(–0) – среднее время пребывания одной заявки в очереди без учета «нулевых» входов в очередь;
- RETRY – количество заявок, ожидающих выполнения специального условия, зависящего от состояния очереди.
- RANGE – нижний и верхний пределы частотного класса;
- RETRY – количество заявок, ожидающих выполнения специального условия, зависящего от состояния данной таблицы;
- FREQUENCY – суммарная величина, которая формируется при попадании табулируемого аргумента в указанные границы (значения операнда В суммируются оператором TABULATE);
- CUM.% – величина частоты в процентах к общему количеству значений табулируемого аргумента.
При попадании табулируемого аргумента в интервал, который имеет значение больше или меньше нижней границы частотного класса или равное верхней границе, изменяется значение частоты (FREQUENCY). Операнд В (весовой коэффициент) оператора TABULATE может быть использован для определения величины, которая добавляется в частотный класс при попадании табулируемого значения в этот частотный класс. Частотные классы, суммарное значение которых равно 0, в файл статистики не выводятся.
8.Информация о списках пользователя:
- USER CHAIN – имя или номер списка пользователя;
- SIZE – количество заявок в списке пользователя в конце времени моделирования;
- RETRY – количество заявок, ожидающих наступления специального условия, зависящего от состояния данного списка пользователя;
- AVE.CONT. – среднее содержимое списка пользователя в течение времени моделирования;
- ENTRIES – общее число заявок, входивших в список пользователя в течение времени моделирования;
- МАХ – максимальное количество заявок в списке пользователя за период моделирования;
- AVE.TIME – среднее время пребывания заявки в списке пользователя.
9.Информация о группах заявок:
- XACT GROUP – имя или номер объекта группы заявок;
- GROUP SIZE –I число заявок в группе в конце моделирования;
- RETRY – число заявок, ожидающих выполнения специального условия, зависящего от состояния данной группы заявок.
10.Информация о числовых группах:
- NUMERIC GROUP – имя или номер числовой группы;
- GROUP SIZE – количество заявок, содержащихся в числовой группе в конце моделирования;
- RETRY – число заявок, ожидающих выполнения специального условия, зависящего от состояния данной числовой группы.
11.Информация о логических переключателях:
- LOGICSWITCH – имя или номер логического ключа;
- VALUE – значение ключа в конце моделирования (1 (true) – «установлен»; О (false) – «сброшен»);
- RETRY – количество заявок, ожидающих выполнения специального условия, зависящего от состояния данного логического ключа.
12.Информация о сохраняемых величинах (ячейках):
- SAVEVALUE – имя или номер ячейки;
- VALUE – значение сохраняемой величины в конце моделирования;
- RETRY – количество заявок, ожидающих выполнения специального условия, зависящего от состояния данной ячейки.
13.Информация о матрицах:
- MATRIX – имя или номер матрицы;
- RETRY – количество заявок, ожидающих выполнения специального условия, зависящего от состояния данной матрицы;
- INDICES – до шести целых чисел, определяющих элемент матрицы;
- VALUE – значение элемента матрицы в конце моделирования (элементы, равные 0, выводятся в отчете группами).
14.Информация о списках текущих и будущих событий. Списки текущих (СЕС) и будущих (FEC) событий выводятся в файл статистики, если в команде START значение операнда D равно 1. Элементы статистики для СЕС, представленные в данном разделе, имеют следующее содержание:
- XN – номер каждой заявки, находящегося в списке текущих событий;
- PRI – приоритет заявки;
- M1 – время входа заявки в модель или время ее самого раннего предка (породившего данную заявку);
- ASSEM – номер семейства данной заявки;
- CURRENT – номер оператора, в котором находится заявка в конце моделирования;
- NEXT – номер следующего оператора, в который должна была войти заявка;
- PARAMETER – имя или номер параметра заявки;
- VALUE – значение параметра.
В содержании статистики для FEC имеется только одно отличие. Вместо поля M1 присутствует поле BDT, которое определяет момент абсолютного модельного времени, когда заявка покинет список будущих событий.
Приложение 2. Основные операторы GPSS
В таблице допустимые типы операндов указаны цифрами, которые соответствуют:
1 – Null (нет ввода);
2 – Name (имя);
3 – Number (неотрицательное число);
4 – String (строковый);
5 – ParenthesizedExpression (выражение в скобках);
6 – SNA (стандартный числовой атрибут – СЧА);
7 – SNA*Parameter (косвенная адресация);
8 – PosInteger (положительное целое число);
9 – Integer (целое число со знаком (необязательно));
10 – DirectSNA (прямой СЧА, т. е. не использующий косвенную адресацию).
Название и
формат
Операнды
имя
значение
тип
1. Источник потока заявок. Формат:
GENERATE А,В,С,D,Е
[А]
Среднее время
1...5, 10
[В]
Полуинтервал или модификатор-функция
1...5, 10
[С]
Время начальной задержки
1...5, 10
[D]
Количество генерируемых заявок
1...5, 8, 10
[Е]
Приоритет
1, 2, 4, 5, 8, 9
2. Удаление из модели активной заявки.
Формат: TERMINATE A
[А]
Величина уменьшения счетчика завершения
1, 2, 5...8
3. Задержка заявки на заданный отрезок модельного времени.
Формат: ADVANCE А,В
А
Среднее время задержки
2...7
[В]
Полуинтервал или модификатор-функция
1...7
4. Присвоение или изменение значения параметра. Формат:
ASSIGN A[±],В,С
А
Параметр активной заявки
2...7
В
Значение
1...7
[С]
Номер функции
1, 2, 5...8
5. Установка приоритета активной заявки.
Формат: PRIORITY А,В
А
Новое значение приоритета
2, 4...7, 9
[В]
Помещение заявки в СТС
1, BU
Название и
формат
Операнды
имя
значение
тип
6. Занятие устройства. Формат: SEIZE A
А
Имя или номер устройства
2, 5...8
7. Освобождение
занятого устройства.
Формат: RELEASE A
А
Имя или номер устройства
2, 5...8
8. Захват устройства.
Формат:
PREEMPT A,B,C,D,Е
А
Имя или номер устройства
2, 5...8
[В]
Режим
1, PR
[С]
Метка оператора
1,2, 5...8
[D]
Имя или номер параметра
1,2, 5...8
[Е]
Режим удаления
RE
9. Освобождение
устройства от захвата.
Формат: RETURN A
А
Имя или номер устройства
2, 5...8
10. Перевод устройства в недоступное состояние. Формат:
FUNAVAIL A,В,С,D,E,F,G,Н
А
Имя или номер устройства
2, 5...8
[В]
Режим удаления или продолжения
1, RE, СО
[С]
Метка оператора выхода
1, 2, 5...8
[D]
Имя или параметр устройства
1, 2, 5...8
[Е]
Режим удаления или продолжения
1, RE, СО
[F]
Метка оператора выхода
1,2, 5...8
[G]
Режим удаления или продолжения
1, RE, СО
[Н]
Метка оператора выхода
1,2, 5...8
11. Перевод устройства в доступное состояние.
Формат: FAVAIL А
А
Имя или номер устройства
2, 5...8
12. Занятие накопителя.
Формат: ENTER А,В
А
Имя или номер накопителя
2, 5...8
[В]
Число занимаемых элементов накопителя
1, 2, 5...8
13. Освобождение
накопителя.
Формат: LEAVE А,В
А
Имя или номер накопителя
2, 5...8
[В]
Число освобождаемых элементов накопителя
1, 2, 5...8
14. Перевод накопителя в недоступное состояние. Формат:
SUNAVAIL А
А
Имя или номер накопителя
2, 5...8
Название и
формат
Операнды
имя
значение
тип
15. Перевод накопителя в доступное состояние. Формат: SAVAIL A
А
Имя или номер накопителя
2, 5...8
16. Увеличение длины очереди.
Формат: QUEVE А,В
А
Имя или номер очереди
2, 5...8
[В]
Число, на которое увеличивается длина очереди
1,2, 5...8
17. Уменьшение длины очереди.
Формат: DEPART А,В
А
Имя или номер очереди
2, 5...8
[В]
Число, на которое уменьшается длина очереди
1, 2, 5...8
18. Присоединение заявки к списку пользователя. Формат: LINK А,В,С
А
Имя или номер списка пользователя
2, 5...8
В
Задание дисциплины обслуживания
5...7, LIFO, FIFO
[С]
Метка альтернативного оператора
1, 2, 5...8
19. Удаление заявки из списка пользователя.
Формат:
UNLINK X А,В,С,D,Е
[X]
Условный оператор
1,G,GE, L, LE, E, NE
А
Имя или номер списка пользователя
2, 5...8
В
Метка оператора выхода
2, 5...8
[С]
Число удаляемых заявок
1, 2, 5...8 ALL
[D]
Имя или номер параметра
1, 2, 5...8 BACK
[Е]
Аргумент для сравнения
1...7
[F]
Метка альтернативного оператора
1, 2, 5...8
20. Модификация
значения ячейки.
Формат:
SAVEVALUE A[±], В
А
Имя или номер ячейки
2, 5...8
В
Модификатор
2...7
21. Изменение состояния логического ключа.
Формат: LOGIC X А
X
Логический оператор
S, R, I
А
Имя или номер логического ключа
2, 5...8
22. Управление
потоком заявок в зависимости от результата сравнения операндов. Формат: TEST X А,В,С
X
Условный оператор
G, GE, L,
LE, N, NE
А
Первая сравниваемая величина
2...7
В
Вторая сравниваемая величина
2...7
[С]
Метка оператора
1, 2, 5...8
Название и
формат
Операнды
имя
значение
тип
23. Переход активной заявки в указанный оператор.
Формат:
TRANSFER А,В,С,D
Имя или номер оператора (аргумент для режимов Р и FN)
1, 2, 5...8
[D]
Шаг нумерации операторов для режима ALL
1, 2, 5...8
24. Управление
потоком заявок в зависимости от состояния устройства.
Формат: GATE X А,В
X
Проверяемое условие:
занято или нет;
захвачено или нет;
доступно или нет
U, NU,
I, NI,
FV, FNV
А
Имя или номер устройства
2, 5...8
[В]
Метка оператора
1, 2, 5...8
25. Управление
потоком заявок в зависимости от состояния накопителя.
Формат: GATE X А,В
X
Проверяемое условие:
пусто или нет;
заполнено или нет;
доступно или нет
SE, SNE,
SF, SNF,
SV, SNV
А
Имя или номер
памяти
2, 5...8
[В]
Метка оператора
1, 2, 5...8
26. Управление
потоком заявок в зависимости от состояния
ключа.
Формат: GATE X А,В
X
Проверяемое условие:
ключ установлен
ключ не установлен
LS,
LR
А
Имя или номер логического ключа
2, 5...8
[В]
Метка оператора
1,2, 5...8
27. Организация циклического прохождения заявок в модели.
Формат: LOOP А,В
А
Параметр, содержащий число циклов
2, 5...8
[В]
Метка оператора – начало цикла
1, 2, 5…8
Название и
формат
Операнды
имя
значение
тип
28. Управление
потоком заявок в зависимости от состояния синхронизации проверяемой заявки.
Формат: GATE X А,В.
X
Проверяемое условие:
есть заявка, ожидающая условия синхронизации, в указанном операторе MATCH или нет
М,
NM
А
Метка оператора MATCH
2, 5...8
[В]
Метка оператора
1, 2, 5...8
29. Создание необходимого числа
копий (семейства) активной заявки.
Формат: SPLIT А,В,С
А
Количество создаваемых копий
2, 5...8
[В]
Метка оператора для входа копий
1,2,5…8
[С]
Имя или номер параметра, в который помещаются порядковые номера копий
1,2,5…8
30. Объединение заявок одного семейства.
Формат: ASSEMBLE A
А
Количество собираемых заявок
2, 5...8
31. Накопление заданного числа заявок одного семейства.
Формат: GATHER A
А
Количество заявок, которые необходимо накопить
2, 5...8
32. Синхронизация движения двух заявок одного семейства. Формат: MATCH A
А
Метка сопряженного оператора MATCH
2, 5...8
33. Разрешение заявке на выполнение операции любого другого оператора
Формат: EXECUTE A
А
Метка оператора, операция которого выполняется активной заявкой
2, 5...8
34. Определение или смена семейства активной заявки Формат: ADOPT A
A
Имя или номер семейства. Записывается в специальный параметр активной заявки (Assemble Set)
2, 5…8
Приложение 3. Стандартные числовые атрибуты GPSS
Код
Значение СЧА
Примечание
Системные числовые атрибуты
RNj
Случайное число. Целочисленное значение.
Датчик генерирует последовательность
равномерно распределенных случайных целых чисел от 0 до 999.
C1
Относительное модельное время. Вещественное значение.
Модельное время с момента последней
команды RESET. Изменяется автоматически.
AC1
Абсолютное модельное время. Вещественное значение.
Модельное время с момента последней
команды CLEAR. Изменяется автоматически.
TG1
Число, равное текущему значению счетчика завершения. Целочисленное значение.
Начальное значение TG1 задается опера-
тором START и указывает на завершение
моделирования, когда становится равным нулю. Вошедшие в оператори TERMINATE с ненулевым положительным операндом А заявки уменьшают это значение на число, равное значению операнда А.
Стандартные числовые атрибуты заявок
Pj
Значение j-гo параметра активной заявки. Целочисленное, вещественное или строковое значение.
Для косвенной адресации используются:
CЧA*j ;
СЧА*имя параметра;
СЧА*$имя параметра.
XN1
Номер активной заявки. Целочисленное значение.
–
PR
Приоритет активной заявки.
Целочисленное значение.
Может изменяться оператором PRIORITY.
По умолчанию приоритет равен 0.
MBj
Соответствие в операторе MATCH. Целочисленное значение.
1, если в сопряженном операторе MATCH находится заявка того же семейства, что и активная; 0 – иначе.
MPj
Время прохождения заявкой
некоторого участка модели. Вещественное значение.
Вычисляется как разность текущего абсолютного модельного времени и значения j-ro параметра активной заявки. Разность – транзитное время – сохраняется в j-м параметре.
M1
Время пребывания в модели активной заявки. Вещественное значение.
Вычисляется как разность абсолютного
модельного времени и отметки времени
активной заявки, в которой хранится либо время поступления заявки в модель, либо время последнего прохождения заявкой оператора MARK без операнда А.
Код
Значение
Примечание
Стандартные числовые атрибуты операторов
Nj
Общее число входов заявок в
j-й оператор. Целочисленное значение.
Увеличивается при каждом входе заявки в j-й оператор.
Wj
Текущее число заявок, находящихся в j-м операторе. Целочисленное значение.
Увеличивается при каждом входе заявки в j-й оператор и уменьшается при каждом выходе заявки из j-гo оператора.
Стандартные числовые атрибуты накопителей
Sj
Текущее содержимое накопителя j. Целочисленное значение.
Изменяется операторами ENTER и LEAVE.
Rj
Число свободных единиц накопителя j. Целочисленное значение.
Изменяется операторами ENTER и LEAVE.
SRj
Коэффициент использования накопителя j. Вещественное значение.
Выражается в тысячных долях, но значение СЧА – целое, т. е. если коэффициент равен 0,65, то SRj равно 650. Может быть нецелочисленным.
SAj
Среднее значение занятого накопителя j. Вещественное значение.
Взвешенное по времени среднее количество занятых элементов накопителя.
SMj
Максимальное количество элементов занятого накопителя j. Целочисленное значение.
Максимальное количество элементов накопителя, которое было занято одновременно в процессе моделирования.
SCj
Счетчик использования накопителя j. Целочисленное значение.
Общее количество использовавшихся
элементов накопителя j. Увеличивается при каждом входе заявки в оператор ENTER.
STj
Среднее время использования одного элемента накопителя j.
1 – занято; 0 – не занято. Может быть изменен операторами SEIZE, RELEASE, PREEMPT и RETURN.
FIj
Прерванность устройства j. Целочисленное значение.
1 – прервано; 0 – не прервано. Может быть изменен операторами PREEMPT и RETURN.
FVj
Доступность устройства j. Целочисленное значение.
1 – доступно; 0 – не доступно. Может быть изменен операторами FAVAIL и FUNAVAIL
Код
Значение
Примечание
FRj
Коэффициент использования устройства j.
Выражается в тысячных долях, но значение СЧА – целое, т. е. если коэффициент равен 0,88, то FRj равен 880.
FCj
Количество заявок, занимавших устройство j.
Увеличивается при входе заявок в оператор SEIZE или PREEMPT.
FTj
Среднее время использования устройства j одной заявкой.
Определяется автоматически.
Стандартные числовые атрибуты очередей
Qj
Текущая длина очереди j. Целочисленное значение.
Увеличивается при входе заявки в оператор QUEUE и уменьшается при входе в оператор DEPART.
QAj
Средняя длина очереди j. Вещественное значение.
Взвешенное по времени количество заявок в очереди j.
QMj
Максимальная длина очереди j. Целочисленное значение.
Максимальное количество заявок, находившихся одновременно в очереди j.
QCj
Общее число входов в очередь j. Целочисленное значение.
Автоматически увеличивается системой при входе заявки в очередь j.
QZj
Число входов с нулевым временем пребывания в очереди j.
Число входов заявок, время нахождения которых в очереди равно нулю.
QTj
Среднее время пребывания заявки в очереди j.
Рассчитывается с учетом нулевых входов.
QXj
Среднее время пребывания заявки в очереди j.
Рассчитывается без учета нулевых входов.
Стандартные числовые атрибуты ячеек и матриц ячеек
Xj
Содержимое ячейки j.
Целочисленное, вещественное или строковое значение.
Изменяется оператором SAVEVALUE.
MXj
(a,b)
Содержимое ячейки матрицы j. Целочисленное, вещественное или строковое значение.
Значение ячейки в строке аи столбце b. Изменяется оператором SAVEVALUE. Для матриц, имеющих более двух измерений, все остальные индексы считаются равными 1. В отличие от СЧА класса MX, PLUS-выражения могут обращаться к любому элементу многомерных матриц.
Системные числовые атрибуты вычислительных объектов
FNj
Результат вычисления значения функции j. Вещественное значение.
–
Vj
Результат вычисления целочисленной переменной j или переменной j с плавающей точкой. Вещественное значение.
–
Код
Значение
Примечание
BVj
Результат вычисления булевой переменной j. Вещественное значение.
Принимает значения: 1 (true); 0 (false).
Системные числовые атрибуты групп, списков и ключей
GNj
Текущее число членов в j-й числовой группе.
–
GTj
Текущее число членов в j-й группе заявок.
–
CHj
Текущее число заявок в j-м
списке пользователя.
Список пользователя создается и ведется
самим программистом в отличие от остальных списков модели. Используются операторы LINK и UNLINK. Значения всех СЧА определяются аналогично значениям СЧА очередей.
CAj
Среднее число заявок в j-м списке пользователя.
–
CMj
Максимальное число заявок в j-м списке пользователя.
–
CCj
Общее число заявок в j-м списке пользователя.
–
CTj
Среднее время пребывания заявки в j-м списке пользователя.
–
LSj
Состояние j-гo логического ключа.
Принимает значения: 1 – установлен; 0 – не установлен
Системные числовые атрибуты таблиц
TBj
Среднее значение невзвешенных
аргументов таблицы j.
Для занесения в таблицу используется
оператор TABULATE.
TCj
Число включений в таблицу j.
Целочисленное значение.
TDj
Среднеквадратическое отклонение для таблицы j.
Вещественное значение.
Приложение 4. Пакетирование заявок
Для организации пакетирования заявок в GPSS World используются операторы GATHER и ASSEMBLE, действие которых принципиально отличается. Оператор GATHER задерживает входящие в него заявки одного семейства до тех пор, пока их количество не достигнет заданного числа. После этого заявки сформированного пакета по одной продвигаются далее по системе, а оператор начинает формирования очередного пакета. В этом случае объединение заявок в пакет (слияния) не происходит.
Если необходимо реализовать пакетирование со слиянием исходных заявок и дальнейшим единовременным продвижением по системе новой заявки-пакета, используется оператор ASSEMBLE.
Пример использования оператора GATHER.
GENERATE 1,0 ;генерация заявок с интервалом в 1 сек.
ADOPT 1 ;все заявки становятся членами семейства №1
SEIZE USTR1
ADVANCE 1,0 ;одиночное обслуживание заявок в USTR1 за 1 сек.
RELEASE USTR1
GATHER 3 ;объединение заявок в пакет по три. Слияния
;не происходит. Каждая заявка в пакете остается
;самостоятельной.
QUEUE O2 ;в очередь заявки каждого пакета поступают
;по одной, с момента формирования пакета
;из 3-х заявок в блоке GATHER.
SEIZE USTR2
DEPART O2
ADVANCE 3,0 ;одиночное обслуживание заявок в USTR2 за 3 сек.
RELEASE USTR2
TERMINATE 1
Рассмотрим результаты моделирования, полученные в результате выполнения модели примера в режиме пошагового прогона. Для моделирования в этом режиме в программной реализации не должно быть команды START, а после компиляции следует выбрать пункт меню Window/Simulation Window/Blocks Window. Ситуация, показанная на рис. П4.1, соответствует моменту накопления в операторе GATHER 3-х заявок входного потока. Видно, что до момента накопления в блоке GATHER 3-х заявок пакета дальнейшее их продвижение не осуществлялось, и в очередь второго устройства заявки не поступали.
Следующий шаг моделирования показан на рис. П4.2. Видно, что одна заявка из сформированного в блоке GATHER пакета из 3-х заявок уже поступила в очередь второго устройства. Остальные две заявки пакета остаются в блоке GATHER, и будут по одной поступать в очередь по факту ее освобождения. Новые заявки, поступающие в блок GATHER, задерживаются до формирования нового пакета по 3, т. е. до момента, когда число входов (Entry Count) не станет равным 6.
Результат моделирования, полученный в виде стандартного отчета при выполнении программы с командой START 100, показан на рис. П4.3. Видно, что на момент завершения моделирования 100 заявок завершили обслуживание (количество входов в оператор №12 TERMINATE), а одна поступила во второе устройство, но обслуживание еще не началось (1 в поле CURRENT COUNT оператора №4 ADVANCE). При этом 199 заявок находятся в очереди второго устройства (199 в поле CURRENT COUNT оператора №7 QUEUE), а 2 заявки задержаны в операторе №6 GATHER до прихода 3-ей, необходимой для формирования очередного пакета.
Пример использования оператора ASSEMBLE.
GENERATE 1,0 ;генерация заявок с интервалом в 1 сек.
ADOPT 1 ;все заявки становятся членами семейства №1
SEIZE USTR1
ADVANCE 1,0 ;одиночное обслуживание заявок в USTR1 за 1 сек.
RELEASE USTR1
ASSEMBLE 3 ;объединение заявок в пакет по три со слиянием
;заявок. Далее пакет продвигается по системе
;как самостоятельная единица.
QUEUE O2 ;в очередь пакеты поступают по одному, по факту
;объединения заявок в пакет из 3-х в блоке
;ASSEMBLE.
SEIZE USTR2
DEPART O2
ADVANCE 3,0 ;одиночное обслуживание заявок в USTR2 за 3 сек.
RELEASE USTR2
TERMINATE 1
Рассмотрим результаты моделирования, полученные в результате выполнения модели примера в режиме пошагового прогона. Ситуация, показанная на рис. П4.4, соответствует состоянию системы, в котором в блоке Assemble формируется первый пакет (Current Count=1), но заявок для его формирования поступило еще недостаточно (Entry Count=2), поэтому очередь второго устройства пуста.
На рис. П4.5 показан следующий шаг моделирования: первый пакет из 3-х заявок сформирован: Entry Count=3; и один этот объединенный пакет уже поступил в очередь второго устройства. Объединенный пакет, по сути, является новой самостоятельной заявкой, не сохранившей никаких признаков заявок-прародителей пакета.
Ситуация, имеющая место во время формирования второго пакета, показана на рис. П4.6. В блоке Assemble формируется следующий, второй пакет (Current Count=1). Его формирование закончится, когда Entry Count станет равным 6. До тех пор в очередь второго устройства ничего не поступает.
На рис. П4.7 видно, что второй пакет сформирован и поступил в очередь второго устройства. К этому моменту первый пакет уже покинул систему обслуженным.
Результат моделирования, полученный в виде стандартного отчета при выполнении программы с командой START 100, показан на рис. П4.8. На момент завершения моделирования 100 заявок (объединенных пакетов по 3) завершили обслуживание – через оператор №11 TERMINATE прошли 100 заявок; одна одиночная заявка поступила в первое устройство и обслуживания не завершила (1 в поле CURRENT COUNT оператора №4 ADVANCE). В операторе №6 ASSEMBLE началось формирование очередного, 101-го пакета, 2 одиночные заявки сверх уже использованных для пакетирования 300 задержаны до прихода очередной 3-ей, необходимой для формирования пакета.