exponenta event banner

Сбой сервера модели

Состояния сервера

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

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

Сервер как канал связиСервер как машинаСервер как человеческий процессор
Передача сообщенияОбрабатывающая частьРабота
Подключен, но свободенОжидание поступления новой деталиОжидание работы
Не связанныйПрочьВне дежурства
Удерживающее сообщение (ожидание доступности адресата)Удерживающая часть (в зависимости от наличия следующего оператора)Ожидание ресурса
Установление соединенияРазогревПодготовка к началу работы

Использование затвора для реализации состояния отказа

Для любого состояния, которое представляет собой неспособность сервера или отказ принять поступление объекта, даже если сервер не обязательно заполнен, общая реализация включает блок шлюза объекта, предшествующий серверу.

Затвор предотвращает доступ объекта к серверу всякий раз, когда управляющее сообщение затвора на входном порте в верхней части блока несет нулевые или отрицательные значения. Логика, которая создает управляющее сообщение, определяет, находится ли сервер в состоянии отказа. Реализовать такую логику можно с помощью блока Simulink Function, с помощью блока Message Send или с помощью диаграмм Stateflow ® для перехода между конечным числом состояний сервера.

В этом примере показан экземпляр, в котором блок литника сущности предшествует серверу. Пример не относится конкретно к состоянию отказа, но идея управления доступом к серверу аналогична. Он моделирует стохастически возникающий сбой, который длится некоторое время.

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

См. также

|

Связанные примеры

Подробнее