建模与仿真 - 离散系统仿真

在离散系统中,系统状态的变化是不连续的,系统状态的每次变化称为事件。离散系统仿真中使用的模型有一组数字来表示系统的状态,称为状态描述符。在本章中,我们还将学习排队仿真,这是离散事件仿真中非常重要的一个方面,以及分时系统仿真。

以下是离散系统仿真行为的图形表示。

离散系统仿真。

离散事件仿真 ─ 主要特点

离散事件仿真通常由使用高级编程语言(如 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*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)、缓存等。