exponenta event banner

Сервер сущностей

Обслуживать объекты

  • Библиотека:
  • SimEvents

  • Entity Server block

Описание

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

Чтобы настроить действия, когда объекты входят, завершают обслуживание, выходят и блокируются или вытесняются блоком, введите код MATLAB ® в Entry action, Service complete action, Exit action, Blocked action, или Preempt action на вкладке Действия события. Дополнительные сведения см. в разделе События и действия с событиями.

Порты

Вход

развернуть все

Входной объект, несущий скалярные, шинные или векторные данные для входа на сервер.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | enumerated | bus | string | fixed point

Порт входного сигнала для определения времени обслуживания.

Зависимости

Этот порт отображается, если для параметра Service time source установлено значение Signal port.

Типы данных: double

Продукция

развернуть все

Выходной порт объекта для объектов, выходящих из сервера.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | enumerated | bus | string | fixed point

Число объектов, вышедших из блока.

Зависимости

Чтобы включить этот порт, перейдите на вкладку Statistics (Статистика) и установите флажок Number of entities leaded (Количество удаляемых объектов), d.

Типы данных: double

Число объектов, которые еще не вышли из блока.

Зависимости

Чтобы включить этот порт, перейдите на вкладку Статистика (Statistics) и установите флажок Количество объектов в блоке (Number of entities in block), n.

Типы данных: double

Установка этого флажка выводит значение 1 для ожидающего объекта в блоке, и 0 в противном случае.

Зависимости

Чтобы включить этот порт, выберите пункт Statistics > Pending entity in block, pe.

Типы данных: double

При установке этого флажка выводится число ожидающих объектов в блоке.

Зависимости

Чтобы включить этот порт, выберите команду Statistics > Number of pending entities, np.

Типы данных: double

Среднее время ожидания объектов в блоке.

Зависимости

Чтобы включить этот порт, перейдите на вкладку Statistics и установите флажок Average wait, w.

Типы данных: double

Среднее время занятости сервера.

Зависимости

Чтобы включить этот порт, перейдите на вкладку Statistics (Статистика) и установите флажок Usicipation, util (Использование).

Типы данных: double

Количество вытесненных объектов.

Зависимости

Чтобы включить этот порт, сначала перейдите на вкладку Preemption, затем на вкладку Statistics и установите флажок Number of entities preempted, p.

Типы данных: double

Число объектов, которые извлекаются из этого блока.

Зависимости

Чтобы включить этот порт, перейдите на вкладку Статистика (Statistics) и установите флажок Количество извлеченных объектов (Number of entities extructed), например.

Типы данных: double

Параметры

развернуть все

Укажите количество объектов, которые блок может обслуживать одновременно.

Программное использование

Параметр блока: Capacity
Текст: символьный вектор
Значения: '1'| скаляр
По умолчанию: '1'

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

Можно выбрать:

  • Dialog

    Введите постоянное значение в параметре Значение времени обслуживания.

  • Signal port

    Подключите источник времени к результирующему сигнальному порту.

  • Attribute

    Введите имя атрибута, который содержит данные, интерпретируемые как служба.

  • MATLAB action

    В разделе Действие «Время обслуживания» введите код MATLAB для изменения времени обслуживания. Назначьте переменную dt, используемую моделью в качестве времени обслуживания.

Программное использование

Параметр блока: ServiceTimeSource
Текст: символьный вектор
Значения: 'Dialog' | 'Signal port' | 'Attribute'| 'MATLAB action'
По умолчанию: 'Dialog'

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

Зависимости

Этот параметр отображается, если для параметра Service time source установлено значение Attribute.

Программное использование

Параметр блока: ServiceTimeAttributeName
Текст: символьный вектор
Значения: 'ServiceTime' | символьный вектор
По умолчанию: 'ServiceTime'

Настраиваемый: Да

Зависимости

Этот параметр отображается, если для параметра Service time source установлено значение Dialog.

Программное использование

Параметр блока: ServiceTimeValue
Текст: символьный вектор
Значения: '1.0' | скаляр
По умолчанию: '1.0'

Используйте код MATLAB для указания времени обслуживания. dt определяет время обслуживания. Можно указать вручную dt или используйте кнопку Вставить шаблон, чтобы указать время обслуживания из повторяющейся последовательности или из распределения. Пример см. в разделе Подсчет одновременных вылетов с сервера.

Зависимости

Этот параметр отображается, если для параметра Service time source установлено значение MATLAB action.

Программное использование

Параметр блока: ServiceTimeAction
Текст: символьный вектор
Значения: код MATLAB
По умолчанию: 'dt = rand(1,1);'

Укажите поведение объекта в определенных событиях. Определите поведение в параметре действия «Событие». Действия Ввод (Entry) и Выход (Exit) вызываются сразу после ввода объекта и непосредственно перед выходом объекта. Действие завершения службы вызывается после завершения службы сущности. Действие Заблокировано вызывается после блокирования сущности. После прерывания вызова вызывается функция Preempt.

Программное использование

Параметр блока: EntryAction, ServiceCompleteAction, ExitAction, BlockedAction, PreemptAction
Текст: символьный вектор
Значения: код MATLAB
По умолчанию: ''

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

  • Сортировка имени атрибута на вкладке Preemption

  • Направление сортировки на вкладке Preemption

  • Запись остаточного времени в атрибут на закладке Preemption

  • Количество вытесненных объектов, p на вкладке «Статистика»

Пример см. в разделе Приоритет задачи в многозадачном процессоре.

Программное использование

Параметр блока: PermitPreemptionBasedOnAttribute
Текст: символьный вектор
Значения: 'on' | 'off'
По умолчанию: 'off'

Укажите имя атрибута, используемого для определения приоритета.

Зависимости

Этот параметр отображается, если установлен флажок Разрешить вытеснение на основе атрибута.

Программное использование

Параметр блока: SortingAttributeName
Текст: символьный вектор
Значения: 'entity' | 'entitySys.priority' | символьный вектор
По умолчанию: 'entity'

Укажите, отсортированы ли объекты в ascending или descending заказ.

  • ascending - Сортировка объектов с меньшими ключевыми значениями для получения более высокого приоритета

  • descending - Сортировка объектов с большими ключевыми значениями для получения более высокого приоритета

Зависимости

Этот параметр отображается, если установлен флажок Разрешить вытеснение на основе атрибута.

Программное использование

Параметр блока: SortingDirection
Текст: символьный вектор
Значения: 'Ascending' | 'Descending'
По умолчанию: 'Ascending'

Зависимости

Этот параметр отображается, если установлен флажок Разрешить вытеснение на основе атрибута.

Программное использование

Параметр блока: WriteResidualTimeToAttribute
Текст: символьный вектор
Значения: 'on' | 'off'
По умолчанию: 'off'

Зависимости

Этот параметр отображается, если установлен флажок Записать остаточное время в атрибут.

Программное использование

Параметр блока: ResidualTimeAttributeName
Текст: символьный вектор
Значения: 'ResidualTime' | символьный вектор
По умолчанию: 'ResidualTime'

Число объектов, вышедших из блока.

Программное использование

Параметр блока: NumberEntitiesDeparted
Текст: символьный вектор
Значения: 'on' | 'off'
По умолчанию: 'off'

Количество объектов, присутствующих в блоке, которые еще не удалены.

Программное использование

Параметр блока: NumberEntitiesInBlock
Текст: символьный вектор
Значения: 'on' | 'off'
По умолчанию: 'off'

Указывает, присутствует ли в блоке объект, который еще не удален. Значение: 1 для ожидающей сущности, и 0 в противном случае.

Программное использование

Параметр блока: PendingEntityPresentInBlock
Текст: символьный вектор
Значения: 'on' | 'off'
По умолчанию: 'off'

Выводит число ожидающих объектов, обслуженных блоком, которые еще не удалены.

Программное использование

Параметр блока: NumberEntitiesPending
Текст: символьный вектор
Значения: 'on' | 'off'
По умолчанию: 'off'

Сумма времени ожидания для объектов, вышедших из блока, деленная на их общее число. Время ожидания - это длительность между входом в блок сервера сущностей и выходом объекта. Дополнительные сведения см. в разделе Интерпретация моделей SimEvents с помощью статистического анализа.

Программное использование

Параметр блока: AverageWait
Текст: символьный вектор
Значения: 'on' | 'off'
По умолчанию: 'off'

Среднее время занятости сервера. Блок вычисляет это время как отношение общего времени ожидания объектов к емкости сервера, умноженное на общее время моделирования.

Время ожидания - это длительность между входом в блок сервера сущностей и выходом объекта. Общее время ожидания - это сумма времени ожидания для объектов, вышедших из блока.

Программное использование

Параметр блока: Utilization
Текст: символьный вектор
Значения: 'on' | 'off'
По умолчанию: 'off'

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

Зависимости

Этот флажок появляется, если установлен флажок Разрешить преимущественное освобождение на основе атрибута.

Программное использование

Параметр блока: NumberEntitiesPreempted
Текст: символьный вектор
Значения: 'on' | 'off'
По умолчанию: 'off'

Выводит число извлеченных объектов, которые извлекаются из этого блока блоком поиска объектов. Если объект обслуживается во время извлечения, служба прерывается. Если атрибут, определяющий время обслуживания и изменяемый блоком «Поиск сущности», время обслуживания не изменяется. При извлечении объекта соответствующим образом обновляется статистика Количество удаленных объектов, d, Количество объектов в блоке, n, Среднее ожидание, w и Использование. Дополнительные сведения о поиске и извлечении объектов см. в разделе Поиск и извлечение объектов в моделях SimEvents.

Программное использование

Параметр блока: NumEntitiesExtracted
Текст: символьный вектор
Значения: 'on' | 'off'
По умолчанию: 'off'

Примеры модели

Представлен в R2016a