В некоторых приложениях полезно моделировать ситуации, в которых происходит сбой сервера. Например, компьютер разрушается и позже восстанавливается, либо происходит сбой сетевого соединения, а затем восстанавливается. В этом разделе рассматриваются способы моделирования сбоев сервера и состояния сервера.
Серверные блоки не имеют встроенных состояний, поэтому можно создавать состояния любым способом, подходящим для приложения. В этой таблице приведены некоторые примеры возможных состояний сервера.
| Сервер как канал связи | Сервер как машина | Сервер как человеческий процессор |
|---|---|---|
| Передача сообщения | Обрабатывающая часть | Работа |
| Подключен, но свободен | Ожидание поступления новой детали | Ожидание работы |
| Не связанный | Прочь | Вне дежурства |
| Удерживающее сообщение (ожидание доступности адресата) | Удерживающая часть (в зависимости от наличия следующего оператора) | Ожидание ресурса |
| Установление соединения | Разогрев | Подготовка к началу работы |
Для любого состояния, которое представляет собой неспособность сервера или отказ принять поступление объекта, даже если сервер не обязательно заполнен, общая реализация включает блок шлюза объекта, предшествующий серверу.
Затвор предотвращает доступ объекта к серверу всякий раз, когда управляющее сообщение затвора на входном порте в верхней части блока несет нулевые или отрицательные значения. Логика, которая создает управляющее сообщение, определяет, находится ли сервер в состоянии отказа. Реализовать такую логику можно с помощью блока Simulink Function, с помощью блока Message Send или с помощью диаграмм Stateflow ® для перехода между конечным числом состояний сервера.
В этом примере показан экземпляр, в котором блок литника сущности предшествует серверу. Пример не относится конкретно к состоянию отказа, но идея управления доступом к серверу аналогична. Он моделирует стохастически возникающий сбой, который длится некоторое время.

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