Очередь и блоки сервера являются блоками системы хранения, которые содержат сущности.
Очереди заказывают сущности и сортируют их согласно политикам очереди.
Серверы задерживают сущности, пока определенные условия не соблюдены.
В дискретно-событийной симуляции очередь хранит сущности долго, которые не могут быть определены заранее. Очередь пытается вывести сущности, когда она может, но ее успех зависит от того, принимает ли следующий блок новые сущности. Повседневный пример очереди - когда вы выдерживаете в линии с другими людьми ожидать некоторого типа сервиса обратиться к вашим потребностям, и вы не можете определить заранее, сколько времени необходимо ожидать.
Отличительные признаки различных очередей включают:
Способность — количество сущностей очередь может сохранить одновременно
Дисциплина — функция определяет, какая сущность отбывает сначала, если очередь хранит несколько сущностей
Иногда, очередь в модели похожа на аналогичный аспект реальной смоделированной системы. Этот вид очереди иногда называется physical queue. Например, вы можете использовать очередь, чтобы представлять последовательность:
Люди, стоящие в очереди
Самолеты, ожидающие, чтобы получить доступ к взлетно-посадочной полосе
Сообщения, ожидающие, чтобы быть отправленным
Части, ожидающие, чтобы быть собранным на фабрике
Компьютерные программы, ожидающие, чтобы быть выполненным
В других случаях очередь в модели не возникает очевидным способом из реальной системы, но вместо этого включена для моделирования целей. Этот вид очереди иногда называется logical queue. Например, вы можете использовать очередь, чтобы предоставить область временного хранения сущностям, которым может в противном случае некуда пойти. Такое использование логической очереди может предотвратить мертвые блокировки или упростить симуляцию.
Используйте блок Entity Queue для очередей модели.
Блок Entity Queue использует эти политики очереди:
FIFO — Блок обрабатывает сущность как метод "первым пришел - первым вышел".
LIFO — блок обрабатывает сущность как метод "последним пришел - первым вышел".
Приоритет — блок читает приоритет из параметра Priority Source. Этот параметр является конкретным значением атрибута, которое блок хранит на основе значения номера.
Блоки системы хранения имеют действия события на основе событий, влияющих на сущности в соответствующих блоках системы хранения. Каждый блок имеет набор действий, конкретных с блоком.
Генератор сущности | Очередь сущности | Сервер сущности | Терминатор сущности | Получатель ресурса |
---|---|---|---|---|
Генерация сущности | Запись сущности в блок очереди | Запись сущности в блок сервера | Запись сущности в блок терминатора строки | Запись сущности в блок получателя |
Выход сущности из блока | Выход сущности из блока | Сервисное завершение сущности | Нет данных | Выход сущности из блока получателя |
Нет данных | Сущность блокируется | Выход сущности из блока | Нет данных | Нет данных |
Нет данных | Нет данных | Сущность блокируется | Нет данных | Нет данных |
Нет данных | Нет данных | Сущность вытесняется | Нет данных | Нет данных |
Этот рисунок показывает поток действий как перемещение сущностей посредством симуляции дискретной системы событий.
Примечания:
Запись сущности, выход и блокирующие действия выполняются, когда часть сущности передает событие.
Сервисное действие завершения выполняется после события таймера.
Событие завершения сущности выполняет действие разрушения.
Для получения дополнительной информации о действиях события смотрите Действия События и События.
В дискретно-событийной симуляции сервер хранит сущности долго, названный service time, и затем пытается вывести сущность. В сервисный период блоком, как говорят, является serving сущность, которую это хранит. Повседневным примером сервера является человек (кассир банка, розничный кассир, и т.д.), с кем вы выполняете транзакцию со спроектированной длительностью.
Время обслуживания для каждой сущности вычисляется, когда это прибывает. Если, однако, следующий блок не принимает прибытие сущности, которая завершила ее сервис, сервер обеспечен, чтобы содержать сущность дольше.
Отличительные признаки различных серверов включают:
Количество сущностей, которым это может служить одновременно, который мог быть конечным или бесконечным
Характеристики, или метод вычисления, сервисные времена прибывающих сущностей
Разрешает ли сервер определенным прибывающим сущностям вытеснять сущности, которые уже хранятся в сервере
В отсутствие вытеснения сервер конечной способности не принимает новые поступления, когда это уже полно. Можно разместить очередь перед каждым сервером конечной способности, установив место для сущностей, чтобы остаться, в то время как они ожидают сервера, чтобы принять их. В противном случае сущности ожидания могут храниться во всевозможных местоположениях в модели, и ситуация может больше затруднить для вас, чтобы предсказать или анализировать.
В некоторых случаях сервер в модели похож на аналогичный аспект реальной смоделированной системы. Например, вы можете использовать сервер, чтобы представлять:
Человек (такой как кассир банка), кто выполняет транзакцию с каждым прибывающим клиентом
Передатчик, что процессы и отправляют сообщения
Машина, которая собирает части на фабрике
Компьютер, который выполняет программы
В некоторых случаях сервер в модели не представляет реальную систему. Общая техника моделирования включает задержку нуля длительности, то есть, бесконечный сервер, время обслуживания которого является нулем, чтобы предоставить место сущности, чтобы находиться, чтобы управлять ее атрибутами.
Используйте блок Entity Server для очередей модели.
Общие варианты использования сервера сервера включают:
В приложении поточной линии, блоке обработки
В сетевом приложении, процессоре
Можно объединить Entity Queue и блоки Entity Server, чтобы смоделировать различные ситуации:
Две пары сервера очереди, соединенные последовательно, представляют последовательные операции, которым подвергается сущность. Например, части на сборочном конвейере обрабатываются последовательно двумя машинами.
Можно альтернативно смоделировать ситуацию как пару серверов без очереди между ними. Однако отсутствие очереди означает, что, если первый сервер завершает сервис на сущность, прежде чем второй сервер доступен:
Сущность должна остаться в первом сервере мимо конца сервиса.
Первый сервер не может принять новую сущность для сервиса, пока второй сервер не становится доступным.
Две пары сервера очереди, соединенные параллельно, в котором каждая сущность прибывает в одну или другой, представляют альтернативные операции. Например, транспортные средства ждут своей очереди для одной из нескольких городских тюрем на междугородной площади. В этом случае модель должна иметь логику решения, возможно в форме переключателя, предшествующего этому шаблону.
Две пары сервера очереди, соединенные параллельно, в котором копия каждой сущности прибывает в обоих, представляют многоадресную ситуацию, такую как отправка сообщения нескольким получателям. Обратите внимание на то, что копирование сущностей не может быть целесообразным в некоторых приложениях.
Две очереди, соединенные последовательно, могут быть полезными, если вы используете сущности для элементов модели, которые физически испытывают два отличных набора условий в то время как в устройстве хранения данных. Например, дополнительные предметы хранения, которые переполняют одной области хранения, должны остаться в другой области хранения, в которой менее хорошо отрегулированная температура влияет на долгосрочное качество элементов. Моделирование этих двух областей хранения как отличные блоки очереди упрощает просмотр среднего отрезка времени, что сущности остаются в области хранения переполнения.
Две очереди, соединенные параллельно, в котором каждая сущность прибывает в одну или другой, представляют альтернативные пути для ожидания. Пути могут привести к различным операциям, таким как линия транспортных средств, ожидающих городской тюрьмы и линии транспортных средств, ожидающих на создавшем затор наклонном съезде автострады. Вы можете смоделировать городскую тюрьму как сервер и пробку как логический элемент.
Многоадресный режим позволяет нескольким очередям получить сущности от одного блока Entity Multicast. Блок получения для Entity Multicast, блоки являются блоком Multicast Receive Queue, параметры Tag которого имеют то же значение. Блок Multicast Receive Queue является по существу блоком Entity Queue с набором параметра Entity Arrival source к Multicast
.
Используя Entity Multicast блок не требует никаких соединительных линий. Параметры Tag только должны соответствовать.
От библиотеки SimEvents® перетащите блоки Multicast Receive Queue и Entity Multicast.
В обоих диалоговых окнах, в параметрах Multicast tag, вводят тот же текст. Например, A
.
Программное обеспечение использует эти теги, чтобы совпадать с вещательной компанией и broadcastees.
Это - пример, показывает широковещательную передачу сущностей двум очередям. Заметьте, что блоки FIFO для обеих очередей имеют тег A.
Entity Multicast | Entity Queue | Entity Server | Multicast Receive Queue | Resource Acquirer | Resource Pool | Resource Releaser