Добавил:
Да поможет вам Котельников Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Anylogic / 1

.docx
Скачиваний:
7
Добавлен:
23.06.2024
Размер:
694.2 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

Московский технический университет связи и информатики

Лабораторная работа № 1

«Среда моделирования AnyLogic»

по дисциплине

«Обеспечение доверия и безопасности»

Выполнил: студ. гр. БЗС2002

Ломакин А. А.

Проверила: Антонова В.М.

Москва 2023

Практическое задание

В среде моделирования AnyLogic создадим модель сервера с ограниченной очередью, на который поступают запросы на обслуживание.

Сервер обрабатывает запросы с интервалами, распределенными по показательному закону со средним значением 2 минуты. Время обработки сервером одного запроса распределено по экспоненциальному закону со средним значением 3 минуты. Сервер имеет входной буфер емкостью 10 запросов. Сервер представляет собой однофазную систему массового обслуживания разомкнутого типа с ограниченной входной емкостью, т.е. с отказами и абсолютной надежностью.

Выполнение

Рисунок 1 – создание новой модели

Рисунок 2 – библиотека моделирования процессов во вкладке «палитра»

Рисунок 3 – экспозиция объектов на диаграмме

Дадим краткую характеристику объектов диаграммы:

- Объект Source генерирует заявки определенного типа. Обычно он используется в качестве начальной точки диаграммы процесса, формализующей поток заявок. В нашем примере заявками будут запросы на обработку сервером, а объект Source будет моделировать их поступление.

- Объект Queue моделирует очередь заявок, ожидающих освобождения сервера.

- Объект Delay задерживает заявки на заданный период времени. Он представляет в нашей модели сервер, обрабатывающий запросы.

- Объект Sink уничтожает поступившие заявки. Обычно он используется в качестве конечной точки потока заявок (и диаграммы процесса соответственно).

Рисунок 4 – настройка объекта source

Рисунок 5 – настройка объекта queue

Рисунок 6 – настройка объекта delay

Рисунок 7 – настройка эксперимента

Рисунок 8 – ошибка при запуске модели из-за недостаточного объема очереди

Рисунок 9 – изменение свойств объекта queue

Рисунок 10 – создание прямоугольного узла

Рисунок 11 – изменение цвета заливки на динамическое значение

delay.size()>0?red:green,

где delay — это имя нашего объекта delay. Функция size() возвращает число запросов, которые обслуживаются в данный момент времени в модели. Если сервер занят, то цвет кружка будет красным, в противном случае — зелёным.

Рисунок 12 – путь очереди к серверу

Рисунок 13 – выбор места агента для очереди

Рисунок 14 – выбор места агентов для сервера

Рисунок 15 – результат работы созданной анимации

Рисунок 16 – создание нового агента

Рисунок 17 – настройка агента

Рисунок 18 – добавление в проект столбиковой диаграммы (среднего ожидания в очереди)

Рисунок 19 – настройка сбора статистики

Здесь Server - это имя нашего объекта Delay. У каждого объекта Delay есть встроенный набор данных statsUtilization, занимающийся сбором статистики использования этого объекта. Функция mean() возвращает среднее из всех измеренных этим набором данных значений. Вы можете использовать и другие методы сбора статистики, такие, как min() или max().

Рисунок 20 – добавление второй столбиковой диаграммы (средней длины очереди)

Здесь statsSize - это имя объекта типа "статистика" StatisticsContinuous, производящего сбор статистики размера очереди объекта Queue

Рисунок 21 – запуск созданной модели

Рисунок 22 – создание параметров (сбора статистики клиентов по времени ожидания)

Рисунок 23 – настройка элемента сбора данных

Рисунок 24 - Изменение свойств диаграммы процесса

Этот код будет сохранять время создания агента-клиента в переменной enteredSystem нашего типа агента Mail. Функция time() возвращает текущее значение модельного времени.

Рисунок 25 - Изменение свойств объекта queue

agent.startWaiting = time(); - запоминает время начала ожидания клиентом его очереди на обслуживание в переменной startWaiting нашего типа агента Mail.

waitTimeDistr.add(time() - agent.startWaiting); - добавляет время, в течение которого клиент ожидал обслуживания, в объект сбора данных waitTimeDistr.

Рисунок 26 – изменение свойств объекта sink

Рисунок 27 – создание первой гистограммы

Рисунок 28 - итоговая модель для дисциплины обслуживания FIFO

Рисунок 29 - итоговая модель для дисциплины обслуживания LIFO

Вывод

В рамках данной практической работы были приобретены навыки

работы с таким программным обеспечением как AnyLogic, в котором было

произведено моделирование очередей по дисциплинам обслуживания LIFO и

FIFO. Построенные наглядные модели помогли детально разобраться в их

принципах работы. На основе полученных результатов можно сделать вывод,

что система обслуживания очередей LIFO обрабатывает заявки намного

эффективнее, чем система FIFO. При дисциплине обслуживания LIFO время

ожидания запроса в очереди сильно уменьшается.

Контрольные вопросы

  1. Что представляет собой дисциплина обслуживания очередей FIFO? Приведите примеры из реальной жизни.

FIFO (First In First Out – Первый пришел, первым ушел) передает пакеты, поставленные в очередь в том порядке, в котором они поступили. То есть, чем раньше объект появился в очереди, тем раньше он ее покинет.

Например, такие сетевые устройства, как коммутаторы и маршрутизаторы, используют механизм FIFO для передачи пакетов данных к другим устройствам. Наглядное формирование и расформирование очереди для механизма FIFO:

  1. Что представляет собой дисциплина обслуживания очередей LIFO? Приведите примеры из реальной жизни.

LIFO (Last In First Out - Последним пришел, первым ушел).

Т.е. чем позже объект появился в очереди, тем раньше он ее покинет. Наглядное формирование и расформирование очереди для механизма LIFO:

  1. Опишите порядок выполнения практической работы.

Создание диаграммы процесса; Изменение свойств блоков диаграммы процесса; Настройка запуска модели; Создание анимации модели; Добавление статистики модели; Изменение свойства блоков диаграммы процесса; Получение итоговых моделей FIFO и LIFO

  1. Как происходит сбор статискики в данной работе?

Объекты Библиотеки моделирования процессов самостоятельно производят сбор основной статистики. Все, что нужно сделать — это включить сбор статистики для объекта.

Откройте палитру «Статистика». Эта палитра содержит элементы сбора данных и статистики, а также диаграммы для визуализации данных и результатов моделирования.

Перейдите в секцию «Данные свойств» столбиковой диаграммы. Щелкните кнопку «Добавить» элемент данных, чтобы задать данные для отображения в диаграмме

Введите «Server.statsUtilization.mean()» в поле «Значение». Здесь Server - это имя нашего объекта Delay. У каждого объекта Delay есть встроенный набор данных statsUtilization, занимающийся сбором статистики использования этого объекта. Функция mean() возвращает среднее из всех измеренных этим набором данных значений. Вы можете использовать и другие методы сбора статистики, такие, как min() или max().

  1. Что представляет собой система массового обслуживания? Приведите примеры.

Любую систему, в которой поток требований встречает ограниченные средства их удовлетворения, можно рассматривать как систему массового обслуживания (СМО).

В общем случае под требованием обычно понимают запрос на удовлетворение некоторой потребности пользователя, например, разговор с другим абонентом, посадка в самолет, покупка продуктов, заявка на обслуживание сервером.

Модели СМО удобны для описания отдельных современных вычислительных систем, таких как процессор - винчестер, канал ввода – вывода и т.д. Вычислительная система в целом представляет собой совокупность взаимосвязанных систем. Например, заявка на решение некоторой задачи, проходит несколько этапов обработки, обращения к внешним запоминающим устройствам и устройствам и устройствам ввода – вывода. После выполнения некоторой последовательности таких этапов, заявка считается обслуженной, и она покидает систему.

  1. Как можно добавить в исследуемую модель гистограммы распределений времени?

Добавьте две гистограммы для отображения распределений времен ожидания клиента и пребывания клиента в системе.

Чтобы добавить гистограмму на диаграмму агента, перетащите элемент «Гистограмма» из палитры «Статистика».

Укажите, какой элемент сбора данных хранит данные, которые вы хотите отображать на гистограмме: в секции «Данные свойств гистограммы» щелкните мышью по кнопке «Добавить данные» и измените «Заголовок» отображаемых данных на Waiting time distribution.

Введите в поле «Данные» имя соответствующего элемента: waitTimeDistr.

Добавьте еще одну гистограмму и расположите ее под ранее добавленной. Измените «Заголовок» отображаемых данных на Time in system distribution. В поле «Данные» введите имя элемента, хранящего данные, которые будут отображаться на гистограмме: timeInSystemDistr

Введите в поле «Данные» имя соответствующего элемента: timeInSystemDistr.

Соседние файлы в папке Anylogic