ПРИЛОЖЕНИЕ 2. Список операторов GPSS, не являющихся блоками.. 52
ПРИЛОЖЕНИЕ 3. Список стандартных числовых атрибутов 56
Список литературы... 57
Исследование производительности комплекса технических средств САПР
1.1 Постановка задачи
Одной из основных задач, решаемых на системотехническом уровне проектирования вычислительных систем (ВС), является исследование производительности выбранного варианта ее структуры. Для решения этой задачи помимо аналитических и экспериментальных методов используется имитационное моделирование.
Имитационная модель представляет собой алгоритм, отображающий функционирование исследуемой системы во времени и позволяющий определять производительность сложных систем на основе как детерминированных, так и статистических сведений об их рабочей нагрузке. При проектировании ВС основным источником неопределенности, как правило, является ее рабочая нагрузка, т.е. данные о характере, объеме, последовательности и времени поступления задач на вход, а также объеме требуемых исходной, промежуточной и выходной информации, которые заранее точно определить невозможно (в особенности при проектировании универсальной ВС для решения широкого круга задач). Поэтому взамен детерминированных часто используют статистические сведения о потоке решаемых задач, получаемые на основе регрессионного анализа или других методов статистической обработки, а сама исследуемая ВС представляется в виде некоторой системы массового обслуживания (СМО).
ВС, рассматриваемая как СМО, состоит из объектов (элементов) двух основных типов:
¾ объекты обслуживания ¾ решаемые в ВС задачи, называемые также заявками или динамическими объектами (в СМО GPSS ¾ транзактами);
¾ средства обслуживания ¾ аппаратные и программные средства ВС, называемые обслуживающими аппаратами (ОА) и часто объединяемые под названиями ресурсы, каналы или статические объекты, причем ОА делятся, в свою очередь, на устройства и памяти.
Наряду с устройствами и памятями в моделях СМО в качестве элементов используются источники заявок и узлы. Источники заявок имитируют процесс поступления заданий в ВС и могут быть зависимыми и независимыми. Узлы – суть элементы, с помощью которых в модели отображаются пути прохождения заявок в системе, позволяя имитировать разветвления, выход заявок из системы, изменения их параметров.
Состояние каждого i-го транзакта Ai в СМО характеризуется двоичной переменной vi, причем vi = 1, когда транзакт Ai обслуживается в некотором ОА, и vi = 0, когда он ожидает обслуживания в одной из очередей, организуемых операционной системой моделируемой ВС в соответствии с некоторой дисциплиной обслуживания.
Состояние каждого j-го ОА системы характеризуется двоичной переменной wj = 1, когда ОА занят, и wj = 0, когда он свободен, а также целочисленной переменной rj, соответствующей длине очереди транзактов, ожидающих обслуживания в ОА.
Таким образом, текущее состояние ВС в модели характеризуется векторами состояния V{i = 1,…, k}, W{j = 1,…, m}, R{j = 1,…, m}. Изменение хотя бы одного из их компонентов называется событием, причем предполагается, что такие события происходят мгновенно, в дискретные моменты времени tq, соответствующие границам тактов t, на которые разбит интервал моделирования T = Qt. Функционирование ВС моделируется процессом прохождения транзактов через ОА, образующие СМО. С целью экономии машинного времени, затрачиваемого на моделирование, в САПР используется так называемый событийный алгоритм, при котором в каждый дискретный момент времени q (q ¾ номер такта) рассматриваются лишь те транзакты и ОА, с которыми связано какое-либо событие [1]. В противном случае на каждом такте модельного времени пришлось бы осуществлять полный просмотр всех транзактов и ОА модели. Поскольку в каждый момент времени события происходят лишь в малой части от общего количества транзактов и ОА, то событийный алгоритм позволяет существенно сократить трудоемкость, а, следовательно, и время моделирования ВС.
Исходными данными для построения имитационной модели ВС служат: структурный состав ВС, связи между отдельными ее устройствами, дисциплина обслуживания заявок в устройствах, маршрут обработки каждой заявки в ВС. Эти данные позволяют построить структуру сетевой имитационной модели (СИМ) для данной ВС. Другая часть исходных данных ¾ сведения о рабочей нагрузке и внутренних параметрах ВС (производительность отдельных ее устройств, объемы их памяти и т.п.) ¾ используется для определения параметров модели.
В результате моделирования получают следующие выходные параметры:
1) производительность системы, определяемую как среднее количество обрабатываемых системой заявок в единицу времени, вычисляемое либо по количеству заявок, обработанных в течение заданного интервала времени, либо по времени, необходимому для обслуживания в ВС заданного числа заявок;
2) коэффициенты загрузки отдельных устройств ВС, определяемые как отношение суммарного времени занятого состояния соответствующего ОА к общему времени моделирования;
3) средние длины очередей к ОА, образующих ВС;
4) вероятности обслуживания заявки и т.п.
Составные части имитационных моделей ВС представлены моделями источников заявок, обслуживающих аппаратов-устройств, памятей и средств маршрутизации заявок ¾ различных узлов СИМ.
Модель источника заявок представляет собой алгоритм, по которому вычисляются моменты появления заявок. Модель независимого источника заявок обычно реализуется генератором случайных чисел (ГСЧ) с законом распределения, определяемым исходными данными о рабочей нагрузке, с помощью которого вычисляются интервалы времени между появлениями двух последовательных заявок данного типа. В зависимых источниках очередная заявка на выходе вырабатывается при поступлении на его вход некоторой другой, синхронизирующей заявки.
Модель устройства ВС есть алгоритм определения времени обслуживания заявки. Поскольку время обслуживания в ОА зависит и от объема задания, который точно неизвестен и имитируется типом заявки, и от производительности устройства (внутренний параметр устройства ВС), то в модели этот алгоритм часто реализуется с помощью ГСЧ с заданными законами распределения для заявок каждого из типов. Кроме того, в модель ОА входит алгоритм, управляющий очередями на его входе в соответствии с дисциплиной обслуживания и приоритетами поступающих заявок.
Модель памяти есть алгоритм для определения объема памяти, требующейся при обслуживании заявок различных типов. Он также часто реализуется как ГСЧ. Внутренними параметрами памяти являются ее объем и дисциплина обслуживания. Заявка, поступившая в память, занимает в ней вычисленный объем, но продолжает свой маршрут в модели, а освобождение памяти происходит в момент встречи этой заявки с элементом освобождения памяти.
Узлы СИМ разделяются на три типа: М, P и R.
Узлы типа М осуществляют изменение имени (параметра) заявки, фиксируя тем самым этапы ее прохождения по модели.
Узлы типа R в зависимости от имени направляют заявку по одному из возможных маршрутов. С помощью узлов типа М и R осуществляется жесткая (детерминированная) маршрутизация заявок в СИМ.
Узлы типа P направляют поступившую в них заявку по одному из двух возможных выходных маршрутов в соответствии с заданными их вероятностями.
1.2 Составление имитационной модели комплекса технических средств САПР
Пусть необходимо исследовать производительность комплекса технических средств САПР, содержащего три АРМ и центральный вычислительный комплекс (ЦВК), показанного на рис 1. Проектирование ведется путем диалога проектировщиков через терминальные устройства Т соответствующих АРМ. Задачи, решаемые на каждом АРМ, требуют последовательного применения различных модулей из пакета прикладных программ (ППП), причем маршрут последовательно решаемых этапов зависит от получаемых результатов и определяется лишь при их анализе. Наиболее трудоемкие этапы (анализ полных моделей, а также некоторые задачи технического проектирования) из-за их большой размерности решаются на ЦВК, в то время как упорядочение и различные программы интерпретации и оценки результатов решаются на персональных ЭВМ, входящих в состав АРМ. Поэтому место проведения следующего этапа обработки задается с некоторой вероятностью Р1, Р2, P3. Так, заявка после обработки на АРМ 1 с вероятностью Р1, поступает обратно на АРМ, а с вероятностью 1 – Р1 требует обработки на ЦВК. АРМ связаны с ЦВК через коммутирующий процессор ¾ коммутатор малых машин (КММ). На КММ поступают требования на обработку (заявки) от всех трех АРМ, а также результаты их обработки на ЦВК, которые должны быть направлены на соответствующие АРМ, где они интерпретируются в удобную для восприятия форму и через терминал предъявляются пользователю. В зависимости от полученного результата он либо считает этап решения завершенным и переходит к следующему этапу маршрута (генерируется зависимая заявка), либо меняет некоторые внутренние параметры модели и повторяет прежний этап, либо заканчивает проектную процедуру.
Поскольку в соответствии со сценарием работы комплекса на КММ могут поступить одновременно несколько заявок, то на его входе должна соблюдаться очередность их обработки в соответствии с их приоритетами. По той же причине очередь на обработку организуется и на входе ЦВК. Распределение заявок между средствами комплекса отображается в СИМ с помощью узла типа R (R1), а для того чтобы он мог различать заявки, поступающие от соответствующих АРМ и ЦВК, используются узлы типа М (M1÷M6). На рис 2 представлена СИМ для вышеизложенного сценария применения комплекса технических средств САПР, составленная в терминах теории СМО.
Рис. 2
Описание модели вводится в ЭВМ с использованием входного языка схемного либо процедурного типа. В языках схемного типа по установленной форме вводится перечень объектов СМО с указанием их параметров и перечень связей между ними, после чего программно генерируется модель СИМ [1]. В языках процедурного типа с помощью фиксированного перечня операторов описываются маршруты прохождения заявок через СИМ. Подобный язык используется и в общецелевой моделирующей системе GPSS. Набор его операторов-блоков отображает структуру СИМ, а их последовательность ¾ маршруты транзактов в ней.
1.3. Общие сведения о языке моделирования GPSS.
GPSS является языком дискретного моделирования. Машинная программа, интерпретирующая модель на языке GPSS, называется интерпретатором GPSS. Модель на GPSS представляет собой совокупность блоков. Передача управления от блока к блоку и их выполнение происходит при движении перемещающихся элементов, называемых транзактами. Таким образом, транзакты ¾ это динамические объекты GPSS модели. Транзакты вводятся и выводятся из модели в соответствии с условиями моделирования. В начальный момент моделирования в модели нет ни одного транзакта. В общем случае в модели может существовать большое число транзактов, однако в один и тот же момент времени в модели продвигается только один транзакт. При продвижении транзакта от блока (оператора) к блоку выполняются действия, предписанные данному блоку, т.е. происходит обращение к соответствующей подпрограмме. Движение транзакта происходит до тех пор, пока транзакт не входит в блок, функцией которого являются вывод транзакта из модели, задержка транзакта на некоторое время либо отказ транзакту во входе до изменения определенных условий. При прекращении движения одного транзакта в модели начинается продвижение следующего транзакта. Соответствие между транзактами и элементами моделируемой системы устанавливает разработчик в процессе разработки модели.
При продвижении моделирования в хронологической последовательности совершаются некоторые события. Чтобы отслеживать правильную временную последовательность наступления событий в интерпретатор GPSS, включена специальная переменная, которая называется таймером модельного времени. Таймер регистрирует только целые значения. Соответствие между единицей модельного времени и моделируемым временным интервалом устанавливается разработчиком модели (в зависимости от условий моделируемой задачи это может быть секунда, минута, час, год и т.п.).
При написании программы на GPSSнеобходимо учитывать, что каждый блок записывается в отдельной записи, которая разбивается на ряд полей. Позиции 2÷6 ¾ поле метки, в нем может быть записано символическое имя блока (метка); позиции 8÷18 ¾ поле операции, которое должно содержать служебное слово языка GPSS, предназначенное для задания операции; начиная с 19 позиции идут поля операндов.
Символические имена блоков (метки) могут состоять не более чем из 5 символов, причем первые три символа должны быть алфавитными (в GPSS допускается использование символов только латинского алфавита). Обычно разработчик присваивает символические имена тем блокам, на которые передается управление.
Операция определяет основное функциональное назначение блока (например, GENERATE, TERMINATE, ASSIGN и т.п.). Некоторые из блоков в поле операции могут содержать указания о дополнительных операциях (например, TEST Е).
Операнды задают информацию, специфичную для данного блока. Наибольшее количество операндов равно семи. В общем случае операнды обозначаются буквами A, B, C, D, E, F, G . В зависимости от типа блока некоторые операнды могут быть опущены. Друг от друга операнды отделяются запятыми. Если какой-либо из операндов опускается, то соответствующая ему запятая сохраняется при условии, что правее его имеется, хотя бы один неопущенный операнд. Пробелы между операндами не допускаются. Пробел в поле операндов указывает на то, что операнды закончены, и далее следует комментарий. Комментарий также можно задавать отдельной записью, если в первой позиции указать символ *.
1.3.1. Блоки генерации и удаления заявок
Блок GENЕRATE предназначен для ввода транзактов в модель; операнды А и В блока GENERАТЕ задают интервалы времени, через которые транзакты поступают в модель. При равномерном распределении интервалов времени поступления транзактов в модель операнд А определяет среднее время между приходами транзактов, а операнд В задает половину поля допуска интервалов времени поступления.
Пример 1. GENERАТЕ 6,2 ¾ среднее время между поступлениями транзактов в модель равно 6 тактов модельного времени, поле допуска равно 4 тактам. Таким образом, интервалы времени поступления транзактов в модель могут быть равны 4, 5, 6, 7, 8.
Служебное слово GPSS GENERATE кодируется в позициях 8÷15, операнды 6, 2 ¾ в позициях 19÷21.
Если операнды А или (и) В не заданы, то по умолчанию принимаются нулевые значения.
Для задания детерминированных интервалов времени достаточно задать только операнд А.
Пример 2. GENERATE 5 ¾ транзакты в модель поступают через 5 единиц времени.
Операнд С задает смещение интервалов времени, т.е. момент времени, когда в модель должен поступить первый транзакт. Когда операнд С не используется, первый приход транзакта в модель определяется операндами А и В.
Пример 3. GENERATE 4,2,16 ¾ первый транзакт поступает в модель в момент времени, равный 16, далее интервалы времени прихода транзактов в модель распределены равномерно с параметрами 4 ± 2 (2, 3, 4, 5, 6).
Операнд D задает максимальное число транзактов, которые могут войти в модель через блок GENERATE. Если операнд D не задан, то блок GENERATE генерирует транзакты в соответствии с операндами А и B в течение всего времени моделирования.
Операнд Е определяет уровень приоритета транзактов, входящих через данный блок GENERATE. Приоритеты в GPSS могут иметь значения от 0 до 127. 0 соответствует наименьшему значению приоритета, число 127 ¾ наибольшему значению приоритета.
Пример 4. GENERAТЕ 7,,,5,15 – операнды В и С равны 0 по умолчанию. Первый транзакт поступит в модель в момент времени, равный 7, далее через 7 единиц времени в модель будет поступать по одному транзакту. Всего в модель поступит 5 транзактов с уровнем приоритета, равным 15.
Пример 5. GENERATE ,,,1 ¾ в начальный момент времени в модель поступит один транзакт. На этом генерация транзактов завершится.
Блок TERMINATE предназначен для удаления транзактов из модели. Разрешается использовать блок TERMINATE без операндов. В этом случае транзакт, поступающий в блок TERMINATE, выводится из модели. Блок TERMINATE может использоваться с операндом А. Операнд А задает число, которое вычитается из специального счетчика завершений всякий раз, когда транзакт входит в блок TERMINATE. Начальное значение счетчика завершений задается с помощью оператора START. Операнд А оператора START определяет начальное значение счетчика завершений. Когда интерпретатор обнаруживает в программе оператор START, начинается моделирование. В модели существует только один счетчик завершений, хотя блоков TERMINATE с операндом А или без него может быть несколько. Когда содержимое счетчика завершений станет равным нулю, моделирование заканчивается.
Пример 6. Провести моделирование системы в течение 100 единиц времени
GENERATE „100,1
TERMINATE 1
START 1
Блоки GENERATE и TERMINATE в примере используются для управления процессом моделирования. В момент времени, равный 100, в модель будет введен один транзакт, который сразу после этого поступает на блок TERMINATE. При этом транзакт из модели выводится, а из счетчика завершений (начальное значение счетчика завершений определяется операндом А оператора START и равно 1) вычитается 1. Обнуление счетчика завершений приводит к прекращению моделирования. В этом случае другие блоки TERMINATE в модели должны использоваться без операнда А.
1.3.2. Блоки, описывающие действие транзакта по отношению к обслуживающему устройству
Блоки SEIZE и RELEASE предназначены соответственно для моделирования занятия свободных устройств и освобождения уже занятых. Одновременно одно устройство может обслуживать только одну заявку. Если устройство обслуживает заявку и в это время поступает еще одна заявка, то она может быть поставлена в очередь на обслуживание, либо направлена куда-нибудь в другое место, либо прервать обслуживание предшествующей заявки и занять обслуживающее устройство. После занятия устройства надо пропустить некоторое время, необходимое для обслуживания заявки. По истечению времени обслуживания устройство необходимо освободить.
Вход транзакта в блок SEIZE моделирует занятие устройства, вход транзакта в блок RELEASE моделирует освобождение устройства. Блоки SEIZE и RELEASE используют операнд А, который обозначает имя устройства. Имя устройства может содержать от трех до пяти алфавитно-цифровых символов, первые три символа должны быть буквы. Кроме символических имен для устройств разрешается задавать числовые имена, при этом числа должны быть положительными, целыми. Наибольший разрешенный номер зависит от объема памяти модели. Так, при использовании памяти, равной 64 Кбайт, для интерпретатора GPSSнаибольший разрешенный номер устройства равен 35.
Наличие устройств в модели не требует дополнительного описания , помимо его указания в качестве операнда А в блоке SEIZE. Использование блока SEIZE ARM устанавливает наличие устройства ARM в модели.
По окончании моделирования об использованных устройствах собирается следующая статистика: доля времени, в течение которого соответствующие устройства обрабатывали заявки (TOTAL TIME, UTIL.), количество обслуженных заявок (ENTRIES), средняя продолжительность обслуживания одной заявки (AVERAGE TIME/XACT, AVE. TIME) и др.
Отметим также, что если устройство занято, и одновременно в блок SEIZE, моделирующий момент занятия этого устройства, пытается войти другой транзакт, то блок SEIZE отказывает транзакту во входе. Транзакт ожидает разрешения войти в блок SEIZE в предшествующем блоке. Ожидающий транзакт сможет войти в блок SEIZE, т.е. имитировать занятие устройств, только после того, как транзакт, моделирующий обслуживаемую в устройстве заявку, пройдет через соответствующий блок RELEASE. Если в процессе моделирования в блок SEIZE пытаются одновременно войти несколько транзактов, то в случае одинаковых приоритетов, первым блок SEIZE займет транзакт, который первым пришел на обслуживание (дисциплина FIFO). В случае разных приоритетов блок SEIZE первым займет транзакт с наибольшим приоритетом.
Блок PRIORITYпозволяет изменять уровень приоритета транзактов в процессе моделирования. Первоначальный уровень приоритета транзакта задается операндом Е блока GENERATE при вводе транзакта в модель. Блок PRIORITY имеет операнд А,который и определяет новый уровень приоритета попавшего в него транзакта.
Пример 7. PRIORITY20¾ после прохождения транзактом этого блока его уровень приоритета будет равен 20.
Блок ADVANCE. При рассмотрении блоков SEIZE, RELEASE отмечалось, что после занятия прибора необходимо пропустить некоторое время, требуемое для обслуживания заявки. В течение этого времени движение транзакта должно быть приостановлено. Для реализации задержки в GPSSиспользуется блок ADVANCE. Операнд А определяет среднюю величину задержки, операнд B определяет половину поля допуска; задание распределений в блоке ADVANCE, отличных от равномерного, будет рассмотрено при определении дискретных функций языка GPSS.
Пример 8. ADVANCE 4 ¾ операнд В по умолчанию равен 0. Таким образом, транзакт, попадающий в рассматриваемый блок, задерживается на 4 единицы времени.
В блоке ADVANCE одновременно может находиться произвольное число транзактов. Пребывание различных транзактов в блоке ADVANCE не влияет друг на друга. Блок ADVANCE может использоваться без операндов А и B. В этом случае он используется в качестве фиктивного блока, не вызывая никакой задержки. При моделировании функционирования устройств часто используется связка блоков SEIZE, ADVANCE, RELEASE. Однако использование блока ADVANCE не обязательно связано с использованием блоков SEIZE и RELEASE.
Блоки QUEUE и DEPARTпредназначены для автоматического сбора статистических данных, описывающих ожидание заявок в очереди. Операнд А блоков QUEUE и DEPART обозначает имя соответствующей очереди. Имена очередей назначаются в соответствии с теми же правилами, что и для устройств. Максимальное количество очередей при использовании памяти, равной 64 Кбайт, составляет 70. При входе в блок QUEUE транзакт становится элементом очереди, при входе в блок DEPART транзакт перестает быть элементом очереди. Необходимо помнить о том, что блоки QUEUE и DEPART предназначены только для сбора статистики об очередях, а не для обеспечения возможности ожидания обслуживания в очереди, и в тех случаях, когда такая статистика разработчику модели не нужна, указанные блоки использовать не следует.
По окончании моделирования об очередях распечатывается следующая статистика: максимальное содержимое очереди за время моделирования (MAXIMUM CONTENTS, MAX.), среднее значение содержимого очереди (AVERAGE CONTENTS, AVE. CONT.), общее число входов в очередь (TOTAL ENTRIES, ENTRY), число входов в очередь без последующего ожидания (нулевые входы) (ZERO ENTRIES, ENTRY(0)), процент нулевых входов от общего числа входов (PERCENT ZEROS),среднее время, проведенное в очереди с учетом нулевых входов (AVERAGE TIME/UNIT, AVE.TIME), среднее время, проведенное в очереди без учета нулевых входов ($AVERAGE TIME/UNIT, AVE.(-0)) и т.п.
Блок TRANSFERиспользуется для перехода транзактов в блок, отличный от последующего. Рассмотрим работу блока TRANSFER в режиме безусловной передачи и в режиме статистической передачи. В режиме безусловной передачи операнд А не используется, вместо него ставится "," (запятая). Операнд В определяет имя блока, которому передается управление.
Пример 9. TRANSFER ,СОМ ¾ управление будет передано блоку с именем (меткой) СОМ.
В режиме статистической передачи в качестве операнда А задается вероятность, в соответствии с которой транзакт переходит к блоку, имя которого определено операндом С. В остальных случаях транзакт переходит к блоку, имя которого указано в операнде B. На 19 позиции в режиме статистической передачи всегда должна стоять "." (точка).
Пример 10. TRANSFER .6,СОМ1,СОМ2 ¾ с вероятностью 0,6 транзакт переходит к блоку (пытается войти в блок) с именем СОМ2, и с вероятностью 1 – 0,6 = 0,4 транзакт переходит к блоку (пытается войти в блок) с именем СОМ1.
Сохраняемые величины. Блок SAVEVALUE. Сохраняемые величины существуют на протяжении всего времени моделирования. Они позволяют транзактам обмениваться данными. Начальные значения сохраняемых величин могут быть назначены до начала моделирования, а в процессе моделирования их можно изменять. К сохраняемым величинам можно обращаться из любой точки модели в процессе моделирования. В GPSSони являются стандартными числовыми атрибутами. Стандартные числовые атрибуты ¾ это набор данных, доступных в процессе моделирования. Имя стандартного числового атрибута состоит из двух частей. Первая часть указывает групповое имя и одновременно определяет тип элемента (т.е. устройство, сохраняемая величина и т.п.). Вторая часть определяет конкретный элемент группы (т.е. конкретное устройство или конкретную сохраняемую величину и т.п.) и записывается числовым или символическим именем. Если используется символическое имя, то между групповым именем и символическим записывается знак $, в противном случае групповое имя и числовое записываются подряд.
Каждой сохраняемой величине необходимо дать символическое или числовое имя. Различают полусловные и полнословные сохраняемые величины. Полусловные сохраняемые величины могут изменяться от –32768 до +32767, а полнословные от –2147483648 до +214748347. При объеме памяти 64 Кбайт максимальное число полусловных величин равно 50, а полнословных величин равно 100. Сохраняемые величины являются целыми числами. В GPSSпринято, что групповое имя полусловных сохраняемых величин обозначается XH, а полнословных ¾ обозначается X.
Пример 11. X$DATA¾ полнословная сохраняемая величина имеет символическое имя DATA.
ХН3¾ полусловная сохраняемая величина имеет числовое имя, равное 3.
В конце моделирования автоматически распечатываются ненулевые значения сохраняемых величин.
Значение сохраняемой величины в процессе моделирования можно изменить с помощью блока SAVEVALUE. Операнд А определяет символическое или числовое имя изменяемой сохраняемой величины; операнд В определяет новое значение сохраняемой величины. Операнд С предназначен для указания типа сохраняемой величины. Буква Н используется для определения полусловных сохраняемых величин. По умолчанию тип сохраняемой величины ¾ полнословный.
Пример 12. SAVEVALUE DATA,20¾ полнословной сохраняемой величине с символическим именем DATA присваивается значение, равное 20.
Блок SAVEVALUE можетработать в режиме приращения иуменьшения. В режиме приращения значение операнда B прибавляется к значению сохраняемой величины, определенной операндом А. В режиме вычитания значение операнда B вычитается из значения сохраняемой величины, определенной операндом А . Режимы приращения и вычитания задаются с помощью знаков соответственно + или – между операндом А и операндом B до запятой, разделяющей эти операнды.
Пример 13. SAVEVALUEDATA+,1к значению полнословной сохраняемой величины с символическим именем DATA прибавится 1.
Параметры транзактов. Блок ASSIGN. Параметры транзакта ¾ это стандартные числовые атрибуты, принадлежащие транзакту. Каждый транзакт может иметь до 100 параметров. Групповое имя параметров транзакта как стандартного числового атрибута обозначается символом Р. Числовое имя (вторая часть стандартного числового атрибута) может принимать значения от 1 до 100.
Пример 14. P22 ¾ ссылка производится на 22-й параметр транзакта. Количество параметров задается при генерации транзактов операндом F блока GENERATE. По умолчанию количество параметров транзакта равно 12.
Значениями параметров транзакта могут быть целые числа cо знаками плюс или минус. Максимальное значение определяется типом параметров, который указывается при генерации транзакта в параметре G блока GENERATE. По умолчанию тип параметров ¾ полусловный (диапазон изменения значений параметров транзакта равен ±32767). Для задания полнословного типа (диапазон изменения значений параметров транзакта равен ±241748347) необходимо использовать символ F . Первоначальное значение всех параметров равно 0. Параметры транзакта можно использовать в качестве операндов блоков модели (см. пример №15).
При моделировании транзакты проходят через блоки модели. Если в качестве операндов блока используются параметры транзакта, то выбираются значения параметров того транзакта, который проходит через данный блок модели. В процессе моделирования параметрам транзакта можно присваивать различные значения с помощью блока ASSIGN, Параметр А блока ASSIGN определяет номер параметра транзакта, которому присваивается значение, соответствующее операнду.
Пример 15. ASSIGN 6,8.6-му параметру присваивается значение, равное 8.
Блок ASSIGN может работать в режиме приращения и уменьшения. В режиме приращения значение параметра, номер которого задан в операнде А, увеличивается на величину, заданную операндом B. В режиме уменьшения значение параметра, номер которого задан в операнде А, уменьшается на величину, заданную операндом. Для обозначения режимов приращения и уменьшения используются соответственно знаки + и –, стоящие между операндом А и операндом B до запятой, разделяющей эти операнды.
Пример 16. ASSIGN 8+,5 ¾ содержимое 8 параметра увеличится на значение, равное 5.
Блок TESTможет использоваться либо в режиме отказа, либо в режиме условного перехода. Ниже рассматривается работа блока TEST в режиме условного перехода. В поле операции, начиная с 8 позиции, записывается служебное слово GPSS TEST ичерез пробел вспомогательная операция. В качестве вспомогательной операции могут использоваться символы G, GE, E, NE, L, LE, означающие соответственно >, ≥, =, ≠, <, ≤. В качестве операндов А и B используются сравниваемые величины. Операнд С определяет имя блока (метку), к которому должен перейти транзакт в случае невыполнения условия. При выполнении условия транзакт переходит к следующему блоку.
Пример 17. TEST GE P2,X3,MET ¾если значение 2-го параметра больше или равно 3-й сохраняемой величине, то транзакт переходит к следующему блоку. В противном случае, транзакт перейдет к блоку с именем МЕТ.
1.3.4. Вспомогательные блоки
Задание функций распределения. Оператор FUNCTION. Функции f распределения, отличного от равномерного, задаются в GPSS ввиде их кусочно-постоянной аппроксимации, как это показано на рис. 3. Здесь на оси абсцисс отложены значения случайной величины P, равномерно распределенной на интервале [0,1], используемой в качестве аргумента для аппроксимирующей функции. Значения Р1, P2,…,Pi,…, 1 ¾ суть правые границы участков кусочно-постоянной аппроксимации исходной функции f. Количество правых границ точно соответствует числу участков аппроксимации, а следовательно, и значений аппроксимирующей функции. Для задания аппроксимирующих значений используется оператор FUNCTION. Функции GPSSявляются стандартными числовыми атрибутами с групповым именем FN. Функции могут иметь имена как символические, так и числовые. Символические имена могут состоять не более, чем из 5 символов, причем первые три символа должны быть алфавитными. Имена функций задаются в позициях 2÷6. В поле операции, начиная с позиции 9, записывается служебное слово FUNCTION. В поле операндов задается номер генератора случайных чисел, позволяющего получить равномерно распределенные числа в интервале от 0 до 1 и число значений, которые может принимать случайная переменная. Операнд А оператора FUNCTION записывается в виде RNj; где j = 1…8 ¾ номер генератора случайных чисел. При моделировании можно попользовать любой из восьми генераторов случайных чисел. Операнд B состоит из символа D и числа значений, которые может получить случайная переменная. В следующей записи, начиная с первой позиции, задается кусочно-постоянная аппроксимация функции f в виде последовательности пар чисел. В каждой паре на первом месте задается аргумент, в качестве которого здесь принимается правая граница интервала аппроксимации (Pi) и затем отделенное от него запятой соответствующее числовое значение аппроксимирующей функции. Пары значений отделяются друг от друга символом / (косой чертой) и должны располагаться в порядке возрастания значений аргумента Pi.
Пример 18. Случайная величина принимает значение 4 с вероятностью P1= 0,2, значение 8 с вероятностью Р2 = 0,5 и значение 5 с вероятностью Р3= 0,3. Определить соответствующую функцию на языке GPSS:
VER FUNCTION RN4,D3
.2,4/.7,8/1,5
Здесь .2 ¾ правая граница интервала аппроксимации функции VER на котором она принимает значение 4; .7 ¾ правая граница интервала (.7 = .2 + .5), на котором функция VER равна 8 и, наконец, 1 ¾ правая граница последнего интервала (1 = .2 + .5 + .3),на котором функция VER равна 5. На месте операнда А указан используемый здесь 4-й генератор случайных равномерно распределенных чисел (RN4), а на месте операнда B ¾ D3 ¾размерность (число пар значений) массива задания функции VER. На рис 4,а показан вид заданной функции VER. Из-за свойств равномерного распределения подобное задание не является единственным. Так, на рис. 4,б показан другой способ задания функции, VER, полностью идентичный первому. В этом случае запись с парами значений будет содержать
.3,5/. 5,4/1,8
Распределение, отличное от равномерного, в блоке ADVANCE указывается следующим образом: в качестве операнда А задается соответствующая функция распределения. Операнд B задается равным 0 или принимается по умолчанию.
Пример 19. Время задержки определяется в соответствии с функцией распределения, заданной в предыдущем примере. Определить блок ADVANCE:
ADVANCE FN$VER
Знак $ используется для разделения группового имени FN и символического имени VER.
Задание начальных значений сохраняемым величинам. Карта INITIAL. Для присвоения сохраняемым величинам начальных значений используется карта INITIAL. Начиная с 8-й позиции, в поле операторов записывается служебное олово GPSS INITIAL. В поле операторов, начиная с 19-й позиции, записывается конструкция вида: имя сохраняемой величины, значение. Имя сохраняемой величины состоит из группового имени и символического или числового.
Пример 20. INITIAL X$REM,25 ¾ полнословной величине с символическим именем REM присваивается начальное значение, равное 25.
С помощью одной карты INITIAL можно определить начальные значения для нескольких сохраняемых величин. В этом случае для разделения пар ¾ имя сохраняемой величины и значение ¾ используется знак / (косой чертой).
Пример 21. INITIALXH$PAR1,35/Х7,83 ¾ полусловной сохраняемой величине с символическим именем PAR1 присвоится начальное значение 35, а полнословной сохраняемой величине с числовым именем 7 присвоится начальное значение, равное 83.
В модели разрешается использовать несколько записей INITIAL, которые рекомендуется располагать до блока GENERATE. Перед началом моделирования интерпретатор GPSSобнуляет значения сохраняемых величин.
Арифметические переменные. Карта VARIABLE. Арифметические переменные являются стандартными числовыми атрибутами. Групповое имя для арифметических переменных ¾ V. Арифметические переменные в GPSSбывают целыми и действительными. Ниже будут рассматриваться целые арифметические переменные. Целые арифметические переменные задаются с помощью карты VARIABLE. В поле имени задается имя переменной. Имя может содержать от трех до пяти алфавитно-цифровых символов, причем первые три символа должны быть буквами. В поле операции записывается служебное олово GPSS VARIABLE. В поле операндов определяется арифметическое выражение. Пробелы при записи арифметических выражений не допускаются. Арифметическое выражение должно начинаться с 19 позиции. Арифметическое выражение представляет собой стандартные числовые атрибуты, константы, соединенные знаками арифметических операций: +, –, *, /,@, означающие соответственно сложение, вычитание, умножение, деление, деление по модулю. При делении результатом операции является целая часть частного. При делении по модулю результатом операции является остаток. Отметим, что все данные, участвующие в арифметическом выражении, должны быть целыми. Результатом выполнения арифметического выражения также являются целые числа. Знак "–" в арифметическом выражении используется только в качестве бинарного. Арифметические выражения вычисляются в той точке модели, где происходит обращение к соответствующему стандартному числовому атрибуту.
Пример 22. PARM VARIABLE X$DATA+5
ADVANCE V$PARM
При входе транзакта в блок ADVANCE онзадерживается на количество единиц времени, определенное с помощью карты VARIABLE. Сначала определяется значение арифметической переменной PARM как суммы сохраняемой величины с символическим именем DATA иконстанты, равной 5, а затем определенное значение подставляется в качестве операнда А в блок ADVANCE.
1.4 Задание
Составить программу моделирования для имитации функционирования комплекса технических средств САПР в соответствии с вариантом задания.
Принять, что после обработки на АРМ заявка c вероятностью 0,7 поступает на терминал, а с вероятностью 0,3 передается через КММ на ЦВК. Для вариантов "а)" следует определить количество заявок, обработанных за заданный промежуток времени. Для вариантов "б)" ¾ определить время, в течение которого будет обработано заданное число заявок. Проанализировать собранную статистику.
ti ¾ интервал времени, через который заявки поступают в систему (на АРМi) ∆ti ¾ время поступления первой заявки (если не равно 0) ni ¾ количество заявок tki ¾ время обслуживания на КММ заявки, приходящей с АРМi T ¾ время обработки заявок
Требования к оформлению курсовой работы
Курсовая работа должна содержать:
1. задание;
2. структурную схему моделируемой системы;
3. структурные схемы алгоритмов моделирования процессов в имитируемой системе;
4.описание имитационной модели;
5. программу моделирования на GPSS;
6. результаты моделирования и их анализ.
Варианты заданий
1) Система включает в себя устройства T1, T2, T3, APM1, APM2, APM3, КММ, ЦВК. Порядок обработки заявок:
КММ
заявки, поступившие с АРМ1, заявки, поступившие с АРМ2 и АРМ3 (равноприоритетны), заявки любого типа, поступившие с ЦВК (равноприоритетны).
Ti (i = 1,2,3)
заявки, поступившие с ЦВК, заявки, поступившие с АРМi
Все заявки, поступающие на АРМi (i = 1,2,3), равноприоритетны.
Систему покидает:
¾ каждая 5-я заявка, поступившая на T1 с ЦВК;
¾ каждая 4-я заявка, поступившая на T2 с ЦВК;
¾ каждая 3-я заявка, поступившая на T3 с ЦВК;
(до обработки на Ti)
Максимально возможная длина очереди к ЦВК равна 10. КММ отбрасывает (уничтожает) заявки, приходящие с АРМi, если очередь на ЦВК максимальной длины.
Условие окончания моделирования
Время: 15000 тактов
Количество обработанных на АРМ3 заявок достигло 500
Определить
Количество заявок, обработанных на ЦВК на момент, когда систему покинет первая заявка
Количество заявок каждого типа, прекративших обслуживание
2) Система включает в себя устройства T1, T2, T3, APM1, APM2, APM3, КММ, ЦВК. Порядок обработки заявок:
КММ
заявки, поступившие с АРМ3, заявки, поступившие с АРМ2, заявки, поступившие с АРМ1, заявки третьего типа, поступившие с ЦВК, заявки второго типа, поступившие с ЦВК, заявки первого типа, поступившие с ЦВК
Ti (i = 1,2,3)
заявки, поступившие с АРМi, заявки, поступившие с ЦВК
Все заявки, поступающие на АРМi (i = 1,2,3), равноприоритетны.
Заявки, поступающие на АРМi, уничтожаются без обработки, если очередь к АРМi уже содержит хотя бы одну заявку
Максимально возможная длина очереди к каждому Ti равна 2. Заявка уничтожается до обработки на Ti, если очередь к Ti максимальной длины.
Условие окончания моделирования
Время: 13000 тактов
Суммарное количество обработанных на АРМ1 и АРМ2 заявок достигло 1000
Определить
Количество заявок, обработанных на ЦВК на момент, когда 20 заявок прошли через АРМ2
Количество обработанных и уничтоженных заявок для каждого Ti (i = 1,2,3)
4) Система включает в себя устройства T1, T2, T3, APM1, APM2, APM3, КММ, ЦВК. Порядок обработки заявок:
КММ
в соответствии с алгоритмом FIFO, а при одновременном поступлении заявок в следующем порядке: заявки любого типа, поступившие с ЦВК (равноприоритетны), заявки, поступившие с АРМ3, заявки, поступившие с АРМ2, заявки, поступившие с АРМ1
Максимально возможная длина очереди к ЦВК равна 5. Если очередь на ЦВК максимальной длины, заявка уничтожается без обслуживания на ЦВК
Каждая 10-я заявка после обработки на ЦВК покидает систему
Условие окончания моделирования
Время: 12000 тактов
Количество обработанных на АРМ2 заявок достигло 500
Определить
Количество уничтоженных заявок: всего и поступивших с каждого из АРМi (i = 1,2,3) в отдельности
Количество заявок, обработанных на каждом из Ti (i = 1,2,3) на момент, когда систему покинет первая заявка
5) Система включает в себя устройства T1, T2, T3, APM1, APM2, APM3, КММ, ЦВК. Порядок обработки заявок:
КММ
в соответствии с алгоритмом FIFO, а при одновременном поступлении заявок в следующем порядке: заявки первого типа, поступившие с ЦВК, заявки, поступившие с АРМ1, заявки второго типа, поступившие с ЦВК, заявки, поступившие с АРМ2, заявки третьего типа, поступившие с ЦВК, заявки, поступившие с АРМ3
Ti (i = 1,2,3)
заявки, поступившие с ЦВК, заявки, поступившие с АРМi
Все заявки, поступающие на АРМi (i = 1,2,3), равноприоритетны.
Параметры модели
Вариант а)
Вариант б)
Поступление заявок в систему
t1 = 220 ± 55 t2 =190 ± 10 t3 = 160, n3 = 54
t1 = 140 ± 35 t2 = 190 ± 10 t3 = 230 ± 10
T1
T2
T3
T = 25 ± 10
T = 27 ± 7
T = 28 ± 5
APM1
APM2
APM3
T = 20 ± 4
T = 25 ± 5
T = 28 ± 8
ЦВК
T = 48 ± 7
КММ
Условия окончания обслуживания заявок
Максимальная длина очереди к ЦВК равна 10. Если очередь на ЦВК максимальной длины, заявка уничтожается без обслуживания на ЦВК
После обработки на Ti уничтожается каждая 4i-тая заявка
Условие окончания моделирования
Время: 17000 тактов
Количество обработанных на ЦВК заявок достигло 250
Определить
Количество заявок, обработанных на ЦВК на момент, когда систему покинет первая заявка
Количество обработанных и уничтоженных заявок для каждого Ti (i = 1,2,3)
6) Система включает в себя устройства T1, T2, T3, APM1, APM2, APM3, КММ, ЦВК. Порядок обработки заявок:
КММ
в соответствии с алгоритмом FIFO, а при одновременном поступлении заявок в следующем порядке: заявки третьего типа, поступившие с ЦВК, заявки второго типа, поступившие с ЦВК, заявки первого типа, поступившие с ЦВК, заявки, поступившие с АРМ1, АРМ2, АРМ3 (равноприоритетны)
После обработки на КММ систему покидает каждая 4-я заявка, направляющаяся на ЦВК
Заявки, поступающие на АРМ3, уничтожаются, если на АРМ3 уже обработано 100 заявок
Условие окончания моделирования
Время: 16000 тактов
Суммарное количество обработанных на АРМ1, АРМ2 и АРМ3 заявок достигло 900
Определить
Количество уничтоженных заявок: всего и поступивших с каждого из АРМi (i = 1,2,3) в отдельности
Количество заявок, обработанных на ЦВК: всего и поступивших с каждого из АРМi (i = 1,2,3) в отдельности
7) Система включает в себя устройства T1, T2, T3, APM1, APM2, APM3, КММ, ЦВК. Порядок обработки заявок:
КММ
заявки, поступившие с АРМ1, АРМ2, АРМ3 (равноприоритетны), заявки третьего типа, поступившие с ЦВК, заявки второго типа, поступившие с ЦВК, заявки первого типа, поступившие с ЦВК
Ti (i = 1,2,3)
заявки, поступившие с ЦВК, заявки, поступившие с АРМi
Все заявки, поступающие на АРМi (i = 1,2,3), равноприоритетны.