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