SIMULATE                               ; Начало моделирования

* === Граничный уровень ===
GENERATE 10                            ; Генерация запросов каждые 10 единиц времени
QUEUE EdgeQueue                        ; Запрос добавляется в очередь граничного уровня
SEIZE 1                                ; Устройство на граничном уровне (идентификатор 1)
DEPART EdgeQueue                       ; Запрос покидает очередь
ADVANCE 5                              ; Время обработки на граничном уровне
TRANSFER ,70,FogProcess                ; С вероятностью 70% отправляем запрос на туман
TRANSFER ,30,EdgeTerminate             ; С вероятностью 30% запрос завершается
RELEASE 1                              ; Освобождаем устройство на границе

EdgeTerminate TERMINATE 1              ; Завершаем запрос, оставшийся на граничном уровне

* === Туманный уровень ===
FogProcess QUEUE FogQueue              ; Запрос добавляется в очередь тумана
SEIZE 2                                ; Устройство на туманном уровне (идентификатор 2)
DEPART FogQueue                        ; Запрос покидает очередь
ADVANCE 8                              ; Время обработки на туманном уровне
TRANSFER ,80,CloudProcess              ; С вероятностью 80% отправляем запрос в облако
TRANSFER ,20,FogTerminate              ; С вероятностью 20% запрос завершается
RELEASE 2                              ; Освобождаем устройство на тумане

FogTerminate TERMINATE 1               ; Завершаем запрос, оставшийся на туманном уровне

* === Облачный уровень ===
CloudProcess QUEUE CloudQueue          ; Запрос добавляется в очередь облака
SEIZE 3                                ; Устройство на облачном уровне (идентификатор 3)
DEPART CloudQueue                      ; Запрос покидает очередь
ADVANCE 12                             ; Время обработки в облаке
TRANSFER ,60,FogProcess                ; С вероятностью 60% возвращаем запрос на туман
TRANSFER ,40,CloudTerminate            ; С вероятностью 40% запрос завершается
RELEASE 3                              ; Освобождаем устройство в облаке

CloudTerminate TERMINATE 1             ; Завершаем запрос, оставшийся в облаке

* === Пул устройств (STORAGE) ===
STORAGE 1,50                           ; 50 устройств на граничном уровне
STORAGE 2,10                           ; 10 устройств на туманном уровне
STORAGE 3,5                            ; 5 устройств на облаке

* === Завершение моделирования ===
START 1000                             ; Запускаем моделирование с 1000 запросами
END                                    ; Завершение моделирования
