离散系统仿真
在离散系统中,系统状态的变化是不连续的,系统状态的每次变化称为事件。离散系统仿真中使用的模型有一组数字来表示系统的状态,称为状态描述符。在本章中,我们还将学习排队仿真,这与分时系统仿真一样,是离散事件仿真中非常重要的一个方面。
以下是离散系统仿真Behave的图形表示。
离散事件模拟 ─ 主要特点
离散事件模拟通常由用高级编程语言(例如Pascal、C++或任何专用模拟语言)设计的软件来执行。以下是五个主要特征 -
实体- 这些是真实元素的表示,例如机器的零件。
关系- 意味着将实体链接在一起。
模拟执行器- 负责控制提前时间并执行离散事件。
随机数生成器- 它有助于模拟进入模拟模型的不同数据。
结果和统计- 它验证模型并提供其性能指标。
时间图表示
每个系统都取决于一个时间参数。在图形表示中,它被称为时钟时间或计时器,最初它被设置为零。时间根据以下两个因素更新 -
时间切片- 模型为每个事件定义的时间,直到没有任何事件为止。
下一个事件- 它是由模型定义的事件,用于执行下一个事件而不是时间间隔。它比时间切片更有效率。
排队系统的模拟
队列是系统中正在服务的所有实体和等待轮到的实体的组合。
参数
以下是排队系统中使用的参数列表。
象征 | 描述 |
---|---|
λ | 表示到达率,即每秒到达的数量 |
TS | 表示每次到达的平均服务时间,不包括排队等待时间 |
σTs | 表示服务时间的标准差 |
ρ | 表示服务器时间利用率,包括空闲和繁忙时 |
你 | 表示交通强度 |
r | 表示系统中项目的平均值 |
右 | 表示系统中的项目总数 |
Tr | 表示系统中某个项目的平均时间 |
TR | 表示某项在系统中的总时间 |
σr | 表示 r 的标准差 |
σTr | 表示 Tr 的标准差 |
w | 表示队列中等待的平均项目数 |
σw | 表示 w 的标准差 |
特瓦 | 表示所有商品的平均等待时间 |
TD | 表示队列中等待的项目的平均等待时间 |
氮 | 表示系统中服务器的数量 |
MX(Y) | 表示第 y个百分位数,表示 y 的值,低于该值 x 出现的时间百分比为 y |
单服务器队列
这是最简单的排队系统,如下图所示。系统的核心元件是服务器,它为连接的设备或项目提供服务。如果服务器空闲,则向系统请求提供服务的项目。然后,立即提供服务,否则它会加入等待队列。服务器完成任务后,物品离开。
多服务器队列
顾名思义,该系统由多个服务器和所有项目的公共队列组成。当任何项目请求服务器时,如果至少有一个服务器可用,则会分配该项目。否则队列开始启动,直到服务器空闲为止。在这个系统中,我们假设所有服务器都是相同的,即为哪个项目选择哪个服务器没有区别。
使用上有一个例外。令N为相同的服务器,则ρ为每台服务器的利用率。考虑Nρ为整个系统的利用率;则最大利用率为N*100%,最大输入率为 -
$λmax = \frac{\text{N}}{\text{T}s}$
排队关系
下表显示了一些基本的排队关系。
一般条款 | 单服务器 | 多服务器 |
---|---|---|
r = λTr 利特尔公式 | ρ = λTs | ρ = λTs/N |
w = λTw 利特尔公式 | r = w + ρ | u = λTs = ρN |
Tr = Tw + Ts | r = w + Nρ |
分时系统仿真
分时系统的设计方式是每个用户使用系统上共享的一小部分时间,从而导致多个用户同时共享系统。每个用户的切换如此之快,以至于每个用户都感觉像是在使用自己的系统。它基于 CPU 调度和多道编程的概念,通过在系统上同时执行多个作业,可以有效地利用多个资源。
示例- SimOS 仿真系统。
它由斯坦福大学设计,用于研究复杂的计算机硬件设计、分析应用程序性能以及研究操作系统。SimOS 包含现代计算机系统所有硬件组件的软件模拟,即处理器、内存管理单元 (MMU)、缓存等。