GPSS. Вспомним старичка

от автора

В данной статье рассмотрим пару задач по имитационному моделированию, и реализуем их на старом, добром GPSS WORLD. Не будем подробно проходится по синтаксису GPSS про это уже есть статьи, а рассмотрим решение конкретных задач.

Задача 1

Условие задачи

Магистраль передачи данных состоит из двух каналов (основного и резервного) и общего накопителя. При нормальной работе сообщения передаются по основному каналу за 7 ± 3 с В основном канале происходят сбои через интервалы времени 200 ± 35 с Если сбой происходит во время передачи, то за 2 с. запускается запасной канал, который передает прерванное сообщение с самого начала. Восстановление основного канала занимает 23 ± 7 с После восстановления резервный канал выключается и основной канал продолжает работу с очередного сообщения. Сообщения поступают через 9 ± 4 с и остаются в накопителе до окончания передачи. В случае сбоя передаваемое сообщение передается повторно по запасному каналу. 

Немного обсудим

Для начала будет полезно составить схему нашей задачи, чтобы визуально посмотреть с чем мы имеем дело.

Давайте немного обсудим задачу. Мы имеем 2 канала, которые обрабатывают сообщения с одинаковой скоростью, второй канал включается, только в случаи, если на первом канале сбой. Когда основной канал восстановился, то запасной передаёт последнее сообщение и выключается.

В модели должно будет быть 3 канала, основной, резервный и канал который будет 2 с. удерживать транзакт, пока включается резервный канал. Условие определяющие недоступность основного канала(Если не доступен, то уходим на резервный). Создадим бесконечный накопитель, в котором заявки будут хранится всё время, что находятся в системе. Так-же посчитаем число сбоев. Модель будет работать 3600 с., работать будет 1 час.

Код

    GENERATE 9,4; генерация сообщений     QUEUE NAK1; вход в очередь     GATE FV KAN1,MET2 ; проверка на недоступность     SEIZE KAN1; вход в 1-й канал     ADVANCE 7,3; отправка сообщения по 1-му каналу     RELEASE KAN1; выход из 1-го канала     DEPART NAK1; выход из очереди     TERMINATE ; удаление транзакта  MET2 SEIZE KAN2; вход во 2-й канал     ADVANCE 7,3; отправка сообщения по 2-му каналу     RELEASE KAN2; выход из 2-го канала     DEPART NAK1; выход из очереди     TERMINATE ; удаление транзакта  ERRGENGENERATE 200,35; генерация ошибки     ; установка недступности 1-го канала и перенос транзакта в мет3     ; в котором производится задержка в 2с перед запуском     FUNAVAIL KAN1,RE,MET3     ADVANCE 23,7; время удаления ошибки     FAVAIL KAN1 ; Снятие недступности с 1-го канала     TERMINATE ; удаление транзакта  MET3RELEASE KAN1; выход из канала 1     SAVEVALUE CHPRSOOBSH+,1 ; подсчёт кол-ва прерванных сообщений     SEIZE KAN3; вход в канал 3     ADVANCE 2;задержка 2с     RELEASE KAN3; выход из канала 3     TRANSFER,MET2; переход на MET2      ;генератор работы СМО в течение 3600 с часа     GENERATE 3600     TERMINATE 1     START 1

Всё прокомментировано, мне кажется смысла в доп. комментариях нет.

Результаты

Всего было создано 17 ошибок и 17 сообщений прервали, значит прерывание каждый раз случалось во время передачи сообщения. Если рассуждать об этой модели, как о реальной системе, то наверное вообще вероятность прерывания сообщения не есть хорошо, особенно, если сбой всегда будет прерывать сообщение. Что можно выделить хорошего, дк это то, что максимальное число сообщений в накопителе — 3, даже беря с огромной погрешностью, при работе данной магистрали, накопителя на 10 сообщений вполне хватит.

Задача 2

Условие задачи

Распределенный банк данных системы сбора информации организован на базе ЭВМ, соединенных. Поступающий запрос обрабатывается на первой ЭВМ и с вероятностью 50 % необходимая информация обнаруживается на месте. В противном случае необходима посылка запроса во вторую ЭВМ. Запросы поступают через 10 ± 3 с, первичная обработка запроса занимает 2 с, выдача ответа требует 8 ± 2 с, передача по каналу связи занимает 3 с. Временные характеристики второй ЭВМ аналогичны первой.

Немного обсудим

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

Код

    GENERATE 10,3; генерируем транзакт     QUEUE NAK1; заходим в первый накопитель     SEIZE EVM1; занимаем первый ЭВМ     ADVANCE 2; обрабатываем транзакт     TRANSFER.5,MET1,MET2; с вероятностью 50% находим ответ  MET1ADVANCE 8,2; если нашли, то печатаем ответ     RELEASE EVM1; освобождаем первый ЭВМ     DEPART NAK1; уходим из накопителя     TERMINATE; удаляем транзакт  MET2QUEUE NAK2; заходим во второй накопитель         SEIZE EVM2; занимаем второй ЭВМ     SEIZE TRANS; занимаем канал передачи     ADVANCE 3; передаём транзакт на второй ЭВМ     RELEASE TRANS; освобождаем канал передачи     RELEASE EVM1; освобождаем первый ЭВМ     DEPART NAK1; уходим из накопителя     ADVANCE 2; обрабатываем транзакт     ADVANCE 8,2; выводим ответ     RELEASE EVM2; Освобождаем второй ЭВМ     DEPART NAK2; уходим из накопителя     TERMINATE; удаляем транзакт          ;генератор работы СМО в течение 1 часа     GENERATE 3600     TERMINATE 1     START 1 

Всё прокомментировано, мне кажется смысла в доп. комментариях нет.

Результаты

Среднее время нахождение транзакта во втором ЭВМ, значительно больше, чем в первой — это связанно с тем, что в нём гарантированно нужно выводить ответ, в отличии от первого. Так же можно заметить, что первый ЭВМ, загружен 91% времени, что не является хорошим показателем, но т.к. это всё таки компьютер, а не человек, является допустимым. Особо большие накопители не понадобятся и в этой задаче, для обоих ЭВМ подойдут накопители, способные хранить 10 транзактов.

Заключение

Ну вот мы немного и вспомнили старый, добрый GPSS, сгенерировали 2 модели и немного проанализировали их. В целом GPSS очень мощный инструмент для моделирования, его до сих пор можно считать актуальным и продолжать делать на нём какие-то модели, не смотря на то, что ему уже больше 20 лет.


ссылка на оригинал статьи https://habr.com/ru/articles/747298/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *