![]() Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
![]() Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
![]() |
Generate a,b,c,d,e
Операнды A,B,C,D,E имеют следующий смысл: A - определяет математическое ожидание времени между последовательными приходами транзактов в блоке; B - задает половину поля допуска (или половину размаха) интервалов времени прибытия; C - задает смещение интервалов - момент времени, в который должен появиться первый транзакт. После этого первого прихода все остальные приходы транзактов возникают в соответствии с распределением интервала времени, заданными операндами A и B; D - задает граничное значение общего числа транзактов, которые могут войти в модель через данный блок GENERATE в течение времени моделирования. Когда это число достигнуто, данный блок перестанет быть активным; E - устанавливает уровень приоритета каждого из транзактов, входящих в модель через данный блок GENERATE. В GPSS существует 128 уровней приоритетов, которые задаются значениями от 0 до 127. Чем больше число, тем выше приоритет.
PRIORITY – изменение приоритета PREEMPT A – позволяет прервать обработку транзакта на устройстве A, если приоритет обрабатываемой заявки ниже, чем у активного транзакта RETURN A – снимает прерывание с устройства A, прерывающая заявка сама прервана быть не может 2.1.7 Логические ключи Ключи используются для управления движением транзакта LSj = {1,0} 1 – “SET” 0 – “RESET” 2.1.8 Переменные и сохраняемые значения GPSS сопоставляет переменные выражениям над константами, стандартными числовыми атрибутами, функциями, содержащими арифметические и логические операторы VARIABLE – целое BVARIABLE – логическое FVARIABLE – действительное Сохраняемые значения SAVEVALUE – сохраняемая скалярная величина MSAVEVALUE – сохраняемая матрица 2.1.9 Накопительные статистики Ожидание возникает в модели при блокировке, но измерение длительности ожидания начинается при входе в блок QUEUE (регистратор очереди). Очереди: QUEUE – блок регистрации очереди DEPART – блок окончания ожидания в очереди Таблицы общего назначения: MARK – позволяет запомнить системное время TABULATE – блок табулирования TABLE – команда описания таблицы Трассировка: TRACE – включить индикатор трассировки UNTRACE – выключить трассировку Генерация случайных чисел: RNj – выдает целое число от 0 до 999, j – номер генератора Стандартные числовые атрибуты могут использовать не только для статистики, но и для управления. Гистограмма распределения времени ожидания в очереди должна быть описана таблицей QTABLE. 2. 2 Синтаксис языка GPSS Модель в GPSS определяется последовательностью модельных операторов. Модельным оператором может быть GPSS (General Purpose Simulation System) оператор или процедура на языке PLUS (Programming Language Under Simulation). GPSS оператор – либо команда, либо блок. Каждый GPSS оператор записывается в одной строке до 250 символов. Оператор составлен из областей, которые разделены пробелом или разделителем <номер строки> <метка > <действие > <операнды >< комментарии>, если комментарий с новой строки, то *. 2.3 Обзор основных команд и блоков GPSS-команды для определения: BVARIABLE – описание логической переменной COND1 BVARIABLE (BV$CLK’AND’BV$PHASE2) VARIABLE – определение переменной Var1 VARIABLE 5#LOG(Q$WaitingLine) EQU – определение константы Price EQU 19.95 MATRIX – определение матрицы Inventory MATRIX,1000,5 FUNCTION – определение функции Output FUNCTION V$Input,C3 1.1,10.1/20.5,98.7/33.3,889.2 Ran1 FUNCTION RN1,D5 0,0/.2,7.2/.4,6.667/.8,9.92/1.0,10 STORAGE – определение памяти MotorPool STORAGE 20 TABLE – определение таблицы SalesTable TABLE P$Price,9.95,10,10 QTABLE – определение таблицы для очередей WaitTimes QTABLE WaitingLine,100,100,10 GPSS-команды управления моделированием: CLEAR – уничтожение статистики и всех транзактов RESET – обнуление статистики имитации EXIT – окончание сеанса GPSS HALT – остановка симуляции и удаление всех команд в очереди CONTINUE – возобновление моделирования START – установка значение счетчика завершения и начало имитации STEP – выполнение конечного числа блоков STEP 1 STOP – установка условия остановки STOP 100,52 Остальные GPSS-команды: INCLUDE – включение файла в модуль INCLUDE “SAMPLE1.TXT” INITIAL – инициализация ключей, сохраняемых значений и матриц INITIAL MX$Inventory(Part_39,Stocklevel),200 RMULT – установка стартовых значений генераторов RMULT 453,746,111 SHOW – вычисление и вывод значения выражения SHOW C1 GPSS-блоки: GENERATE – создание транзактов GENERATE Mean,Half-range,Start,Limit,Priority TERMINATE – уничтожение транзакта и уменьшение счетчика окончания QUEUE – увеличение количества элементов в очереди DEPART – выход из очереди ENTER – занятие памяти LEAVE – освобождение памяти SEIZE – установка владельца устройства RELEASE – освободить устройство PRIORITY – изменение приоритета транзакта PREEMPT – замена владельца устройства RETURN – освобождение устройства, занятого блоком PREEMPT FAVAIL – установка устройства доступным FUNAVAIL – установка устройства не доступным SAVAIL – установка памяти доступной SUNAVAIL – установка памяти не доступной SAVEVALUE – установка значения сохраняемой величины MSAVEVALUE – установка значения в элемент матрицы GATE – проверка сущностей и изменение направления потока транзактов TRANSFER – перемещение на специальный блок TRANSFER,New_Place TRANSFER.75,,New_Place TRANSFER BOTH,First_Place,Second_Place TRANSFER ALL,First_Place,Last_Place,2 TEST – проверка арифметических условий и изменение потока транзактов TEST G C1,70000 TEST G Q$Teller1_Line,Q$Teller2_Line,Teller1 LOOP – уменьшение параметра и переход на блок, если результат не равен нулю (цикл) LOOP Customer_Count,Start_Over ADVANCE – помещение транзакта в цбс ADVANCE 101.6,50.3 ASSIGN – изменение параметров транзакта ASSIGN 2000,150.6 ASSIGN 2000+,-3 INDEX – изменение параметра 1 транзакта INDEX 2,11.7; 11.7+P2->P1 COUNT – помещение количества сущностей в параметры транзакта COUNT SF FullCount,Warehouse1,Warehouse13 SELECT – помещение номера выделенного объекта в параметр транзакта Bin1 STORAGE 11 Bin2 STORAGE 1000 Bin3 STORAGE 150 ... SELECT SNF,3,Bin1,Bin3,,,No_Room SPLIT – создание связанного транзакта SPLIT 3,Pro,17 ASSEMBLE – ожидание и уничтожение связанных транзактов ASSEMBLE 2 GATHER – ожидание связанных транзактов GATHER 2 MATCH – блок синхронизации A_Is_Done MATCH B_Is_Done B_Is_Done MATCH A_Is_Done ADOPT – изменение номера ансамбля ADOPT 2000 OPEN – инициализация потока данных OPEN (“MYFILE.TXT”),2,Error_Block WRITE – посылка значения в поток данных WRITE “New Line 20”,1,Done READ – взятие очередной строки из потока данных READ Text_Parm,1,Done SEEK – изменение указателя строки в потоке данных SEEK 20,1 CLOSE – закрытие потока данных CLOSE Error_Parm,2 LOGIC – изменение логического ключа LOGIC S PowerSwitch MARK – помещение системного времени в параметр транзакта MARK Beginning TABULATE – обновление таблицы TABULATE Sales TRACE – метка активного транзакта индикатором слежения UNTRACE – выключение индикатора слежения PLUS – вычисление PLUS-выражения PLUS (normal(2,100,2)+100.26),Result_Parm
3. Примеры моделей систем массового обслуживания, реализованных на GPSS: одноканальные и многоканальные системы, приоритетные системы, моделирование выхода из строя элементов систем. Многоканальные сисетмы:
Chans STORAGE 3 GENERATE (EXPONENTIAL(1,0,1)) QUEUE Wait ENTER Chans,1 DEPART Wait ADVANCE 27 LEAVE Chans,1 TERMINATE GENERATE 5000½1 TERMINATE 1
Приоритетная система обслуживания Work VARIABLE (GAMMA(2,0,P2(3,3))) GENERATE (EXPONENTIAL(1,0,5.0))½½3 ASSIGN 1,1;тип транзакта ASSIGN 2,0.3;время обслуживания Common QUEUE Sque PREEMPT Chan, PR, Rept, 100 SAVEVALUE Time, V$Work ASSIGN 5, X$Time Wait ADVANCE P5 TRANSFER,Out Rept ASSIGN 5, V$Work TRANSFER,Wait Out DEPART Sque RETURN Chan TERMINATE *** GENERATE (EXPONENTIAL(1,0,3.33))½½2 ASSIGN 1,2 ASSIGN 2,0.6 TRANSFER,Common *** GENERATE (EXPONENTIAL(1,0,2.50))½½1 ASSIGN 1,3 ASSIGN 2,0.9 TRANSFER,Common *** GENERATE 5000½½1 TERMINATE 1
Date: 2015-09-05; view: 409; Нарушение авторских прав |