主要内容

离散事件模拟中的队列和服务器概述

在一个SimEvents®模型实体队列实体服务器块是保存实体的存储块。

  • 队列对实体进行排序,并根据队列策略对它们进行排序。

  • 服务器延迟实体,直到满足某些条件。

此示例模型表示了一个简单的排队系统,该系统生成实体,并按照指定的顺序将它们排队,为它们提供服务以更改它们的属性,并终止它们以表示它们离开队列。要了解更多关于基本排队系统的信息,请参见基本排队系统模型

使用实体生成器、实体队列、实体服务器和实体终止块的简单排队模型

带队列的存储

在离散事件模拟中实体队列块存储实体的时间长度无法预先确定。队列在可能的情况下尝试输出实体,但它的输出取决于下游块是否接受新实体。

排队模型。实体队列块被高亮显示。

排队的一个日常例子是人们排队等待商店登记。购物者无法提前确定他们必须等待多久才能完成购买。

例如,队列可以表示以下行为:

  • 等待进入跑道的飞机

  • 等待发送的消息

  • 在工厂里等待组装的零件

  • 等待执行的计算机程序

  • 在加油站排队等候的汽车

要定义队列的行为,请指定:

  • 容量—队列可以同时存储的实体数。

  • 队列排序策略-如果队列中存储多个实体,则指定哪个实体先离开,如先进先出(FIFO)、后进先出(LIFO)或自定义优先级。

  • 覆盖策略-确定队列已满时的行为。您可以选择阻止新的传入实体或接受它以覆盖队列中最旧的实体。

有关队列行为的更多信息,请参见基本排队系统模型

存储与服务器

在离散事件模拟中,服务器存储实体一段时间,称为服务时间,然后尝试输出实体。在服务期内,该区块处于关闭状态服务它存储的实体。

排队模型。实体服务器块高亮显示。

服务器的一个日常示例是一个人(如银行出纳员或零售出纳员),您将与他执行预期持续时间的事务。有关更多信息,请参见基本排队系统模型

每个实体的服务时间在实体到达时计算。但是,如果下一个块不接受已完成其服务的实体的到达,则服务器将被迫保留该实体更长的时间。

服务器的区别特征包括:

  • 它可以同时服务的实体数量,可以是有限的,也可以是无限的。

  • 计算到达实体的服务时间的特征或方法。

  • 服务器是否允许到达的实体抢占已经存储在服务器中的实体。有关更多信息,请参见多任务处理器中的任务抢占

提示

在没有抢占的情况下,容量有限的服务器在已满时不接受新到达的服务器。您可以在每个有限容量的服务器前放置一个队列,以便在实体等待服务器接受它们时为它们建立一个位置。否则,等待的实体可能存储在模型的不同位置,行为对您来说可能更难以预测或分析。

您可以使用服务器来表示现实世界中的系统,例如:

  • 与每个到达的客户执行交易的人(如银行出纳员)

  • 处理和发送信息的发送器

  • 在工厂里组装零件的机器

  • 执行程序的计算机

  • 该加工单元在生产线上的应用

  • 网络应用程序中的处理器

在某些情况下,服务器并不代表真实的系统。一种常见的建模技术涉及持续时间为零的延迟(即服务时间为零的无限服务器),以便为实体提供驻留位置以操作其属性。

在排队系统中使用事件和事件动作

您可以使用事件和事件操作来操作实体属性,并在排队系统中创建自定义行为。有关事件操作的更多信息,请参见事件和事件动作

假设您希望在实体进入或退出时更改实体属性实体队列或者是实体服务器块您可以使用由事件调用的操作,如进入块、退出块或服务完成。有关详细信息,请参阅基本排队系统模型.您还可以使用事件操作来创建自定义实体路由模式。有关更多信息,请参见使用队列事件操作对储罐进行建模

串行队列服务器对

串联两个队列服务器对可以表示实体上的连续操作。例如,您可以建模两台机器如何顺序处理装配线上的零件。

排队模型。实体队列1和实体服务器1称为进程1。实体队列2和实体服务器2称为进程2。

或者,您可以通过使用一对服务器(它们之间没有队列)来模拟相同的场景。

排队模型。实体服务器1称为进程1。实体服务器2称为进程2。

但是,在没有队列的情况下,如果第一台服务器完成了对实体的服务,并且第二台服务器可以接受新实体,则:

  • 实体必须在服务结束后留在第一台服务器中。

  • 在第二个服务器可用之前,第一个服务器不能接受新的服务实体。

如果要使用实体对在存储过程中经历两组不同物理条件的项进行建模,则将两个队列串联起来可能很有用。例如,溢出一个存储区域的额外库存物品必须留在另一个存储区域,在该区域,温度调节不太好会影响物品的长期质量。

将两个存储区域建模为不同的队列块,有助于查看实体在溢出存储区域停留的平均时间长度。有关更多信息,请参见基本排队系统模型

并行队列服务器对作为备选方案

并行连接两个队列-服务器对(其中实体被路由到一个或另一个队列-服务器对)可以表示替代操作。例如,您可以模拟车辆如何在收费广场的几个收费站排队等候。在这种情况下,模型必须有一个决策逻辑,可能是在这个模式之前的一个开关的形式。例如,请参见根据优先级对实体进行排序,为高优先级客户提供服务

一个使用实体生成器的简单排队系统,实体队列。离开队列的实体被定向到具有两个输出的实体输出开关块。每个输出将实体定向到队列服务器对。

并行连接两个队列服务器对(其中每个实体的副本到达每个队列服务器对)可以表示多播场景,例如向多个收件人发送消息。请注意,在某些应用程序中复制实体可能没有意义。有关示例,请参见使用实体多播的广播实体

作者自定义存储块使用MATLAB离散事件系统块和离散事件图

如果要对更复杂的实体存储块进行建模并扩展SimEvents库提供的块的行为,请使用MATLAB离散事件系统阻止和离散事件图

具有实体生成器块的模型,该生成器块将实体发送到使用MATLAB离散事件系统块编写的自定义块,然后终止实体

这个MATLAB离散事件系统块扩展系统对象以在模型中创建自定义SimEvents块。有关编写自定义SimEvents块的详细信息,请参见使用MATLAB离散事件系统块创建自定义块

这个离散事件图块使用Stateflow®图表并提供图形语言来在模型中创建自定义存储块。有关更多信息,请参见从队列服务器刷新实体

离散事件系统块,表示可以刷新实体的队列服务器对

另见

|

相关的话题