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

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

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

Программа начинается с ключевого блока GENERATE, который генерирует транзакт через 15±7 мс (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), время передачи по выходной линии равно 15±5 мс, сообщение обрабатывается с помощью блока 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 секунд.