Моделирование работы узла коммутации

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

поступает в процессор при помощи блока SEIZE, покидает очередь (блок DEPART), обрабатывается в процессоре при помощи блока ADVANCE и освобождает устройство (блок RELEASE). Проверяется принадлежность транзакта к группе 1 (блок EXAMINE), если не принадлежит - переходим к метке OB2, где транзакт помещается в очередь к выходной линии 2 (QUEUE), поступает в линию (SEIZE), покидает очередь (DEPART), обрабатывается (ADVANCE) и освобождает устройство (RELEASE), иначе транзакт помещается в очередь к выходной линии 1 (QUEUE), поступает в линию (SEIZE), покидает очередь (DEPART), обрабатывается (ADVANCE) и освобождает устройство (RELEASE). После указанных действий транзакт удаляется (TERMINATE).

Одновременно с этим генерируются 1000 транзактов (GENERATE), которые соответствуют времени моделирования, т.е. 10 с.

3.2 Блок-схема алгоритма

 

Рисунок 1 - Блок- схема алгоритма

4. Разработка программы

 

.1 Описание программы

 

Данная программа написана на языке GPSS World. Она моделирует работу узла коммутации сообщений в течение 10 секунд. Для просмотра работы программы необходимо запустить ее. Отчет по работе модели сохраняется в файл Kurs.gpr.

Программа начинается с ключевого блока GENERATE, который генерирует транзакт через 157 мс (1). Далее в блоке TRANSFER (2) задается, что половина транзактов (с вероятностью 0.5) будут включены в группу 1 с помощью блока JOIN (3), а оставшиеся - в группу 2 также с помощью блока JOIN (5). С помощью блока TRANSFER управление передается на метку IB (4). После этого блок TEST проверяет количество транзактов групп в системе. Если число транзактов группы 1 или группы 2 больше 3, то управление передается на метку FIN (6 и 7 соответственно) и текущий транзакт удаляется с помощью блока TERMINATE (25). Удовлетворяющий условию транзакт поступает в очередь к процессору с помощью блока QUEUE (8), поступает в процессор с помощью блока SEIZE (9), покидает очередь с помощью блока DEPART (10), сообщение обрабатывается в процессоре 7 мс с помощью блока ADVANCE (11) и освобождает устройство с помощью блока RELEASE (12). Блок EXAMINE проверяет принадлежность транзакта к группе (13). Если он из первой группы, то транзакт поступает в очередь к выходной линии 1 (QUEUE) (14), поступает в выходную линию 1 (SEIZE) (15), покидает очередь (DEPART) (16), время передачи по выходной линии равно 155 мс, сообщение обрабатывается с помощью блока ADVANCE (17) и освобождает устройство (RELEASE) (18), затем блок TRANSFER передает управление на метку FIN (19), где транзакт удаляется с помощью блока TERMINATE (25). Если транзакт принадлежит второй группе (переход на метку OB2), то он поступает в очередь к выходной линии 2 (QUEUE) (20), поступает в выходную линию 2 (SEIZE) (21), покидает очередь (DEPART) (22), обрабатывается (ADVANCE) (23) и освобождает устройство (RELEASE) (24). После этого транзакт удаляется (25).

Второй сегмент программы состоит из двух блоков GENERATE (26) и TERMINATE (27), которые выполняют роль таймера, отсчитывающего модельное время. Данная программа моделирует работу узла коммутации сообщений в течении 10 секунд.

 

.2 Использованные команды и функции

 

GENERATE A,B,C,D,E - вводит транзакты в модель.

А - среднее значение интервала времени;

В - разброс или модификатор среднего значения;

С - время появления первого транзакта; - общее число генерируемых транзактов;

Е - уровень приоритета каждого.

TRANSFER А,В,C,D - обеспечивает переход активного транзакта к новому блоку.

А - режим (BOTH, ALL, PICK, FN, P, SBR,SIM); - номер или метка блока;

C - номер или местоположение блока;

D -приращение номера блока для режима ALL.

JOIN - добавляет новый член в числовую группу или группу транзактов.

TEST 0 А,В,С - сравнивает значения, обычно СЧА и управляет местом назначения активного транзакта, основываясь на результате сравнения.

О - оператор отношения (E, G, GE, L, LE, NE);

А - проверяемое значение;

B - контрольное значение;

С - номер блока назначения.А,В - помещает транзакт в конец очереди.

А - номер очереди (числовое или символьное имя очереди);

В - число добавляемых к очереди элементов.A,B - удаляет транзакт из очереди.

А - номер (имя) очереди;

В - число удаляемых из очереди элементов (необязательный операнд). А - занимает устройство.

А - номер устройства.А - освобождает устройство.

А - номер устройства (числовое или символьное имя освобождаемого устройства).

ADVANCE А,В - задерживает транзакт.

А - среднее время задержки;

В - разброс или модификаторсреднего значения.

TERMINATE А - удаляет активный транзакт из процесса моделирования.

А - величина уменьшения счетчика завершения.

EXAMINE - проверяет на принадлежность к группе.

GTЕпtпит - счетчик группы транзактов; возвращает количество элементов группы транзактов Епtпит. Целочисленное значение.

 

.3 Листинг

15,7;1

TRANSFER .5,,GR2;2

JOIN1;3

TRANSFER ,IB;4

GR2JOIN2;5TEST LEGT1,3,FIN;6LEGT2,3,FIN ;7CPUQ;8CPU;9CPUQ;107;11CPU;121,,OB2;13OL1Q;14 OL1;15OL1Q;1615,5;17

RELEASEOL1 ;18

TRANSFER,FIN;19QUEUEOL2Q;20OL2;21OL2Q;2215,5;23OL2;24TERMINATE ;251000;26

TERMINATE1 ;27

5. Результаты машинного тестирования

 

Результаты работы можно посмотреть в отчете, который появляется после окончания работы модели. Так же в программе GPSS World существуют дополнительные окна (окно блоков, окно устройств, окно очередей, окно переменных и т.д.), с помощью которых можно наблюдать за транзактами на протяжении работы модели. Посмотрев на окно блоков (рисунок 2), можно сделать вывод, что было сгенерировано 67 транзактов.

 

Рисунок 2 - Окно блоков

 

В итоге работы данной модели по истечении 10-ти модельных секунд были получены следующие данные из стандартного отчета (рисунок 3): общее число входов (ENTRY) в процессор 67, линию 1 - 31, линию 2 - 36; загруж?/p>