Моделирование студенческого вычислительного центра, страница 2

Освобождение блоков обработка имитируется блоком RELASE A, где в поле А записывается номер блока.

Моделируемая система содержит очередь, которая возникает на входе в систему. Очередь имитируется блоком QUEUE А,В, где А – имя очереди, а В – число вводимых транзактов (по умолчанию – 1). Выход из очереди реализуется блоком DEPART А,В, где А - имя очереди, а В – число выводимых транзактов (по умолчанию – 1).

Правила обслуживания. Имитация правил обслуживания осуществляется блоком TRANSFER A,B,C. В поле А указано десятичное число, выражающее вероятность перехода в блок С; его дополнение до единицы указывает вероятность перехода в блок В.

 TRANS .6666,DEV1,DEV2 – 66,66% студентов сразу идут на ЭВМ минуя УПД, а 33,33% используют УПД и ЭВМ последовательно.

TRANS .8,REP,UTIL – 20% студентов приходят в вычислительный центр повторно.

Блок  TEST R A,B,C осуществляет проверку очереди на переполнение. R – условие сравнения, А и В – поля подлежащие сравнению (Q$1 – длина очереди), С – блок в который передаётся транзакт при невыполнении условия. TEST_L Q$1,4,UTIL – если длина очереди меньше 4, то транзакт может занять место в очереди, если это условие не выполняется – транзакт выводится из системы.

B)  ВЫБОР ИМИТАТОРОВ ОСНОВНЫХ ФУНКЦИЙ

В средствах GPSS сбор и обработка начальных условий установлены внутри блоков.

Вероятность переполнения очереди на входе системы определим по формкле P – вероятность отказа в обслуживании из-за переполнения очереди, М – число отказов вследствие переполнения очереди, N – общее число транзактов. При расчёте будем использовать коэффициент доверия для данной формулы.  Принимаем, что если Р = 0,02 то очереди нет и наоборот, если Р намного больше 0,02, то очередь есть. Значения М и N возьмём из стандартного отчёта.

Программный блок FUNCTION А,В устанавливается в начале модели, с помощью которого записывается функциональная зависимость между параметрами или стандартными числовыми атрибутами. В основном используется для задания функции распределения случайной величины. В поле А устанавливается аргумент функции, если это аргумент случайной функции, то в поле А устанавливают RN$. В поле В записывается тип функции, в данном случае С – непрерывная. За тем записывается количество пар точек. В нашем случае: FUNC RN$1,C24.

Для присвоения символам численного значения используется блок sumbol EQU num. В нашем случае - EXP  EQU 1 – символам EXP присваивается значение 1.

Для имитации времени моделирования используется группа операторов:

GENERATE  3600,,,1

TERMINATE 1

3600 – время моделирования в секундах (60 ч.)

Где блок TERMINATE A – уничтожает транзакты. Параметр А – число уничтожаемых транзактов.

Блок START A,B,C. с помощью данного блока имитируется начало и конец сбора информации. В поле А – число прогонов модели, в поле В – условие печати результатов, в поле С – число прогонов модели через которое производится промежуточная распечатка результатов. В нашем случае: START 1.

Для запуска модели на исполнение используется блок SIMULATE.

Для завершения моделирования используется блок END.

C)  СОСТАВЛЕНИЕ СТРУКТУРЫ АЛГОРИТМА

- остановка

 

- задание времени моделирования

 

- вывод ТА из модели

 

- возврат 20% ТА для повторного прохождения

 

- вывод ТА из устройства

 

- задержка ТА в устройстве

 

- вывод ТА из очереди

 

- вывод ТА из устройства

 

- задержка ТА в устройстве

 

- распределение ТА по устройствам

 

- проверка на переполнение очереди

 

- генератор входного потока

 

- задание функции

 

- присвоение имени функции числового значения

 

- запуск модели

 

- вхождение ТА в устройство 2 (ЭВМ)

 

- вхождение ТА в устройство 1 (УПД)

 

- постановка ТА в очередь

 

D)  ОПИСАНИЕ АЛГОРИТМА

Данный алгоритм предназначен для описания процесса функционирования  вычислительного центра с целью определения коэффициентов загрузки УПД и ЭВМ, а также вероятность отказа в обслуживании вследствие переполнения очереди. Входными данными являются студенты, распределённые по равномерному закону, приходящие в вычислительный центр. Длина очереди на входе системы ограничена 4 студентами включая работающего на УПД.

В начале алгоритма ставится оператор SIMULATE, необходимый для запуска модели на исполнение. Далее идёт оператор EQU, для присвоения функции EXP значения 1. эта функция определяет время, через которое поступают студенты. Далее блок FUNCTION. С помощью его описывается функция EXP. Блок 1 формирует входной поток. далее блоком 2 производится проверка на переполнение очереди. Если очередь переполнена то транзакт уходит в блок 13 для уничтожения. Если переполнения нет, то производится постановка значения в очередь блоком 3. После чего в блоке 4 производится разветвление входного потока:

на УПД – 33,33% - переход в блок 5, где происходит ввод транзакта в устройство УПД, и 66,66% на ЭВМ – переход в блок 8, где происходит выход из очереди. При попадании на УПД транзакты попадают на блок 6 реализующий задержку для УПД, после этого следует блок 7, он реализует освобождение транзактов из УПД. 

В блоке 8 происходит вывод из очереди транзактов  независимо от пути их следования (блок 4 – блок 8 или блок 4 – блок 5 – блок 6 – блок 7 – блок 8).

Далее в блоке 9 происходит ввод транзакта в устройство ЭВМ. После этого транзакты попадают на блок 10 реализующий задержку для ЭВМ, после чего следует блок 11, он реализует освобождение транзактов из ЭВМ. Далее в блоке 12 происходит возврат 20% транзактов в блок 2 – реализация условия: 20% студентов возвращаются в вычислительный центр повторно. Не вошедшие в этот процент транзакты следуют в блок 13 для уничтожения. Блоком 14 создаются транзакты определяющие время моделирования. Далее следует блок 15, который определяет число уничтожаемых транзактов. Блок 16 определяет число прогонов модели. Программа завершается оператором END, который завершает ее выполнение.

Ниже приведён листинг программы и результаты.

ЛИСТИНГ ПРОГРАММЫ И РЕЗУЛЬТАТОВ

     SIMULATE

EXP  EQU 1

EXP  FUNCTION RN$1,C24

0,0/.1,.104/.2,222/.3,.355/.4,.509/.5,.69/

.6,.915/.7,1.2/.75,1.38/.8,1.6/.84,1.83/.88,2.12/

.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/

.98,3.9/.99,4.6/.995,5.3/.998,6.2/.999,7.0/.9999,8

     GENERATE 480,120

REP  TEST_L Q$1,4,UTIL

     QUEUE 1,1

     TRANSFER .66,DEV1,DEV2

DEV1 SEIZ 1

     ADVANCE 480,60

     RELEASE 1

     DEPART 1

DEV2 SEIZ 2

     ADVANCE 1020,FN$EXP

     RELEASE 2

     TRANSFER .8,REP,UTIL

UTIL TERMINATE

     GENERATE 216000,,,1

     TERMINATE 1

     START 1

     END