Norenkov.Osnovy.Avtomatizirovannogo.Proektirovania.2002 (525024), страница 32
Текст из файла (страница 32)
Это, например, АС1 — текущее время, FN — функция,Р — параметр транзакта (каждый транзакт может иметь не более L параметров, обычно L— 12), К — константа, RN1 — случайная величина, равномернораспределенная в диапазоне [0, 1], S — объем занятой памяти в накопителе,F — состояние устройства, Q — текущая длина очереди и др. При этом ссылкина идентификаторы записываются в виде1343.6. Математическое обеспечение анализа на системном уровне<СЧА>$<идентификатор>,например, QSORD означает очередь ORD или FN$COS — ссылка на функциюCOS.Рассмотрим наиболее часто встречающиеся операторы, сопровождая знакомство с ними простыми примерами моделей.Источники заявок обычно описываются блокомGENERATE A,B,C,D,Eгде А и В служат для задания интервалов между появлениями заявок, при этомможно использовать один из следующих вариантов: 1) интервал — равномернораспределенная в диапазоне [А - В, А + В] случайная величина; 2) интервал —значение функции, указанной в В, умноженной на А; С — задержка в выработкепервого транзакта; D — число вырабатываемых источником заявок; Е — приоритет заявок.
Если D пусто, то число вырабатываемых транзактов неограниченно. Например:GENERATE 6,FN$EXP,, 15Этот оператор описывает источник, который вырабатывает 15 транзактов синтервалами, равными произведению числа 6 и значения функции ЕХР;GENERATE 36,12Здесь число транзактов неограниченно, интервалы между транзактами — случайные числа в диапазоне [24, 48].Функции, на которые имеются ссылки в операторах, должны быть описаныс помощью блока следующего типа:М FUNCTION A,Bза которым следует строка, начинающаяся с первой позицииХД/Х^/Х^/...^^Здесь метка М — идентификатор функции, А — аргумент функции, В — типфункции, Х_ и Y - координаты узловых точек функции, заданной таблично.Например:ЕХР FUNCTION RN1.C120,0/0.2,0.22/0.4,0.51/0.5,0.6/0.6,0.92/... и т.
д.Это описание непрерывной (С) функции ЕХР, заданной таблично 12 узловымиточками, аргументом является случайная величина (RN1), равномерно распределенная в диапазоне [0,1]; илиВВВ FUNCTION *4,D61,2/2,5/3,11/4,20/5,18/6,12/7,9Дискретная (D) функция ВВВ задана шестью узловыми точками, аргумент—четвертый параметр транзакта, возбудивший обращение к функции ВВВ.Транзакты могут порождаться и оператором размноженияSPLIT A,B,Cкогда в него входит некоторый транзакт. При этом создается семейство транзактов, включающее основной (вошедший в блок) транзакт и А его копий.1353. Математическое обеспечение анализа проектных решенийОсновной транзакт переходит в следующий по порядку блок, а его копии — вблок с меткой В.
Для различения транзактов параметр С основного транзактаувеличивается на 1, а транзактов-копий — на 2, 3, 4,... и т. д.Обратное действие — сборка транзактов — выполняется операторомASSEMBLE Aсогласно которому первый из вошедших в блок транзактов выйдет из него толькопосле того, как в этот блок придут еще А — 1 транзактов того же семейства,или операторомGATHER Aотличающимся от предыдущего оператора тем, что из блока выходят все Атранзактов.ОператорSEIZE Aописывает занятие устройства А транзактом, а операторRELEASE A— освобождение устройства А от обслуживания.Задержка в движении транзакта по СМО описывается операторомADVANCE A,Bгде А и В имеют тот же смысл, что и в операторе GENERATE.D П р и м е р 1. Обслуживание транзакта в устройстве WST продолжительностью а единиц времени, где а — равномерно распределенная в диапазоне [7,11] случайная величина, описывается следующим фрагментом программы:SEIZE WSTADVANCE 9,2RELEASE WSTDАналогично описывается занятие транзактом памяти в накопителеENTER A,Bза исключением того, что здесь помимо имени накопителя (А) указываетсяобъем занимаемой памяти (В).
Освобождение В ячеек памяти в накопителе Авыполняется операторомLEAVE A,BДля накопителей в модели нужно задавать общий объем памяти, что делается в следующем описании накопителя:М STORAGE Aгде М — имя накопителя, А — объем памяти.1363.6. Математическое обеспечение анализа на системном уровнеЕсли транзакт приходит на вход занятого устройства или на вход накопителя с недостаточным объемом свободной памяти, то он задерживается в очереди к этому устройству или накопителю.
Слежение за состоянием устройств иочередей выполняет интерпретатор. Но если в модели требуется ссылаться надлину очереди или собирать статистику по ее длине, то нужно явное указаниеэтой очереди в модели. Делается это с помощью операторов входа в очередьQUEUE Aи выхода из очередиDEPART Aсогласно которым очередь А увеличивается и уменьшается на единицу соответственно.Движение транзактов выполняется в естественном порядке, изменение этого порядка производится операторами перехода. Оператор условного переходаTESTXXA,B,Cв соответствии с которым переход к оператору, помеченному меткой С,происходит, если не выполняется условие А XX В, где XX е {E,NE,L,LE,G,GE};Е — равно; NE — не равно; L — меньше; LE — меньше или равно; G — больше;GE — больше или равно (XX размещается в позициях 13 и 14).D П р имер2.
Приходящие пользователи ожидают обслуживания, если длинаочереди не более 4, иначе от обслуживания отказываются. Соответствующийфрагмент программы:TESTLE Q$STR,K4,LBLQUEUE SIRSEIZE POINTDEPART STRADVANCE 50,16RELEASE POINTLBL TERMINATE 1DВ примере 2 использован оператор выхода транзактов из СМОTERMINATE Aсогласно которому из итогового счетчика вычитается число А.С помощью итогового счетчика задается длительность моделирования. Вначале исполнения программы в счетчик заносится число, указанное в операнде А оператораSTART А„СМоделирование прекращается, когда содержимое счетчика будет равно нулюили меньше нуля.
Операнд С — шаг вывода статистики на печать.1373. Математическое обеспечение анализа проектных решенийП Пр им ер 3. Общая структура программы на GPSS имеет видSIMULATE<описания, в том числе функций и накопителей ><операторы, моделирующие движение транзактов>DSTART А„СEND.Оператор безусловного переходаTRANSFER ,Bгде В — метка оператора, к которому следует переход.Используется ряд других разновидностей оператора TRANSFER.
Например:TRANSFER P,B,CПереход происходит к оператору с меткой, равной сумме значения параметраВ транзакта и числа С.TRANSFER FN,B,CТо же, но вместо параметра транзакта слагаемым является значение функцииВ.TRANSFER PICK,B,CЭто оператор равновероятного перехода к операторам, метки которых находятся в интервале [В, С]. Важное место в СМО занимает переход по вероятностиTRANSFER A,B,Cгде А — вероятность перехода к оператору с меткой С, переход к оператору сметкой В будет происходить с вероятностью 1 - А.Оператор перехода в циклических процедурахLOOP A,Bгде А — число повторений (витков) цикла, В — метка оператора, с которогоначинается повторяющаяся часть.D Пр и м е р 4. Заказы, поступающие в СМО в случайные моменты временив диапазоне [20,40], выполняет сначала бригада WGR1, затем параллельноработают бригады WGR2 и WGR3, каждая над своей частью заказа.
Заданыэкспоненциальные законы для времен выполнения работ бригадами WGR1,WGR2 и WGR3 с интенсивностями 0,05, 0,1 и 0,125 соответственно. Моделирование нужно выполнить на временном отрезке, соответствующем выполнению1000 заказов.Программа:SIMULATEЕХР FUNCTION RN1.C120,0/.2,.22//.4,.51/.5,.6/.6,.92/.7,1.2/.8,1.61/.9,2.3/.95,3/.99,4.6/.999,6.9/1,ЮООGENERATE 30,10SEIZE WGR11383.6.
Математическое обеспечение анализа на системном уровнеADVANCE 20,FN$EXPRELEASE WGR1SPLIT 1,MET1SEIZE WGR2ADVANCE 10,FN$EXPRELEASE WGR2TRANSFER , MET2MET1 SEIZE WGR3ADVANCE 8,FN$EXPRELEASE WGR3MET2 ASSEMBLE 2TERMINATE 1START 1000,, 1000END.DВ этом примере использован экспоненциальный закон распределения с плотностьюгде X — интенсивность. Функция распределения экспоненциального законагF(T) = \p(f) dt=l- exp(- X 7).оИз рис. 3.20 ясно, что поскольку искомыми являются значения Р случайной величины Т, то, задавая значение а как равномерно распределенной в диапазоне[0, 1] случайной величины, по формуле(3.47)(3 = (1/Х)1п(1/(1 - а))находим искомое значение.
Именно в соответствии с (3.47) в операторахADVANCE (см. пример 4) множителями были значения 1/Х.Приведем еще несколько операторов языка GPSS.Оператор изменения параметров транзактовASSIGN A,Bгде А — номер параметра транзакта, В — присваиваемое ему значение.
В оператореF(T)ASSIGN A+,B1параметр А увеличивается на значение В, а в оператореаASSIGN А-Вуменьшается. Расширение возможностей управления движением транзактов достигается благор ' ч in <bv*дарятаким операторам,какмvFF'экспоненциального законаLOGIC_X Араспределения1393. Математическое обеспечение анализа проектных решенийкоторый при X = S устанавливает переключатель А в единичное состояние, апри X = R сбрасывает его в нулевое состояние;GATE_XXA,Bкоторый при XX = LR и А = 1 или при XX = LS и А = 0 передает транзакт оператору с меткой В (или задерживает его в блоке GATE, если поле В пусто), апри других сочетаниях XX и А направляет к следующему оператору.