Смекни!
smekni.com

Методические указания по курсовому проектированию по курсу «Исследование систем управления» кафедра информационных технологий в экономике и бизнесе (стр. 11 из 20)

Рассмотрим пример записи функции :

SERVTIME FUNCTION RN7,D5

.2,4/.55,7.5/.7,10.5/.8,13.5/1,16.5

В примере описывается ОУ FUNCTION, имеющая ярлык SERVTIME, равномерно –распределённое время обслуживания берётся с ГСЧ 7, распределение времени дискретно, функция имеет 5 пар точек, х - представляет собой накопленную частоту, а у- время обслуживания. Необходимо отметить, что начало и конец записи точек функции не выделяется никакими символами, пары точек отделяются слэшем, значения внутри пары разделяются запятой, 0 не пишется, а запись начинается с точки.

INITIAL( Начальное значение )

Этот ОУ используется для установления начальных значений сохраняемым величинам ( Savevalue ), матричным величинам и логическим переключателям . Формат ОУ INITIAL имеет вид :

< INITIAL символ инициализации[ / символ инициализации ]…>.

В формате под символом инициализации понимается обозначение величины, представляемое как символ величины отделённый от имени величины знаком $, например X$SAM,25 - что значит полнословная сохраняемая величина SAM, имеющая значение 25. Если в качестве начального значения используется выражение, то оно представляется в скобках. При нескольких символах инициализации, они отделяются друг от друга слэшем, который не ставится в начале и конце наименований. Например :

1. INITIAL XH1-XH10,13/XB$SAM-XB$JOE,(5+XH$INIT)

2. INITIAL LS10/LR1-LR5

Из первого примера следует, что в первом символе полусловные сохраняемые величины с 1-ой по 10-ю имеют значение 13, а во втором сохраняемые величины SAM –JOE имеют значение, указанное в скобках, т.е. к полусловному значению сохраняемой величины INIT добавляется 5. Во втором примере, относящимся к логическим переключателям устанавливается, что логический переключатель 10 находится во включённом состоянии, а переключатели с1-го по 5-ый выключены.

RESET(установить, сбросить в нуль)

Этот ОУ похож на ОУ CLEAR, также используется для целей сбора статистических данных, но имеет ряд отличительных черт, так при исполнении ОУ RESET не происходит разрушения транзактов, абсолютное время не обнуляется (обнуляется только относительное время). Использование ОУ RESET эффективно при определении момента времени, когда процесс ИМ становится установившимся .

RMULT (Переустановить )

Этот ОУ используется для управления текущей позицией ГСЧ, вводя данные с помощью ОУ RMULT можно переназначать положение любого ГСЧ, что позволяет достигать статистической независимости ИМ и избегать корреляции между отдельными потоками БСВ. Формат ОУ RMULT имеет вид :

< [label] RMULT A,B,C,D,…. >

label - отсутствует по определению, наличие ярлыка приводит к ошибке.

А- по умолчанию текущее значение ГСЧ1, появление операнда А устанавливает новую текущую позицию для ГСЧ1 (RN1),

В – по умолчанию текущее значение ГСЧ2, появление операнда В устанавливает новую текущую позицию для ГСЧ2 и т.д.

Приведём несколько примеров использования ОУ RMULT :

1. RMULT 50000

2. RMULT ,125000

3. RMULT 25000,,100000

В первом примере устанавливается значение ГСЧ1 равное 50000, остальные остаются неизменными. Во втором примере начальные значения всех ГСЧ остаются неизменными, а новое текущее значение ГСЧ2 равняется 125000 . В третьем примере все ГСЧ сохраняют неизменное положение , кроме первого и третьего .

Положение занимаемое ОУ RMULT в МФ зависит от задач, стоящих перед исследователем. Если необходимо, c целью исключения корреляции, разнести потоки заявок от потоков обслуживания, то ОУ RMULT помещается в первом модуле описания, если нужно провести переназначение между прогонами, то ОУ RMULT помещается в модуле управления после ОУ START.

STORAGE (Запомнить )

Этот ОУ используется для определения ёмкости одной или нескольких памятей. Исполнение ОУ STORAGE (впрочем, как и всех рассмотренных ОУ) происходит только после успешного завершения процесса компиляции, при этом вводится в действие оговорённое число ресурсов ОУ STORAGE . ОУ STORAGE в силу своей специфики должен располагаться в модуле описания, до того как началось движение транзактов, так как после компиляции программа последовательно исполняет все ОУ, стоящие до первого ОУ START. Формат ОУ STORAGE может быть представлен двумя способами :

1. < label STORAGE A >,

Label - не имеет значения по умолчанию, отсутствие ярлыка приводит к ошибке компиляции. Ярлык является идентификатором памяти, ёмкость которой определяется. При этом формате можно определить только одну память.

А - не имеет значения по умолчанию, отсутствие приводит к ошибке компиляции. Операнд определяет ёмкость памяти, т.е. число моделируемых устройств обслуживания. Необходимо иметь в виду, что в этом формате можно использовать одну единицу ёмкости в заданный момент времени.

Приведём примеры записи:

1. SAM STORAGE 10,

2. 3 STORAGE 5.

В первом примере памяти SAM определяется ёмкость 10 , во втором примере памяти за номером 3 определяется ёмкость 5.

Используя многоканальное обслуживание можно не определять ОУ STORAGE, в этом случае ёмкость по умолчанию практически равна бесконечности ( а именно , 2147483647 ).

При записи во втором формате :

2. < STORAGE Sname1,A/Sname2, B/Sname3,C … >

можно определять несколько памятей сразу. Определитель памяти представляет пары обозначений, разделённых запятой, между собой пары отделяются слэшем. Вначале пишется символ памяти, а затем её имя – первый член пары, после запятой пишется операнд А,В,… , характеризующий ёмкость памяти- второй член пары. Символ S может быть отделён от имени памяти символом $ или имя может быть включено в круглые скобки, памяти одинаковой ёмкости могут записываться через тире.

Приведём комбинированный пример записи ОУ STORAGE

STORAGE S1,10/S$CORE,5/S(SAM)-S(JOE),15

Комментарий : все виды записей воспринимаются программой одинаково и могут комбинироваться.

В примере памяти S1 приписывается ёмкость 10, памяти S с именем CORE приписывается ёмкость 5, а ряд памятей с именами S(SAM) –S(JOE) имеют одинаковую ёмкость 15.

В случае если память имеет ёмкость равную единице, то она полностью аналогична устройству, осуществляющему одноканальное обслуживание. Отсюда следует, что в GPSS/H одноканальное обслуживание можно моделировать двумя способами. Поэтому имеет смысл кратко рассмотреть разницу между этими двумя возможностями . Во первых, обслуживание в устройствах может быть прервано (PREEMPT ) транзактом с более высоким приоритетом, чего не допускается при обслуживании с памятями. Во вторых, у устройств поддерживается понятие готовности - не готовности ( рабочее состояние - состояние ожидания), для памятей их состояния имеют другой смысл , что будет рассмотрено ниже . В- третьих, при исполнении ОБ SEIZE программа записывает ИН Хакт и при исполнении ОБ RELEASE проверяет тот ли транзакт вышел из устройства обслуживания . При исполнении ОБ ENTER ИН Хакт не записывается . Предупреждение: в GPSS/H чётко разделены функции устройств и памятей и необходимо соблюдать внутренние правила программы .

Выше были высказаны замечания в адрес не очень чёткого определения STORAGE, необходимо помнить, что этот термин прежде всего относится к устройству, моделирующему группу идентичных серверов, а не определяет физическое расположение или объём. Следует обратить внимание на обязательность идентичности, как только серверы не идентичны их следует моделировать устройствами, а не памятями! Для определения числа идентичных серверов используется термин ёмкость ( который, впрочем, также не удачен, как и память, так как сразу возникает ассоциация с конкретным местом куда что-то можно положить и соответственно забрать). Для определения состояния памятей в GPSS/H используется несколько терминов:

· Память считается заполненной (Full), если каждая единица ресурса

( сервер ) занята в момент обращения к ней,

· Память считается пустой (Empty), если каждая единица ресурса свободна .

· Текущее содержание (Current Contents) памяти определяется числом единиц ресурса, занятых на текущий момент времени.

· Остающаяся ёмкость (Remaining Capacity) памяти, число единиц ресурса свободных на текущий момент. Так например, при заполненности памяти остающийся объём равен 0.

Следует иметь в виду, что все перечисленные термины имеют отношение только к GPSS/H.

TABLE ( составить таблицу )

Этот ОУ позволяет получить дополнительную, по сравнению со стандартным отчётом, статистическую информацию. Например, исследователя интересует текущее содержание памяти в различных репликах. Полученное значение математического ожидания, может использоваться для выбора числа серверов в проектируемой системе. ОУ TABLE позволяет получить математическое ожидание (среднее значение), стандартное отклонение и относительные частоты попадания в заданный интервал. Формат ОУ TABLE имеет вид:

< label TABLE A,B,C,D,[E] >,

label - не имеет значения по умолчанию, отсутствие ярлыка приводит к ошибке компиляции, определяет имя или номер таблицы,

А – не имеет значения по умолчанию, определяет вид операций с таблицей. Существует 4 вида возможных таблиц, задаваемых операндом А:

1.Операнд А определяется выражением, на основе которого определяется статистика, помещаемая в таблицу. Эта статистика для совместимости с другими версиями должна представлять собой только простой СЧА и не должна быть представлена в матричных форматах типа MX,MH,MB,ML.

2. Операнд А определяется также как в случае 1, но впереди стоит знак минус. В этом случае таблица называется дифференциальной, т.е. берётся разница между текущим значением и предыдущим и результат помещается в таблицу, текущее значение сохраняется для последующих вычислений.

3. Операнд А имеет впереди символы IA (interarrival ), что обозначает определение промежутков между последовательными входами. При этом определяется разность между текущим значением абсолютного времени и значением абсолютного времени в предыдущий момент, результат помещается в таблицу, текущее значение времени сохраняется для последующих вычислений.