一种kux系统下基于数据管道的进程间通讯的实现方法
【专利摘要】本发明提供一种KUX系统下基于数据管道的进程间通讯的实现方法,涉及UNIX以及KUX的操作系统领域中的进程间通讯方式领域。本发明主要分为以下五个模块:进程管理模块(1)、数据管道模块(2)、通讯控制模块(3)、文件管理模块(4)、异常处理模块(5);使用模块化的思想有效的完成了KUX系统下具有亲缘关系的进程之间的通信的方法,通过匿名管道的方式实现通讯,还加强了对管道文件的管理和保护,另外,增加异常处理模块,以供出现异常时不至于整个通讯系统的崩溃。
【专利说明】一种KUX系统下基于数据管道的进程间通讯的实现方法
【技术领域】
[0001]本发明涉及UNIX以及KUX的操作系统领域中的进程间通讯方式,在KUX应用开发中会遇到进程间通讯的需求,进程间通讯的方法有很多,例如通过共享内存、信号量、内存映射文件、数据管道、文件、Socket等等。这里介绍的一种通过数据管道和系统标准输入输出文件描述符相结合的方式来实现进程间通讯和数据交互。
【背景技术】
[0002]匿名管道:管道是进程间协同工作的一种方式,单独构成一种独立的文件系统,管道是半双工的。而匿名管道数据只能向一个方向流动,双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程)。
[0003]文件指针与管道:当我们要读写一个文件,需要用到文件指针,它是一个指向结构体的指针。我们对管道进行读写操作时也需要用到文件指针,通过文件指针来对管道一端进行写,而另一端的进程则通过文件指针进行读。如果文件指针指向的是标准输入,那么该进程则是从标准输入中读取数据,通过匿名管道实现进程间通讯:通信场景如下:现在有两个进程A、进程B (是进程A的子进程),进程A从数据库中读取一条待处理数据M,数据M中存储了进程A需要调用的可执行程序名称及需要传递给可执行程序的参数。参数很多,并且参数长度及个数以及类型都是变化的。
【发明内容】
[0004]本文利用文件指针进行匿名管道的读写操作,不采取参数传递方法,而采用了匿名管道进程间通信方法。
[0005]对于本发明,使用了匿名管道方式,来实现进程间的通讯。通过数据管道和系统标准输入输出文件描述符相结合的方式来实现进程间通讯和数据交互。
[0006]本发明提供一种KUX系统下基于数据管道的进程间通讯的实现方法,解决KUX系统下具有亲缘关系的进程之间的通信的实现方法。主要分为以下五个模块:进程管理模块
(I)、数据管道模块(2)、通讯控制模块(3)、文件管理模块(4)、异常处理模块(5)。
[0007]进程管理模块(I)是通讯实现方法的进程管理模块,其主要目的是对通讯前提进行定义,比如两个进程间通讯的相关性。
[0008]数据管道模块(2)是通讯实现方法的核心模块,其主要目的是通过匿名管道通讯实现数据传递和通讯的管道设置。
[0009]通讯控制模块(3)是对整体通讯方法的控制模块,其主要目的是对通讯中的进程、传递方式、通讯模式等进行有效的管理。
[0010]文件管理模块(4)是对通讯内容的一个管理模块,其主要目的是对数据传递的内容进行有效的管理。
[0011]异常处理模块(5)是进程通讯方法中出现的异常进行处理的模块,其主要目的是对异常通信情况进行分析和处理。
[0012]进程通讯的步骤如下:
第一步、调用进程管理模块对需要通讯的进程进行管理和调度,实现对具有亲缘关系的进程有效的管理。
[0013]第二步、通讯控制模块通过调用数据管道模块,来进行通讯方式和传递方式的管理和调度,这里的数据管道的选择也是通过通讯控制模块来进行管理的。
[0014]第三步、文件管理模块根据进程需要通讯的数据进行文件化处理,实现系统间通信的标准输入输出文件的设置。
[0015]第四步、进程间进行通讯,以及数据传递。期间调用异常处理模块,对进程通讯过程中出现的异常情况进行有效的分析和管理。
[0016]第五步、通讯结束,关闭所有方法模块。
[0017]本发明有益的效果是:通过基于数据管道在KUX进程通讯的实现方法,实现了通过数据管道和系统标准输入输出文件描述符相结合的方式来实现进程间通讯和数据交互的进程通讯方式,可以对KUX中的具有亲缘关系的进程进行有效的通讯和数据文件的有效传递。通过基于数据管道的技术,提高了数据在传递中的安全性和准确性,对于进程间的通讯模式,也是一个颠覆性的创新。除此之外,本发明在实现过程中采用了模块化的设计思想,对功能进行了有效的拆分,提高了通讯方法在以后的功能可扩展性。对于本发明,重点对进程通讯过程中的异常分析和处理也做了相应的解决方案,可以对出现的异常进行有效的分析和处理,在KUX进程通讯方面,具有非常广阔的方展前景。
【专利附图】
【附图说明】
[0018]附图1数据管道通信原理图。
[0019]附图2进行通讯方法的工作流程图。
【具体实施方式】
[0020]下面参照附图,对本发明的内容以一个具体实例来描述实现这一体系结构的过程。
[0021]正如
【发明内容】
中所描述的,通过基于数据管道在KUX进程通讯的实现方法,主要有进程管理模块(I)、数据管道模块(2)、通讯控制模块(3)、文件管理模块(4)、异常处理模块(5)五个模块构成。
[0022]进程管理模块(I)是通讯实现方法的进程管理模块,其主要目的是对通讯前提进行定义,比如两个进程间通讯的相关性。
[0023]数据管道模块(2)是通讯实现方法的核心模块,其主要目的是通过匿名管道通讯实现数据传递和通讯的管道设置。
[0024]通讯控制模块(3)是对整体通讯方法的控制模块,其主要目的是对通讯中的进程、传递方式、通讯模式等进行有效的管理。
[0025]文件管理模块(4)是对通讯内容的一个管理模块,其主要目的是对数据传递的内容进行有效的管理。
[0026]异常处理模块(5)是进程通讯方法中出现的异常进行处理的模块,其主要目的是对异常通信情况进行分析和处理。
[0027]数据管道通讯的实现方法步骤如下:
第一步、调用进程管理模块对需要通讯的进程进行管理和调度,在本模块中记录需要通信的两个进程的PID,说明需要通信的时哪两个进程,从而实现对具有亲缘关系的进程进行有效的管理。
[0028]第二步、通讯控制模块通过调用数据管道模块,来进行通讯方式和传递方式的管理和调度,这里的数据管道的选择也是通过通讯控制模块来进行管理的,包括双向管道还是单向管道的选择。
[0029]第三步、文件管理模块根据进程需要通讯的数据进行文件化处理,即建立管道文件,供给进程访问,并赋予访问的通信进程相应的权限,不允许不在进程管理模块中备案的进程访问该管道文件,从而实现具有亲缘关系的进程之间通信的类似于标准输入输出文件的设置。
[0030]第四步、进程间进行通讯,以及数据传递,首先,提供数据的进程将数据写入文件管理模块建立的管道文件中,当数据写入结束时发出信号,通知通讯控制模块,此时讲允许获取信息的进程读取管道文件中的数据,读取结束时通知通讯控制模块,此时,就完成了一次数据通讯,在此期间异常处理模块一直处于活动状态,检测整个通讯过程,如果中间出现异常,讲由异常处理模块接手此次通讯,并通知通讯控制模块,此次通讯失败,异常处理模块能够对进程通讯过程中出现的异常情况进行有效的分析和管理,其中异常情况比如:管道文件不存在,无法正常读写,管道文件被占用等等情况。
[0031]第五步、通讯结束,关闭所有方法模块。
【权利要求】
1.一种KUX系统下基于数据管道的进程间通讯的实现方法,其特征在于主要分为进程管理模块(I)、数据管道模块(2)、通讯控制模块(3)、文件管理模块(4)、异常处理模块(5)五个模块构成; 进程管理模块(I),其主要目的是对通讯前提进行定义; 数据管道模块(2),是通讯实现方法的核心模块,其主要目的是通过匿名管道通讯实现数据传递和通讯的管道设置; 通讯控制模块(3),是对整体通讯方法的控制模块,其主要目的是对通讯中的进程、传递方式、通讯模式等进行有效的管理; 文件管理模块(4),是对通讯内容的一个管理模块,其主要目的是对数据传递的内容进行有效的管理; 异常处理模块(5),是进程通讯方法中出现的异常进行处理的模块,其主要目的是对异常通信情况进行分析和处理; 通过数据管道和系统标准输入输出文件描述符相结合的方式来实现进程间通讯和数据交互。
2.根据权利要求1所述的KUX系统下基于数据管道的进程间通讯的实现方法,其特征在于进程通讯的步骤如下: 第一步、调用进程管理模块对需要通讯的进程进行管理和调度,实现对具有亲缘关系的进程有效的管理; 第二步、通讯控制模块通过调用数据管道模块,来进行通讯方式和传递方式的管理和调度,这里的数据管道的选择也是通过通讯控制模块来进行管理的; 第三步、文件管理模块根据进程需要通讯的数据进行文件化处理,实现系统间通信的标准输入输出文件的设置; 第四步、进程间进行通讯,以及数据传递;期间调用异常处理模块,对进程通讯过程中出现的异常情况进行有效的分析和管理; 第五步、通讯结束,关闭所有方法模块。
3.根据权利要求1所述的KUX系统下基于数据管道的进程间通讯的实现方法,其特征在于数据管道模块使用了匿名管道通讯方式,可以只作用于父子进程或者是兄弟进程之间的通讯,或者是具有亲缘管理的进程通信。
【文档编号】G06F9/54GK104375900SQ201410686530
【公开日】2015年2月25日 申请日期:2014年11月26日 优先权日:2014年11月26日
【发明者】吴丹宇 申请人:浪潮电子信息产业股份有限公司