Моделирование работы узла коммутации
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
поступает в процессор при помощи блока 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>