使用一块队列管理信息
这个例子展示了如何使用一个队列块存储和队列的消息。队列块允许您指定消息存储容量、覆盖政策,和排序政策消息转换。
操纵消息转换使用队列排序策略
的队列块支持三种消金宝app息排序策略:
方法暗含(后进先出)——最新消息存储先离开。
先进先出(FIFO)——最古老的消息存储先离开。
优先级——消息排序是基于他们的优先级。优先级队列时,才可以使用如果队列满覆盖最古老的元素清除复选框。
这个例子使用一个简单的基于消息的通信模型,介绍了动画和理解发送和接收消息。消息流模型包括消息流1和2的消息流从Wave1 Scope1和正弦Wave2 Scope2。
模型描述
在消息流1和消息流2:
的样品时间参数的正弦Wave1和正弦Wave2将
0.1
。他们是相同的正弦波。
的样品时间Receive1和Receive2设置参数
0.5
。他们是相同的接收模块。
Queue1和Queue2的能力
One hundred.
。两个队列有相同的能力。
Queue1的排序策略
后进先出
和Queue2先进先出
下,这是显示块标签。两个消息流场景的唯一区别是队列排序策略。
信号的正弦Wave1、Receive1 Receive2记录。
模拟模型和评估结果
模拟模型和仿真数据检查员的观察结果。
观察正弦Wave1的输出。的输出SineWave2是SineWave1不会显示,因为它是相同的。还观察到正弦波的信号从Receive1表示但随着时间间隔的样本。然而,信号从Receive2是正弦波的第一部分达到积极的高峰,因为队列的排序策略块设置为先进先出
和它的容量足够大的存储信息。
队列阻塞消息覆盖策略
您还可以指定队列阻塞队列满时消息覆盖策略:
默认情况下,如果队列满覆盖最古老的元素复选框被选中。块设置为总是接受传入消息,覆盖最古老的信息存储。在这种情况下,块覆盖最古老的消息,但离任的消息块是由队列排序策略。
在这个例子中队列的行为,消息枚举基于他们的到达时间先进先出和后进先出队列的容量8
。一个新消息数量9
的到来。在先进先出和后进先出的情况下,消息9
替换消息队列中1,因为它是最古老的元素。然而,观察队列的头部和尾部的变化在这个过程。在FIFO队列,消息2
离开第一,因为它是最古老的消息后的消息1
被替换。后进先出队列的消息9
离开第一,因为它是最后一条消息到达存储。消息离开之后,一个新的消息10
的到来。队列接收新消息的空贮料仓。
如果如果队列满覆盖最古老的元素清除复选框,队列的图标块变化和不接受新消息队列满时。这是一个阻塞队列的行为。
队列块覆盖策略启用
在QueueSortingPoliciesModelSequenceViewer模型中,队列的能力在消息流1和消息流2块了15
。减少的能力使传入消息覆盖现有的存储。
模拟模型和开放的顺序查看器块。序列中的观众,向上滚动或单击去第一个事件左边的图标。观察离任的消息块基于先进先出和后进先出的政策。
两块队列容量有限。当他们的容量已满,新传入消息覆盖最古老的现有消息队列。向下滚动并观察序列查看器阻止显示覆盖现有的消息。
一个阻塞队列的例子行为
打开QueueOverWritingPolicyModel检查阻塞队列的行为。
在接收块,设置样品时间参数0.5
。
队列中观察到:
的如果队列满覆盖最古老的元素清除复选框。观察块图标改变。
的能力参数设置为
16
。
在统计数据选项卡,数量的实体,d和块的实体数量,n复选框被选中。
模拟模型和评估结果
模拟模型。观察在诊断查看器显示的警告。发送的消息发送块投在模拟。
队列阻塞时,消息块如果队列满覆盖最古老的元素清除复选框。你可以增加队列块防止消息的能力下降。
使用统计分析队列的行为
当如果队列满覆盖最古老的元素清除复选框统计数据启用选项卡。使用统计数据选项卡使输出端口和观察队列块统计数据。统计不支持代码生成。金宝app
观察的信号标记块的信息数量和离开的消息数量。了仿真时间2
,有16
信息在存储、队列容量。之后,在块的消息数量值15
和16
因为消息离开每一个0.5
仿真时间和一个新的消息到来。
在模拟时间10
,总共21
离开的消息。
使用事件动作
您还可以使用事件动作,当如果队列满覆盖最古老的元素清除复选框。事件动作不支持代码生成。金宝app有关更多信息,请参见事件和事件操作(SimEvents)。
使用事件动作指定消息的行为在某些事件。例如,条目和退出行动被称为消息前入口和消息后退出。的阻塞行动后被称为消息屏蔽。
有关更多信息,请参见连接消息接收接口和仿真软件的功能金宝app。
你还可以使用块模型更复杂的通信政策从SimEvents®图书馆,这需要SimEvents®许可证。