铁路车站信号
2023-02-02
更新时间:2023-02-03 00:51:45作者:百科
[拼音]:GPSS yuyan
[外文]:general purpose simulation system language
一种离散系统仿真语言,又称通用仿真系统语言,英文缩写为GPSS。GPSS语言是面向框图的进程型语言,已在离散系统仿真中得到广泛应用。在交通、能源、通信、计算机网络、系统设计、计划调度、财政金融等方面常借助于GPSS语言进行决策分析。GPSS语言简单易学,功能很强。即使没有程序设计经验的用户也能选用各种模块组成框图,对于复杂系统的仿真所用程序也很短,并有大量的应用范例可供参考。为了便于在电子计算机上执行用GPSS语言编写的仿真程序,已经设计出功能很强的GPSS仿真软件,一般由文件和软磁盘的形式提供。GPSS仿真软件由模型定义模块、处理程序、实用程序库和运行支持程序等组成,具有自动打印输出报告和良好的自诊断功能。
发展简史1961年美国国际商业机器公司 (IBM公司)的G.戈登等人发表进程型仿真语言第一个文本,称为 GPS(General purpose simulation problem)。它只有20多个模块。此后相继发表了GPSSⅡ和GPSSⅢ等文本。1967年IBM公司提出 GPSS/360,有48个模块。1975年形成的新文本GPSSⅤ,有52个模块,并可用HELP模块调用FORTRAN等高级语言的各种功能的子程序。目前广泛应用的GPSS语言就是指GPSS/360和GPSSⅤ。80年代又出现新的文本GPSSH。
GPSS框图用GPSS语言编制仿真程序时,首先用框图描述被仿真的动态系统。框图中每一个模块表示一种动作。各模块之间的连线表示动作的先后顺序。如果由模块引出的连线多于一条,则要在模块上说明动作选择的条件。所以GPSS框图与流程图相似。这种以程序设计语言为基础的框图描述方法,要求对每一模块给出确切的定义和名称,并指出相应的操作数。
在仿真系统中流动着的是与系统性质有关的实体,如交通运输系统中的车辆,数据处理系统中的数据和记录等。这类流动实体统称为事件,通常用参数来表示它的属性。在GPSS框图中事件从一个模块到另一个模块的运动,清楚地描述事件进入和离开系统以及在系统中运动的情况。可把模块看作是子程序可被调用的点,当事件进入某一模块时,该模块即被激活,执行相应的子程序。由事件运动而引起一系列子程序的调用,就形成了模型的运行,即实现了系统仿真的功能。
在仿真系统中一直保留着的实体称为永久实体,可以用来表示系统中的人力、装备或仓库等。GPSS框图中有三类永久实体:设施、存储器和逻辑开关。设施是提供服务的实体。在某一时间间隔内,一个设施只能供一个事件使用。一个存储器则能同时供多个事件占用,但它有一定的容量。逻辑开关则是一种双态元件,用来表示设备的忙闲。
GPSS框图是由一些有序的、相互连接的模块组成的。这里模块就相当于具有一定功能的仿真指令,模块之间的连线相当于它们之间的逻辑关系。每个模块图形上的数字(或字符)称为操作数。它表示模块作用的信息,即调用子程序时所用的自变量。各模块的操作数一般不超过7个(分别称为A,B,C,D,E,F,G),但多数只用1~2个。在GPSS仿真软件的用户手册中可以查到各模块所用操作数的定义。在GPSS框图中用整数表示时钟时间,用户可自行选定使用的实时区间及相应的时间单位,但要求在仿真运行的全过程中选用同样的时间单位。
GPSS程序按GPSS框图来编制GPSS程序必须遵循规定的格式。GPSS程序由模块语句、控制语句和解释语句等构成。模块语句由模块名称和相应的操作数组成,这是GPSS程序的基本部分。控制语句控制仿真运行,也可附有操作数。解释语句除仿真程序的名称外(通常为第一条解释语句)也可以不写,不会影响仿真结果。
GPSS程序的输出GPSS程序备有标准输出,在仿真结束后自动打印出输出报告。一般不必在程序中写上输出语句,除非事先声明要打印成别的格式。GPSS程序的标准输出分成四个部分。前三个部分是GPSS程序输入表,第四部分才是GPSS程序输出表。输出报告的第一部分打印输入程序,称为扩展程序表。看起来与GPSS程序很相似,只是在程序的右边列有存储单元分配表,而在程序的左边列出每一语句的顺序编号。第二部分是汇编清单。这一部分实质上是扩展程序表的省略表达形式。由编号代替程序表中的符号。这些编号是按GPSS处理程序在扫描时遇到的先后次序排列的。第三部分是实体信息表。其中有实体类型和数量,说明本程序使用的实体情况。第四部分是GPSS程序输出表。该表列出仿真运行终止时相对时钟和绝对时钟的时间单位,终止时GPSS框图的瞬时状态及通过框图的流动实体数;还列出仿真结束时留在每个模块中流动实体的数量,自仿真开始以来进入该模块的流动实体总数以及设施、存储器、队列等统计数(例如流动实体占用设施的数量,永久实体平均利用率,队列平均容量和平均等待时间等)。