应用程序并行处理系统和应用程序并行处理方法

文档序号:6452597阅读:201来源:国知局
专利名称:应用程序并行处理系统和应用程序并行处理方法
技术领域
本发明涉及一种采用多处理器的应用程序并行处理系统,特别涉及一种应用程序并行处理系统,该系统在多处理器上实现如浏览器这样的应用程序和通过上述应用程序执行的功能扩展模块如功能扩充软件或插件程序的并行处理。
下面将参照图8说明传统的系统结构,该系统结构执行作为一种应用程序的浏览器,该应用程序具有执行功能扩展模块的功能。
在图8所示的系统中,在由单个处理器构成的数据处理设备500上,运行浏览器600,浏览器600具有解释HTML文件以指导显示处理的文件读取单元610和执行作为功能扩展模块的插件程序等的功能扩展单元620。所提供的功能扩展单元620与要执行的功能扩展模块种类一样多。
在上述系统中执行HTML文件显示处理的操作如下。首先,文件读取单元610从主存储装置550或外部存储装置读取相应的HTML文件,以便解释和显示读取的HTML文件(如图8中(1)所示)。
当在HTML文件中解释包含涉及功能扩展模块的指令的功能扩展语句时,通过一种象功能调用这样的方法,将对应上述指令的处理通知给等同于相应功能扩展模块的功能扩展单元620(如图8中(2)所示)。
根据被通知的处理请求,已经接收到通知的功能扩展单元620控制功能扩展任务700的产生(如图8中(3)所示)。
通过上述操作,在处理设备500上执行浏览器600和作为其功能扩展模块的插件程序。
上述具有执行功能扩展模块功能的应用程序的处理量大于不具有功能扩展模块的其它应用程序,并将其设计成基本上在单个处理器上与其功能扩展模块一起执行。
因此,在内部具有单个处理器的数据处理设备中,该处理器如蜂窝式电话和便携式PC的便携式终端的处理能力不是很大,则操作上述具有执行功能扩展模块的功能的应用程序会导致处理量较大而禁止快速操作。
另一方面,通过提高操作频率以增大处理器处理能力来提高具有执行功能扩展模块的应用程序的处理速度,这引起功耗增大,对于包括蜂窝式电话和便携式PC的便携式终端这样的数据处理设备来说是不可取的,因为这些便携式终端需要长时间的低功耗驱动。
尽管在多处理器上操作上述应用程序消除了上述问题,但是,为了在多处理器上操作该应用程序,对处理器的改进应该被加入到上述应用程序中,这会带来其它问题,为了进行改进需要投入巨大的劳力并提高成本。
本发明的另一目的是提供一种应用程序并行处理系统,该系统在多处理器上进行应用程序和其功能扩展模块如功能扩充软件和插件程序的并行处理,以便即使在诸如内部具有单独处理能力象便携式终端一样小的处理器之类的数据处理设备中,也能使应用程序平稳地操作。
本发明的又一目的是提供一种应用程序并行处理系统,该系统在多处理器上进行应用程序及其功能扩展模块如功能扩充软件和插件程序的并行处理,以使功耗低于在单个处理器上操作时所需的功耗。
根据本发明一个方面,一种应用程序并行处理系统,在多处理器上操作具有执行功能扩展模块包括功能扩充软件和插件程序的功能的应用程序,其中在形成多处理器的多个处理器中之一上,操作所述应用程序,并且在所述多个处理器中任一上,在所述应用程序控制下操作所述功能扩展模块。
在优选结构中,在形成所述多处理器的多个处理器中特定一个处理器上,以独立于其余处理器的方式操作所述应用程序,以及在其余处理器上,在所述应用程序控制下的并行处理中操作所述功能扩展模块。
在另一优选实施例中,在启动所述应用程序的时候,在所述其余处理器中装载预先相关的功能扩展模块。
在另一优选结构中,在形成多处理器的多个处理器中特定一个处理器上,以独立于其余处理器的方式操作所述应用程序,在其余处理器上,在所述应用程序控制下的并行处理中操作所述功能扩展模块,以及在启动所述应用程序的时候,在所述其余处理器中装载预先相关的功能扩展模块。
在另一优选结构中,所述应用程序包括执行原始功能的执行装置和控制所述功能扩展模块执行的控制装置,以及所述其余处理器安装有辅助装置,用于回复所述控制装置发出的指令控制作为所述控制装置的代理的所述功能扩展模块的执行。
在另一优选结构中,所述应用程序是显示HTML文件的浏览器,以及所述功能扩展模块是由所述浏览器执行的插件程序,在另一优选结构中,所述应用程序是显示HTML文件的浏览器,所述功能扩展模块是由所述浏览器执行的插件程序,在形成多处理器的多个处理器中特定一个处理器上,以独立于其余处理器的方式操作所述应用程序,在其余处理器上,在所述应用程序控制下的并行处理中操作所述功能扩展模块,以及在启动所述应用程序的时候,在所述其余处理器中装载预先相关的功能扩展模块。
在另一优选结构中,当在所述应用程序的所述执行装置中需要执行所述功能扩展模块时,所述执行装置把所述功能扩展模块的处理通知给所述控制装置,并接收来自控制装置对已经接收到通知的结果的回复,以便继续执行所述原始功能,已经接收到通知的控制装置将已经接收到通知的结果回复给执行装置,以及向任一其余处理器的辅助装置传送通知处理内容,以及基于被接收的所述处理内容,所述其余处理器的所述辅助装置控制预定功能扩展模块的执行。
在另一优选结构中,所述其余处理器的所述辅助装置控制每个处理器的预定功能扩展模块的执行。
在另一优选结构中,所述应用程序包括管理装置,用于管理通过其余处理器所执行的功能扩展模块的种类和数量,并且所述应用程序在执行新功能扩展模块的时候,按照功能扩展模块的种类和数量指示负荷很小的所述其余处理器执行所述功能扩展模块。
在另一优选结构中,使其余处理器具有时刻地输出其自身负荷因数的功能,所述应用程序使基于输出负荷因数被确定为最合适的其余处理器执行功能扩展模块。
通过下面的详细说明将更清楚地理解本发明的其他目的、特征和优点。
附图中

图1是本发明优选实施例应用程序并行处理系统结构的方块图;图2是用于说明本实施例应用程序并行处理系统的操作的图表;图3是表示由本发明浏览器文件读取单元所处理的内容的流程图;图4是表示由本发明浏览器功能扩展并行单元所进行的处理内容的流程图;图5是表示通过本发明浏览器功能扩展并行单元的插件程序执行操作的流程图;图6是表示在通过功能扩展模块处理器由浏览器执行Java(R)插件程序情况下的操作特别实例的图表;图7是表示HTML文件中Java(R)插件程序执行指令的实例的图表;图8是表示普通系统的结构和操作的方块图,在该普通系统中,在单个处理器上操作能够执行功能扩展模块的浏览器。
没有对可在单个处理器上操作并能够执行功能扩展模块的现有应用程序做任何修改,本发明的应用程序并行处理系统实现了在多处理器上的应用程序及其功能扩展模块如功能扩充软件和插件程序的并行处理。
下面参照附图详细描述本发明的优选实施例。
图1是表示本发明优选实施例的应用程序并行处理系统结构的方块图。
如图1所示,在多处理器环境下实现本实施例的应用程序并行处理系统,其中设置多个处理器P0至Pn(n不小于1的整数),多个处理器P0至Pn分成执行一种应用程序的一个应用程序处理器P0和执行通过上述应用程序得以执行的功能扩展模块的一个或多个功能扩展模块处理器P1至Pn。
该系统设置在如便携式终端这样的数据处理设备中,该便携式终端包括蜂窝式电话和便携式PC,它们具有安装有多个处理器的多处理器结构。虽然采用包括蜂窝式电话和便携式PC的便携式终端这样的数据处理设备,其单独处理器的处理能力没有那么大,但是当安装有作为具有多个处理器的多处理器结构的本发明应用程序并行处理系统时,负荷分布使多个功能扩展模块得以平稳执行。
这里的处理器可以是通用CPU或DSP(数字信号处理器),或可以不限于这些处理器,而是具有数据处理能力的其它专用硬件。
此外,相应处理器P0至Pn彼此通过系统总线100连接,作为由相应处理器P0至Pn共享的共享存储器的主存储装置110和象磁盘设备这样的外存储装置120与系统总线100连接。
下面说明能够执行功能扩展模块的应用程序作为浏览器的实例,由浏览器执行作为功能扩展模块的插件程序。除插件程序以外的可能的功能扩展模块包括功能扩充软件。
在应用程序处理器P0中,操作浏览器10,它是一种能够执行功能扩展模块并读取通过Internet或类似网络传递的HTML文件的应用程序。浏览器10包括文件读取装置20和功能扩展并行单元30,文件读取装置20作为解释和显示HTML文件的原始功能,功能扩展并行单元30用于控制作为功能扩展模块的插件程序的执行。在本实施例中,作为浏览器10原始功能的用于读取HTML文件的文件读取单元20与常规浏览器所具有的普通功能相同,因此不需要修改。
功能扩展模块处理器P1至Pn分别安装有功能扩展并行辅助单元40-1至40-n,用于在并行处理中在其自身处理器上执行得以由浏览器10执行的各种插件程序(功能扩展模块)。
作为得以由浏览器10执行的功能扩展模块的插件程序,可以使用各种类型的插件程序,如Java(R)、Shockwave、Real Player和MEPG4译码器。
通过直接控制功能扩展模块的相同方法,功能扩展并行单元30起接口作用,用于将处理通知给作为浏览器10功能扩展模块的插件程序,它指示作为其余处理器的功能扩展模块处理器P1至Pn的相应功能扩展并行辅助单元40-1至40-n执行功能扩展模块。换句话说,基于来自功能扩展并行单元30的通知,每个功能扩展并行辅助单元40-1至40-n进行功能扩展模块执行控制,作为功能扩展并行单元30的代理。结果,在功能扩展模块处理器P1至Pn上执行的功能扩展模块进行操作,就好象它们是直接由浏览器10控制的一样。
通过系统总线100进行功能扩展并行单元30和相应的功能扩展并行辅助单元40-1至40-n之间的通信。
对于作为功能扩展模块的每种插件程序,假定可在应用程序处理器P0中操作的浏览器10具有功能扩展并行单元30,则功能扩展并行单元30起接口作用,用于将处理通知给作为功能扩展模块的插件程序。如果当执行作为功能扩展模块的Java(R)、Shockwave和MEPG4译码器的插件程序时,则对应Java(R)、Shockwave和MEPG4译码器设置实现执行控制的三种功能扩展并行单元30。当设置单个接口以控制由浏览器10执行的多个插件程序时,单个功能扩展并行单元30控制多种插件程序。
功能扩展模块处理器P1至Pn上的功能扩展并行辅助单元40-1至40-n各自对应作为功能扩展模块的每种插件程序。例如,功能扩展模块处理器P1安装有功能扩展并行辅助单元40-1以便执行作为插件程序的Java(R),功能扩展模块处理器P2安装有功能扩展并行辅助单元40-2以便执行作为插件程序的Shockwave,功能扩展模块处理器P3安装有功能扩展并行辅助单元40-3以便执行作为插件程序的MEPG4译码器。
每个功能扩展模块处理器P1至Pn可以安装有对应的相应种类插件程序的多个功能扩展并行辅助单元。
当解释HTML文件中关于功能扩展模块(插件程序)的指令时,浏览器10的文件读取单元20将插件程序处理通知给对应的上述插件程序的功能扩展并行单元30,功能扩展并行单元30以回复的方式向功能扩展模块处理器P1至Pn上对应的上述插件程序的功能扩展并行辅助单元40-1至40-n传递包含处理内容的消息。
下面参照图2至图4说明如此构成的本实施例应用程序并行处理系统的操作。图3是表示文件读取单元20的处理的流程图,而图4是表示功能扩展并行单元30进行的处理内容的流程图。
应用程序处理器P0上浏览器10的文件读取单元20从主存储装置110、外存储装置120或类似存储器读取要被显示的HTML(步骤301),以便执行HTML文件的解释和显示(步骤302)。
当解释关于HTML文件中作为功能扩展模块的插件程序处理的指令时(步骤303),将插件程序的处理通知给对应的要由上述指令执行的插件程序的功能扩展并行单元30(步骤304,图2中(1))。通过这样的功能调用方法实现对功能扩展并行单元30的通知。
从功能扩展并行单元30接收对已经收到通知的结果的回复时(步骤305,图2中的(2)),文件读取单元20继续执行HTML文件的解释和显示。
浏览器10上的功能扩展并行单元30接收来自文件读取单元20的插件程序处理通知步骤401,图2中的(1)),以及确定已接收的插件程序处理通知是否表示正在被执行的功能扩展任务50的结束处理(步骤402)。
当插件程序处理不是功能扩展任务50的结束处理时,立即向文件读取单元20发送对插件程序处理通知已被接收到的结果的回复(步骤403,图2中的(2))。
因此,根据通知的处理请求,向功能扩展模块处理器P1至Pn上对应于其处理要被执行的插件程序的功能扩展并行辅助单元40-1至40-n发送包括处理内容的消息(步骤404,图2中的(3))。
接着,根据传递的消息,功能扩展模块处理器P1至Pn上的功能扩展并行辅助单元40-1至40-n产生并执行作为插件程序处理的功能扩展任务50。
将功能扩展并行辅助单元40-1至40-n产生的功能扩展任务的执行结果由功能扩展并行辅助单元40-1至40-n传递给浏览器10的文件读取单元20,并将其显示在显示器上。
通过这样的操作,使浏览器10的文件读取单元20在显示器上显示由插件程序获得的执行结果,而不中断其自身的处理。
如果,由文件读取单元20读取的页面移动到另一页面,则文件读取单元20发出插件程序处理通知,以便进行正被执行功能扩展任务50的结束处理。
当在步骤402确定插件程序处理是功能扩展任务50的结束处理时,功能扩展并行单元30向功能扩展模块处理器P1至Pn上功能扩展并行辅助单元40-1至40-n发送包括处理内容的消息,功能扩展并行辅助单元40-1至40-n根据通知的处理请求执行功能扩展任务50,而不对文件读取单元20回复通知已经被接收到的结果(步骤405)。
因此,在通过来自功能扩展并行辅助单元40-1至40-n的通知确认功能扩展任务50结束后,向文件读取单元20回复一个已经收到了插件程序处理通知的结果(步骤406)。
还可以通过应用程序处理器P0上的功能扩展并行单元30执行预定插件程序,在这种情况下,如图5所示,功能扩展并行单元30在将已经收到插件程序处理通知的结果回复给文件读取单元20后(步骤402,图5中(2)),按照被通知处理内容产生并执行功能扩展任务50,作为插件程序处理(图5中(3)),而不根据通知的处理请求向功能扩展模块处理器P1至Pn上的功能扩展并行辅助单元40-1至40-n发送包括处理内容的消息。
下面参照图6,说明在假定功能扩展模块处理器P1上的功能扩展并行辅助单元40-1要执行作为插件程序的Java(R)插件程序的情况下所要执行的操作的特别实施例,应用程序处理器P0上的浏览器10执行功能扩展模块处理器P1上的Java(R)插件程序。
在启动应用程序处理器P0上的浏览器10时,启动功能扩展模块处理器P1上的功能扩展并行辅助单元40-1,以便将执行Java(R)插件程序的模块装载到功能扩展并行辅助单元40-1中。
由于当启动浏览器10时(而且当浏览器10正被执行时),由应用程序处理器P0上的浏览器10执行插件程序的装载,装载的处理时间对于使浏览器10本身执行平稳进行是不必要的。
因此,在应用程序处理器P0上执行浏览器10的文件读取单元20,以便使功能扩展模块处理器P1上的功能扩展并行辅助单元40-1处于等待状态。
当文件读取单元20解释HTML文件的Java(R)插件程序执行指令时,功能扩展并行单元30按照该执行指令将包括Java(R)插件程序处理内容的消息通知给功能扩展模块处理器P1上的功能扩展并行辅助单元40-1。因此,功能扩展模块处理器P1上的功能扩展并行辅助单元40-1根据被通知的处理内容产生Java(R)插件程序的任务。
如图7所示,说明HTML文件中的Java(R)插件程序执行指令,这里,在预定窗口大小内执行Java(R)插件程序的数据对象「test.jav」。
随后,由应用程序处理器P0上的浏览器10向功能扩展模块处理器P1传送由Java(R)插件程序执行的数据流,功能扩展模块处理器P1上的Java(R)插件程序任务接收该数据。
当完成数据流的传送时,在功能扩展模块处理器P1上执行Java(R)插件程序任务,执行的结果传送给正在执行普通文件读处理的浏览器10。
此后,当在浏览器10上发生如「移动到另一页面」这样的事件时,功能扩展并行单元30通知一个指示Java(R)插件程序任务放弃处理的消息,为回复该通知,功能扩展并行辅助单元40-1结束Java(R)插件程序任务的执行而进入等待状态。
此外,已经结束Java(R)插件程序执行的浏览器10继续进行常规处理。
通过由功能扩展模块处理器P1至Pn执行功能扩展模块的分布式装载方法包括以下方法,而不是为每个功能扩展模块首先确定处理器以便执行相关模块的方法。
应用程序处理器P0的浏览器10管理由相应功能扩展模块处理器P1至Pn执行的功能扩展模块的种类和数量,并在执行新功能扩展模块时,基于作为其管理内容的功能扩展模块种类和数量来确定负荷很小的处理器。
由于每个功能扩展模块处理器P1至Pn具有时刻地输出其负荷因数的功能,浏览器10使根据这些负荷因数确定的最合适处理器执行功能扩展模块。
浏览器记录一种得以执行的功能扩展模块而不执行功能扩展模块,直到解释完HTML文件的一个页面说明为止。在解释完成后,检查要执行的一种功能扩展模块和其负荷量,以便使被允许执行功能扩展模块的功能扩展模块处理器P1至Pn执行这些模块,从而使负荷均匀分布。
被指示执行功能扩展模块的处理器通过自主任务迁移或类似迁移指令指示其它处理器执行功能扩展模块,由此分布负荷。
通过具有功能扩展并行单元和功能扩展并行辅助单元的相应功能,并行处理程序能够实现根据上述执行方式和实施例的应用程序并行处理系统。并行处理程序存储在记录介质如磁盘、半导体存储器或类似存储器上,并从记录介质将其装载计算机处理设备以便控制计算机处理设备的操作,由此实现每个上述功能。
尽管上面已经就优选执行方式和实施例说明了本发明,但是本发明不限于上述优选执行方式和实施例,而是能够体现在其技术构思范围内的各种形式中。
如上所述,本发明不对可在单个处理器上操作的现有应用程序作任何修改而具有执行功能扩展模块的功能,能在多处理器上实现应用程序及其功能扩展模块如功能扩充软件和插件程序的并行处理。
此外,本发明通过在多处理器上进行应用程序及其功能扩展模块如功能扩充软件和插件程序的并行处理,使得即使在内部设有处理能力与便携式终端一样小的处理器的数据处理设备中,也能使应用程序得以平稳操作。
此外,通过在多处理器中进行应用程序及其功能扩展模块如功能扩充软件和插件程序的并行处理,本发明使功率消耗低于在单个处理器中操作时所需的功耗。这对于数据处理设备如需要长时间以低功耗驱动的便携式终端包括蜂窝式电话和便携式PC是特别有效的。
尽管已经通过实施例显示和说明了本发明,但是本领域的技术人员应该明白可以作出上述和各种其它改变、省略和增加而不背离本发明精神和范围。因此,本发明不应限于上面给出的特别实施例,而是包括由附加权利要求中特征及其等同物限定的范围内的所有可能的实施例。
权利要求
1.一种应用程序并行处理系统,在多处理器上操作具有执行功能扩展模块的功能的应用程序,所述执行的功能扩展模块包括功能扩充软件和插件程序,其特征在于在形成所述多处理器的多个处理器中之一上,操作所述应用程序,以及在所述多个处理器中任一上,在所述应用程序控制下操作所述功能扩展模块。
2.如权利要求1所述的应用程序并行处理系统,其特征在于在形成所述多处理器的多个处理器中特定一个处理器上,以独立于其余处理器的方式操作所述应用程序,以及在其余处理器上,在所述应用程序控制下的并行处理中操作所述功能扩展模块。
3.如权利要求1所述的应用程序并行处理系统,其特征在于在启动所述应用程序的时候,在所述其余处理器中装载预先相关的功能扩展模块。
4.如权利要求1所述的应用程序并行处理系统,其特征在于在形成多处理器的特定一个处理器上,以独立于其他处理器的方式操作所述应用程序,在其余处理器上,在所述应用程序控制下的并行处理中操作所述功能扩展模块,以及在启动所述应用程序的时候,在所述其余处理器中装载预先相关的功能扩展模块。
5.如权利要求1所述的应用程序并行处理系统,其特征在于所述应用程序包括执行原始功能的执行装置和控制所述功能扩展模块执行的控制装置,以及所述其余处理器安装有辅助装置,用于回复所述控制装置发出的指令来控制作为所述控制装置的代理的所述功能扩展模块的执行。
6.如权利要求1所述的应用程序并行处理系统,其特征在于所述应用程序是显示HTML文件的浏览器,以及所述功能扩展模块是由所述浏览器执行的插件程序。
7.如权利要求1所述的应用程序并行处理系统,其特征在于所述应用程序是显示HTML文件的浏览器,所述功能扩展模块是由所述浏览器执行的插件程序,在形成多处理器的多个处理器中特定一个处理器上,以独立于其余处理器的方式操作所述应用程序,在其他处理器上,在所述应用程序控制下的并行处理中操作所述功能扩展模块,以及在启动所述应用程序的时候,在所述其余处理器中装载预先相关的功能扩展模块。
8.如权利要求5所述的应用程序并行处理系统,其特征在于当在所述应用程序的所述执行装置中产生执行所述功能扩展模块的要求时,所述执行装置把由所述功能扩展模块进行的处理通知给所述控制装置,并接收来自控制装置的对已经接收到所述通知的结果的回复,以便继续所述原始功能的执行,已经接收到通知的控制装置将已被接收到所述通知的结果回复给执行装置,以及向任一所述其余处理器的所述辅助装置传送被通知的处理内容,以及所述其余处理器的所述辅助装置根据被接收的所述处理内容来控制预定功能扩展模块的执行。
9.如权利要求5所述的应用程序并行处理系统,其特征在于所述其余处理器的所述辅助装置控制每个处理器的预定种类的所述功能扩展模块的执行。
10.如权利要求1所述的应用程序并行处理系统,其特征在于所述应用程序包括管理装置,用于管理由其余处理器所执行的功能扩展模块的种类和数量,并且所述应用程序在执行新功能扩展模块的时候按照功能扩展单元模块种类和数量指示负荷很小的所述其余处理器执行所述功能扩展模块。
11.如权利要求1所述的应用程序并行处理系统,其特征在于使其余处理器具有时刻地输出起自身负荷因数的功能,所述应用程序使根据输出的负荷因数被确定为是最合适的其余处理器执行功能扩展模块。
全文摘要
在应用程序并行处理系统中,在形成多处理器的多个处理器之一上,以独立于其余处理器的方式操作应用程序,并在其余处理器上,在该应用程序的控制下在并行处理中操作功能扩展模块。结果,即使在内部设有其处理能力象便携式终端一样小的处理器这样的数据处理设备中,也能平稳操作应用程序。
文档编号G06F15/16GK1456990SQ0312360
公开日2003年11月19日 申请日期2003年5月9日 优先权日2002年5月9日
发明者枝广正人, 酒井淳嗣, 皆上徹也, 伊藤义行, 井上浩明 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1