多处理单元环境下统一输入输出方法
技术领域
本发明属于多处理器协同工作的系统,具体涉及一种多处理单元情况下统一输入输出方法及设备。
背景技术
随着信息技术的广泛应用,对于信息系统的要求也越来越高,越来越多的系统采用多处理器协同工作的模式,或者采用多模块协同工作的分布式系统模式来提高系统的整体处理性能。对于这样的系统,有一个共同点,就是有多个处理器,而且每个处理单元往往是一个独立运行的系统,运行着独立的软件,各处理器之间通过预定的通信机制进行各单元间的通信,并且这个通信的带宽往往较高。为了监控这些软件的运行,必然要求各个处理单元提供自己的输入输出系统,使得用户可以跟系统实现交互,由于每个处理单元都有自己的输入输出系统,多个处理单元就有多个输入输出。这种多输入输出在系统的开发前期是十分必要的,因为这可以使得各个部分相对较为独立的进行开发,但是到了系统提交使用的时候,这种多输入输出就给用户的使用带来不便,用户不得不面对多个终端来同系统交互,而且输入输出操作往往比较耗时,会对处理器处理正常的业务造成影响。
发明内容
本发明克服上述多处理器协同工作系统的不足,提供一种对外提供单一接口的多处理单元环境下统一输入输出方法。
本发明的技术内容:一种多处理单元环境下统一输入输出方法,包括:
(1)通过输入输出重定向和代理,将若干个处理单元的输入输出信息集中到一个主处理单元;
(2)主处理单元与终端交互处理各处理单元的输入输出。
所述输入包括:
(1)主处理单元接收的终端输入信息通过输入输出代理被送到相应的处理单元;
(2)各处理单元通过输入输出重定向把输入信息构造成处理单元自身的接收格式;
(3)各处理单元通过自身的输入接口进行输入。
所述输出包括:
(1)各处理单元的输出信息通过输入输出重定向构造成主处理单元的接收格式;
(2)主处理单元通过输入输出代理接收相应处理单元的输出信息;
(3)通过主处理单元与终端交互将输出信息发送到终端。
一种多处理单元环境下统一输入输出的设备,包括一个主处理单元和若干个处理单元,各处理单元通过处理单元间的通信宽带将输入输出集中在主处理单元,主处理单元与终端交互。
处理单元包括输入输出重定向模块和I/O处理模块,主处理单元包括输入输出代理模块和终端交互处理模块;
I/O处理模块,用于处理单元接收和发送输入输出信息;
输入输出重定向模块,用于各处理单元与主处理单元按照一定的通信格式接收和发送数据;
输入输出代理模块,用于主处理单元接收和发送各处理单元的输入输出;
终端交互处理模块,用于主处理单元与终端的交互。
主处理单元通过命令操作决定各处理单元的输入输出。
本发明的技术效果:通过输入输出重定向和代理,使得各处理单元的输入输出通过各处理单元间的较为高速的通信竟带集中到一个主处理单元上,然后由主处理单元综合输出到终端,以及通过主处理单元综合接收终端的输入,分发给相应的处理单元处理。由于对外提供的接口成为统一的接口,而且低速的输入输出操作只是有一个处理单元承担,系统的整体性得到提升。
附图说明
本发明多处理单元环境下统一输入输出方法的示意图。
具体实施方式
参考附图,本发明一种多处理单元环境下统一输入输出方法是,通过输入输出重定向和代理,将若干个处理单元的输入输出信息集中到一个主处理单元,主处理单元通过与终端交互处理实现各处理单元的输入输出。其中多处理单元的输入过程为,首先,主处理单元接收终端信息,通过输入输出代理向各处理单元分发输入信息,其次,输入输出重定向把输入信息构造成处理单元自身的接收格式,各处理单元的输入接口接收输入信息。
多处理单元的输出过程为,首先,各处理单元的输出信息通过输入输出重定向构造成主处理单元的接收格式,其次,主处理单元通过输入输出代理接收相应处理单元的输出信息,通过主处理单元与终端交互将输出信息发送到终端。
本发明一种多处理单元环境下统一输入输出设备,包括若干个处理单元和一个主处理单元,各处理单元通过处理单元间的通信宽带连接将输入输出集中在主处理单元,主处理单元与终端交互。主处理单元上包括:终端交互处理模块、输入输出代理模块、各处理单元上包括:输入输出重定向模块、I/O处理模块。下面对各个模块作详细描述:
1、主处理单元的终端交互处理模块,负责同终端交互。
为了实现对多处理单元的支持,该模块通过终端的命令输入选择交互的处理单元。一旦通过命令选择了同哪个处理单元交互后,这个终端的输入将会通过下面的单元输入输出代理模块被送到相应的处理单元。但对于到终端的输出,可以选择限制为所选择的单元,也可以不用限制,可以为所有单元进行输出,这个可以根据需要确定。
具体实现:实现一个命令,在这个命令被操作的时候,将通过一个标志,决定调用具体的输入输出代理模块的接口向该处理单元分发(可以是本单元)。同样需要实现另外一个命令,使终端可以同其他处理单元的交互模式回到同主处理单元的交互模式。
2、主处理单元上的输入输出代理模块
代理模块需要实现接收从所代理的处理单元发来的输出信息,然后调用主处理单元的“终端交互处理模块”提供的输出接口完成到终端的信息的输出;也需要实现接收来自终端的信息,并把这些信息传送到相应的该代理模块所代理的单元。
具体实现:该模块实现的前提是主处理单元已经同各处理单元实现了通信机制。对输入代理,该模块实现一个接口供终端交互处理模块调用,在这个接口中根据主从单元之间的对于通信格式的约定,完成主处理单元发送数据到各处理单元的操作。对于输出代理,该模块需要接收来自各处理单元的数据,然后调用终端交互处理模块的向终端输出接口,向终端输出信息。
3、从单元的输入输出的重定向模块
对于输出,提供一个接口,实现按照各处理单元同主处理单元通信的格式要求,向主处理单元的输入输出代理模块发送数据,然后通过底层通信已经提供的发送数据接口,向主处理单元完成数据发送。该接口供本处理单元自身原有的输出接口调用,实现原来输出接口的输出数据的重定向。单元自身的原有输出接口是否保留向本处理单元的终端输出,是一个可以选择的功能。对于输入操作,需要该模块接收来自主处理单元的输入输出代理模块的信息,并把这些信息构造成处理单元自身的输入接口可以接收的格式,通过自身的输入接口跟从终端实现输入一样的进行输入操作。从而完成完整的输入输出功能。
4、处理单元自身原有的I/O接口模块
该模块中的原先输出接口需要增加调用上述输入输出重定向模块提供的向主处理单元输出的接口完成输出的重定向工作。对于自身原有的输入接口不需要进行改动。输入输出重定向模块在接收到来自主单元的输入数据后,会经过转换,然后调用这个原有的接口实现同终端输入一样的调用效果。
通过上面的四个模块的配合,就可以实现多处理单元通过单一的终端进行输入输出的交互。并且这些处理单元中,由于只有一个主处理单元需要同终端真正交互,其输入输出的开销会相应大一点,而对于其它的处理单元,由于它们是通过处理单元间的通信宽带进行通信的,这些通信的通道一般在速度上会快于同终端的交互速度,所以对于这些从单元在输入输出上的开销会相应的减小。