基于多进程的铁路列车运行图编制系统及方法

文档序号:9417243阅读:365来源:国知局
基于多进程的铁路列车运行图编制系统及方法
【技术领域】
[0001] 本发明涉及一种基于多进程的铁路列车运行图编制系统及方法,属于计算机交通 应用领域。
【背景技术】
[0002] 现有铁路列车运行图编制系统基于单进程技术开发实现,系统采用C/S架构,依 据管辖区域、业务工种设定编图人员的数据操作权限,编图客户端只运行一个进程,用户所 有操作均在此进程中,操作结果实时上传至服务器。
[0003] 现有铁路列车运行图编制系统基于单进程技术开发实现,有以下缺点:
[0004] 1.跨局列车运行图编制效率低、难以进行可行性验证:在联网编图工作模式下, 编图客户端只有一个进程运行,该进程所有操作实时上传至服务器,有严格的权限控制。编 图人员只能对本局管辖范围内的运行线进行编制调整,无法预见方案在其管辖范围外的可 行性,跨局列车运行图的编制需经由路局编图人员反复协商调整,效率较低;
[0005] 2.离线数据提取粒度大、效率低:现有技术方案采用将离线数据文件上传至服务 器,服务器执行合并数据功能,在全路库中整体替换上传数据,数据提取粒度大,处理时间 长,对联网编图造成了一定干扰。数据提取功能后台运行,可视化程度不高,难以实现用户 自定义、小粒度、可视化的数据提取需求。
[0006] 本发明涉及到的一些相关术语:
[0007] 1.列车运行图:列车运行图规定了各种列车占用区间的次序,列车在每个车站的 到达、出发或通过时刻,列车在各区间的运行时间,列车在车站的停站时间标准,以及机车 交路等。它把整个路网的运输生产活动联系成为一个统一的整体,列车运行图是铁路运输 工作的综合计划、铁路行车组织的基础,是协调铁路各部门、单位按一定程序进行生产活动 的工具。
[0008] 2.铁路列车运行图编制系统:我国铁路已广泛采用计算机编制列车运行图,构建 了集列车运行图数据管理、技术资料管理、列车运行计划、列车运行仿真、车底(动车组)交 路计划等相关技术作业计划于一体的列车运行图编制与管理协同一体化信息平台,开发了 铁路列车运行图编制系统,实现了基于局域网、铁路广域网的联网编图,实现了基于全路网 列车运行图的统一编制管理。
[0009] 3.列车运行图编制管理模式:目前,我国铁路列车运行图的编制采用两级管理模 式,其中,铁路总公司负责确定列车运行图的编制原则、方针及任务,制定直通客车方案图, 并领导和组织全路列车运行图的编制工作;铁路局负责拟定具体行动计划,并具体负责完 成本局的编图工作。我国铁路列车运行图的编制是应用铁路列车运行图编制系统,在联网 条件下,系统依据管辖区域、业务工种设定编图人员的数据操作权限,由多用户协同工作完 成运行图编制工作。
[0010] 4.进程:是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源 分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进 程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序 是指令、数据及其组织形式的描述,进程是程序的实体。
[0011] 5.进程通信:进程间通信(IPC,Interprocess communication)是一组编程接口, 让程序员能够协调不同的程序进程,使之能在一个操作系统里同时运行。这使得一个程序 能够在同一时间里处理许多用户的要求。因为即使只有一个用户发出要求,也可能导致一 个操作系统中多个进程的运行,进程之间必须互相通话。IPC接口就提供了这种可能性。每 个IPC方法均有它自己的优点和局限性,因此,对于单个程序而言使用所有的IPC方法是不 常见的。
[0012] 6.共享内存:共享内存是被多个进程共享的一部分物理内存。
[0013] 7.线程:线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执 行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单 个程序里执行多任务。

【发明内容】

[0014] 针对上述现有技术,本发明提出了一种基于多进程的铁路列车运行图编制系统及 方法,旨在解决现有技术跨局列车运行图编制效率低、难以进行可行性验证等问题。
[0015] 为了解决以上发明目的,本发明采用的技术方案如下,一种基于多进程的铁路列 车运行图编制系统,所述系统采用C/S架构,具有一台服务器,至少一台客户端,各客户端 终端均包含一个主进程和一个副进程,副进程除不具备与服务器通信功能外,其他功能与 主进程完全一致;主进程包含副进程管理模块,实现副进程的调度管理,可创建或销毁副进 程;主进程和副进程中均包含运行图内存数据,主进程中的运行图数据从服务器获取,主进 程实现列车运行图的网络协同编制,副进程可直接从主进程中复制运行图数据,也可以从 本地离线数据中读取运行图数据,副进程中用户操作不受路局管辖范围的限制,用户可在 全路范围内编制、验证运行图,将满意结果从副进程发送给主进程,再由主进程上传至运行 图服务器;主进程和副进程均包含进程间通信模块、数据交换模块、主副进程间同步与协调 模块,以上模块用于主副进程间数据进行通信交换。
[0016] 为了解决以上发明目的,本发明还采用了如下的技术方案,一种基于多进程的铁 路列车运行图编制方法,包括以下步骤:
[0017] Sl :保持原有C/S网络结构不变,将原应用程序升级至64bit系统;
[0018] S2:在原客户端进程中建立副进程管理机制,其中副进程中铁路列车运行图编制 相关功能与主进程一致,但不控制操作权限,即用户在副进程中具有最高操作权限;
[0019] S3:增加主进程与副进程间的通信功能,并建立主副进程间数据同步协调机制,实 现主副进程间运行图数据的交换;
[0020] S4:在主进程中建立数据权限管理机制,接收到副进程发送过来的运行图数据后, 根据主进程的权限对数据进行处理,将符合权限范围的运行图数据提交至运行图服务器。
[0021] 作为优选,S2所述副进程由主进程采用复制方式创建,创建过程如下:
[0022] S21准备工作:确定副进程的类型,开辟共享内存,创建进程间互斥访问共享内存 的Mutex互斥量,并创建进程间通知事件,记录各变量的句柄或名称,根据副进程类型,导 出主进程全部内存数据,生成副进程所需的数据文件,或是让用户指定副进程所需加载的 列车运行图数据库;
[0023] S22创建副进程:调用操作系统功能函数,创建子进程,并传入子进程初始化所需 的全部参数;
[0024] S23子进程通信初始化:根据传入参数,获取共享内存、Mutex互斥量、通知事件的 句柄,保存到本进程通信模块参数中,从而建立进程间通信数据通道和消息体系;
[0025] S24子进程数据初始化:根据传入参数,导入主进程生成的数据文件,或加载主进 程指定的列车运行图数据库。
[0026] 作为优选,S3所述主副进程数据同步协调机制建立步骤如下:
[0027] S31创建进程信息管理数据结构;
[0028] S32创建进程自检:进程创建之初,根据传入的参数信息,确定进程身份信息,并 记录于S31所述结构中,主进程的父进程ID号为0,子进程则根据参数信息记录父进程的 ID号;
[0029] S33创建子进程启动与退出同步机制;
[0030] 主进程创建子进程之前,首先建好共享内存、Mutex互斥量和通知事件,然后根据 副进程类型设置子进程启动参数,调用系统函数启动子进程,同时把各类参数传递到子进 程,并记录函数返回信息,生成子进程进程信息节点,记录到子进程信息列表中;
[0031] 子进程早于主进程退出时,向共享内存写入退出信息,通知主进程,然后立即退 出,主进程收到通知后,获取共享内享信息,从子进程列表中删除已相关记录;
[0032] 主进程早于子进程退出时,同样在共享内存中发出退出命令,然后通过对进程句 柄事件的检测,等待子进程退出,如果子进程退出超时,则强制结束子进程,在所有子进程 退出后,撤销共享内存、互斥量和通知事件,结束本进程。
[0033] S34子进程查询:根据子进程信息列表记录内容,获取所有子进程信息,指定子进 程ID或句柄进行查询。
[0034] 作为优选,S3所述主进程与副进程通信方法如下:
[0035] 进程启动后,通过创建或参数传递方式获取了共享内存句柄、进程通信Mutex互 斥量句柄、进程通知事件句柄,以此建立了进程间通信的基本通道;
[0036] 在建立了通信通道后,进程中启用专用线程,用以监测通知事件消息,调用 WaitForSingleObjectO基础API函数,通过睡眠方式,等待全局通知事件消息的触发;当 线程被唤醒后,检测系统环境,确保正常时,立即对Mutex互斥量加锁,从共享内存中取数 据并复制到私有内存中,然后触锁,将数据交由主线程分析处理。
[0037] 作为优选,所述启用专用
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1