CN100410918C - 信息处理装置、***和方法 - Google Patents
信息处理装置、***和方法 Download PDFInfo
- Publication number
- CN100410918C CN100410918C CNB2005100762858A CN200510076285A CN100410918C CN 100410918 C CN100410918 C CN 100410918C CN B2005100762858 A CNB2005100762858 A CN B2005100762858A CN 200510076285 A CN200510076285 A CN 200510076285A CN 100410918 C CN100410918 C CN 100410918C
- Authority
- CN
- China
- Prior art keywords
- signal conditioning
- auxiliary processor
- conditioning package
- program
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B22—CASTING; POWDER METALLURGY
- B22C—FOUNDRY MOULDING
- B22C7/00—Patterns; Manufacture thereof so far as not provided for in other classes
- B22C7/02—Lost patterns
- B22C7/023—Patterns made from expanded plastic materials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Mechanical Engineering (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种***和方法,其可以在通过公共网络连接的不同信息处理装置之间确实高效地执行分布式处理。第一到第四信息处理装置的每一个包括主处理器和副处理器。当响应于用户操作而将由副处理器执行副处理器程序时,如果第一装置确保必需数量的空闲副处理器被确定为有可能,则第一装置确保必需数量的空闲副处理器。如果不能获得必需数量的空闲副处理器,那么第一装置向其它装置发布确保副处理器的请求。如果从整个网络内的空闲副处理器中不能确保必需数量的副处理器,则确保正在执行具有较低优先级的副处理器程序的那些副处理器来执行所述副处理器程序。
Description
技术领域
本发明涉及一种信息处理装置、信息处理方法、信息处理***和信息处理程序。
背景技术
近来,网格(grid)计算备受关注。网格计算是这样的一种技术,其允许连接到网络的多个信息处理装置协同操作来实现高算术运算性能。
例如,日本专利公开第2002-342165号(下文中称为专利文档1)、日本专利公开第2002-351850号(下文中称为专利文档2)、日本专利文档第2002-358289号(下文中称为专利文档3)、日本专利文档第2002-366533号(下文中称为专利文档4)以及日本专利公开第2002-366534的日本专利(下文中称为专利文档5)公开了一种用于通过使用统一的模块化结构、公共计算模块和统一的软件单元(cell)而进行高速处理的计算机架构的实现。
另外,美国专利第6587906号(下文中称为专利文档6)、美国专利第6667920号(下文中称为专利文档7)、美国专利第6728845号(下文中称为专利文档8)、美国专利公开第2004-0039895号(下文中称为专利文档9)、美国专利公开第2004-0054880号(下文中称为专利文档10)和美国专利公开第2004-0098496号(下文中称为专利文档11)公开了通过使信息处理装置内的多个处理器彼此独立并且互相并行地操作来加速处理。
然而,为了在没有尽可能远地分布执行当前正在执行或预定用于执行的程序的情况下,确实地允许其中多个信息处理装置通过网络互相连接的网络***在整个网络***上以分布式的方式执行对应于由其用户对该网络***执行的操作的处理,对于管理该网络***的每个信息处理装置或一信息处理装置而言,有必要掌握在信息处理装置本身或/和其它装置内的处理器部件的使用情况(程序执行情况),并在信息处理装置本身或其它装置内确保(secure)执行预期处理所必需的处理器部件。
发明内容
本发明的一个目的是提供一种信息处理装置、信息处理方法、信息处理***和信息处理程序,利用它们,可以将程序的执行准确地分配给不同信息处理装置的每一个的处理器部件。
本发明的另一个目的在于提供一种信息处理装置、信息处理方法、信息处理***和信息处理程序,利用它们,可以在没有尽可能远地分布执行当前正在执行或预定用于执行的程序的情况下执行分布式处理。
为了达到上述目的,根据本发明的一个方面,提供一种连接到网络的信息处理装置,包括用于执行程序的一个或多个处理器部件、和用于管理处理器部件的管理部件,该管理部件包括管理表,该管理表又包括用于指定处理器部件的标识符、以及表示由标识符指定的处理器部件是正在执行程序还是被预定用来执行程序的使用情况信息,当响应于来自通过网络连接到信息处理装置的不同信息处理装置的确保请求而为该不同信息处理装置确保一些或全部处理器部件时,所述管理部件重写管理表。
根据本发明的另一方面,提供一种信息处理***,其包括连接到网络的多个信息处理装置,每个信息处理装置包括一个或多个用于执行程序的处理器部件、以及用于管理处理器部件的管理部件,每个信息处理装置的管理部件包括管理表,该管理表又包括用于指定信息处理装置中的处理器部件的标识符、以及表示由标识符指定的处理器部件是正在执行程序还是被预定用来执行程序的使用情况信息,当信息处理装置响应于来自不同信息处理装置的确保请求而为不同的信息处理装置确保一些或全部处理器部件时,每个信息处理装置的管理部件重写管理表。
根据本发明的另一方面,提供一种网络***的信息处理方法,其中,多个信息处理装置连接到网络,每个信息处理装置包括一个或多个用于执行程序的处理器部件、以及用于管理处理器部件的管理部件,每个信息处理装置的管理部件包括管理表,该管理表又包括用于指定信息处理装置中的处理器部件的标识符、以及表示由标识符指定的处理器部件是正在执行程序还是被预定用于执行程序的使用情况信息,所述信息处理方法包括:第一步骤,由第一个信息处理装置的管理部件执行,查阅(refer to)第一信息处理装置中的管理表,以确定是否有可能确保第一信息处理装置中执行特定程序所必需的一个或多个处理器部件;第二步骤,由第一信息处理装置的管理部件执行,当在第一步骤确定有可能确保第一信息处理装置中的这种一个或多个处理器部件时,重写所述第一信息处理装置中的一个或多个处理器部件,并重写第一信息处理装置中的管理表;第三步骤,由第一信息处理装置的管理部件执行,当在第一步骤确定不可能确保第一信息处理装置中的这种一个或多个处理器部件时,向第二个或多个信息处理装置的管理部件发布确保一个或多个处理器部件的请求;以及第四步骤,由第二个或多个信息处理装置的管理部件执行,响应于来自第一信息处理装置的确保请求,确保第二信息处理装置中的一个或多个处理器部件,并重写第二信息处理装置中的管理表,并且随后向第一信息处理装置中的管理部件发布所确保的一个或多个处理器部件的一个或多个标识符的通知。
利用信息处理装置、***、方法和程序,其中多个这样的信息处理装置连接到网络以构造网络***,可以将程序的执行准确地分配给各个信息处理装置的处理器部件。此外,确实可以在没有尽可能远地分布执行当前正在执行或预定用于执行的程序的情况下,在整个网络***上执行程序的分布式处理。
如果网络***中的一个信息处理装置从网络断开、并且所断开的信息处理装置中的处理器部件当前正在执行或预定用于执行某个程序,则未从网络断开的其它信息处理装置中的处理器部件代替所断开的信息处理装置中的处理器部件执行该程序。此外,在此实例中,可以将程序的执行准确地分配给未断开的信息处理装置中的处理器部件。因此,确实可以在没有尽可能远地分布执行当前正在执行或预定用于执行的程序的情况下,在整个网络***上执行程序的分布式处理。
根据结合附图的以下描述和所附权利要求,本发明的以上和其它目的、特点和优势将变得清楚,其中,在附图中,相同的附图标记表示相同的部分或元件。
附图说明
图1是示出施加本发明的网络***的方框图;
图2A、2B和2C是图示施加本发明的信息处理装置中包括的信息处理控制器的示例的视图;
图3是示出软件单元示例的视图;
图4是图示软件单元的数据区域示例的视图;
图5是示出多个信息处理装置的简图,其中,它们作为虚拟的单个信息处理装置来操作;
图6是图示信息处理装置的软件结构示例的简图;
图7是示出4个信息处理装置的简图,其中,它们作为虚拟的单个信息处理装置来操作;
图8是图示图7所示的***进行的分布式处理示例的简图;
图9是示出信息处理装置和***的特定示例的简图;
图10是示出图9所示的硬盘记录器的硬件结构的方框图;
图11是示出图9所示的硬盘记录器的软件结构的简图;
图12是示出图9所示的PDA的硬件结构的方框图;
图13是示出图9所示的PDA的软件结构的简图;
图14是示出图9所示的便携式CD播放器的硬件结构的方框图;
图15是示出图9所示的便携式CD播放器的软件结构的简图;
图16是示出网络***示例的简图,其中,由所述网络***执行通过副处理器(sub processor)分配进行的分布式处理;
图17是图示信息处理装置的软件结构示例的简图;
图18是图示在信息处理装置中准备的副处理器管理表示例的视图;
图19至27是图示副处理器分配过程示例的流程图;
图28A和28B是分别图示副处理器空闲状况查询命令和副处理器空闲状况返回命令示例的视图;
图29A和29B是分别图示副处理器确保请求命令和副处理器确保返回命令示例的视图;
图30是图示用于传送副处理器程序的副处理器程序传送命令示例的视图;
图31是图示图16所示的网络***中的信息处理装置的断开的简图;
图32至40是图示副处理器分配过程的另一示例的流程图;
图41是示出施加本发明的另一网络***的方框图;
图42A、42B和42C是图示在施加本发明的另一信息处理装置中包括的信息处理控制器示例的视图;
图43是示出直接存储器存取控制器的内部结构的方框图;
图44是示出信息处理装置中的命令/响应结构的视图;
图45A和45B是图示从副处理器对主存储器进行访问时的过程的流程图;
图46是示出工作存储器内部结构的方框图;
图47是示出副处理器内部结构的方框图;
图48是示出控制寄存器内部结构的方框图;
图49是示出多个信息处理装置的简图,其中,它们作为虚拟的单个信息处理装置来操作;
图50是示出4个信息处理装置的简图,其中它们作为虚拟的单个信息处理装置来操作;
图51是图示图50中所示的***进行的分布式处理示例的流程图;
图52是示出信息处理装置和***的另一示例的简图;
图53是示出图52所示的硬盘记录器的硬件配置的方框图;
图54是示出图52所示的硬盘记录器的软件配置的视图;
图55是示出图52所示的PDA的硬件配置的方框图;
图56是示出图52所示的PDA的软件配置的视图;
图57是示出图52所示的便携式CD播放器的硬件配置的方框图;
图58是示出图52所示的便携式CD播放器的软件配置的视图;
图59是示出网络***的另一示例的方框图,其中,所述网络***执行通过副处理器分配进行的分布式处理;
图60至68是图示副处理器分配过程的另一示例的流程图;
图69是图示图59所示的网络***中信息处理装置的断开的简图;以及
图70至78是图示副处理器分配过程的另一示例的流程图。
具体实施方式
[1.网络***和信息处理装置的基本配置1]
图1示出了施加本发明的网络***示例。参照图1,所示出的网络***包括网络9的多个信息处理装置1、2、3和4。
(1-1.信息处理装置和信息处理控制器)
信息处理装置1、2、3和4是如下文所述的各种AV(音频和视频)装置和便携式装置。
下面描述信息处理装置1。信息处理装置1包括作为计算机功能部件的信息处理控制器11。信息处理控制器11包括主处理器21-1,副处理器23-1、23-2和23-3,直接存储器存取控制器(DMAC)25-1,和盘控制器(DC)27-1。
主处理器21-1执行对由副处理器23-1、23-2和23-3执行的副处理器程序执行(数据处理)的调度(schedule)管理、以及对信息处理控制器11(信息处理装置1)的全面管理。然而,此外,主处理器21-1可配置为使得除了用于执行管理的程序以外的程序在主处理器21-1中运行。在此实例中,主处理器21-1也充当副处理器。主处理器21-1包括本地存储器(LS)22-1。
尽管副处理器的数目可以是只有一个,但优选地包括多个副处理器。在图1所示的示例中,信息处理装置包括多个副处理器。
副处理器23-1、23-2和23-3彼此并行且独立地执行副处理器程序,以便在主处理器21-1的控制下处理数据。另外,根据情况,主处理器21-1中的程序可与副处理器23-1、23-2和23-3中的任意一个的副处理器程序协同操作。下文所述的功能程序也在主处理器21-1中运行。副处理器23-1、23-2和23-3还分别包括本地存储器24-1、24-2和24-3。
DMAC 25-1访问存储在连接到信息处理控制器11、并由DRAM(动态RAM)等形成的主存储器26-1中的程序和数据。DC 27-1访问连接到信息处理控制器11的外部记录部件28-1和28-2。
外部记录部件28-1和28-2可具有固定盘(硬盘)和可拆卸盘的任意一种的形式。作为刚才提到的这种可拆卸盘,可以使用诸如Mo(磁盘)的各种记录介质、诸如CD±RW或DVD±RW的光盘、存储盘、SRAM(静态RAM)、和ROM。DC 27-1是外部记录部件控制器,尽管其被称为盘控制器。
如图1所示的示例,信息处理控制器11可配置为使得多个外部记录部件28与之连接。
主处理器21-1、副处理器23-1、23-2和23-3、DMAC 25-1、和DC 27-1通过总线29-1彼此连接。
标识符作为信息处理装置ID被分配给信息处理控制器11。该标识符允许在整个网络上唯一地标识合并了信息处理控制器11的信息处理装置1。
类似地,还给主处理器21-1和副处理器23-1、23-2和23-3的每一个分配可对其进行标识的标识符,作为主处理器ID或副处理器ID。
信息处理控制器11被优选地形成为单片IC(集成电路)。
此外,以类似的方式配置其它信息处理装置2、3和4。这里,应当注意,即使具有相同父编号(parent number)的附图标记的那些单元具有不同的分支编号(branch number),它们也相似地操作,除非以别的方式指定。因此,在省略了附图标记的分支编号的以下描述中,所述单元是相同的,而不考虑分支编号的差别。
(1-2.从每个副处理器对主存储器的访问)
如上所述,尽管一个信息处理控制器中的每个副处理器23都独立执行副处理器程序以处理数据,但是如果不同的副处理器对主存储器26的相同区域同时执行读出或写入,则有可能发生数据失配。因此,从副处理器23对主存储器26的访问是依据以下过程执行的。
参照图2A,主存储器26是由多个存储位置0至M形成的,其中利用所述存储位置可指定多个地址。用于存储指示数据状态的信息的附加段0至M被分配给每个存储位置。附加段包括F/E位、副处理器ID、以及LS地址(本地存储器地址)。下文所述的访问密钥(key)0至M也被分配给每个存储位置。F/E位以下述方式定义。
F/E位=0表示对应存储位置中的数据是正由副处理器23读取并处理的数据、或者由于该位置是空白(blank)状态而导致不是最新数据的无效数据,并且被禁止读出。另外,F/E位=0表明可以将数据写入对应的存储位置,并且在写入存储位置之后将F/E位设置为1。
F/E位=1表示对应存储位置的数据未被任何副处理器23读出、并且是尚未处理的最新数据。该存储位置的数据可被读出。在副处理器23读出数据之后,F/E位被设置为0。另外,F/E位=1表明该存储位置被禁止写入数据。
另外,在F/E位=0(禁止读出/允许写入)的状态下,有可能设置对于存储位置的读出预定(reservation)。当要对F/E位=0的存储位置执行读出预定时,副处理器23将副处理器23的副处理器ID和LS地址作为读出预定信息写入对其执行读出预定的存储位置的附加段中。
随后,数据写入一侧的副处理器23将数据写入具有读出预定的存储位置,并且F/E位被设置为F/E位=1(允许读出/禁止写入)。然后,读出作为读出预定信息事先写入附加段中的副处理器ID和LS地址。
在有必要利用多个副处理器在多个阶段(stage)处理数据的情况中,如果以上面描述的这种方式控制每个存储位置的数据读出/写入,则在由前一阶段执行处理的处理器23处理的数据被写入到主存储器26上的预定地址之后片刻,在随后的阶段执行处理的另一副处理器23可读出前面处理(pre-processed)的数据。
参照图2B,每个副处理器23中的本地存储器24也是由多个存储位置0至L形成的,其中所述多个存储位置0至L每个都可以由地址指定。附加段0至L被类似地分配给每个存储位置。附加段包括忙碌(busy)位。
当副处理器23要将主存储器26中的数据读出到其本地存储器24的存储位置中时,其将与读出目的地的存储位置相对应的对应忙碌位设置为1以进行预定。其它数据不能被存储到忙碌位为1的任何存储位置。在读出本地存储器24的存储位置之后,忙碌位改变为0,使得可以将该存储位置用于以后的任意目的(object)。
仍参照图2A,连接到每个信息处理控制器的主存储器26包括多个沙箱(sandbox)。沙箱定义主存储器26中的区域,并且每个沙箱被分配给每个副处理器23,并可由相关的副处理器排它地使用。换句话说,每个副处理器23可使用分配给它的沙箱,但不能超越沙箱范围存取数据。
当主存储器26包括多个存储位置0至M时,每个沙箱是一组存储位置。换句话说,一个沙箱由一个或多个存储位置形成。
另外,为了实现主存储器26的排它控制,使用如图2C所示的这种密钥管理表。该密钥管理表存储在信息处理控制器中诸如SRAM的较高速存储器中,并与DMAC 25协作。
密钥管理表包括与信息处理控制器中的副处理器数目相等的多个条目(entry)。每个条目包括副处理器ID、以及以彼此协同的关系存储的对应的副处理器密钥和对应的密钥掩码(mask)。
副处理器23使用主存储器26时的处理如下所述。首先,副处理器23将读出或写入命令输出到DMAC 25。该命令包括副处理器的副处理器ID和作为使用请求的目的地的主存储器26的地址。
在DMAC 25执行该命令之前,它查询密钥管理表,以检测访问请求的来源的副处理器的副处理器密钥。然后,DMAC 25将检测到的使用请求的来源的副处理器密钥与作为使用请求目的地的主存储器26中分配给图2A所示的存储位置的访问密钥相比较。然后,只有当密钥相一致时,DMAC 25才执行上述命令。
当图2C所示的密钥管理表中的密钥掩码的任意位被设置为1时,该密钥掩码可以将与该密钥掩码协作的副处理器密钥的对应位设置为0或1。
例如,假设副处理器密钥是1010。通常,副处理器密钥只允许访问具有1010访问密钥的沙箱。然而,如果与副处理器密钥协作的密钥掩码被设置为0001,那么只对于其中密钥掩码位被设置为1的数字(digit)屏蔽(mask)副处理器密钥和访问密钥之间的一致确定。因此,1010的副处理器密钥允许对具有1010或1011的访问密钥的沙箱的访问。
主存储器26的沙箱的排它性质以上面描述的这种方式实现。简而言之,在信息处理控制器中的多个副处理器有必要在多个阶段处理数据的情况中,只允许在前一阶段执行处理的副处理器和在随后的阶段执行处理的另一副处理器访问主存储器26的预定地址。因此,数据可受到保护。
例如,可以以下列方式使用存储器的这种排它控制。首先,在信息处理装置启动之后,立即将密钥掩码的值设置为全0。假设主处理器中的程序被执行、并与副处理器中的程序以协作的关系操作。当想要将从第一副处理器输出一次的处理结果数据存储到主存储器26中、并随后将该处理结果数据传送到第二副处理器时,相关主存储区域可以从这两个副处理器进行访问是有必要的。在这种实例中,主处理器中的程序适当地改变密钥掩码的值,以提供可从所述多个副处理器访问的主存储区域,从而允许副处理器的多阶段处理。
更为具体地,当多阶段处理将要在数据从不同信息处理装置→由第一副处理器处理→第一主存储区域→由第二副处理器处理→第二主存储区域的过程中执行时,如果保持下列设置,则第二处理器不能访问第一主存储区域:
第一副处理器的副处理器密钥,0100;
第一主存储区域的访问密钥,0100;
第二副处理器的副处理器密钥,0101;
第二主存储区域的访问密钥,0101。
因此,如果第二副处理器的密钥掩码改变为0001,那么允许第二副处理器访问第一主存储区域。
(1-3.软件单元的产生和配置)
在图1的网络***中,在信息处理装置1、2、3和4之间传送软件单元,使得可以由信息处理装置1、2、3和4执行分布式处理。具体地说,在某一信息处理装置中的信息处理控制器内包括的主处理器21产生包括命令、程序和数据的软件单元,并通过网络9将该软件单元传送给另一信息处理装置以实现分布式处理。
图3示出了软件单元配置示例。参照图3,所示出的软件单元通常包括发送者ID、传送目的地ID、响应目的地ID、单元接口、DMA命令、程序、和数据。
发送者ID包括软件单元发送者的信息处理装置的网络地址和信息处理装置ID。发送者ID包括包含在信息处理装置中的信息处理控制器内的主处理器21和副处理器23的标识符(主处理器ID和副处理器ID)。
传送目的地ID和响应目的地ID分别包括关于软件单元的传送目的地的信息处理装置和软件单元的执行结果的响应目的地的信息处理装置的相同信息。
单元接口是使用软件单元所必需的信息,并且包括全局ID、必需副处理器的信息、沙箱大小、和在前(preceding)软件单元ID。
全局ID允许在整个网络上唯一地标识软件单元,并且是基于发送者ID和软件单元产生或传送的日期和时刻而产生的。
必需副处理器的信息已经在其中设置了执行软件单元所必需的副处理器的数量。沙箱大小已经在其中设置了执行软件单元所必需的主存储器26和副处理器23的本地存储器24的存储容量。
在前软件单元ID是诸如流数据的需要顺序执行的一组软件单元中在前的软件单元的标识符。
软件单元的执行部件由DMA命令、程序和数据形成。DMA命令包括启动程序所必需的一系列DMA命令,而所述程序包括将由副处理器23执行的副处理器程序。这里所述的数据是将由包括副处理器程序的程序处理的数据。
DMA命令还包括加载(load)命令、开始(kick)命令、功能程序执行命令、状态请求命令、以及状态返回命令。
加载命令是用于将主存储器26中的信息加载到副处理器23的本地存储器24中的命令,其除了加载命令本身之外,还包括主存储器地址、副处理器ID、以及LS(本地存储器)地址。主存储器地址指示作为信息加载来源的主存储器26中预定区域的地址。副处理器ID和LS地址指示信息加载目的地的副处理器23的本地存储器24的标识符和地址。
开始命令是用于开始执行副处理器程序的命令,其除了开始命令本身,还包括副处理器ID和程序计数器。副处理器ID标识开始对象的副处理器23,而程序计数器提供执行程序的程序计数器的地址。
功能程序执行命令是如下文所述由某一信息处理装置用来请求另一信息处理装置执行功能程序的(下文中描述的)命令。接收到功能程序执行命令的信息处理装置中的信息处理控制器根据功能程序ID识别要启动的功能程序。
状态请求命令是用于请求将关于由传送目的地ID指示的信息处理装置的当前操作状态(情况)的装置信息传送到由响应目的地ID指示的信息处理装置的命令。当在下文中描述功能程序时,它是归类到图6中的功能程序的程序,其中,图6图示了存储在主存储器26中的软件的配置。功能程序被加载到主存储器26中,并由主处理器21执行。
状态返回命令是这样的命令,其中,接收到状态请求命令的信息处理装置使用状态返回命令来向由包括在状态请求命令中的响应目的地ID指示的信息处理装置发布该信息处理装置自己的装置信息的响应。状态返回命令将装置信息放置在执行部件的数据区。
图4图示了软件单元的数据区域的结构,其中DMA命令是状态返回命令。
参照图4,信息处理装置ID是用于标识包括信息处理控制器的信息处理装置的标识符,并表示传送状态返回命令的信息处理装置的ID。当使电源可用时,由在信息处理装置内的信息处理控制器中包括的主处理器21根据使电源可用时的日期和时刻,该信息处理装置的网络地址,该信息处理装置内的信息处理控制器中包括的副处理器23的数量等产生信息处理装置ID。
信息处理装置类型ID包括代表信息处理装置特性的值。例如,信息处理装置的特性是下文描述的硬盘记录器、PDA(个人数字助理)、便携式CD(光盘)播放器等。信息处理装置类型ID可以是表示信息处理装置所具有的功能例如图像和声音记录或图像和声音再现的类型。代表信息处理装置的特性或功能的值是预先确定的。如果再次调用(recall)信息处理装置类型ID,则可以掌握该信息处理装置的特性或功能。
如下文所述,MS(主导(master)/从属(slave))状态表示信息处理装置作为主导装置和从属装置的哪一个来操作。当MS状态被设置为0时,这表示信息处理装置应该作为主导装置操作,但是在MS状态被设置为1的情况中,这表示该信息处理装置应该作为从属装置操作。
主处理器操作频率表示在信息处理控制器中主处理器21的操作频率。主处理器使用率(utilization factor)表示主处理器21中与目前正在主处理器21中操作的所有程序有关的使用率。主处理器使用率是表示当前使用的处理能力与目标主处理器的总处理能力的比率的值,并且例如以作为用来计算处理器处理能力的单位的MIPS为单位、或基于每单位时间的处理器使用时间来进行计算。这也类似地适用于下文所述的副处理器使用率。
副处理器数量表示在信息处理控制器中提供的副处理器23的数量。副处理器ID表示用于标识信息处理控制器中的副处理器23的标识符。
副处理器状态表示副处理器23的状态,并可以是未使用状态、预定状态、忙碌状态等的一种。未使用状态表明该副处理器当前没有被使用并且也没有被预定用于使用。预定状态表明该副处理器没有被使用但是被预定用于使用。忙碌状态表示当前正在使用该副处理器。
副处理器使用率表示在副处理器中与正由副处理器执行的副处理器程序或副处理器中被预定用于执行的副处理器程序有关的使用率。换句话说,副处理器使用率在副处理器状态为忙碌的情况下指示当前的使用率,而在副处理器状态是被预定的情况下指示估计的使用率,使用该估计的使用率,可以安排以后使用该副处理器。
为一个副处理器23设置一组副处理器ID、副处理器状态、和副处理器使用率。因此,设置与在一个信息处理控制器中的副处理器23的数量相对应的多个组。
主存储器总容量和主存储器使用容量分别表示连接到信息处理控制器的主存储器26的总容量和当前使用的容量。
外部记录部件数量表示连接到信息处理控制器的外部记录部件28的数量。外部记录部件ID是用于唯一地标识连接到信息处理控制器的每个外部记录部件28的信息。外部记录部件类型ID表示每个外部记录部件28的类型(例如,硬盘、CD±RW、DVD±RW、存储盘、SRAM、ROM等)。
外部记录部件总容量和外部记录部件使用容量分别表示使用外部记录部件ID标识的外部记录部件28的总容量和当前使用的容量。
为一个外部记录部件28设置一组外部记录部件ID、外部记录部件类型ID、外部记录部件总容量、和外部记录部件使用容量。因此,设置与连接到信息处理控制器的外部记录部件28的数量相对应的多个组。具体地说,在多个外部记录部件连接到信息处理控制器的情况下,不同的外部记录部件ID被分别施加到外部记录部件上,并且外部记录部件类型ID、外部记录部件总容量、和外部记录部件使用容量也是彼此独立地管理的。
(1-4.软件单元的执行)
某一信息处理装置内的信息处理控制器中包括的主处理器21产生具有如上所述的这种配置的软件单元,并通过网络9将该软件单元传送到不同的信息处理装置、以及所述某个信息处理装置的信息处理控制器。发送者的信息处理装置、传送目的地的信息处理装置、响应目的地的信息处理装置、以及所述装置中的信息处理控制器分别利用上文所述的发送者ID、传送目的地ID、和响应目的地ID来标识。
在接收软件单元的信息处理装置内的信息处理控制器中包括的主处理器21将该软件单元存储到主存储器26。另外,传送目的地的主处理器21读出该软件单元并处理该软件单元中包括的DMA命令。
具体地说,传送目的地的主处理器21首先执行加载命令。因此,信息从由加载命令指示的主存储地址加载到副处理器中的本地存储器24的预定区域,其中,所述副处理器中的本地存储器24是由加载命令中包括的副处理器ID和LS地址指定的。这里,所加载的信息是包含在接收的软件单元中的副处理器程序或数据或一些其它指示数据。
然后,类似地,主处理器21将开始命令与包括在开始命令中的程序计数器一起输出到由包括在开始命令中的副处理器ID指示的副处理器。
所指示的副处理器根据开始命令和程序计数器执行副处理器程序。然后,副处理器将执行结果存储到主存储器26中,并随后向主处理器21通知该执行完成。
应当注意,在传送目的地的信息处理装置中的信息处理控制器内执行软件单元的处理器不限于副处理器23,而是有可能指定主处理器21,以便执行主储存器程序,例如包括在软件单元中的功能程序。
在此实例中,发送者的信息处理装置将其DMA命令是加载命令的软件单元传送到传送目的地的信息处理装置。该软件单元包括主存储器程序和将由主存储器程序代替副处理器程序处理的数据。主存储器程序和将由主存储器程序处理的数据被存储到主存储器26中。
然后,发送者的信息处理装置将其DMA命令是开始命令或功能程序执行命令的软件单元传送到传送目的地的信息处理装置。该软件单元包括传送目的地的信息处理装置中的信息处理控制器的主处理器ID和主存储地址、用于标识主存储器程序的标识符例如下文所述的功能程序ID、以及程序计数器。因此,主处理器21可以执行主存储器程序。
如上所述,在根据本实施例的网络***中,发送者的信息处理装置将副处理器程序或主存储器程序以软件单元的形式传送到传送目的地的信息处理装置。另外,发送者的信息处理装置使传送目的地的信息处理装置中的信息处理控制器将副处理器程序加载到副处理器23中。因此,发送者的信息处理装置可以使传送目的地的信息处理装置执行副处理器程序或主存储器程序。
当包括在所接收的软件单元中的程序是副处理器程序时,传送目的地的信息处理装置中的信息处理控制器将副处理器程序加载到指定的副处理器。因此,信息处理控制器使副处理器执行包括在软件单元中的副处理器程序或主存储器程序。
因此,即使用户不操作传送目的地的信息处理装置,副处理器程序或主存储器程序也可以由传送目的地的信息处理装置中的信息处理控制器自动执行。
以这种方式,在任意信息处理装置的信息处理控制器不包括副处理器程序或主存储器程序如功能程序的情况下,任何信息处理装置都可以通过网络从与之相连接的另一信息处理装置获得这种程序。另外,每个副处理器和主存储器可以根据DMA***在彼此之间传递数据,并且使用如上文所述的这种沙箱。在这种情况下,即使在有必要在一个信息处理控制器内以多个阶段处理数据时,也可以以高速和高度的安全性执行所述处理。
[2.信息处理装置之间的分布式处理的示例1]
作为通过使用软件单元进行分布式处理的结果,如图5中上面部分所示的连接到网络9的多个信息处理装置1、2、3和4作为虚拟的单个信息处理装置7操作,如图5中下面部分所示。然而,为了实现刚才描述的这种虚拟操作,下面描述的处理必须通过如下所述的这种配置执行。
(2-1.***的软件配置和程序的加载)
图6图示了将由各个信息处理控制器的主存储器26存储的软件的配置。参照图6,在使电源可用于信息处理装置之前,软件(程序)被记录在连接到该信息处理控制器的外部记录部件28中。
根据程序的功能或特性,这些程序被归类为控制程序、功能程序和设备驱动程序。
控制程序通常在信息处理控制器中提供、并由每个信息处理控制器中的主处理器21执行。控制程序包括下文中所述的MS(主导/从属)管理器(manager)和能力(capacity)交换程序。
主处理器21执行功能程序,并且,对于每个信息处理装置,这种功能程序作为记录程序、再现程序、素材搜索程序等被提供给信息处理控制器。
装置驱动程序被提供用于每个信息处理控制器(信息处理装置)的输入和输出(传送和接收),并且适于每个信息处理装置的诸如用于广播接收、显示器输出、位流输入/输出、网络输入/输出等的那些设备的设备被提供给信息处理控制器。
当在信息处理装置通过电缆连接等物理地连接到网络9、从而该信息处理装置也电气地和功能性地连接到网络9的状态下使电源可用于该信息处理装置时,该信息处理装置的信息处理控制器的主处理器21将属于控制程序的程序和属于设备驱动程序的程序加载到主存储器26中。
作为程序的加载过程,主处理器21首先控制DC 27执行读出指令,以便从外部记录部件28读出程序,并随后控制DMAC 25执行写入指令,以将程序写入到主存储器26中。
属于功能程序的程序可被处理为使得在必要时或在其它情况中只加载一个必需程序,从而在类似于属于其它类别的程序而使主电源可用之后立刻加载所有程序。
属于功能程序的程序不必记录在连接到网络的所有信息处理装置的外部记录部件28中。然而,如果它们被记录在任何一个信息处理装置的外部记录部件28中,那么可以利用上述方法将它们加载到其它信息处理装置中。因此,功能程序可以由图5下面部分(stage)所示的虚拟的单个信息处理装置7执行。
如上所述,由主处理器21执行的功能程序有时与副处理器23处理的副处理器程序协同操作。因此,当主处理器21从外部记录部件28读出功能程序并将该功能程序写入主存储器26时,如果任何副处理器将与目标功能处理器协同操作,那么主处理器21也将副处理器程序一起写入同一主存储器26。在此实例中,尽管单个副处理器程序可协同操作,但是多个副处理器程序也有可能协同操作。在多个副处理器程序协同操作的情况下,它们全部都被写入到主存储器26中。
写入到主存储器26中的每个副处理器程序被随后写入到副处理器23中的本地存储器24,并与由主处理器21处理的功能程序协同操作。
如同在上文中结合图3示出的软件单元所描述的那样,可利用其来唯一标识程序的标识符被作为功能程序ID分配给每个功能程序。功能程序ID由功能程序产生阶段的产生日期和时刻、信息处理装置ID等确定。
每个副处理器程序也具有分配给它的副处理器程序ID,使得可以唯一地标识副处理器程序。以这种方式分配的副处理器程序ID可以是这样的标识符,该标识符和其协同操作的对方的功能程序的功能程序ID具有某种关系。标识符示例由作为父编号的功能程序ID和添加到功能程序ID尾部的分支编号组成。然而,在其它情况中,副处理器程序ID也可以是与协同操作的对应的功能程序的功能程序ID没有关系的标识符。
无论如何,在功能程序和副处理器程序应当协同操作的情况下,它们每个都将对方的标识符的程序ID存储在其中是有必要的。此外,在功能程序应当与多个副处理器程序协同操作的情况下,功能程序存储所述多个副处理器程序的所有副处理器程序ID。
主处理器21在主存储器26中确保用于存储主处理器21操作所在的信息处理装置的装置信息(与该装置的操作状态有关的信息)的区域,并将信息记录为信息处理装置本身的装置信息表。这里,装置信息是图4所示的信息处理装置ID的信息等。
(2-2.***中主导/从属的确定)
在上述网络***中,当使某一信息处理装置的主电源可用时,该信息处理装置的信息处理控制器的主处理器21将主导/从属管理器(下文中称为MS管理器)加载到主存储器26中,并执行该主导/从属管理器。
在MS管理器检测到MS管理器操作所在的信息处理装置连接到网络9之后,其确认连接到相同网络9的其它信息处理装置的存在。这里的“连接”或“存在”表示信息处理装置不仅物理地还电气地和功能性地连接到网络9。
MS管理器自身操作所在的信息处理装置在下文中称为自身装置(selfapparatus),而任何其它信息处理装置称为不同装置。此外,术语有关装置表示有关的信息处理装置。
下面描述MS管理器确认存在连接到相同网络9的不同信息处理装置的方法。
MS管理器产生软件单元,其将状态请求命令指定为DMA命令,并将有关信息处理装置指定为发送者ID和响应目的地ID,但并不指明传送目的地ID。然后,MS管理器将软件单元传送给有关信息处理装置所连接的网络,并设置用于网络连接确认的定时器。定时器的超时时间是例如10分钟。
如果不同的信息处理装置连接到网络***,那么该不同装置接收状态请求命令的软件单元,并将其DMA命令是状态返回命令、并且包括自身装置(不同装置)的装置信息的软件单元作为数据传送到由所接收的软件单元的响应目的地ID指定的、并且已经发布了状态请求命令的信息处理装置。状态返回命令的软件单元至少包括用于指定不同装置的信息(信息处理装置ID、有关主处理器的信息、有关副处理器的信息等)和该不同装置的MS状态。
发布了状态请求命令的信息处理装置的MS管理器监管(supervise)从网络上的不同装置传送的状态返回命令的软件单元的接收,直到用于网络连接确认的定时器发生超时为止。因此,如果接收到表示MS状态=0(主导装置)的状态返回命令,那么自身装置的装置信息表中的MS状态被设置为1。从而,有关装置变为从属装置。
另一方面,如果在直到用于网络连接确认的定时器发生超时为止的时间内没有接收到状态返回命令,或者如果没有接收到表示MS状态=0(主导装置)的状态返回命令,那么自身装置的装置信息表中的MS状态被设置为0。因此,有关装置变为主导装置。
简而言之,在没有装置连接到网络9的状态下,或者在网络9上不存在主导装置的另一状态下,如果新信息处理装置连接到网络9,那么有关装置被自动设置为主导装置。另一方面,在主导装置已存在于网络9上的另外一种状态下,如果新信息处理装置连接到网络9,那么相关装置被自动设置为从属装置。
在主导装置和从属装置的任一个中,MS管理器周期性地将状态请求命令传送给网络9上的不同装置,以查询状态信息,从而监管不同装置的情形。因此,当网络9的连接状态发生变化时,例如当连接到网络9的信息处理装置的主电源被切断或信息处理装置从网络9断开、从而在事先设置用于判别的预定时间周期内没有从特定的不同装置返回状态返回命令时,信息被输送到下文所述的能力交换程序。
(2-3.主导装置和从属装置的装置信息获取)
如果主处理器21从MS管理器接收到有关网络9上不同装置的查询和完成对自身装置的MS状态的设置的通知,那么其执行能力交换程序。
如果自身装置是主导装置,则能力交换程序获取连接到网络9的所有不同装置的装置信息,即所有从属装置的装置信息。
对不同装置的装置信息的获取可以这样执行,使得DMA命令产生并传送状态请求命令的软件单元到所述不同装置,然后从该不同装置接收作为数据的、其DMA命令是状态返回命令并包括该不同装置的装置信息的软件单元。
能力交换程序在自身装置的主存储器26中确保用于存储连接到网络9的所有不同装置(所有从属装置)的装置信息的区域,并类似于作为主导装置的自身装置的装置信息表而将信息作为不同装置(从属装置)的装置信息表存储。换句话说,包括自身装置在内的连接到网络9的所有信息处理装置的装置信息都作为装置信息表存储在主导装置的主存储器26中。
另一方面,如果能力交换程序的自身装置是从属装置,那么能力交换程序获取连接到网络9的所有不同装置的装置信息,即主导装置和除了自身装置的所有从属装置的装置信息,并将包括在装置信息中的信息处理装置ID和MS状态记录到自身装置的主存储器26中。换句话说,在每个从属装置的主存储器26中,自身装置的装置信息都作为装置信息表记录,而除了自身装置之外的连接到网络9的所有主导装置和从属装置的信息处理装置ID和MS状态都作为不同装置信息表记录。
另外,在主导装置和从属装置的任一个中,当能力交换程序从上述MS管理器接收到信息处理装置新连接到网络9的通知时,它获取该信息处理装置的装置信息,并将该装置信息寄存到如上文所述的主存储器26中。
应当注意,MS管理器和能力交换程序可以不是由主处理器21执行,而是由任意副处理器23执行。另外,MS管理器和能力交换程序优选为在信息处理装置的主电源可用时正常操作的常驻程序。
(2-4.当信息处理装置从网络断开时)
在主导装置和从属装置的任一个中,如果从MS管理器向能力交换程序通知连接到网络9的信息处理装置的主电源被断开、或者信息处理装置从网络9断开,那么能力交换程序将该信息处理装置的装置信息表从自身装置的主存储器26中删除。
另外,如果从网络9断开的信息处理装置是主导装置,那么利用以下方法重新确定另一主导装置。
具体地说,例如,未从网络9断开的那些信息处理装置的每一个将自身装置和不同装置的信息处理装置ID替换为数值,并将自身装置的信息处理装置ID与不同装置的信息处理装置ID相比较。如果自身装置的信息处理装置ID在未从网络9断开的信息处理装置中显示为最小值,那么从属装置将自身改变为主导装置并将MS状态设置为0。然后,它作为主导装置操作,并获取连接到网络9的所有不同装置(从属装置)的装置信息,并将其记录到上述主存储器26中。
(2-5.基于装置信息的信息处理装置之间的分布式处理)
为了允许连接到网络9的多个信息处理装置1、2、3和4作为如图5下面部分所示的虚拟单个信息处理器7操作,主导装置有必要掌握用户操作和从属装置的操作状态。
图7示出了4个信息处理装置,它们处于作为虚拟的单个信息处理装置7操作的状态下。假设信息处理装置1充当主导装置,而信息处理装置2、3、和4分别充当从属装置A、B、和C。
当用户操作连接到网络9的任何一个信息处理装置时,如果操作对象是主导装置1,那么操作信息直接由主导装置1掌握。另一方面,如果操作对象是从属装置,那么操作信息被随后从***作的从属装置传送到主导装置1。换句话说,不管用户的操作对象是主导装置1还是从属装置之一,主导装置1始终掌握操作信息。例如,使用其DMA命令是操作信息传送命令的软件单元来执行操作信息的传送。
然后,包括在主导装置1内的信息处理控制器11中的主处理器21-1根据操作信息选择要执行的功能程序。在此实例中,如果必要的话,包括在主导装置1内的信息处理控制器11中的主处理器21-1使用上述方法将功能程序从自身装置的外部记录部件28-1和28-2加载到主存储器26-1中。然而,功能程序也可以以其它方式从不同信息处理装置(从属装置)传送到主导装置1。
功能程序定义了每个执行单元所需的、关于装置的所需规格(specification),例如表示为图4中各种类型信息的信息处理装置类型ID、主处理器或副处理器的处理能力、主存储器使用容量、和与外部记录部件有关的情况。
包括在主导装置1的信息处理控制器11中的主处理器21-1读出由各个功能程序所需的这种所请求的规格。另外,主处理器21-1查询由能力交换程序事先记录在主存储器26-1中的装置信息表,以读出所述各个信息处理装置的装置信息。这里,装置信息是指包括图4示出的信息处理装置ID项和后续项的信息项,并且是与主处理器、副处理器、主存储器和外部记录部件相关的信息。
包括在主导装置1的信息处理控制器11中的主处理器21-1连续比较连接到网络9的信息处理装置的装置信息和执行功能程序所必需的所需规格。
例如,如果功能程序需要记录功能,那么主处理器21-1基于信息处理装置类型ID只指定并提取具有记录功能的那些信息处理装置。另外,主处理器21-1指定从属装置之一作为执行请求候选装置,其中,该从属装置可确保执行处理程序所必需的主处理器或副处理器的处理能力、主存储器使用容量、和关于外部记录部件的情况。这里,如果指定了多个执行请求候选装置,那么指定和选择这些执行请求候选装置中的一个。
在指定了要对其发布执行请求的从属装置之后,包括在主导装置1的信息处理控制器11中的主处理器21-1更新自身装置的信息处理控制器11中包括的主存储器26-1中记录的关于被指定的从属装置的装置信息表。
另外,包括在信息处理装置1的信息处理控制器11中的主处理器21-1产生包括作为DMA命令的功能程序执行命令的软件单元,并对软件单元的单元接口设置与功能程序有关的必需副处理器的信息和沙箱大小(参照图3)。然后,主处理器21-1将所得到的软件单元传送到被请求执行功能程序的从属装置。
被请求执行功能程序的从属装置执行该功能程序,并更新自身装置的装置信息表。在此实例中,如果必要的话,包括在从属装置的信息处理控制器中的主处理器21使用上文所述的方法,将该功能程序和应当与该功能程序协同操作的一个或多个副处理器程序从自身装置的外部记录部件28加载到主存储器26中。
***可这样配置,使得如果该必需功能程序或应当与该功能程序协同操作的一个或多个副处理器程序没有记录在被请求执行该功能程序的从属装置的任意一个外部记录部件28中,那么不同信息处理装置将该功能程序和所述一个或多个副处理器程序传送到被请求执行该功能程序的从属装置。
所述一个或多个副处理器程序也有可能由不同信息处理装置使用上文所述的加载命令和开始命令执行。
在功能程序的执行结束之后,包括在执行了该功能程序的从属装置的信息处理控制器中的主处理器21将执行结束通知传送到包括在主导装置1的信息处理控制器11中的主处理器21-1,并更新自身装置的装置信息表。包括在主导装置1的信息处理控制器11中的主处理器21-1接收该结束通知,并更新执行了该功能程序的从属装置的装置信息表。
包括在主导装置1的信息处理控制器11中的主处理器21-1有可能从对自身装置和不同装置的装置信息表的查阅结果中选择自身装置作为可执行功能程序的信息处理装置。在此实例中,主导装置1执行所述功能程序。
参照图8来描述分布式处理,其中,在图7示出的示例中,用户操作从属装置A(信息处理装置2),并且不同从属装置B(信息处理装置3)响应于该操作而执行功能程序。
在图8所示的示例中,当用户操作从属装置A时,包括从属装置A的整个网络***的分布式处理被启动,并且在步骤81从属装置A首先将操作信息传送到主导装置1。
在步骤72,主导装置1接收操作信息,并在步骤73从自身装置的主存储器26-1中记录的自身装置和不同装置的装置信息表中检查该信息处理装置的操作状态,以便选择可执行与接收到的操作信息相对应的功能程序的信息处理装置。在图8所示的示例中,选择了从属装置B。
然后,在步骤74,主导装置1向所选择的从属装置B发布执行功能程序的请求。
在步骤95,从属装置B接收执行请求,并在步骤96执行被请求其执行的功能程序。
以这种方式,如果用户只操作信息处理装置之一,那么它可以使所述多个信息处理装置1、2、3和4作为虚拟的单个信息处理装置7操作,而不操作所述信息处理装置的其它任意一个。
(2-6.信息处理装置和***的特定示例)
只有当如上文所述由这种信息处理控制器11、12、13或14执行信息处理时,通过网络9互相连接的每个信息处理装置1、2、3和4才可以基本上具有任意配置。图9示出了信息处理装置的配置示例。
在所示出的示例中,包括信息处理控制器11的信息处理装置1是硬盘记录器。图10分别示出了图9所示的硬盘记录器的硬件配置和软件配置。参照图10,作为所示出的信息处理装置1的硬件配置,其包括充当图1所示的外部记录部件28-1的内置硬盘。信息处理装置1还包括图1所示的外部记录部件28-2,其中,可以将诸如DVD±R/RW、CD±R/RW、Bluray-Disc(注册商标)等的光盘加载到外部记录部件28-2中。信息处理装置1还包括连接到总线31-1的广播接收部件32-1、图像输入部件33-1、声音输入部件34-1、图像输出部件35-1、声音输出部件36-1、操作面板部件37-1、远程控制光接收部件38-1和网络连接部件39-1,而总线31-1又连接到信息处理控制器11的总线29-1。
广播接收部件32-1、图像输入部件33-1和声音输入部件34-1从信息处理装置1外部接收广播信号或图像信号和声音信号,将所接收的一个或多个信号转换为预定格式的数字数据,并将该数字数据发送给总线31-1,以便由信息处理控制器11进行处理。图像输出部件35-1和声音输出部件36-1处理从信息处理控制器11发送到总线31-1的图像数据和声音数据,并将该图像数据和声音数据按原样或在被转换为模拟信号之后发送到信息处理装置1的外部。远程控制光接收部件38-1从远程控制发射机43-1接收远程控制红外信号。
如图9和10所示,监视显示(monitor display)装置41和扬声器装置42分别连接到信息处理装置(硬盘记录器)1的图像输出部件35-1和声音输出部件36-1。
图9所示的包括信息处理控制器12的信息处理装置2也是硬盘记录器,并且被与如图10所示的信息处理装置1相似地配置,其中,附图标记被置于括号中。然而,应当注意,例如,如图9所示,没有监视显示装置和扬声器装置连接到信息处理装置(硬盘记录器)2。
作为图11所示的软件配置,信息处理装置(硬盘记录器)1和2,即信息处理控制器11和12包括作为控制程序的MS管理器和能力交换程序。另外,信息处理控制器11和12包括作为功能程序的用于图像和声音记录、图像和声音再现、素材搜索、以及节目记录预定的程序。此外,信息处理控制器11和12包括作为设备驱动程序的用于广播接收、图像输出、声音输出、外部记录部件输11输出、和网络输入/输出的程序。
在图9的示例中,包括信息处理控制器13的信息处理装置3是PDA(个人数字助理)。图12示出了形成为PDA的信息处理装置3的硬件配置。参照图12,在所示示例中,信息处理装置3包括图1所示的外部记录部件28-5,其中,可以将存储卡盘加载到外部记录部件28-5中。信息处理装置3还包括连接到总线51的液晶显示部件52、声音输出部件53、照相机部件54、声音输入部件55、键盘部件56、和网络连接部件57,而总线51又连接到信息处理控制器13的总线29-3。
应当注意,图1中没有示出其内部配置的信息处理控制器13包括主处理器21-3、副处理器23-7、23-8和23-9、直接存储器存取控制器(DMAC)25-3、盘控制器(DC)27-3、和总线29-3。主处理器21-3包括本地存储器(LS)22-3,而副处理器23-7、23-8、和23-9分别包括本地存储器(LS)27-7、24-8、和24-9。
图13示出了信息处理装置(PDA)3、具体的说是信息处理控制器13的软件配置。参照图13,信息处理控制器13包括作为控制程序的MS管理器和能力交换程序。另外,信息处理控制器13包括用于图像和声音记录、图像和声音再现、电话号簿、字处理器、和电子表格的程序作为功能程序,并且包括网络浏览器。另外,信息处理控制器13包括用于图像输出、声音输出、照相机图像输入、麦克风声音输入和网络输入/输出的程序,作为设备驱动程序。
图9示出的包括信息处理控制器14的信息处理装置4是便携式CD播放器。图14示出了便携式CD播放器形式的信息处理装置4的硬件配置。参照图14,信息处理装置4包括图1所示的外部记录部件28-6,其中,可以将CD(光盘)加载到外部记录部件28-6中。信息处理装置4还包括连接到总线61的液晶显示部件62、声音输出部件63、操作按钮部件64、和网络连接部件65,而总线61又连接到信息处理控制器14的总线29-4。
应当注意,图1中没有示出其内部配置的信息处理控制器14包括主处理器21-4、副处理器23-10、23-11、和23-12、直接存储器存取控制器(DMAC)25-4、盘控制器(DC)27-4、和总线29-4。主处理器21-4包括本地存储器(LS)22-4,而副处理器23-10、23-11、和23-12分别包括本地存储器(LS)24-10、24-11、和24-12。
图15示出了便携式CD播放器形式的信息处理装置4、具体地说是信息处理控制器14的软件配置。参照图15,信息处理控制器14包括MS管理器和能力交换程序作为控制程序。另外,信息处理控制器14包括作为功能程序的用于音乐再现等的程序,并包括作为设备驱动程序的用于声音输出、CD控制、和网络输入/输出的程序。
假设在图9示出并具有上面所述的这种配置的网络***中,信息处理装置1、3和4连接到网络9,并且信息处理装置1被设置为主导装置(MS状态=0),而信息处理装置3和4被设置为从属装置(MS状态=1)。
在这种状态下,如果信息处理装置2新连接到网络9,那么在信息处理装置2的信息处理控制器12中包括的主处理器21-2中执行的MS管理器查询其它信息处理装置1、3和4的MS状态并识别出信息处理装置1已经作为主导装置形式存在。因此,MS管理器将自身装置(信息处理装置2)设置为从属装置(MS状态=1)。同时,被设置为主导装置的信息处理装置1收集包括新增加的信息处理装置2的装置的装置信息,并基于所收集的装置信息更新主存储器26-1中的装置信息表。
下面描述:当在此状态下用户操作作为从属装置的信息处理装置(PDA)3以进行两个小时的广播节目的记录预定时,图9的网络***的操作。
在此实例中,作为从属装置的信息处理装置(PDA)3接受包括记录开始时间、记录结束时间、记录对象广播频道和记录画面质量的信息的记录预定信息的输入,并产生包括该记录预定信息和作为DMA命令的记录预定命令的软件单元。然后,信息处理装置3将所产生的软件单元传送到作为主导装置的信息处理装置1。
接收其DMA命令是记录预定命令的软件单元的、包括在信息处理装置1的信息处理控制器11中的主处理器21-1读出该记录预定命令,并查阅主存储器26-1中的装置信息表,以指定可执行该记录预定命令的信息处理装置。
首先,主处理器21-1读出包括在装置信息表中的信息处理装置1、2、3和4的信息处理装置类型ID,以提取可执行与记录预定命令相对应的功能程序的那些信息处理装置。这里,具有指示记录功能的信息处理装置类型ID的信息处理装置1和2被指定为候选装置,而信息处理装置3和4被排除在候选装置之外。
包括在信息处理装置1的信息处理控制器11中的主处理器21-1查阅装置信息表,以读出与该装置有关的信息例如主处理器和副处理器的处理能力、以及与信息处理装置1和2的主存储器有关的信息,并且,主处理器21-1判别信息处理装置1和2是否满足执行与记录预定命令相对应的功能程序必需的所需规格。这里假设信息处理装置1和2都满足执行与记录预定命令相对应的功能程序必需的所需规格。
另外,主处理器21-1查阅装置信息表,以读出与信息处理装置1和2的外部记录部件有关的信息,并判别外部记录部件的空闲容量是否满足执行记录预定命令所必需的容量。由于信息处理装置1和2是硬盘记录器,因此外部记录部件28-1和28-3的总容量和使用容量之间的差分别相当于空闲容量。
在此实例中,当把信息处理装置1的外部记录部件28-1的空闲容量转换为记录时间周期时,假设其空闲容量是10分钟,而当把信息处理装置2的硬盘28-3的空闲容量转换为记录时间周期时,假设其空闲容量是20小时。
在此实例中,包括在作为主导装置的信息处理装置1的信息处理控制器11中的主处理器21-1指定可确保执行记录预定命令所必需的两个小时的空闲容量的信息处理装置作为执行请求的目的地从属装置。
因此,只有信息处理装置2被选择作为执行请求目的地从属装置,并且,包括在作为主导装置的信息处理装置1的信息处理控制器11中的主处理器21-1将记录预定命令传送到信息处理装置2,以请求信息处理装置2进行上文所述的两小时的广播节目的记录预定,其中所述记录预定命令包括从由用户操作的信息处理装置3传送的记录预定信息。
然后,包括在信息处理装置2的信息处理控制器12中的主处理器21-2分析记录预定命令,并将记录必需的功能程序从作为外部记录部件的硬盘28-3加载到线路存储器(line memory)26-2中。然后,主处理器21-2根据记录预定信息执行记录。因此,预定用于记录的两小时的广播节目的图像和声音数据被记录在信息处理装置2的硬盘28-3上。
以这种方式,在图9所示的网络***中,用户也可以仅通过只操作信息处理装置之一而不操作信息处理装置其它任意一个,使所述多个信息处理装置1、2、3和4作为虚拟的单个信息处理装置7来操作。
[3.通过副处理器的分配进行的分布式处理1]
在上述图7或9的网络***的分布式处理中,当充当主导装置的信息处理装置1指定了可执行功能程序的信息处理装置时,网络***包括满足执行该功能程序必需的所有所需规格的信息处理装置。然而,网络***可以不包括这样的信息处理装置。
在图9的示例中,充当主导装置的信息处理装置1最终将信息处理装置2指定为将执行与记录预定命令相对应的功能程序的信息处理装置。然而,信息处理装置2可能不满足执行功能程序所必需的部分所需规格。例如,信息处理装置2不满足多个副处理器的要求,尽管其满足所有其它所需规格。此外,在如刚才所述的这种实例中,信息处理装置2有可能能够利用上文所述的加载命令或开始命令来执行功能程序,以利用不同信息处理装置中的副处理器。
因此,下文描述一示例,其中,当主导装置指定将执行功能程序的信息处理装置时,它在不考虑候选信息处理装置的副处理器处理能力的情况下指定将执行功能程序的信息处理装置。
在此实例中,功能程序指定与装置有关的所需规格,例如对被表示为图4示出的多种类型信息的信息处理装置类型ID、主处理器或副处理器的处理能力、主存储器使用容量、和外部记录部件的要求。当主导装置指定将由其执行功能程序的信息处理装置时,它指定满足除了副处理器处理能力之外的所需规格的信息处理装置。因此,由主导装置指定并被请求执行功能程序的信息处理装置可以不在该信息处理装置自身中确保执行功能程序所必需的处理器处理能力。
在下文中描述分布式处理的示例,其中,以这种方式被请求执行功能程序的信息处理装置使用网络***中包括的不同信息处理装置的副处理器。
(3-1.***配置)
图16示出了其中4个信息处理装置1、2、3、和4连接到网络9的网络***。
信息处理装置1作为主导装置操作,而信息处理装置2、3、和4每个都作为从属装置操作,并且假设信息处理装置1指定信息处理装置1自己作为将由其执行功能程序的信息处理装置。
连接到网络9的信息处理装置1、2、3、和4具有如图17所示的这种软件配置。参照图17,每个信息处理处理装置1、2、3、和4不仅包括在上文中参照图6描述的MS管理器和能力交换程序,还包括作为控制程序的资源管理器。
资源管理器控制自身装置中的副处理器来执行程序和数据的传递、程序执行的启动和停止、程序执行结果的接收等。
另外,资源管理器掌握自身装置中副处理器的使用情况,并发布对来自任何其它信息处理装置的查询的响应、或向它们发布关于其它信息处理装置的副处理器的使用情况的查询。
为此,资源管理器准备如图18所示的这种副处理器管理表。
图18的副处理器管理表用于这样的情况,其中每个信息处理装置中的信息处理控制器包括几个或多个副处理器。参照图18,副处理器管理表中的信息处理装置ID是自身装置的信息处理装置ID。另外,副处理器装置ID是自身装置中每个副处理器的副处理器ID,而副处理器状态指示每个副处理器的使用情况。
副处理器状态可以是如上文所述的未使用状态(副处理器当前未被使用也没有被预定用于使用的状态)、预定状态(副处理器当前未被使用但被预定用于使用的状态)、和忙碌状态(副处理器当前正被使用的状态)的一种。
如下文所述,未使用状态被称为空闲状态,并且副处理器是否空闲,即副处理器是处于未使用状态、预定状态还是忙碌状态被称为空闲状况。
副处理器程序ID是用于标识在副处理器中正在执行或被预定用于执行的副处理器程序的标识符。功能程序ID是用于标识功能程序的标识符,其中所述功能程序与在上面阶段(stage)的副处理器程序ID指示的副处理器程序协同操作。
副处理器程序优先级是当前正被执行或被预定用于执行的副处理器程序的优先级。副处理器程序优先级是根据将与该副处理器程序协同操作的功能程序的优先级预先确定的,并被例如分为三级(stage):高(高优先级),中(中优先级)和低(低优先级)。
当要确保副处理器时、或在如下文中所述的类似情况中,由资源管理器发布锁定序号(lock sequence number),并将其记载在副处理器管理表中。只有当从功能程序接收到的副处理器程序ID和锁定序号与副处理器管理表中记载的副处理器程序ID和锁定序号一致时,资源管理器才允许使用副处理器。
(3-2.副处理器分配处理)
假设在图16的网络***中,信息处理装置1作为主导装置操作,而信息处理装置2、3和4每个都作为从属装置操作,并且充当主导装置的信息处理装置1指定信息处理装置1自己作为将由其执行功能程序的信息处理装置。
在下文中,参照图19到27描述副处理器分配处理的示例,所述副处理器分配处理是当信息处理装置1确保信息处理装置1自身或其它信息处理装置2、3和4中用于执行副处理器程序的副处理器时,由信息处理装置1的主存储器26-1中的功能程序、信息处理装置1中的资源管理器以及信息处理装置2、3和4中的资源管理器执行的,其中所述副处理器程序与信息处理装置1自己的主存储器26-1中的功能程序协同操作。
首先参照图19,在步骤111,信息处理装置1的主存储器26-1中的功能程序首先确定执行副处理器程序所必需的副处理器数量。然后在步骤112,功能程序向自身装置(信息处理装置1)中的资源管理器输出使用必需数量(由n表示)的副处理器的请求,所述请求附加功能程序的功能程序ID以及将与该功能程序协同操作的所有副处理器程序的副处理器程序ID和副处理器程序优先级。
在步骤113,响应于所述请求,信息处理装置1中的资源管理器查阅自身装置(信息处理装置1)的图18所示的副处理器管理表,以确定在自身装置中是否可以获得n个空闲副处理器。如果在自身装置中可以获得n个或更多空闲副处理器,那么处理从步骤113前进到步骤114。在步骤114,资源管理器确保自身装置中的n个副处理器,并且,对于所确保的每个副处理器,将副处理器管理表中的副处理器状态从未使用重写为被预定,并重写副处理器程序ID、功能程序ID、和副处理器程序优先级,使得它们与将由所确保的副处理器执行的副处理器程序的那些内容相一致。此外,所述资源管理器发布锁定序号,并将其记载到副处理器管理表中。
随后,处理前进到步骤115,在步骤115,信息处理装置1中的资源管理器向功能程序发布在自身装置中确保了n个副处理器程序的事实、以及这n个所确保的副处理器中的每一个的副处理器ID、副处理器程序ID和锁定序号的通知。
现在参照图20,在步骤117,功能程序从资源管理器接收通知,并将等于所确保的副处理器数量的数量的所确保的副处理器的副处理器ID、副处理器程序ID、副处理器程序主体和锁定序号连同功能程序自己的功能程序ID一起发送到自身装置(信息处理装置1)的资源管理器中。
在步骤121,信息处理装置1中的资源管理器接收从功能程序传送的信息,并存储用于副处理器的副处理器程序。然后在步骤122,信息处理装置1中的资源管理器确定所接收的处理器程序ID和锁定序号是否与自身装置的副处理器管理表中的那些相同。如果它们相同,那么处理前进到步骤123,在步骤123,信息处理装置1中的资源管理器将副处理器程序传送到所确保的副处理器。然后在步骤124,信息处理装置1中的资源管理器向功能程序发布通知:副处理器程序被传送到副处理器。
从而,完成了可以仅在信息处理装置1内的空闲副处理器中确保必需数量的副处理器的副处理器分配处理。
在传送副处理器程序的同时,或在传送副处理器程序之后,将由所确保的副处理器的每一个处理的数据被传送到所确保的副处理器。因此,所确保的副处理器的每一个都可以执行副处理器程序。
如果信息处理装置1中的资源管理器在步骤122确定从功能程序接收到的副处理器程序ID或锁定序号与自身装置的副处理器管理表中的那些不同,那么处理从步骤122前进到步骤126,在步骤126,信息处理装置1中的资源管理器向功能程序发布错误通知。
在此实例中,在步骤127,功能程序执行错误处理。具体地说,错误处理可以是以步骤112再次开始的副处理器分配处理的执行。
另一方面,如果信息处理装置1中的资源管理器在图19的步骤113确定在自身装置中不能获得n个空闲副处理器,即信息处理装置1只包括n-1个空闲副处理器或更少(包括0),那么处理从步骤113前进到图21示出的步骤131。现在参照图21,在步骤131,信息处理装置1中的资源管理器确定是否有某个不同信息处理装置连接到网络。图16示出连接了不同信息处理装置2、3和4。
然后,如果一个或多个不同信息处理装置连接到网络,那么处理从步骤131前进到步骤132,在步骤132,信息处理装置1中的资源管理器向所述不同信息处理装置之一(在本情况中,信息处理装置2)中的资源管理器发布关于副处理器的空闲状况的查询。
使用如图28A所示的这种副处理器空闲状况查询命令来传达查询。参照图28A,副处理器空闲状况查询命令包括发送者ID(在此实例中,信息处理装置1的信息处理装置ID)、传送目的地ID(在此实例中,信息处理装置2的信息处理装置ID)、以及响应目的地ID(在此实例中,信息处理装置1的信息处理装置ID)。副处理器空闲状况查询命令还包括作为DMA命令的副处理器空闲状况查询命令主体和功能程序ID。
仍参照图21,响应于来自信息处理装置1中的资源管理器的查询,在步骤133,不同信息处理装置(在此实例中,信息处理装置2)中的资源管理器从自身装置中的副处理器管理表确定自身装置中的副处理器的空闲状况。然后在步骤135,如果在自身装置中可以获得空闲副处理器,那么不同信息处理装置中的资源管理器向信息处理装置1中的资源管理器发布空闲副处理器的数量和副处理器ID的通知。然而,如果自身装置中不能获得空闲副处理器,那么不同信息处理装置中的资源管理器向信息处理装置1中的资源管理器发布对此的通知。
使用如图28B所示的这种副处理器空闲状况返回命令来传达通知。参照图28B,副处理器空闲状况返回命令包括发送者ID(在此实例中,信息处理装置2的信息处理装置ID)、传送目的地ID(在此实例中,信息处理装置1的信息处理装置ID)、以及响应目的地ID(在此实例中,信息处理装置1的信息处理装置ID)。副处理器空闲状况返回命令还包括作为DMA命令的副处理器空闲状况返回命令主体、功能程序ID、空闲副处理器的数量、以及空闲副处理器的副处理器ID。
信息处理装置1中的资源管理器接收通知,并在图22所示的步骤136确定是否可以确保包括自身装置(信息处理装置1)中的空闲副处理器和不同装置(信息处理装置2)中的空闲副处理器在内的总共n个副处理器。
在n是比较大的数字例如8、9或10的情况下,如果在信息处理装置1中只能确保一个副处理器,而在信息处理装置2中只能确保n-2个副处理器,那么不能确保总共n个副处理器。
如果以这种方式不能确保总共n个副处理器,那么信息处理装置1中的资源管理器使处理从步骤136前进(返回)到图21中的步骤131,在步骤131,该资源管理器确定另一不同信息处理装置是否连接到网络。图16示出不同信息处理装置3和4连接到网络。
随后,与上述信息处理装置2的情况类似地重复步骤132、133、135、136、和131的处理,直到在整个网络***上成功地确保n个副处理器之后为止,或者直到检测到不再有任何信息处理装置连接到网络之后为止。
在除了信息处理装置1之外多个信息处理装置连接到网络的情况中,可以按照例如与上文所述的主导装置的确定方法相似的方式,来确定信息处理装置1中的资源管理器向不同信息处理装置发布关于副处理器的空闲状况的查询的顺序。具体地说,可能的思想是用数值替换网络上的各个信息处理装置的信息处理装置ID,并以该数值的升序向信息处理装置发布有关副处理器的空闲状况的查询。
然后,如果可以从整个网络***上的空闲副处理器中确保n个副处理器,那么处理从如图22所示的步骤136前进至步骤137。在步骤137,信息处理装置1中的资源管理器向功能程序发出可以确保n个副处理器的通知。
在步骤138,功能程序接收通知,并将副处理器确保请求输出到自身装置(信息处理装置1)中的资源管理器,如下文所述。
另一方面,如果信息处理装置1中的资源管理器在图21的步骤131确定不再有信息处理装置连接到网络,也就是说,如果它确定不能从整个网络***(其中只有信息处理装置1连接到该网络,仅在信息处理装置1中)中的空闲副处理器当中确保n个副处理器,那么处理从步骤131前进到图22所示的步骤141。参照图22,在步骤141,信息处理装置1中的资源管理器确定该装置自己(信息处理装置1)是否包括执行具有比功能程序的优先级低的优先级的副处理器程序的那些副处理器,并且,如果这种副处理器存在,则检测这种副处理器的数量。
此实例中的“正在执行(executing)”不仅包括副处理器忙碌(当前被使用)的情况,还包括副处理器被预定(尽管当前副处理器没有被使用,但是它们被预定用于使用)的另一情况。在以下描述中,具有比功能程序的优先级低的优先级的副处理器程序被简称为“具有较低优先级的副处理器程序”。
然后,在步骤143,信息处理装置1中的资源管理器确定是否可以确保包括整个网络***中的空闲副处理器和自身装置(信息处理装置1)中执行具有较低优先级的副处理器程序的副处理器在内的总共n个副处理器。如果可以确保这样的n个副处理器,那么处理从步骤143前进到步骤144,在步骤144,信息处理装置1中的资源管理器向功能程序发布可以确保n个副处理器的通知。
在步骤138,功能程序接收通知,并将副处理器确保请求输出到自身装置(信息处理装置1)中的资源管理器,如下文所述。
另一方面,如果在步骤143信息处理装置1中的资源管理器确定不能确保包括整个网络***中的空闲副处理器和在自身装置(信息处理装置1)中执行具有较低优先级的副处理器程序的副处理器在内的总共n个副处理器,那么处理从步骤143前进到图23所示的步骤151。参照图23,在步骤151,信息处理装置1中的资源管理器确定不同信息处理装置是否连接到网络。
如果不同信息处理装置连接到网络,那么处理从步骤151前进到步骤152,在步骤152,信息处理装置1中的资源管理器向不同信息处理装置(在此实例中,信息处理装置2)中的资源管理器发布关于执行具有较低优先级的副处理器程序的那些副处理器的存在或不存在、以及这种副处理器的数量的查询。同样,这个实例中的“正在执行”不仅包括忙碌状态还包括预定状态。
所述查询是使用这样的命令传达的,该命令包括如上文中参照图28A所述的这种副处理器空闲状况查询命令、以及将与功能程序协同操作的副处理器程序的副处理器程序优先级。
响应于所述查询,在步骤153,不同信息处理装置(在这个实例中,信息处理装置2)中的资源管理器从自身装置中的副处理器管理表确定自身装置是否包括执行具有较低优先级的副处理器程序的那些副处理器。如果这种副处理器存在,那么不同信息处理装置中的资源管理器向信息处理装置1中的资源管理器发布副处理器的数量和副处理器ID的通知。然而,如果自身装置不包括执行具有较低优先级的副处理器程序的那些副处理器,那么不同信息处理装置中的资源管理器向信息处理装置1中的资源管理器发布对此的通知。
所述通知是使用这样的命令传达的,该命令包括如上文中参照图28B所述的这种副处理器空闲状况返回命令,但是该命令描述执行具有较低优先级的副处理器程序的副处理器的数量和副处理器ID,而不是空闲副处理器的数量和副处理器ID。
响应于所述通知,在图23中的步骤154,信息处理装置1中的资源管理器确定是否可以确保包括整个网络***中的空闲副处理器、以及在自身装置(信息处理装置1)和不同装置(在这个实例中,信息处理装置2)中执行具有较低优先级的副处理器程序的副处理器在内的n个副处理器。
例如,在n=7的情况下,如果整个网络***只包括两个空闲副处理器并且信息处理装置1只包括两个执行具有较低优先级的副处理器程序的副处理器、而信息处理装置2只包括两个执行具有较低优先级的副处理器程序的副处理器,那么不能确保总共n个副处理器。
如果以这种方式不能确保总共n个副处理器,那么信息处理装置1中的资源管理器使处理从步骤154前进(返回)到步骤151,在步骤151,确定另外的不同信息处理装置是否连接到网络。
随后,与上述的信息处理装置2的情况类似地重复步骤152、153、154和151的处理,直到在整个网络***上成功地确保n个副处理器之后为止,或者直到检测到不再有任何信息处理装置连接到网络之后为止。
然后,如果可以在整个网络***中确保包括空闲副处理器和执行具有较低优先级的副处理器程序的那些副处理器在内的n个副处理器,那么处理从步骤154前进到步骤155。在步骤155,信息处理装置1中的资源管理器向功能程序发布可以确保n个副处理器的通知。
在步骤158,功能程序接收通知,并以下列方式将副处理器确保请求输出到自身装置(信息处理装置1)中的资源管理器。
具体地说,如果在图22的步骤138或图23的步骤158功能程序从信息处理装置1中的资源管理器接收到可以确保n个副处理器的通知,那么在如图24所示的步骤161,它将确保n个副处理器的请求输出到自身装置(信息处理装置1)中的资源管理器。
现在参照图24,响应于确保请求,如果自身装置(信息处理装置1)包括要确保的副处理器,那么信息处理装置1中的资源管理器在步骤162在自身装置中确保这样的副处理器。然后在步骤163,信息处理装置1中的资源管理器确定是否应当在不同信息处理装置中确保一些副处理器。如果不应当在不同信息处理装置中确保副处理器,那么处理从步骤163前进到步骤164,在步骤164,信息处理装置1中的资源管理器向功能程序发布确保了n个副处理器的通知。
在可确保n个副处理器的情况中,尽管不能只从信息处理装置1中的空闲副处理器中确保n个副处理器、并且除了信息处理装置1以外没有其它信息处理装置连接到网络,但是如果信息处理装置1中执行具有较低优先级的副处理器程序的那些副处理器被包括在内,那么仅在信息处理装置1中确保n个副处理器。
在这个实例中,对于在自身装置中确保的、其在自身装置的副处理器管理表中的副处理器状态是未使用的那些副处理器,信息处理装置1中的资源管理器将副处理器状态从未使用重写为被预定。另外,对于在自身装置中确保的每个副处理器,信息处理装置1中的资源管理器重写自身装置的副处理器管理表中的副处理器程序ID、功能程序ID和副处理器程序优先级,以便与将由所确保的副处理器执行的副处理器程序的那些副处理器程序ID、功能程序ID和副处理器程序优先级相一致。此外,对于在自身装置中确保的每个副处理器,信息处理装置1中的资源管理器发布锁定序号,并将该锁定序号记载在副处理器管理表中。然后在步骤164,信息处理装置1中的资源管理器将所提及的信息传送给功能程序。
要在步骤164传送的信息具体包括所确保的副处理器的数量和所确保的副处理器的副处理器ID和锁定序号。
如图24所示,在步骤167,如下文所述,功能程序接收副处理器确保通知,并将用于该副处理器的副处理器程序传送到自身装置(信息处理装置1)中的资源管理器。
应当注意,如果在步骤162将自身装置中执行具有较低优先级的副处理器程序的副处理器确保为用于执行与功能程序协同操作的副处理器程序的副处理器,那么信息处理装置1中的资源管理器向具有较低优先级的副处理器程序和与具有较低优先级的副处理器程序协同操作的一个或多个功能程序发布副处理器已被取走(take away)的通知。
另一方面,如果要确保的n个副处理器包括要在不同信息处理装置中确保的那些副处理器,那么处理从步骤163前进到步骤171。在步骤171,信息处理装置1中的资源管理器向信息处理装置2、3和4中的资源管理器发布确保副处理器的请求。在步骤172,信息处理装置2、3和4中的资源管理器的每一个在自身装置中确保自身装置所需的副处理器。
对任何不同信息处理装置的确保副处理器的请求是使用这样的软件单元传达的,该软件单元包括作为DMA命令的副处理器确保请求命令,如图29A所示。具体地说,参照图29A,副处理器确保请求命令包括副处理器确保请求命令主体、功能程序ID、副处理器程序优先级、确保请求副处理器数量、以及与请求确保的副处理器数量相同的多个副处理器程序ID。
在可以确保n个副处理器的情况下,尽管不能只从信息处理装置1中的空闲副处理器中确保n个副处理器,但是如果除了信息处理装置1之外还有一个或多个不同信息处理装置连接到网络、并且只有整个网络***中的空闲副处理器被包括在内或者在整个网络***中执行具有较低优先级的副处理器程序的副处理器被包括在内,那么以这种方式在包括所述一个或多个不同信息处理装置的整个网络***中确保n个副处理器。
在这个实例中,对于在自身装置中确保的、其在自身装置的副处理器管理表中的副处理器状态是未使用的那些副处理器,每个信息处理装置2、3和4中的资源管理器将副处理器状态由未使用重写为被预定。另外,对于在自身装置中确保的每个副处理器,每个信息处理装置2、3和4中的资源管理器重写自身装置的副处理器管理表中的副处理器程序ID、功能程序ID和副处理器程序优先级,以便与将由所确保的副处理器执行的副处理器程序的那些副处理器程序ID、功能程序ID和副处理器程序优先级相一致。此外,对于在自身装置中确保的每个副处理器,每个信息处理装置2、3和4中的资源管理器发布锁定序号,并将该锁定序号记载在副处理器管理表中。
另外,如果在步骤172自身装置中执行具有较低优先级的副处理器程序的副处理器被确保为用于执行与功能程序协同操作的副处理器程序的副处理器,那么每个信息处理装置2、3和4中的资源管理器向具有较低优先级的副处理器程序以及与具有较低优先级的副处理器程序协同操作的一个或多个功能程序发布副处理器已被取走的通知。
另外,在图25中的步骤173,信息处理装置2、3和4中的资源管理器向信息处理装置1中的资源管理器发布通知:在自身装置中确保了向自身装置请求的副处理器。
所述通知是使用这种软件单元传达的,该软件单元包括如图29B所示作为DMA命令的副处理器确保返回命令。具体地说,参照图29B,副处理器确保返回命令包括副处理器确保返回命令主体、功能程序ID、副处理器程序优先级、所确保的副处理器的数量、以及每个所确保的副处理器的副处理器ID、副处理器程序ID和锁定序号。
参照图25,在信息处理装置1中的资源管理器从不同信息处理装置2、3和4中的资源管理器接收到副处理器确保通知之后,在步骤174,它向功能程序发布确保了n个副处理器的通知。
在步骤177,功能程序接收副处理器确保通知,并将用于副处理器的副处理器程序传送给自身装置(信息处理装置1)中的资源管理器。
具体地说,如果在图24的步骤167或图25的步骤177,功能程序从信息处理装置1中的资源管理器接收到确保了n个副处理器的通知,那么在图25中的步骤181,其将用于所确保的副处理器的副处理器程序连同对应于每个所确保的副处理器的副处理器程序ID、副处理器ID和锁定序号以及在其中确保了这些副处理器的那些信息处理装置的信息处理装置ID一起传送。
参照图25和26,在步骤182,信息处理装置1中的资源管理器接收从功能程序传送的副处理器程序,并且如果其中一些副处理器程序是用于自身装置(信息处理装置1)的,则将有关副处理器程序传送给自身装置中确保的副处理器。然后在步骤183,信息处理装置1中的资源管理器确定是否有一些副处理器程序用于一个或多个不同信息处理装置。如果没有副处理器程序用于任何不同信息处理装置,则处理从步骤183前进到步骤184,在步骤184,信息处理装置1中的资源管理器向功能程序传送这样的通知:副处理器程序被传送到所确保的副处理器。
另一方面,如果由功能程序传送的副处理器程序包括用于一个或多个不同信息处理装置的那些副处理器程序,则处理从步骤183前进到步骤191。在步骤191,信息处理装置1中的资源管理器分别将用于各个信息处理装置2、3和4的副处理器程序传送到信息处理装置2、3和4的资源管理器。
对于该传送,使用包括如图30所示作为DMA命令的副处理器程序传送命令的这种软件单元。具体地说,参照图30,作为DMA命令,副处理器程序传送命令包括副处理器程序传送命令主体、每个所确保的副处理器的副处理器ID、锁定序号、用于每个所确保的副处理器的副处理器程序的副处理器程序ID、以及用于每个所确保的副处理器的副处理器程序主体。
在步骤192,每个不同信息处理装置2、3和4中的资源管理器将用于自身装置的副处理器程序传送到该自身装置中确保的副处理器。然后在步骤193,每个信息处理装置2、3和4中的资源管理器向信息处理装置1中的资源管理器发布这样的通知:副处理器程序被传送到所确保的副处理器。在步骤184,信息处理装置1中的资源管理器从信息处理装置2、3和4接收通知,并向功能程序发布这样的通知:副处理器程序被传送到所确保的副处理器程序。
应当注意,在图25的步骤182或在图26的步骤192,信息处理装置1中的资源管理器和信息处理装置2、3和4中的资源管理器中的每一个确定从功能程序接收的用于所确保的副处理器的副处理器程序的副处理器程序ID和锁定序号是否与自身装置中的副处理器管理表中的那些相同。然后,如果它们不同,则信息处理装置1中的资源管理器直接向功能程序发布错误通知,或者信息处理装置2、3和4中的资源管理器通过信息处理装置1中的资源管理器向功能程序发布错误通知。然而,在图25和26中,这被省略了,而是只示出了不包含错误的情况。
参照图26,在步骤187,功能程序从信息处理装置1中的资源管理器接收以下通知:副处理器程序被传送到所确保的副处理器。
在不能只从信息处理装置1内的空闲副处理器中确保n个副处理器、但是如果包括信息处理装置1中执行具有较低优先级的副处理器程序的副处理器则可以只在信息处理装置1中确保n个副处理器的情况中,或者在不能只从信息处理装置1内的空闲副处理器中确保n个副处理器、但是如果除了信息处理装置1之外还有一个或多个不同信息处理装置连接到网络则可以只从整个网络***内的空闲处理器中确保n个副处理器或者可以在整个网络***中确保包括执行具有较低优先级的副处理器程序的副处理器的另一情况中,以如上所述的方式执行副处理器分配处理。
在传送副处理器程序的同时,或在传送副处理器程序之后,将由所确保的副处理器处理的数据被传送给所确保的副处理器。因此,所确保的副处理器可以单独地执行副处理器程序。
另一方面,如果在图23的步骤151,信息处理装置1中的资源管理器确定没有不同信息处理装置连接到网络,也就是说,如果信息处理装置1中的资源管理器确定不能确保包括整个网络***中的空闲副处理器和执行具有较低优先级的副处理器程序的副处理器的n个副处理器,则处理从步骤151前进到图27所示的步骤195。参照图27,在步骤195,信息处理装置1中的资源管理器向功能程序发布以下通知:不能确保n个副处理器。
在步骤197,功能程序接收通知并执行错误处理。在此实例中,错误处理可以是向用户发布不能立即执行处理的通知,并在一段时间后再次执行以图19的步骤112开始的副处理器分配处理,或催促用户执行操作。
应当注意,如果将副处理器已被取走的通知发布给具有较低优先级的副处理器程序,则执行与所述副处理器程序相对应的不同处理。
在上述示例中,按照信息处理装置ID的所替换的数值的升序,即以信息处理装置1→信息处理装置2→信息处理装置3→信息处理装置4的顺序发布有关副处理器的空闲状况的查询和确保副处理器的请求。然而,也可以以其它方式配置***,使得例如当要执行的副处理器程序的优先级为高时,每个信息处理装置中的资源管理器根据作为上文所述的装置信息一部分的每个信息处理装置的主处理器操作频率,来确定连接到网络9的每个信息处理装置的操作频率,并以操作频率的降序向信息处理装置发布有关副处理器的空闲状况的查询和确保副处理器的请求。
可替换地,***可以配置为使得从作为装置信息一部分的信息处理装置类型ID确定连接到网络9的每个信息处理装置的类型,并且从与网络9断开可能性小的信息处理装置例如硬盘记录器按顺序将有关副处理器的空闲状况的查询和确保副处理器的请求发布给从网络9断开可能性大的另一信息处理装置,例如PDA或便携式CD播放器。
另外,在上述示例中,当不能从信息处理装置1内的空闲副处理器中确保必需数量的副处理器时,信息处理装置1中的资源管理器首先向不同信息处理装置中的资源管理器发布有关副处理器的空闲状态的查询,并且随后在可以在整个网络***中确保必需数量的副处理器时,发布确保副处理器的请求。然而,***可以以其它方式配置,使得信息处理装置1中的资源管理器向不同信息处理装置中的资源管理器发布确保副处理器的请求,而不发布有关副处理器空闲状况的查询。
此外,在上述示例中,信息处理装置1作为主导装置操作,并且副处理器分配处理是使用主导装置作为起点执行的。然而,***可以以其它方式配置,使得例如当用户操作作为从属装置运行的信息处理装置时,使用所操作的从属装置作为起点来执行副处理器分配处理。
[4.当信息处理装置从网络断开时通过副处理器分配进行的分布式处理1]
在如图16所示多个信息处理装置1、2、3和4连接到网络9的时候,当用户将这些信息处理装置中的一个从网络9断开(当信息处理装置从网络9物理地断开或信息处理装置的主电源被切断时),或者某一信息处理装置由于诸如强烈震动的某个外部因素从网络9断开时,如果所断开的信息处理装置中的副处理器正在执行或被预定用于执行包括在未从网络9断开的其它信息处理装置中的副处理器程序,那么优选的是,未断开的信息处理装置中的副处理器代替所断开的信息处理装置中的副处理器来执行副处理器程序。
因此,在这样的实例中,以下列方式分配未断开的信息处理装置中的副处理器,以执行由所断开的信息处理装置中的副处理器正在执行或预定用于执行的副处理器程序。
(4-1.***配置)
图31示出:当如图16所示4个信息处理装置1、2、3和4连接到网络9时,信息处理装置4从网络9断开。
作为其软件配置,每个信息处理装置包括如图17所示的作为控制程序的资源管理器,并在该资源管理器中准备在上文中参照图18描述的这种副处理器管理表。副处理器管理表具有如上所述的那些内容。
(4-2.副处理器分配处理)
图32到40图示了在如图31所示信息处理装置1、2、3和4连接到网络9的时候倘若信息处理装置4从网络9断开,则当信息处理装置1确保信息处理装置1或不同信息处理装置2和3中的副处理器时,由信息处理装置1中的主导/从属(MS)管理器、信息处理装置1的主存储器26-1中的功能程序、信息处理装置1中的资源管理器以及不同信息处理装置2和3中的资源管理器执行的副处理器分配处理示例,其中,所述副处理器用于执行将与信息处理装置1内的主存储器26-1中的功能程序协同操作的副处理器程序。
信息处理装置1、2和3中的MS管理器检测到信息处理装置4已经从网络9断开。
然后,在信息处理装置1中的MS管理器检测到信息处理装置4从网络9断开之后,在如图32所示的步骤201,它向自身装置(信息处理装置1)中的资源管理器发布所断开的信息处理装置4的信息处理装置ID的通知。然后在步骤202,信息处理装置1中的资源管理器将信息处理装置ID发送给自身装置的主存储器26-1中的功能程序。
信息处理装置1的主存储器26-1中的功能程序接收信息处理装置ID,并从如上文中参照图19到30所述的这种副处理器分配处理的结果确定所断开的信息处理装置4中的副处理器是否已执行与该功能程序自己协同操作的副处理器程序。
同样,这个实例中的“正在执行”不仅包括忙碌状态(副处理器当前被使用的状态),还包括预定状态(副处理器程序当前没有被使用但被预定用于使用的状态)。
然后,如果所断开的信息处理装置4中的副处理器均未执行与功能程序协同操作的副处理器程序,那么由于以后的处理是非必需的,因此副处理器分配处理立即结束。
另一方面,如果所断开的信息处理装置4中的一些或全部副处理器执行了与功能程序协同操作的副处理器程序,那么处理从步骤203前进到步骤212。在步骤212,功能程序将使用执行将与功能程序协同操作的副处理器程序、而不是所断开的信息处理装置4中的副处理器程序所必需的数量(由m表示)的副处理器的请求输出到自身装置(信息处理装置1)中的资源管理器,其中,所述请求附加功能程序的功能程序ID、以及由所断开的信息处理装置4中的副处理器执行了(包括上文所述的预定用于执行)将与功能程序协同操作的副处理器程序的副处理器程序ID。
响应于所述请求,在图33中所示的步骤213,信息处理装置1中的资源管理器查阅自身装置(信息处理装置1)的图18所示的副处理器管理表,以确定在自身装置中是否可获得m个空闲副处理器。如果在自身装置中可获得m个或更多空闲副处理器,那么处理从步骤213前进到步骤214。在步骤214,信息处理装置1中的资源管理器在自身装置中确保m个副处理器,并且,对于每个所确保的副处理器,将副处理器管理表中的副处理器状态从未使用重写为被预定,并重写副处理器程序ID、功能程序ID和副处理器程序优先级,使得它们与将由所确保的副处理器程序执行的副处理器程序的那些副处理器程序ID、功能程序ID和副处理器程序优先级相一致。另外,资源管理器发布锁定序号,并将其记载到副处理器管理表中。
随后,处理前进到步骤215,在步骤215,信息处理装置1中的资源管理器向功能程序发布在自身装置中确保了m个副处理器程序的事实、以及这m个所确保的副处理器的每一个的副处理器ID和锁定序号的通知。
在步骤217,功能程序从资源管理器接收通知,并将与所确保的副处理器数量相等的多个所确保的副处理器的副处理器ID、副处理器程序ID、副处理器程序主体和锁定序号连同功能程序自己的功能程序ID一起传送到自身装置(信息处理装置1)中的资源管理器。
现在参照图34,在步骤221,信息处理装置1中的资源管理器接收从功能程序传送的信息,并存储用于副处理器的副处理器程序。然后在步骤222,信息处理装置1中的资源管理器确定接收到的处理器程序ID和锁定序号是否与自身装置的副处理器管理表中的处理器程序ID和锁定序号相同。如果它们相同,那么处理前进到步骤223,在步骤223,信息处理装置1中的资源管理器将副处理器程序传送到所确保的副处理器。然后在步骤224,信息处理装置1中的资源管理器向功能程序发布通知:副处理器程序被传送到副处理器。
从而,完成了所述副处理器分配处理,其中,可以只在信息处理装置1内的空闲副处理器中确保必需数目的副处理器。
在传送副处理器程序的同时,或在传送副处理器程序之后,将由所确保的副处理器处理的数据被传送到所确保的副处理器。因此,所确保的副处理器可执行各个副处理器程序。
如果在步骤222信息处理装置1中的资源管理器确定从功能程序接收到的副处理器程序ID或锁定序号与自身装置的副处理器管理表中的副处理器程序ID或锁定序号不同,那么处理从步骤222前进到步骤226,在步骤226,信息处理装置1中的资源管理器向功能程序发布错误通知。在这个实例中,在步骤227,功能程序执行错误处理。
另一方面,如果在图33的步骤213信息处理装置1中的资源管理器确定在自身装置中不能获得m个空闲副处理器,即信息处理装置1只包括m-1个或更少的空闲副处理器(包括0),那么处理从步骤213前进到图35中所示的步骤229。现在参照图35,在步骤229,如果在自身装置中包括一些空闲副处理器,那么将这些副处理器确保为自身装置的副处理器。
然后,处理前进到步骤231,在步骤231,信息处理装置1中的资源管理器确定是否有某个不同信息处理装置连接到网络。图31示出连接了不同信息处理装置2和3。
然后,如果一个或多个不同信息处理装置连接到网络,那么处理从步骤231前进到步骤232,在步骤232,信息处理装置1中的资源管理器向不同信息处理装置之一(在本情况中,信息处理装置2)中的资源管理器发布确保空闲副处理器的请求。
确保请求是使用如图29A所示的这种副处理器确保请求命令传达的。确保请求的副处理器的数量用m-a来表示,其中a是在步骤229在信息处理装置1中确保的副处理器数量,并且0≤a<m。
参照图35,响应于来自信息处理装置1中资源管理器的确保请求,在步骤233,不同信息处理装置(在这个实例中,信息处理装置2)中的资源管理器从自身装置中的副处理器管理表确定自身装置中的副处理器的空闲状况。然后在步骤234,如果自身装置中可获得空闲副处理器,那么不同信息处理装置中的资源管理器在自身装置中确保等于或小于m-a的数量的副处理器。然后在步骤235,如果在自身装置中确保了副处理器,那么不同信息处理装置中的资源管理器向信息处理装置1中的资源管理器发布所确保的副处理器的数量和每个所确保的副处理器的副处理器ID、副处理器程序ID和锁定序号的通知。然而,如果在自身装置中不能确保空闲副处理器,那么不同信息处理装置中的资源管理器向信息处理装置1中的资源管理器发布对此的通知。这个通知是使用如上文中参照图29B所述的这种副处理器确保返回命令传达的。
信息处理装置1中的资源管理器接收通知,并在图36所示的步骤236确定是否成功地确保了包括在自身装置(信息处理装置1)中确保的副处理器和在不同装置(信息处理装置2)中确保的副处理器在内的总共m个副处理器。
然后,如果不能确保总共m个副处理器,那么信息处理装置1中的资源管理器使处理从步骤236前进(返回)到图35所示的步骤231。在步骤231,信息处理装置1中的资源管理器确定是否有另外的不同信息处理装置连接到网络。图31示出除了信息处理装置2以外,不同信息处理装置3也连接到网络9。
随后,与上述信息处理装置2的情况类似地重复步骤232、233、234、235、236和231的处理,直到在整个网络***上成功地确保m个副处理器之后为止、或者直到检测到不再有任何信息处理装置连接到网络为止。
然后,如果在整个网络***内的空闲副处理器中成功地确保m个副处理器,那么处理从图36所示的步骤236前进到步骤237。在步骤237,信息处理装置1中的资源管理器向功能程序发布确保了m个副处理器的通知。
在步骤238,功能程序接收副处理器确保通知,并将用于副处理器的副处理器程序传送给自身装置(信息处理装置1)中的资源管理器,如下文所述。
另一方面,如果在图35的步骤231信息处理装置1中的资源管理器确定不再有信息处理装置连接到网络,也就是说,如果它确定不能从整个网络***(其中只有信息处理装置1连接到该网络,只在信息处理装置1中)内的空闲副处理器中确保m个副处理器,那么处理从步骤231前进到图36所示的步骤241。参照图36,在步骤241,信息处理装置1中的资源管理器确定该装置自己(信息处理装置1)是否包括执行具有比功能程序优先级低的优先级的副处理器程序的那些副处理器,并且如果这种副处理器存在,则检测这种副处理器的数量。
同样,这个实例中的“正在执行”不仅包括副处理器忙碌(当前被使用)的情况,还包括副处理器被预定(尽管副处理器当前未被使用,但它们被预定用于使用)的另一情况。在以下描述中,具有比功能程序优先级低的优先级的副处理器程序被简称为“具有较低优先级的副处理器程序”。
然后在步骤242,如果信息处理装置1中的一些副处理器正在执行具有较低优先级的副处理器程序,那么信息处理装置1中的资源管理器在一范围内确保执行具有较低优先级的副处理器程序的那些副处理器,其中,在所述范围内,可以确保包括整个网络***中的空闲副处理器在内的m个副处理器。另外,信息处理装置1中的资源管理器向具有较低优先级的副处理器程序发布副处理器已被取走的通知。
随后,处理前进到图37所示的步骤243。参照图37,在步骤243,信息处理装置1中的资源管理器确定是否成功地确保了包括整个网络***中的空闲副处理器和自身装置(信息处理装置1)中执行具有较低优先级的副处理器程序的副处理器在内的总共m个副处理器。如果成功地确保了m个副处理器,那么处理从步骤243前进到步骤244,在步骤244,信息处理装置1中的资源管理器向功能程序发布成功地确保了m个副处理器的通知。
在步骤248,功能程序接收副处理器确保通知,并将用于副处理器的副处理器程序传送给自身装置(信息处理装置1)中的资源管理器,如下文所述。
另一方面,如果在步骤243信息处理装置1中的资源管理器确定不能确保包括整个网络***中的空闲副处理器和自身装置中执行具有较低优先级的副处理器程序的副处理器在内的总共m个副处理器,那么处理从步骤243前进到步骤251。在步骤251,信息处理装置1中的资源管理器确定不同信息处理装置是否连接到网络。
如果不同信息处理装置连接到网络,那么处理从步骤251前进到步骤252,在步骤252,信息处理装置1中的资源管理器向不同信息处理装置(在这个实例中,信息处理装置2)中的资源管理器发布确保正在执行具有较低优先级的副处理器程序的那些副处理器的请求。该确保请求是使用如上文参照图29A所述的这种副处理器确保请求命令传达的。
现在参照图38,响应于确保请求,在步骤253,不同信息处理装置(在这个实例中,信息处理装置2)中的资源管理器根据自身装置中的副处理器管理表确定自身装置是否包括正在执行具有较低优先级的副处理器程序的那些副处理器。如果存在这种副处理器,那么不同信息处理装置中的资源管理器确保正在执行具有较低优先级的副处理器程序的副处理器,并将所确保的副处理器数量以及每个所确保的副处理器的副处理器ID、副处理器程序ID和所发布的锁定序号的通知发布给信息处理装置1中的资源管理器。然而,如果自身装置不包括正在执行具有较低优先级的副处理器程序的那些副处理器,那么不同信息处理装置中的资源管理器将对此的通知发布给信息处理装置1中的资源管理器。所述通知是使用如上文参照图29B所述的这种副处理器确保返回命令传达的。
应当注意,如果在步骤253确保了不同信息处理装置(在这个实例中,信息处理装置2)中正在执行具有较低优先级的副处理器程序的副处理器,那么不同信息处理装置中的资源管理器向与副处理器程序协同操作的功能程序发布以下通知:副处理器已被取走。
响应于来自不同信息处理装置(信息处理装置2)中的资源管理器的确保通知,在图38中的步骤254,信息处理装置1中的资源管理器确定是否成功地确保了包括整个网络***中的空闲副处理器以及自身装置(信息处理装置1)和不同装置(在这个实例中,信息处理装置2)中正在执行具有较低优先级的副处理器程序的副处理器在内的m个副处理器。然而,如果不能确保总共m个副处理器,那么处理从步骤254前进(返回)到图37所示的步骤251,在步骤251,信息处理装置1中的资源管理器确定是否有另外的不同信息处理装置连接到网络。
随后,与上述信息处理装置2的情况类似地重复步骤252、253、254和251的处理,直到在整个网络***上成功地确保m个副处理器之后为止,或者直到检测到不再有任何信息处理装置连接到网络为止。
然后,如果在整个网络***中成功地确保了包括空闲副处理器和正在执行具有较低优先级的副处理器程序的那些副处理器在内的m个副处理器,那么处理从步骤254前进到步骤255。在步骤255,信息处理装置1中的资源管理器向功能程序发布成功确保m个副处理器的通知。
在步骤258,功能程序接收处理器确保通知,并以下列方式将用于副处理器的副处理器程序传送给自身装置(信息处理装置1)中的资源管理器。
具体地说,如果在图36的步骤238、图37的步骤248、或图38的步骤258,功能程序从信息处理装置1中的资源管理器接收到成功确保m个副处理器的通知,那么在图39所示的步骤281,功能程序将用于所确保的副处理器的副处理器程序传送给信息处理装置1中的资源管理器。
参照图39,在步骤282,信息处理装置1中的资源管理器接收从功能程序传送的副处理器程序,并且如果其中一些副处理器程序用于自身装置(信息处理装置1),则将有关副处理器程序传送给在自身装置中确保的副处理器。然后在步骤283,信息处理装置1中的资源管理器确定是否其中一些副处理器程序用于一个或多个不同信息处理装置。如果没有副处理器程序用于任何不同信息处理装置,那么处理从步骤283前进到步骤284,在步骤284,信息处理装置1中的资源管理器向功能程序传送以下通知:副处理器程序被传送给所确保的副处理器。
另一方面,如果从功能程序传送的副处理器程序包括用于一个或多个不同信息处理装置的那些副处理器程序,那么处理从步骤283前进到步骤291。在步骤291,信息处理装置1中的资源管理器分别将用于各个信息处理装置2和3的副处理器程序传送给信息处理装置2和3中的资源管理器。
在步骤292,每个不同信息处理装置2和3中的资源管理器将用于自身装置的副处理器程序传送到自身装置中确保的副处理器。然后在步骤293,每个信息处理装置2和3中的资源管理器向信息处理装置1中的资源管理器发布以下通知:副处理器程序被传送到所确保的副处理器。在步骤284,信息处理装置1中的资源管理器从信息处理装置2和3接收所述通知,并向功能程序发布以下通知:副处理器程序被传送到所确保的副处理器。
应当注意,如果在图35的步骤229或234、图36的步骤242、或图38的步骤253,信息处理装置1中的资源管理器和信息处理装置2和3中的资源管理器中的每一个在自身装置中确保了副处理器,则它重写自身装置中的副处理器管理表,并将信息处理装置1、2、或3的资源管理器发布的锁定序号记载在对于所确保的副处理器的副处理器管理表中。另外,在图39的步骤282或292,信息处理装置1中的资源管理器和信息处理装置2和3中的资源管理器中的每一个确定从功能程序接收的副处理器程序ID和锁定序号是否与自身装置中的副处理器管理表中的副处理器程序ID和锁定序号相同。然后,如果它们不同,则信息处理装置1中的资源管理器直接向功能程序发布错误通知,或者每个信息处理装置2和3中的资源管理器通过信息处理装置1中的资源管理器向功能程序发布错误通知。然而,在图36到39中省略了这一点,而是只图示了不包含错误的情况。
参照图39,在步骤287,功能程序从信息处理装置1中的资源管理器接收以下通知:副处理器程序被传送到所确保的副处理器。
以如上所述的这种方式执行副处理器分配处理。不能只从信息处理装置1中的空闲副处理器确保m个副处理器,但是如果包括信息处理装置1中正在执行具有较低优先级的副处理器程序的副处理器,则可以只在信息处理装置1中确保m个副处理器。可替换地,不能只从信息处理装置1中的空闲副处理器中确保m个副处理器,但是如果除了信息处理装置1之外一个或多个不同信息处理装置也连接到网络,那么可以只从整个网络***中的空闲处理器确保m个副处理器,或者可以确保包括整个网络***中正在执行具有较低优先级的副处理器程序的副处理器的m个副处理器。
在传送副处理器程序的同时,或在传送副处理器程序之后,将由所确保的副处理器处理的数据被传送到所确保的副处理器。从而,所确保的副处理器可单独执行副处理器程序。
另一方面,如果在图37的步骤251信息处理装置1中的资源管理器确定没有不同信息处理装置连接到网络,也就是说,如果信息处理装置1中的资源管理器确定不能确保包括整个网络***中的空闲副处理器和正在执行具有较低优先级的副处理器程序的副处理器在内的m个副处理器,那么处理从步骤251前进到图40所示的步骤295。参照图40,在步骤295,信息处理装置1中的资源管理器向功能程序发布以下通知:不能确保m个副处理器。在步骤297,功能程序接收所述通知并执行错误处理。
在上述示例中,按照信息处理装置ID的替换数值的升序,即按照信息处理装置1→信息处理装置2→信息处理装置3→信息处理装置4的顺序发布确保副处理器的请求。然而,***也可以以其它方式配置,使得例如当要执行的副处理器程序的优先级为高时,每个信息处理装置中的资源管理器根据作为上述装置信息一部分的每个信息处理装置的主处理器操作频率来确定连接到网络9的每个信息处理装置的操作频率,并以操作频率的降序向信息处理装置发布确保副处理器的请求。
可替换地,***可以配置为使得从作为装置信息一部分的信息处理装置类型ID确定连接到网络9的每个信息处理装置的类型,并且从自网络9断开可能性小的信息处理装置例如硬盘记录器将确保副处理器的请求按顺序发布给从网络9断开可能性大的另一信息处理装置,例如PDA或便携式CD播放器。
另外,在上述示例中,当不能从信息处理装置1内的空闲副处理器中确保必需数量的副处理器时,信息处理装置1中的资源管理器立即向不同信息处理装置中的资源管理器发布确保副处理器的请求。然而,***可以以其它方式配置,使得信息处理装置1中的资源管理器首先向不同信息处理装置中的资源管理器发布副处理器的空闲状况,并且当在整个网络***中可以确保必需数量的副处理器时,随后向不同信息处理装置发布确保副处理器的请求。
[5.网络***和信息处理装置的基本配置2]
图41示出了根据本发明的的网络***的另一示例。参照图41,所示出的网络***包括连接到网络1009的多个信息处理装置1001、1002、1003和1004。
(5-1.信息处理装置和信息处理控制器)
信息处理装置1001、1002、1003和1004是如下文所述的各种AV(音频和视频)装置和便携式装置。
下面描述信息处理装置1001。信息处理装置1001包括作为计算机功能部件的信息处理控制器1011。信息处理控制器1011包括主处理器1021-1、副处理器1023-1、1023-2和1023-3、直接存储器存取控制器(DMAC)1025-1、控制寄存器1028-1、工作存储器1029-1和盘控制器(DC)1030-1。
主处理器1021-1执行对副处理器1023-1、1023-2和1023-3执行(数据处理)的副处理器程序的调度管理、以及对信息处理控制器1011(信息处理装置1001)的总体管理。然而,主处理器1021-1可以以其它方式配置,使得除了用于执行管理的程序之外的程序在主处理器1021-1中操作。在这个实例中,主处理器1021-1也充当副处理器。主处理器1021-1包括本地存储器(LS)1022-1。
尽管副处理器的数量可以只是1个,但优选地包括多个副处理器。在图41所示的示例中,信息处理装置包括多个副处理器。
副处理器1023-1、1023-2和1023-3并行且彼此独立地执行副处理器程序,以便并在主处理器1021-1的控制下处理数据。另外,根据情况,主处理器1021-1中的程序可以与副处理器1023-1、1023-2和1023-3中任意一个的副处理器程序协同操作。下文所述的功能程序也在主处理器1021-1中操作。同样,副处理器1023-1、1023-2和1023-3分别包括本地存储器(LS)1024-1、1024-2和1024-3。
DMAC 1025-1存取存储在主存储器1026-1和副存储器1027-1中的程序和数据,其中,主存储器1026-1连接到信息处理器控制器1011,并由DRAM(动态DRAM)形成,副存储器1027-1连接到该信息处理控制器,并由SRAM(静态RAM)等形成。由于***了DMAC 1025-1,因此可以根据DMA方法在副处理器1023-1、1023-2和1023-3与主存储器1026-1之间传送数据。从而,可以预见到高速数据传送。
控制寄存器1028-1确定哪个副处理器以及该副处理器中包括的多个处理线程(在下文中描述)中的哪一个应该处理将在信息处理控制器1011中处理的副处理器程序。控制寄存器1028-1还用来管理副处理器执行副处理器程序的过程。
工作存储器1029-1是由包括在信息处理控制器1011中的SRAM形成的工作存储器,并由主处理器1021-1和副处理器1023-1、1023-2和1023-3访问。
DC 1030-1访问连接到信息处理控制器1011的外部记录部件1031-1和1031-2。
外部记录部件1031-1和1031-2可具有固定盘(硬盘)和可拆卸盘的任意一种的形式。作为刚才提到的这种可拆卸盘,诸如MO(磁盘)的各种记录介质、诸如CD±RW或DVD±RW的光盘、存储盘、SRAM(静态RAM)和ROM均可使用。DC 1030-1是外部记录部件控制器,尽管它被称为盘控制器。
信息处理控制器1011可配置为使得如同图41示出的实例那样,多个外部记录部件1031可与之连接。
主处理器1021-1、副处理器1023-1、1023-2和1023-3、DMAC 1025-1,控制寄存器1028-1、工作存储器1029-1、和DC 1030-1通过总线1032-1互相连接。
标识符被作为信息处理装置ID分配给信息处理控制器1011。标识符允许在整个网络上唯一地标识合并了信息处理控制器1011的信息处理装置1001。
类似地,还向主处理器1021-1和副处理器1023-1、1023-2和1023-3中的每一个分配可用来标识它的标识符,作为主处理器ID或副处理器ID。
优选地,信息处理控制器1011被形成为单片IC(集成电路)。
其它信息处理装置1002、1003和1004也以类似方式配置。这里,应当注意,即使具有相同父编号的附图标记的那些单元具有不同的分支编号,它们也相似地操作,除非以其它方式指定。因此,在以下描述中,在省略了附图标记的分支编号的情况中,所述单元是相同的,而不考虑分支数字的差别。
(5-2.从每个副处理器对主存储器的访问)
如上所述,尽管一个信息处理控制器中的每个副处理器1023都独立地执行副处理器程序以处理数据,但是如果不同的副处理器对主存储器1026中的相同区域同时执行读出或写入,那么有可能会发生数据失配。因此,根据以下过程执行从副处理器1023对主存储器1026的访问。
尽管每个副存储器1027或工作存储器1029的相同区域有可能同时被不同的副处理器访问,但是在这里只给出对主存储器1026的描述。
参照图42A,主存储器1026由可用来指定多个地址的多个存储位置0到N形成。用于存储指示数据状态的信息的附加段0到N被分配给每个存储位置。附加段包括F/E位、副处理器ID、和LS地址(本地存储器地址)。此外,下文所述的访问密钥0到N也被分配给每个存储位置。F/E位以下列方式定义。
F/E位=0表示数据是正由副处理器1023读取和处理的数据、或者是由于该位置处于空白状态而不是最新数据的无效数据,并被禁止读取。另外,F/E位=0表明可以将数据写入对应的存储位置,并在写入存储位置之后将F/E位设为1。
F/E位=1表示对应存储位置的数据没有被任何副处理器1023读出,并且是尚未被处理的最新数据。该存储位置的数据可被读出。在副处理器1023读出数据之后,F/E位被设为0。另外,F/E位=1表示该存储位置被禁止写入数据。
另外,在F/E位=0(禁止读出/允许写入)的状态下,有可能对存储位置设置读出预定。当要对F/E位=0的存储位置执行读出预定时,副处理器1023将副处理器1023的副处理器ID和LS地址作为读出预定信息写入对其执行读出预定的存储位置的附加段。
随后,数据写入一侧的副处理器1023将数据写入具有读出预定的存储位置,并且F/E位被设置为F/E位=1(允许读出/禁止写入)。然后,读出在附加段中作为读出预定信息预先写入的副处理器ID和LS地址。
在有必要使用多个副处理器在多个阶段处理数据的情况下,如果以如上所述的这种方式控制每个存储位置的数据读出/写入,那么在由前一阶段执行处理的处理器1023处理的数据被写入主存储器1026的预定地址之后片刻,在随后的阶段执行处理的另一副处理器1023可以读出之前处理的数据。
参照图42B,每个副处理器1023中的本地存储器1024也由多个存储位置0到L形成,其每一个可由地址指定。附加段0到L被类似地分配给每个存储位置。附加段包括忙碌位。
当副处理器1023要将主存储器1026中的数据读出到其本地存储器1024的存储位置时,它将与读出目的地的存储位置相对应的对应忙碌位设置为1以进行预定。其它数据不能被存储到忙碌位为1的任何存储位置中。在读出本地存储器1024的存储位置之后,忙碌位改变为0,使得存储位置可用于以后的任意目的。
仍参照图42A,连接到每个信息处理控制器的主存储器1026包括多个沙箱。沙箱定义主存储器1026中的区域,并且每个沙箱被分配给每个副处理器1023,并且可以由有关副处理器排它地使用。换句话说,每个副处理器1023可使用给其分配的沙箱,但是不能超出该沙箱的区域而存取数据。
在主存储器1026包括多个存储位置0到N时,每个沙箱是一组存储位置。换句话说,一个沙箱由一个或多个存储位置形成。
此外,为了实现主存储器1026的排它控制,使用如图42C所示的这种密钥管理表。密钥管理表存储在信息处理控制器中诸如SRAM的比较高速的存储器中,并与DMAC 1025合作。然而,可以以其它方式将密钥管理表存储在工作存储器1092中。
密钥管理表包括与信息处理控制器中的副处理器数量相等的数量的条目。每个条目包括副处理器ID、以及以相互协同的关系存储的对应副处理器密钥和对应密钥掩码。
当副处理器1023使用主存储器1026时的过程如下所述。首先,副处理器1023向DMAC 1025输出读出或写入命令。该命令包括副处理器的副处理器ID、以及作为使用请求目的地的主存储器1026的地址。
在DMAC 1025执行该命令之前,它查阅密钥管理表,以检测访问请求的来源的副处理器1023的副处理器密钥。然后,DMAC 1025将所检测的访问请求的来源的副处理器密钥与作为访问请求目的地的主存储器1026中分配给图42A所示的存储位置的访问密钥相比较。然后,只有当密钥彼此相符时,DMAC 1025才执行上述命令。
当图42C示出的密钥管理表上的密钥掩码的任意位被设置为值1时,它可以将与密钥掩码协作的副处理器密钥的对应位设置成0或1。
例如,假设副处理器密钥是1010。通常,副处理器密钥仅允许访问具有1010的访问密钥的沙箱。然而,如果与副处理器密钥协作的密钥掩码被设置为0001,那么仅对其中密钥掩码的位被设置为1的数字屏蔽副处理器密钥与访问密钥之间的一致性确定。因此,副处理器密钥1010允许访问具有访问密钥1010或1011的沙箱。
主存储器1026的沙箱的排它性质是以如上所述的这种方式实现的。简言之,在信息处理控制器中的多个副处理器有必要以多个阶段处理数据的情况下,仅允许在前一阶段处理的副处理器和随后的阶段执行处理的另一副处理器访问主存储器1026的预定地址。因此,数据可受到保护。
例如,可以按下列方式来使用存储器的这种排它控制。首先,在信息处理装置启动之后瞬间,密钥掩码的值为全零。假设主处理器中的程序被执行、并以与副处理器中的程序协作的关系操作。当要把从第一副处理器输出一次的处理结果数据存储到主存储器1026中、并随后将处理结果数据传送到第二副处理器时,可以从这两个副处理器访问有关的主存储区域当然是有必要的。在这种实例中,主处理器中的程序适当地改变密钥掩码的值,以提供可从所述多个副处理器访问的主存储区域,从而允许副处理器进行的多阶段处理。
更具体地说,当多阶段处理将在数据从不同信息处理装置→由第一副处理器处理→第一主存储区域→由第二副处理器处理→第二主存储区域的过程中执行时,如果维持下列设置,则第二处理器不能访问第一主存储区域:
第一副处理器的副处理器密钥,0100;
第一主存储区域的访问密钥,0100;
第二副处理器的副处理器密钥,0101;
第二主存储区域的访问密钥,0101。
这样,如果将第二副处理器的密钥掩码改变为0001,则允许第二副处理器访问第一主存储区域。
(5-3.从每一个副处理器对主存储器和副存储器的访问)
一个信息处理控制器中的每个副处理器1023可与主存储器1026类似地执行从副存储器1027读出和向副存储器1027写入。然而,若干不同的命令可适用于这种访问,并且在优先级上可能不同。因此,在下面描述准确地允许每个副处理器1023使用主存储器1026和副存储器1027的配置和过程。
参照图43,直接存储器存取控制器(DMAC)1025包括在其内部提供的主存储器控制寄存器1033和副存储器控制寄存器1034。提供主存储器控制寄存器1033以访问主存储器1026,而提供副存储器控制寄存器1034以访问副存储器1027。
主存储器控制寄存器1033包括如下所述的4个块,其每一个都存储用于访问主存储器1026的命令。
优先命令块存储具有高优先级的多条命令。这些命令被优先处理。
常规(normal)命令块1在其中存储多条常规命令,并且常规命令块2也在其中存储多条常规命令。常规命令块1和常规命令块2没有任何功能上的差别。然而,如果执行对主存储器1026的访问之前的命令被存储在一个块中而所述执行之后的命令被存储在其它块中,那么可以以集中的方式连续处理执行之前和执行之后的命令。
顺序(order)命令块存储必须以正确顺序处理的多条命令。具体地说,将来自副处理器1023的命令按照其接收顺序与命令发送者的副处理器的副处理器ID一起存储。因此,所述命令可按照其接收顺序加以处理,并且可以按相同顺序将命令的执行结果返回给命令发送者的副处理器。
此外,副存储器控制寄存器1034包括下述的4个块,其每一个存储用于访问副存储器1027的命令。
优先命令块存储具有高优先级的多条命令。所述命令被优先处理。
读取命令块在其中存储多条读取命令,并且写入命令块也在其中存储多条写入命令。
等待命令块存储其对副存储器1027中的任意区域的访问已被尝试过、但是由于目标区域被锁定而导致失败的多条命令。当目标区域被解锁时,所述命令被移动到优先命令块中。
每个副处理器1023使用例如具有如图44所示的这种结构的命令来访问主存储器1026或副存储器1027。此外,访问执行之后来自主存储器1026或副存储器1027的执行结果的响应具有相同的结构。
参照图44,在所示出的命令/响应结构中,读取和写入命令均可用于命令类型。优先命令标识符表示所述命令具有高优先级。普通命令标识符在访问主存储器1026时使用,并且表示所述命令将被存储到常规命令块1或常规命令块2中。
同样,链式(chain)命令标识符在访问主存储器1026时使用,并且表示所述命令要求与紧跟在该命令之前或之后的另一命令一起进行连续访问。可替换地,链式命令标识符可以表示一串连续命令的连续编号。尽管设置了链式命令标识符的命令被放在顺序命令块中,但是在处理中该命令的优先级比优先命令块中的命令高。
命令/响应结构中的地址指示当执行该命令时主存储器1026或副存储器1027中的地址,或者可替换地可以指示工作存储器1029中的地址。
副处理器标识符是命令发送者的副处理器的副处理器ID。处理线程标识符是在下文描述的命令发送者的处理线程的标识符。
OK/NG表示命令的成功/失败。这里的数据是当执行读取命令时在响应中包含的所读出的数据、或者是当执行写入命令时该命令中包含的要写入的数据。
现在返回图43,除了允许副处理器1023准确地访问主存储器1026的主存储器控制寄存器1033、以及允许副处理器1023准确地访问副存储器1027的副存储器控制寄存器1034以外,DMAC 1025还可包括主处理器读取命令块1035和主处理器写入命令块1036。命令块1035和1036能够存储多条读取命令和多条写入命令,以便分别允许主处理器1021访问主存储器1026或副存储器1027。在下文中描述地址转换寄存器1037。
如果多个副处理器同时向DMAC 1025传送具有相同优先级的存储器访问命令,则采取以下过程。具体地说,DMAC 1025具有在其中提供的指针,该指针指示在存储器访问中最后成功的副处理器。当DMAC 1025在相同的时刻(timing)从不同的副处理器接收到具有相同优先级的多条存储器访问命令时,它将优先权赋予所述命令中具有比指针高的值并且与指针的差最小的那一个。在此实例中,最低指针值跟随在最高指针值之后。
(5-4.对副存储器进行访问以便从每个副处理器准确地访问主存储器)
由于由DRAM等形成的主存储器1026和由SRAM等形成的副存储器1027在各个部件的结构上当然不同,因而其使用目的也彼此不同。
因此,作为组合使用主存储器1026和副存储器1027的方法的示例,当每个副处理器1023试图访问主存储器1026时副存储器1027负责地址转换是一种可能的构思。参照图26A和26B来描述该方法的结构和过程。
如上文所述,主存储器1026包括多个存储位置,并且一个沙箱由一个或多个存储位置形成。每个副处理器1023可排它地使用分配给它的沙箱。
例如,假设主存储器1026中的沙箱1、2和3被分配给副处理器1023中的某一个,如图45A所示。沙箱1具有地址0x800到0x8FF;沙箱2具有地址0x200到0x2FF;而沙箱3具有地址0xF00到0xFFF,并且用每个沙箱的顶端地址(top address)来标识它们。换言之,所分配的沙箱的地址不必彼此连续。
当副处理器1023试图从沙箱1、2和3的任一个中读出数据时,它首先访问DMAC 1025中的地址转换寄存器1037。
地址转换寄存器1037是用于使副处理器1023和分配给副处理器1023的沙箱协同的寄存器,并且包括与副处理器1023的数量相等的数量的条目。这里,假设用Q1标记的条目与副处理器1023相协同
此时,副处理器1023读出与之协同的条目Q1的值。此外,副处理器1023从条目Q1的所读出的值(0x80)指示的副存储器1027中的第一地址读出数据(0x20)。
根据条目Q1的值来指定沙箱1的区域。例如,通过将条目Q1的值乘以16而获得的值指示沙箱1的顶端地址,而通过将255加到顶端地址上而获得的另一个值指示沙箱1的末尾地址(end address)。因此,当如上所述条目Q1的值是0x80时,沙箱1的区域范围是从0x800到0x8FF。
此外,副处理器1023从由从上述第一地址读出的数据(0x20)指示的副存储器1027中的第二地址读出数据(0xF0)。
根据从第二地址读出的数据来指定沙箱2的区域。更具体地说,与沙箱1类似,通过将从第二地址读出的数据乘以16而获得的值指示沙箱2的顶端地址,而通过将255加到顶端地址上获得的值指示沙箱2的末尾地址。因此,当如上所述从第二地址读出的数据是0xF0时,沙箱2的区域范围是从0x200到0x2FF。
此外,副处理器1023从由从上述第二地址读出的数据(0xF0)指示的相同副存储器1027中的第三地址读出数据(0x00)。数据0x00指示所分配的沙箱的末尾。
根据从第三地址读出的数据来指定沙箱3的区域。更具体地说,与沙箱1和2类似,通过将从第三地址读出的数据乘以16而获得的值指示沙箱3的顶端地址,而通过将255加到顶端地址上而获得的值指示沙箱3的末尾地址。因此,当如上所述从第三地址读出的数据是0x00时,沙箱3的区域范围是从0xF00到0xFFF。
因此,即使分配给每个副处理器1023的沙箱地址不连续,副处理器1023也可以准确地访问给它分配的沙箱,并且可以从分配给它的沙箱中确切地读出数据。
现在,参照图45B来描述用于允许相同的副处理器1023将数据写入主存储器1026中的新沙箱、并随后将该沙箱添加到使用地址转换寄存器1037中的条目管理的沙箱组中的过程,其中,所述地址转换寄存器1037对应副处理器1023。
假设副处理器1023将数据写入主存储器1026中从0x000到0x0FF的区域的沙箱4中。在此实例中,副处理器1023首先读出条目Q1的值(条目Q1的初始值,例如如上文所述的0x80)。
然后,副处理器1023将上面读出的条目Q1的值(0x80)写入副存储器1027中的地址,其中,可以使用所述地址来指定在其中新写入了数据的沙箱4。例如,由于在当前的周期中已经把数据写入到从0x000到0x0FF的区域中,因而条目Q1的值(0x80)被写入到由通过将顶端地址0x000除以16而获得的0x00所指示的副存储器1027中的地址。此外,副处理器1023将在其中写入了条目Q1的值(0x80)的副存储器1027中的地址(0x00)作为条目Q1的新值写入到地址转换寄存器1037中的条目Q1中。
每个副处理器1023可以按照如上所述的这种方式将新沙箱添加到现有沙箱组中。另外,在此实例中,沙箱的地址可以不是连续的。此外,在没有找到现有沙箱组并且第一沙箱将与副存储器1027和地址转换寄存器1037协同的情况下,也可以使用上述方法。
(5-5.从主处理器和每个副处理器对工作存储器的访问)
由于主存储器1026由DRAM等形成,并且依照如上文描述的DMA方法来传送数据,因而每个副处理器1023可以以高速使用大容量的主存储器1026。此外,副存储器1027由SRAM等形成,并且可被类似地以高速使用。
此外,如果主处理器1021和副处理器1023可以共同使用作为工作存储器的信息处理控制器中包括的工作存储器1029以及连接到信息处理控制器的主存储器1026和副存储器1027,那么可以预见到高速操作。
此外,如果工作存储器1029可用于简单的数字算术运算,那么效率进一步提高。由于如上所述工作存储器1029由SRAM等形成,因此尽管不能预见到可由DRAM实现的这种大容量,但是运算速度非常高。
在下面,描述了在主处理器1021和副处理器1023访问工作存储器1029的情况中的配置和过程。
参照图46,工作存储器1029包括控制器1038和RAM 1039。尽管SRAM可用于RAM 1039,但是RAM 1039不限于此。RAM 1039由多个块形成。每一块具有分配给它的地址,并在其中存储数据。
主处理器1021和副处理器1023通过控制器1038访问RAM 1039。更具体地说,主处理器1021和副处理器1023中的每一个将命令、地址或数据传送到控制器1038,并且控制器1038依照接收到的命令、地址或数据访问RAM1039。
在执行所述过程之后,所述控制器1038向命令发送者的主处理器1021或副处理器1023返回命令执行结果。
例如,当副处理器1023访问工作存储器1029时使用的命令与如图44所示的用于访问主存储器1026或副存储器1027的这种命令相同。此外,在执行所述过程之后来自工作存储器1029的执行结果的响应具有相同的结构。
然而,当要访问工作存储器1029时,基本上不使用图44示出的命令中的优先命令标识符、常规命令标识符、链式命令标识符和处理线程标识符。然而,如果工作存储器1029为所提到的标识符作好了准备,则可以使用所述标识符。如下所述的这样的若干命令类型是可用的。
第一命令是读取命令。使用读取命令来读出工作存储器1029中的数据。主处理器1021和副处理器1023将要在其中存储所希望的数据的RAM 1039中的块的地址与读取命令一起传送。作为执行结果,表示读取命令的成功/失败的OK/NG和所读出的数据被从控制器1038传回。
第二命令是写入命令。使用写入命令来将数据写入工作存储器1029。主处理器1021和副处理器1023传送写入命令、数据和要在其中存储数据的RAM 1039中的块的地址。作为执行结果,表示写入命令的成功/失败的OK/NG被从控制器1038传回。
第三命令是添加命令。使用添加命令来在工作存储器1029中添加数据。主处理器1021和副处理器1023传送添加命令和将在其中存储要添加的数据的RAM 1039中的块的地址。控制器1038将接收到的地址的块中的数据加1,并使用该加法结果覆写所述数据。作为执行结果,表示添加命令的成功/失败的OK/NG被从控制器1038传回。
第四命令是设置命令。使用设置命令来以位为单位操作工作存储器1029中的数据。主处理器1021和副处理器1023传送设置命令、其中存储要操作的数据的RAM 1039中的块的地址、以及掩码数据。
响应于接收到的设置命令,控制器1038将接收到的掩码数据和接收到的地址的块中的数据相比较,以便将在与具有值1的掩码数据的那些位中的每一个相同的位置处的数据位的值设置成1。作为执行结果,指示设置命令完成的“完成”被从控制器1038传回。此时,还可以传送执行设置命令之前的数据,使得可以确认该命令的成功/失败。
第五命令是清除命令。同样,使用清除命令来以位为单元操作工作存储器1029中的数据。主处理器1021和副处理器1023传送清除命令、其中存储要操作的数据的RAM 1039中的块的地址、和掩码数据。
响应于接收到的清除(clear)命令,控制器1038将接收到的掩码数据和接收到的地址的块中的数据相比较,以便将与具有值1的掩码数据的那些位中的每一个相同的位置处的数据位的值清除为0。作为执行结果,指示清除命令完成的“完成”被从控制器1038传回。此时,还可以传送执行清除命令之前的数据,使得可以确认该命令的成功/失败。
如上所述,除了大容量的主存储器1026和高速操作的副存储器1027之外,主处理器1021和副处理器1023还可共同使用工作存储器1029。此外,如果使用工作存储器1029作为副存储器1027的高速缓冲存储器,那么可以预见到进一步的高速操作。
(5-6.副处理器中的处理线程)
如上文所述,一个信息处理控制器中的副处理器1023在结构上彼此独立。因此,每个副处理器1023都可独立地执行副处理程序和处理数据。此外,在每个副处理器1023中提供实质上彼此无关的多个处理线程是可能的构思。在图47中示出了副处理器1023的结构。
参照图47,每个副处理器1023通过在其内部提供的判定器(arbiter)1040连接到总线1032。副处理器1023包括本地存储器(LS)1024、以及处理线程1041、1042、1043和1044。判定器1040负责向适当的处理线程通知从外部接收的信号。
尽管在图47中彼此独立地示出处理线程1041、1042、1043和1044,但是它们实际上是彼此无关的。处理线程1041、1042、1043和1044具有单独分配给它们的处理线程标识符,并且可以彼此独立且并行地操作。
由于处理线程1041、1042、1043和1044彼此独立地访问主存储器1026、副存储器1027或工作存储器1029,因此必须确实地向命令传送来源的处理线程返回响应。下面描述用于此操作的过程。
例如,用来由处理线程1041、1042、1043和1044访问存储器的命令与如图44所示的当副处理器1023访问存储器时使用的那些命令相同。此外,所述过程之后来自存储器的执行结果的响应具有相同的结构。
尽管在上文中描述了图44的命令/响应结构,但副处理器标识符是命令发送者的副处理器的副处理器ID。此外,使用处理线程标识符来标识副处理器中的哪一个处理线程是命令的发送者。
首先根据副处理器标识符将来自主存储器1026、副存储器1027或工作存储器1029的响应传送回命令发送者的副处理器1023。此外,副处理器1023中的判定器1040根据处理线程标识符来向命令发送者的处理线程传送响应。
然而,在可以使用副处理器中的多个处理线程的任何一个的情况下,例如在执行相同过程的情况下,可以不根据处理线程标识符而将响应传送到处理线程中负荷轻的那一个。此外,每当从主存储器1026、副存储器1027或工作存储器1029接收到响应时,都可以按顺序选择多个处理线程中的一个,使得将响应传送回到所选择的处理线程。
以这一方式,即使在每个副处理器1023中的多个处理线程彼此独立地访问主存储器1026、副存储器1027或工作存储器1029的情况下,也可以确定地将响应传送回命令发送者的处理线程。
(5-7.由控制寄存器进行的副处理器程序的管理)
在一个信息处理控制器中包括多个副处理器1023、并且每个副处理器1023包括多个处理线程的情况下,对于实现信息处理控制器的高速操来说,重要的是确定应该使用哪一个处理线程来处理将在信息处理控制器中处理的副处理器程序。
因此,下面描述这样的配置和过程,其使用图41所示的控制寄存器1028,以便将副处理器程序的进程(process)适当地分配给各个处理线程,使得信息处理控制器可以高效地操作。
参照图48,控制寄存器1028包括进程等待副处理器程序寄存器1045和副处理器程序处理进度(progress)寄存器1046。
描述进程等待副处理器程序寄存器1045。如果将在信息处理控制器中处理的副处理器程序出现,那么主处理器1021将主存储器1026、副存储器1027、工作存储器1029或本地存储器(LS)1022或1024的地址写入进程等待副处理器程序寄存器1045,其中,副处理器程序或与副处理器程序有关的数据存储在所述地址中。
在要执行的副处理器程序不存在的状态下,进程等待副处理器程序寄存器1045的值为零。尽管所有处理线程自己不执行副处理器程序,但它们周期性地或非周期性地读出进程等待副处理器程序寄存器1045的值,而且在处理线程中读出除零以外的值的那一个执行所述进程。
此外,处理线程将值零写入进程等待处理器程序寄存器1045中。要执行该进程的处理线程根据所读出的进程等待副处理器程序寄存器1045的值读出并处理所述进程的对象的副处理器程序或相关数据。此时,具有处理线程的副处理器1023可能已经读出了所述副处理器程序,并且可以不必再次将其读出。
以这一方式,可以快速地将副处理器程序的进程分配给没有执行任何副处理器程序因此具有足够处理能力的处理线程。信息处理控制器可高效地操作。
副处理器程序处理进度寄存器1046是2位(x,y)寄存器,其中,被分配了副处理程序的进程的处理线程将把此进程的进展情况写入所述寄存器中。例如,(0,0)表示该进程尚未被执行;(0,1)表示该进程正在阶段1处执行;(1,0)表示该进程正在另一阶段2处执行;而(1,1)表示该进程完成。此外,可以将处理线程标识符与这2个位一起写入,使得可以表示向其分配进程的处理线程。
此外,如图48中的处理线程0、1、2和3所示,可以为信息处理控制器中的每个处理线程提供一寄存器,其中副处理器程序的进程的进展情况被写入所述寄存器中。
信息处理控制器中的主处理器1021、所有副处理器1023以及所有处理线程都可以访问副处理器程序处理进度寄存器1046。因此,可以精确地掌握副处理器程序的进程的进展情况。此外,在为每个处理线程提供进程进展寄存器的情况下,当同时执行多个副处理器程序时,也可以掌握进程进展情况。
在每个副处理器1023具有实际上互相独立的多个处理线程情况下的处理线程管理方法示例正如上面所述的那样。
应当注意,在下面的描述中,当副处理器执行某个进程时,可以进行副处理器中的处理线程的任何一个,并且在不同处理线程的执行结果之间不出现差别。因此,在此省略了对副处理器中的多个处理线程如何负责进程的内容的描述。
(5-8.软件单元的产生和配置)
在图41的网络***中,在信息处理装置1001、1002、1003和1004之间传送软件单元,使得可以由信息处理装置1001、1002、1003和1004执行分布式处理。具体地说,某个信息处理装置内的信息处理控制器中包括的主处理器1021产生包含命令、程序和数据的软件单元,并且通过网络1009将该软件单元传送给另一信息处理装置,以实现分布式处理。
图3示出了软件单元的配置示例。参照图3,所示出的软件单元通常包括发送者ID、传送目的地ID、响应目的地ID、单元接口、DMA命令、程序和数据。
发送者ID包括软件单元发送者的信息处理装置的网络地址和信息处理装置ID。发送者ID包括信息处理装置内的信息处理控制器中包括的主处理器1021和副处理器1023的标识符(主处理器ID和副处理器ID)。
传送目的地ID和响应目的地ID各自包括关于软件单元的传送目的地的信息处理装置和软件单元执行结果的响应目的地的信息处理装置的相同信息。
单元接口是使用软件单元必需的信息,并且包括全局ID、必需副处理器的信息、沙箱大小和在前软件单元ID。
全局ID允许在整个网络上唯一地标识软件单元,并且它是根据发送者ID以及软件单元产生或传送的日期和时刻产生的。
必需副处理器的信息在其中设置了执行软件单元所必需的副处理器的数量。沙箱大小在其中设置了执行软件单元所必需的主存储器1026和副处理器1023的本地存储器1024中的存储器容量。
在前软件单元ID是诸如流数据的需要顺序执行的一组软件单元中的在前的软件单元的标识符。
软件单元的执行部分由DMA命令、程序和数据形成。DMA命令包括启动程序所必需的一系列DMA命令,并且程序包括将由副处理器1023执行的副处理器程序。这里的数据是将由包括副处理器程序的程序处理的数据。
DMA命令还包括加载命令、开始命令、功能程序执行命令、状态请求命令和状态返回命令。
加载命令是用于将主存储器1026中的信息加载到副处理器1023的本地存储器1024中的命令,并且除加载命令本身之外,还包括主存储器地址、副处理器ID和LS(本地存储器)地址。主存储器地址指示作为信息加载来源的主存储器1026中的预定区域的地址。副处理ID和LS地址指示信息加载目的地的副处理器1023的本地存储器1024的标识符和地址。
开始命令是用于开始执行副处理器程序的命令,并且除开始命令之外还包括副处理器ID和程序计数器。副处理器ID标识开始对象的副处理器1023,而程序计数器提供用于执行程序的程序计数器的地址。
功能程序执行命令是如下文所述由某个信息处理装置用来请求另一信息处理装置执行功能程序的命令。接收到功能程序执行命令的信息处理装置中的信息处理控制器从下文所述的功能程序ID识别要启动的功能程序。
状态请求命令是用于请求将关于由传送目的地ID指示的信息处理装置的当前操作状态(情况)的装置信息传送到由响应目的地ID指示的信息处理装置的命令。虽然在下文中描述了功能程序,但它是归类到图6中的功能程序的程序,其中,图6图示了存储在信息处理装置的主存储器1026中的软件的配置。功能程序被加载到主存储器1026中,并由主处理器1021执行。
状态返回命令是这样的命令,其由接收到状态请求命令的信息处理装置使用,以便向由状态请求命令中包括的响应目的地ID指示的信息处理装置发布信息处理装置本身的装置信息的响应。状态返回命令将装置信息置于执行部件的数据区中。
图4图示了DMA命令是状态返回命令的软件单元的数据区域的结构。
参照图4,信息处理装置ID是用于标识包括信息处理控制器的信息处理装置的标识符,并且表示传送状态返回命令的信息处理装置的ID。当使电源可用时,根据使该电源可用时的日期和时刻、信息处理装置的网络地址、信息处理装置的信息处理控制器中包括的副处理器1023的数量等等,由信息处理装置的信息处理控制器中包括的主处理器1021产生信息处理装置ID。
信息处理装置类型ID包括表示信息处理装置的特性的值。信息处理装置的特性是例如下文所述的硬盘记录器、PDA(个人数字助理)、便携式CD(光盘)播放器等等。信息处理装置类型ID可以是表示信息处理装置的功能例如图像和声音记录或图像和声音再现的类型。表示信息处理装置的特性或功能的值是预先确定的。如果读出信息处理装置类型ID,就可以掌握信息处理装置的特性或功能。
如下文所述,MS(主导/从属)状态表示信息处理装置作为主导装置和从属装置中的哪一个来操作。当MS状态被设置为0时,这表示信息处理装置应该作为主导装置来操作,而当MS状态被设置为1时,这表示信息处理装置应该作为从属装置来操作。
主处理器操作频率表示信息处理控制器中的主处理器1021的操作频率。主处理器使用率表示主处理器1021中与当前在主处理器1021中操作的所有程序有关的使用率。主处理器使用率是表示当前使用的处理能力和目标主处理器的总处理能力的比率的值,并且例如是以作为用于评估处理器处理能力的单位的MIPS为单位、或者是根据每单位时间的处理器使用时间来计算的。类似地,这也适用于在下文中描述的副处理器使用率。
副处理器数量表示在信息处理控制器中提供的副处理器1023的数量。副处理器ID表示用于标识信息处理控制器中的副处理器1023的标识符。
副处理器状态表示每个副处理器1023的状态,并且可以是未使用状态、预定状态、忙碌状态等中的一种。未使用状态表示副处理器当前未被使用并且也未被预定用于使用。预定状态表示副处理器未被使用但被预定用于使用。忙碌状态表示副处理器当前被使用。
副处理器使用率表示在副处理器中与该副处理器中正由副处理器执行或被预定用于执行的副处理器程序有关的使用率。副处理器使用率在副处理器状态为忙碌的情况下指示当前的使用率,而在副处理器状态是被预定的情况下指示估计的使用率,利用这一估计的使用率,可以安排以后使用该副处理器。
为一个副处理器1023设置一组副处理器ID、副处理器状态和副处理器使用率。因此,设置与一个信息处理控制器中的副处理器1023的数量相对应的多个组。
主存储器总容量和主存储器使用容量分别表示连接到信息处理控制器的主存储器1026的总容量和当前使用的容量。
外部记录部件数量表示连接到信息处理控制器的外部记录部件1031的数量。外部记录部件ID是用于唯一地标识连接到信息处理控制器的每个外部记录部件1031的信息。外部记录部件类型ID表示每个外部记录部件1031的类型(例如硬盘、CD±RW、DVD±RW、存储盘、SRAM、ROM等等)。
外部记录部件总容量和外部记录部件使用容量分别表示利用外部记录部件ID标识的外部记录部件1031的总容量和当前使用的容量。
为一个外部记录部件1031设置一组外部记录部件ID、外部记录部件类型ID、外部记录部件总容量和外部记录部件使用容量。从而,设置与连接到信息处理控制器的外部记录部件1031的数量的相对应的多个组。具体来讲,在多个外部记录部件连接到信息处理控制器的情况下,分别地将不同的外部记录部件ID应用于这些外部记录部件,并且还彼此独立地管理外部记录部件类型ID、外部记录部件总容量和外部记录部件使用容量。
(5-9.软件单元的执行)
某个信息处理装置的信息处理控制器中包括的主处理器1021产生具有如上所述的这种配置的软件单元,并且通过网络9将该软件单元传送给不同信息处理装置、以及所述某个信息处理装置中的信息处理控制器。分别用上文描述的发送者ID、传送目的地ID和响应目的地ID来单独标识发送者的信息处理装置、传送目的地的信息处理装置、响应目的地的信息处理装置和所述装置中的信息处理控制器。
接收软件单元的信息处理装置内的信息处理控制器中包括的主处理器1021将该软件单元存储到主存储器1026中。此外,传送目的地的主处理器1021读出该软件单元,并处理该软件单元中包括的DMA命令。
具体来讲,传送目的地的主处理器1021首先执行加载命令。因此,将信息从加载命令指示的主存储器地址加载到由加载命令中包括的副处理器ID和LS地址指定的副处理器中的本地存储器1024的预定区域中。这里加载的信息是接收到的软件单元中包括的副处理器程序或数据或者一些其它所指示的数据。
然后,类似地,主处理器1021将开始命令和开始命令中包括的程序计数器一起输出到由开始命令中包括的副处理器ID指定的副处理器。
所指定的副处理器依照开始命令和程序计数器来执行副处理器程序。然后,副处理器将执行结果存储到主存储器1026中,然后通知主处理器1021该执行完成。
应当注意,在传送目的地的信息处理装置内的信息处理控制器中执行软件单元的处理器不限于副处理器1023,而是有可能指定主处理器1021,以便执行诸如软件单元中包括的功能程序的主存储器程序。
在此实例中,发送者的信息处理装置将其DMA命令是加载命令的软件单元传送到传送目的地的信息处理装置。该软件单元包括主存储器程序和将由主存储器程序而不是副处理器程序处理的数据。主存储器程序和将由主存储器程序处理的数据被存储在主存储器1026中。
然后,发送者的信息处理装置将其DMA命令是开始命令或功能程序执行命令的软件单元传送到传送目的地的信息处理装置。该软件单元包括:传送目的地的信息处理装置中的信息处理控制器的主处理器ID和主存储器地址、用于标识诸如下文所述的功能程序ID的主存储器程序的标识符、和程序计数器。因而,主处理器1021可以执行主存储器程序。
如上所述,在根据本实施例的网络***中,发送者的信息处理装置以软件单元的形式将副处理器程序或主存储器程序传送到传送目的地的信息处理装置。此外,发送者的信息处理装置使传送目的地的信息处理装置中的信息处理控制器将副处理器程序加载到副处理器1023中。因此,发送者的信息处理装置可以使传送目的地的信息处理装置执行副处理器程序或主存储器程序。
当接收到的软件单元中包括的程序是副处理器程序时,传送目的地的信息处理装置中的信息处理控制器将副处理器程序加载到指定的副处理器中。因而,信息处理控制器使副处理器执行软件单元中包括的副处理器程序或主存储器程序。
因此,即使用户不操作传送目的地的信息处理装置,也可以由传送目的地的信息处理装置中的信息处理控制器自动执行副处理器程序或主存储器程序。
以这一方式,任何信息处理装置都可以在其信息处理控制器不包括诸如功能程序的副处理器程序或主存储器程序时,从通过网络与之连接的另一信息处理装置中获取这种程序。此外,每个副处理器和主存储器可以依照DMA***在它们之间传送数据,并且,使用如上文所述的这种沙箱。在这种情况下,即使有必要在一个信息处理控制器内以多个状态来处理数据,也可以以高速和高度安全性来执行处理。
[6.网络***的分布式处理2]
作为通过使用软件单元进行分布式处理的结果,如图49的上面部分所示的连接到网络1009的多个信息处理装置1001、1002、1003和1004作为虚拟的单个信息处理装置1007来操作,如图49的下面部分所示。然而,为了实现如刚才所述的这种虚拟操作,必须通过如下所述的这种配置执行下述处理。
(6-1.***的软件配置和程序的加载)
图6图示了将由各个信息处理控制器的主存储器1026存储的软件的配置。参照图6,在使电源可用于信息处理装置之前,将软件(程序)记录在连接到信息处理控制器的外部记录部件1031中。
根据程序的功能或特性,将所述程序分类成:控制程序、功能程序和设备驱动程序。
通常,控制程序是在信息处理控制器中提供的,并由每个信息处理控制器中的主处理器1021执行。控制程序包括下文所述的MS(主导/从属)管理器和能力交换程序。
功能程序由主处理器1021来执行,并且对于每个信息处理装置,为信息处理控制器提供诸如记录程序、再现程序、素材搜索程序等的这种功能程序。
为每个信息处理控制器(信息处理装置)的输入和输出(传送和接收)提供设备驱动程序,并且为信息处理控制器提供适合于每个信息处理装置的、诸如用于广播接收、监视器输出、位流输入/输出、网络输入/输出等的设备的设备。
当在信息处理装置通过电缆等的连接而物理地连接到网络1009并由此信息处理装置也电气地和在功能上连接到网络1009的状态下使电源可用于信息处理装置时,信息处理装置的信息处理控制器的主处理器1021将属于控制程序的程序和属于设备驱动程序的程序加载到主存储器1026中。
作为程序的加载过程,主处理器1021首先控制DC 1030执行读出指令,以便从外部记录部件1031中读出该程序,然后控制DMAC 1025执行写入指令,以便将该程序写入主存储器1026。
可以处理属于功能程序的程序,使得在必要时或在其它情况中仅加载所必需的一个程序,使得在类似于属于其它类别的程序而使主电源可用之后立刻加载所有程序。
属于功能程序的程序不必记录在连接到网络的所有信息处理装置的外部记录部件1031中。然而,如果它们被记录在任何一个信息处理装置的外部记录部件1031中,那么可以利用上述方法将它们加载到其它信息处理装置中。因此,可以由图49下面部分所示的虚拟的单个信息处理装置1007执行功能程序。
如上文所述,由主处理器1021执行的功能程序有时候与由副处理器1023处理的副处理器程序协同操作。因此,当主处理器1021从外部记录部件1031中读出功能程序并将该功能程序写入主存储器1026时,如果任何副处理器要与目标功能程序协同操作,那么主处理器1021将副处理器程序也一起写入同一主存储器1026。在此实例中,尽管单个副处理器程序可以协同操作,但是多个副处理器程序也有可能协同操作。当多个副处理器程序要协同操作时,它们全部被写入主存储器1026。
随后,写入主存储器1026的每个副处理器程序被写入副处理器1023中的本地存储器1024,并与由主处理器1021处理的功能程序协同操作。
如上文结合图3示出的软件单元所描述的那样,将可用来唯一地标识程序的标识符作为功能程序ID分配给每个功能程序。在功能程序的产生阶段,根据产生的日期和时刻、信息处理装置ID等来确定该功能程序ID。
每个副处理器程序也具有分配给它的副处理器程序ID,使得可以唯一地标识副处理器程序。以这一方式分配的副处理器程序ID可以是与其协同操作的对方的功能程序的功能程序ID有某种关系,例如由作为父编号的功能程序ID和添加到功能程序ID尾部的分支编号组成的标识符。然而,在其它情况中,副处理器程序ID可以是与协同操作的对方的功能程序的功能程序ID没有关系的标识符。
无论如何,在功能程序和副处理器程序应该协同操作的情况下,它们每个都在其中存储对方的标识符的程序ID是有必要的。同样,在功能程序应该与多个副处理器程序协同操作的情况下,功能程序存储所述多个副处理器程序的所有副处理器程序ID。
主处理器1021在主存储器1026中确保用于存储主存储器1021操作所在的信息处理装置的装置信息(与装置有关的信息,例如装置的类型、容量和操作状态,该装置所拥有的资源等等)的区域,并将该信息记录为信息处理装置本身的装置信息表。这里的装置信息是图4示出的信息处理装置ID等的信息。
(6-2.***中主导/从属的确定)
在上述网络***中,当使某个信息处理装置的主电源可用时,该信息处理装置的信息处理控制器的主处理器1021将主导/从属管理器(下文中称为MS管理器)加载到主存储器1026中,并且执行该主导/从属管理器。
在MS管理器检测到MS管理器操作所在的信息处理装置连接到网络1009之后,其确认连接到相同网络1009的其它信息处理装置的存在。这里的“连接”或“存在”表示信息处理装置不仅物理地还电气地和在功能上连接到网络1009。
MS管理器自身操作所在的信息处理装置在下文中称为自身装置,而任何其它信息处理装置称为不同装置。此外,术语有关装置表示有关的信息处理装置。
下面描述MS管理器确认存在连接到相同网络1009的不同信息处理装置的方法。
MS管理器产生软件单元,其将状态请求命令指定为DMA命令,并将有关信息处理装置指定为发送者ID和响应目的地ID,但并不指明传送目的地ID。然后,MS管理器将软件单元传送给有关信息处理装置所连接的网络,并设置用于网络连接确认的定时器。定时器的超时时间是例如10分钟。
如果不同信息处理装置连接到网络***,那么该不同装置接收状态请求命令的软件单元,并将其DMA命令是状态返回命令、并且包括自身装置(不同装置)的装置信息的软件单元作为数据传送到由所接收的软件单元的响应目的地ID指定的、并且发布了状态请求命令的信息处理装置。状态返回命令的软件单元至少包括用于指定不同装置的信息(信息处理装置ID、有关主处理器的信息、有关副处理器的信息等)和该不同装置的MS状态。
发布了状态请求命令的信息处理装置的MS管理器监管从网络上的不同装置传送的状态返回命令的软件单元的接收,直到用于网络连接确认的定时器发生超时为止。因此,如果接收到表示MS状态=0(主导装置)的状态返回命令,那么自身装置的装置信息表中的MS状态被设置为1。从而,有关装置变为从属装置。
另一方面,如果在直到用于网络连接确认的定时器发生超时为止的时间内没有接收到状态返回命令,或者如果没有接收到表示MS状态=0(主导装置)的状态返回命令,那么自身装置的装置信息表中的MS状态被设置为0。因此,有关装置变为主导装置。
简而言之,在没有装置连接到网络1009的状态下,或者在网络1009上不存在主导装置的另一状态下,如果新信息处理装置连接到网络1009,那么有关装置被自动设置为主导装置。另一方面,在主导装置已存在于网络1009上的另外一种状态下,如果新信息处理装置连接到网络1009,那么相关装置被自动设置为从属装置。
在主导装置和从属装置的任一个中,MS管理器周期性地将状态请求命令传送给网络1009上的不同装置,以查询状态信息,从而监管不同装置的情况。因此,当网络1009的连接状态发生变化时,例如当连接到网络1009的信息处理装置的主电源被切断或信息处理装置从网络1009断开、从而在事先设置用于判别的预定时间周期内没有从特定不同装置返回状态返回命令时,信息被输送到下文所述的能力交换程序。
(6-3.主导装置和从属装置之间的装置信息获取)
如果主处理器21从MS管理器接收到有关网络1009上不同装置的查询和完成对自身装置的MS状态的设置的通知,那么其执行能力交换程序。
如果自身装置是主导装置,则能力交换程序获取连接到网络1009的所有不同装置的装置信息,即所有从属装置的装置信息。
对不同装置的装置信息的获取可以这样执行,使得DMA命令产生并传送状态请求命令的软件单元到所述不同装置,然后从该不同装置接收作为数据的、其DMA命令是状态返回命令并包括该不同装置的装置信息的软件单元。
能力交换程序在自身装置的主存储器1026中确保用于存储连接到网络1009的所有不同装置(所有从属装置)的装置信息的区域,并类似于作为主导装置的自身装置的装置信息表而将信息作为不同装置(从属装置)的装置信息表存储。
换句话说,包括自身装置在内的连接到网络1009的所有信息处理装置的装置信息都作为装置信息表存储在主导装置的主存储器26中。
另一方面,如果能力交换程序的自身装置是从属装置,那么能力交换程序获取连接到网络1009的所有不同装置的装置信息,即主导装置和除了自身装置的所有从属装置的装置信息,并将包括在装置信息中的信息处理装置ID和MS状态记录到自身装置的主存储器1026中。
换句话说,在每个从属装置的主存储器1026中,自身装置的装置信息作为装置信息表记录,而除了自身装置之外的连接到网络1009的所有主导装置和从属装置的信息处理装置ID和MS状态都作为不同装置信息表记录。
另外,在主导装置和从属装置的任一个中,当能力交换程序从上述MS管理器接收到信息处理装置新连接到网络1009的通知时,它获取该信息处理装置的装置信息,并以如上文所述的这种方式将该装置信息寄存到主存储器1026中。
应当注意,MS管理器和能力交换程序可以不是由主处理器1021执行,而是由任意副处理器1023执行。另外,MS管理器和能力交换程序优选为在信息处理装置的主电源可用时正常操作的常驻程序。
(6-4.当信息处理装置从网络断开时)
在主导装置和从属装置的任一个中,如果从MS管理器向能力交换程序通知连接到网络1009的信息处理装置的主电源被断开、或者信息处理装置从网络1009断开,那么能力交换程序将该信息处理装置的装置信息表从自身装置的主存储器1026中删除。
另外,如果从网络1009断开的信息处理装置是主导装置,那么利用以下方法重新确定另一主导装置。
具体地说,例如,未从网络1009断开的那些信息处理装置的每一个将自身装置和不同装置的信息处理装置ID替换为数值,并将自身装置的信息处理装置ID与不同装置的信息处理装置ID相比较。如果自身装置的信息处理装置ID在未从网络1009断开的信息处理装置中显示最小值,那么从属装置将自身改变为主导装置并将MS状态设置为0。然后,它作为主导装置操作,并获取连接到网络1009的所有不同装置(从属装置)的装置信息,并将其记录到如上所述的主存储器1026中。
(6-5.基于装置信息的信息处理装置之间的分布式处理)
为了允许连接到网络1009的多个信息处理装置1001、1002、1003和1004作为如图49下面部分所示的虚拟单个信息处理器1007操作,主导装置有必要掌握用户操作和从属装置的操作状态。
图50示出了4个信息处理装置,它们处于它们作为虚拟的单个信息处理装置1007操作的状态下。假设信息处理装置1001充当主导装置,而信息处理装置1002、1003、和1004分别充当从属装置A、B、和C。
当用户操作连接到网络1009的任何一个信息处理装置时,如果操作对象是主导装置1001,那么操作信息随后直接由主导装置1001掌握。另一方面,如果操作对象是从属装置,那么操作信息随后被从***作的从属装置传送到主导装置1001。换句话说,不管用户的操作对象是主导装置1001还是从属装置之一,主导装置1001始终掌握操作信息。例如,使用其DMA命令是操作信息传送命令的软件单元来执行操作信息的传送。
然后,包括在主导装置1001内的信息处理控制器1011中的主处理器1021-1根据操作信息选择要执行的功能程序。在此实例中,如果必要的话,包括在主导装置1001内的信息处理控制器1011中的主处理器1021-1使用上述方法将功能程序从自身装置的外部记录部件1031-1和1031-2加载到主存储器1026-1中。然而,功能程序也可以以其它方式从不同信息处理装置(从属装置)传送到主导装置1001。
功能程序定义了每个执行单元所需的、关于装置的所需规格,例如表示为图4中各种类型信息的信息处理装置类型ID、主处理器或副处理器的处理能力、主存储器使用容量、和与外部记录部件有关的情况。
包括在主导装置1001的信息处理控制器1011中的主处理器1021-1读出由各个功能程序所需的这种所请求的规格。另外,主处理器1021-1查询由能力交换程序事先记录在主存储器1026-1中的装置信息表,以读出各个信息处理装置的装置信息。这里,装置信息是指包括图4示出的信息处理装置ID项和后续项的信息项,并且是与主处理器、副处理器、主存储器和外部记录部件相关的信息。
包括在主导装置1001的信息处理控制器1011中的主处理器1021-1连续比较连接到网络1009的信息处理装置的装置信息和执行功能程序所必需的所需规格。
例如,如果功能程序需要记录功能,那么主处理器1021-1基于信息处理装置类型ID只指定和提取具有记录功能的那些信息处理装置。另外,主处理器1021-1指定从属装置之一作为执行请求候选装置,其中,该从属装置可确保执行处理程序所必需的主处理器或副处理器的处理能力、主存储器使用容量、和关于外部记录部件的情况。这里,如果指定了多个执行请求候选装置,那么指定和选择这些执行请求候选装置中的一个。
在指定了要对其发布执行请求的从属装置之后,包括在主导装置1001的信息处理控制器1011中的主处理器1021-1更新自身装置的信息处理控制器1011中包括的主存储器1026-1中记录的关于被指定的从属装置的装置信息表。
另外,包括在信息处理装置1001的信息处理控制器1011中的主处理器1021-1产生包括作为DMA命令的功能程序执行命令的软件单元,并对软件单元的单元接口设置与功能程序有关的必需副处理器的信息和沙箱大小(参照图17)。然后,主处理器1021-1将所得到的软件单元传送到被请求执行功能程序的从属装置。
被请求执行功能程序的从属装置执行该功能程序,并更新自身装置的装置信息表。在此实例中,如果必要的话,包括在从属装置的信息处理控制器中的主处理器1021使用上文所述的方法,将该功能程序和应当与该功能程序协同操作的一个或多个副处理器程序从自身装置的外部记录部件1031加载到主存储器1026中。
***可这样配置,使得如果该必需功能程序或应当与该功能程序协同操作的一个或多个副处理器程序没有记录在被请求执行该功能程序的从属装置的任意一个外部记录部件1031中,那么不同信息处理装置将该功能程序和所述一个或多个副处理器程序传送到被请求执行该功能程序的从属装置。
所述一个或多个副处理器程序也有可能由不同信息处理装置使用上文所述的加载命令和开始命令执行。
在功能程序的执行结束之后,包括在执行了该功能程序的从属装置的信息处理控制器中的主处理器1021将执行结束通知传送到包括在主导装置1001的信息处理控制器1011中的主处理器1021-1,并更新自身装置的装置信息表。包括在主导装置1001的信息处理控制器1011中的主处理器1021-1接收该结束通知,并更新执行了该功能程序的从属装置的装置信息表。
包括在主导装置1001的信息处理控制器1011中的主处理器1021-1有可能从对自身装置和不同装置的装置信息表的查阅结果中选择自身装置作为可执行功能程序的信息处理装置。在此实例中,主导装置1001执行所述功能程序。
参照图51来描述分布式处理的示例,其中,在图50示出的示例中,用户操作从属装置A(信息处理装置1002),并且不同从属装置B(信息处理装置1003)响应于该操作而执行功能程序。
在图51所示的示例中,当用户操作从属装置A时,包括从属装置A的整个网络***的分布式处理被启动,并且在步骤1091从属装置A首先将操作信息传送到主导装置1001。
在步骤1092,主导装置1001接收操作信息,并在步骤1093从自身装置的主存储器1026-1中记录的自身装置和不同装置的装置信息表中检查该信息处理装置的操作状态,以便选择可执行与接收到的操作信息相对应的功能程序的信息处理装置。在图51所示的示例中,选择了从属装置B。
然后,在步骤1094,主导装置1向所选择的从属装置B发布执行功能程序的请求。
在步骤1095,从属装置B接收执行请求,并在步骤1096执行被请求其执行的功能程序。
以这种方式,如果用户只操作信息处理装置之一,那么它可以使所述多个信息处理装置1001、1002、1003和1004作为虚拟的单个信息处理装置1007操作,而不操作所述信息处理装置的其它任意一个。
(6-6.信息处理装置和***的特定示例)
只有当如上文所述由这种信息处理控制器1011、1012、1013或1014执行信息处理时,通过网络1009互相连接的每个信息处理装置1001、1002、1003和1004才可以基本上具有任意配置。图52示出了信息处理装置的配置示例。
在所示出的示例中,包括信息处理控制器1011的信息处理装置1001是硬盘记录器。图53示出了图41所示的硬盘记录器的硬件配置。参照图41,作为所示出的信息处理装置1001的硬件配置,其包括充当图41所示的外部记录部件1031-1的内置硬盘。信息处理装置1001还包括图41所示的外部记录部件1031-2,其中,可以将诸如DVD±R/RW、CD±R/RW、Blu-rayDisc(注册商标)等的光盘加载到外部记录部件1031-2中。信息处理装置1001还包括连接到总线1051-1的广播接收部件1052-1、图像输入部件1053-1、声音输入部件1054-1、图像输出部件1055-1、声音输出部件1056-1、操作面板部件1057-1、远程控制光接收部件1058-1、网络连接部件1059-1和显示器驱动部件1061-1,而总线1051-1又连接到信息处理控制器1011的总线1032-1。
广播接收部件1052-1、图像输入部件1053-1和声音输入部件1054-1从信息处理装置1001外部接收广播信号或接收图像信号和声音信号,将所接收的一个或多个信号转换为预定格式的数字数据,并将该数字数据发送给总线1051-1,以便由信息处理控制器1011进行处理。图像输出部件1055-1和声音输出部件1056-1处理从信息处理控制器1011发送到总线1051-1的图像数据和声音数据,并将该图像数据和声音数据按原样或在被转换为模拟信号之后发送到信息处理装置1001的外部。远程控制光接收部件1058-1从远程控制发射机1063-1接收远程控制红外信号。
如图52和53所示,监视显示装置1061和扬声器装置1062分别连接到信息处理装置(硬盘记录器)1001的图像输出部件1055-1和声音输出部件1056-1。
图52所示的包括信息处理控制器1012的信息处理装置1002也是硬盘记录器,并且被与如图53所示的信息处理装置1001相似地配置,其中,附图标记被置于括号中。然而,应当注意,例如,如图52所示,没有监视显示装置和扬声器装置连接到信息处理装置(硬盘记录器)1002。
作为图54所示的软件配置,信息处理装置(硬盘记录器)1001和1002,即信息处理控制器1011和1012包括作为控制程序的MS管理器和能力交换程序。另外,信息处理控制器1011和1012包括作为功能程序的用于图像和声音记录、图像和声音再现、素材搜索、以及节目记录预定的程序。此外,信息处理控制器1011和1012包括作为设备驱动程序的用于广播接收、图像输出、声音输出、外部记录部件输入/输出、和网络输入/输出的程序。
在图52的示例中,包括信息处理控制器1013的信息处理装置1003是PDA(个人数字助理)。图55示出了形成为PDA的信息处理装置1003的硬件配置。参照图55,在所示示例中,信息处理装置1003包括图41所示的外部记录部件1031-5,其中,可以将存储卡盘加载到外部记录部件1031-5中。信息处理装置1003还包括连接到总线1071的液晶显示部件1072、声音输出部件1073、照相机部件1074、声音输入部件1075、键盘部件1076、和网络连接部件1077,而总线1071又连接到信息处理控制器1013的总线1032-3。
应当注意,图41中没有示出其内部配置的信息处理控制器1013包括主处理器1021-3、副处理器1023-7、1023-8和1023-9、直接存储器存取控制器(DMAC)1025-3、控制寄存器1028-3、工作存储器1029-3、盘控制器(DC)1030-3、和总线1032-3。主处理器1021-3包括本地存储器(LS)1022-3,而副处理器1023-7、1023-8、和1023-9分别包括本地存储器(LS)1024-7、1024-8、和1024-9。
图56示出了信息处理装置(PDA)1003、具体地说是信息处理控制器1013的软件配置。参照图56,信息处理控制器1013包括作为控制程序的MS管理器和能力交换程序。另外,信息处理控制器1013包括用于图像和声音记录、图像和声音再现、电话号簿、字处理器、和电子表格的程序作为功能程序,并且包括网络浏览器。另外,信息处理控制器1013包括用于图像输出、声音输出、照相机图像输入、麦克风声音输入和网络输入/输出的程序,作为设备驱动程序。
图52示出的包括信息处理控制器1014的信息处理装置1004是便携式CD播放器。图57示出了便携式CD播放器形式的信息处理装置1004的硬件配置。参照图57,信息处理装置1004包括图41所示的外部记录部件1031-6,其中,可以将CD(光盘)加载到外部记录部件1031-6中。信息处理装置1004还包括连接到总线1081的液晶显示部件1082、声音输出部件1083、操作按钮部件1084、和网络连接部件1085,而总线1081又连接到信息处理控制器1014的总线1032-4。
应当注意,图41中没有示出其内部配置的信息处理控制器1014包括主处理器1021-4、副处理器1023-10、1023-11、和1023-12、直接存储器存取控制器(DMAC)1025-4、控制寄存器1028-4、工作存储器1029-4、盘控制器(DC)1030-4、和总线1032-4。主处理器1021-4包括本地存储器(LS)1022-4,而副处理器1023-10、1023-11、和1023-12分别包括本地存储器(LS)1024-10、1024-11、和1024-12。
图58示出了便携式CD播放器形式的信息处理装置1004、具体地说是信息处理控制器1014的软件配置。参照图58,信息处理控制器1014包括作为控制程序的MS管理器和能力交换程序。另外,信息处理控制器1014包括作为功能程序的用于音乐再现等的程序,并包括作为设备驱动程序的用于声音输出、CD控制、和网络输入/输出的程序。
假设在图52示出并具有上面所述的这种配置的网络***中,信息处理装置1001、1003和1004连接到网络1009,并且信息处理装置1001被设置为主导装置(MS状态=0),而信息处理装置3和4被设置为从属装置(MS状态=1)。在这种状态下,如果信息处理装置1002新连接到网络1009,那么在信息处理装置1002的信息处理控制器1012中包括的主处理器1021-2中执行的MS管理器查询其它信息处理装置1001、1003和1004的MS状态并识别出信息处理装置1001已经作为主导装置形式存在。因此,MS管理器将自身装置(信息处理装置1002)设置为从属装置(MS状态=1)。同时,被设置为主导装置的信息处理装置1001收集包括新增加的信息处理装置1002的装置的装置信息,并基于所收集的装置信息更新主存储器1026-1中的装置信息表。
下面描述当在此状态下用户操作作为从属装置的信息处理装置(PDA)1003以进行两个小时的广播节目的记录预定时,图52的网络***的操作。
在此实例中,作为从属装置的信息处理装置(PDA)1003接受包括记录开始时间、记录结束时间、记录对象广播频道和记录画面质量的信息的记录预定信息的输入,并产生包括该记录预定信息和作为DMA命令的记录预定命令的软件单元。然后,信息处理装置1003将所产生的软件单元传送到作为主导装置的信息处理装置1001。
接收其DMA命令是记录预定命令的软件单元的、包括在信息处理装置1001的信息处理控制器1011中的主处理器1021-1读出该记录预定命令,并查阅主存储器1026-1中的装置信息表,以指定可执行该记录预定命令的信息处理装置。
首先,主处理器1021-1读出包括在装置信息表中的信息处理装置1001、1002、1003和1004的信息处理装置类型ID,以提取可执行与记录预定命令相对应的功能程序的那些信息处理装置。这里,具有指示记录功能的信息处理装置类型ID的信息处理装置1001和1002被指定为候选装置,而信息处理装置1003和1004被排除在候选装置之外。
包括在作为主导装置的信息处理装置1001的信息处理控制器1011中的主处理器1021-1查阅装置信息表,以读出与该装置有关的信息例如主处理器和副处理器的处理能力、以及与信息处理装置1001和1002的主存储器有关的信息,并且,主处理器1021-1判别信息处理装置1001和1002是否满足执行与记录预定命令相对应的功能程序必需的所需规格。这里假设信息处理装置1001和1002都满足执行与记录预定命令相对应的功能程序必需的所需规格。
另外,主处理器1021-1查阅装置信息表,以读出与信息处理装置1001和1002的外部记录部件有关的信息,并判别外部记录部件的空闲容量是否满足执行记录预定命令所必需的容量。由于信息处理装置1001和1002是硬盘记录器,因此硬盘1031-1和1031-3的总容量和使用容量之间的差各自对应于空闲容量。
在此实例中,当把信息处理装置1001的硬盘1031-1的空闲容量转换为记录时间周期时,假设其空闲容量是10分钟,而当把信息处理装置1002的硬盘1031-3的空闲容量转换为记录时间周期时,假设其空闲容量是20小时。
在此实例中,包括在作为主导装置的信息处理装置1001的信息处理控制器1011中的主处理器1021-1指定可确保执行记录预定命令所必需的两个小时的空闲容量的信息处理装置作为执行请求的目的地从属装置。
因此,只有信息处理装置1002被选择作为执行请求目的地从属装置,并且,包括在作为主导装置的信息处理装置1001的信息处理控制器1011中的主处理器1021-1将记录预定命令传送到信息处理装置1002,以请求信息处理装置1002进行上文所述的两小时的广播节目的记录预定,其中所述记录预定命令包括从由用户操作的信息处理装置1003传送的记录预定信息。
然后,包括在信息处理装置1002的信息处理控制器1012中的主处理器1021-2分析记录预定命令,并将记录必需的功能程序从作为外部记录部件的硬盘1031-3加载到线路存储器1026-2中。然后,主处理器1021-2根据记录预定信息执行记录。因此,预定用于记录的两小时的广播节目的图像和声音数据被记录在信息处理装置1002的硬盘1031-3上。
以这种方式,在图52所示的网络***中,用户也可以仅通过只操作信息处理装置之一而不操作信息处理装置的其它任意一个,使所述多个信息处理装置1001、1002、1003和1004作为虚拟的单个信息处理装置1007来操作。
[7.通过副处理器分配进行的分布式处理2]
在上述图50或52的网络***的分布式处理中,当充当主导装置的信息处理装置1001指定了可执行功能程序的信息处理装置时,网络***包括满足执行该功能程序必需的所有所需规格的信息处理装置。然而,网络***可以不包括这样的信息处理装置。
在图52的示例中,充当主导装置的信息处理装置1001最终将信息处理装置1002指定为将执行与记录预定命令相对应的功能程序的信息处理装置。然而,信息处理装置1002可能不满足执行功能程序所必需的部分所需规格。例如,信息处理装置1002不满足多个副处理器的要求,尽管其满足所有其它所需规格。此外,在如刚才所述的这种实例中,信息处理装置1002有可能能够利用上文所述的加载命令或开始命令来执行功能程序,以使用不同信息处理装置中的副处理器。
因此,下面描述一示例,其中,当主导装置指定将执行功能程序的信息处理装置时,它在不考虑候选信息处理装置的副处理器处理能力的情况下指定将执行功能程序的信息处理装置。
在此实例中,功能程序指定与装置有关的所需规格,例如对被表示为图4示出的多种类型信息的信息处理装置类型ID、主处理器或副处理器的处理能力、主存储器使用容量、和外部记录部件的要求。当主导装置指定将执行功能程序的信息处理装置时,它指定满足除了副处理器处理能力之外的所需规格的信息处理装置。因此,自然地,由主导装置指定并被请求执行功能程序的信息处理装置可以不在该信息处理装置自身中确保执行功能程序所必需的处理器处理能力。
在下文中描述分布式处理的示例,其中,以这种方式被请求执行功能程序的信息处理装置使用网络***中包括的不同信息处理装置的副处理器。
(7-1.***配置)
图59示出了其中4个信息处理装置1001、1002、1003、和1004连接到网络1009的网络***。
假设信息处理装置1001作为主导装置操作,而信息处理装置1002、1003、和1004每个都作为从属装置操作,并且信息处理装置1001指定信息处理装置1001自己作为将执行功能程序的信息处理装置。
连接到网络1009的信息处理装置1001、1002、1003、和1004具有如图17所示的这种软件配置。参照图17,每个信息处理处理装置1001、1002、1003、和1004不仅包括在上文中参照图6等描述的MS管理器和能力交换程序,还包括作为控制程序的资源管理器。
资源管理器控制自身装置中的副处理器执行程序和数据的传递、程序执行的启动和停止、程序执行结果的接收等。
另外,资源管理器掌握自身装置中副处理器的使用情况,并发布对来自任何其它信息处理装置的查询的响应、或向它们发布关于其它信息处理装置的副处理器的使用情况的查询。
为此,资源管理器准备如图18所示的这种副处理器管理表。
图18的副处理器管理表用于这样的情况,其中每个信息处理装置中的信息处理控制器包括几个或更多个副处理器。参照图18,副处理器管理表中的信息处理装置ID是自身装置的信息处理装置ID。另外,副处理器装置ID是自身装置中每个副处理器的副处理器ID,而副处理器状态指示每个副处理器的使用情况。
如上文所述,副处理器状态可以是未使用状态(副处理器当前未被使用也没有被预定用于使用的状态)、预定状态(副处理器当前未被使用但被预定用于使用的状态)、和忙碌状态(副处理器当前被使用的状态)的一种。
如下文所述,未使用状态被称为空闲状态,并且副处理器是否空闲,即副处理器是处于未使用状态、预定状态还是忙碌状态被称为空闲状况。
副处理器程序ID是用于标识在副处理器中正在执行或被预定用于执行的副处理器程序的标识符。功能程序ID是用于标识功能程序的标识符,其中所述功能程序与在上面阶段的副处理器程序ID指示的副处理器程序协同操作。
副处理器程序优先级是当前正被执行或被预定用于执行的副处理器程序的优先级。副处理器程序优先级是根据将与该副处理器程序协同操作的功能程序的优先级预先确定的,并被例如分为三级:高(高优先级),中(中优先级)和低(低优先级)。
当要确保副处理器时、或在如下文中所述的类似情况中,由资源管理器发布锁定序号,并将其记载在副处理器管理表中。只有当从功能程序接收到的副处理器程序ID和锁定序号与副处理器管理表中记载的副处理器程序ID和锁定序号一致时,资源管理器才允许使用副处理器。
(7-2.副处理器分配处理)
假设在图59的网络***中,信息处理装置1001作为主导装置操作,而信息处理装置1002、1003和1004每个都作为从属装置操作,并且充当主导装置的信息处理装置1001指定信息处理装置1001自己作为将执行功能程序的信息处理装置。
在下文中,参照图60到68来描述副处理器分配处理的示例。该处理是当信息处理装置1001确保信息处理装置1001自身或其它信息处理装置1002、1003和1004中用于执行副处理器程序的副处理器时,由信息处理装置1001的主存储器1026-1中的功能程序、信息处理装置1001中的资源管理器以及信息处理装置1002、1003和1004中的资源管理器执行的,其中所述副处理器程序与信息处理装置1001自己的主存储器1026-1中的功能程序协同操作。
首先参照图60,在步骤1111,信息处理装置1001的主存储器1026-1中的功能程序首先确定执行副处理器程序所必需的副处理器数量。然后在步骤1112,功能程序向自身装置(信息处理装置1001)中的资源管理器输出使用必需数量(由n表示)的副处理器的请求。该请求资源管理器附加功能程序的功能程序ID以及将与该功能程序协同操作的所有副处理器程序的副处理器程序ID和副处理器程序优先级。
响应于所述请求,在步骤1113,信息处理装置1001中的资源管理器查阅自身装置(信息处理装置1001)的图18所示的副处理器管理表,以确定在自身装置中是否可以获得n个空闲副处理器。如果在自身装置中可以获得n个或更多空闲副处理器,那么处理从步骤1113前进到步骤1114。在步骤1114,资源管理器确保自身装置中的n个副处理器,并且,对于每个所确保的副处理器,将副处理器管理表中的副处理器状态从未使用重写为被预定,并重写副处理器程序ID、功能程序ID、和副处理器程序优先级,使得它们与将由所确保的副处理器执行的副处理器程序的副处理器程序ID、功能程序ID、和副处理器程序优先级相一致。此外,资源管理器发布锁定序号,并将其记载到副处理器管理表中。
随后,处理前进到步骤1115,在步骤1115,信息处理装置1001中的资源管理器向功能程序发布在自身装置中确保了n个副处理器程序的事实、以及这n个所确保的副处理器中的每一个的副处理器ID、副处理器程序ID和锁定序号的通知。
现在参照图61,在步骤1117,功能程序从资源管理器接收通知,并将等于所确保的副处理器数量的所确保的副处理器的多个副处理器ID、副处理器程序ID、副处理器程序主体和锁定序号连同功能程序自己的功能程序ID一起传送给自身装置(信息处理装置1001)的资源管理器。
在步骤1121,信息处理装置1001中的资源管理器接收从功能程序传送的信息,并存储用于副处理器的副处理器程序。然后在步骤1122,信息处理装置1001中的资源管理器确定所接收的处理器程序ID和锁定序号是否与自身装置的副处理器管理表中的那些相同。如果它们相同,那么处理前进到步骤1123,在步骤1123,信息处理装置1001中的资源管理器将副处理器程序传送到所确保的副处理器。然后在步骤1124,信息处理装置1001中的资源管理器向功能程序发布通知:副处理器程序被传送到副处理器。
从而,完成了可以仅在信息处理装置1001内的空闲副处理器中确保必需数量的副处理器的副处理器分配处理。
在传送副处理器程序的同时,或在传送副处理器程序之后,将由所确保的副处理器处理的数据被传送到所确保的副处理器。因此,每个所确保的副处理器都可执行副处理器程序。
如果信息处理装置1001中的资源管理器在步骤1122确定从功能程序接收的副处理器程序ID或锁定序号与自身装置的副处理器管理表中的那些不同,那么处理从步骤1122前进到步骤1126,在步骤1126,信息处理装置1001中的资源管理器向功能程序发布错误通知。
在此实例中,在步骤1127,功能程序执行错误处理。具体地说,错误处理可以是以步骤1112再次开始的副处理器分配处理的执行。
另一方面,如果信息处理装置1001中的资源管理器在图60的步骤1113确定在自身装置中不能获得n个空闲副处理器,即信息处理装置1001只包括n-1个空闲副处理器或更少(包括0),那么处理从步骤1113前进到图62示出的步骤1131。现在参照图62,在步骤1131,信息处理装置1001中的资源管理器确定是否有某个不同信息处理装置连接到网络。图59示出连接了不同信息处理装置1002、1003和1004。
然后,如果一个或多个不同信息处理装置连接到网络,那么处理从步骤1131前进到步骤1132,在步骤1132,信息处理装置1001中的资源管理器向所述不同信息处理装置之一(在本情况中,信息处理装置1002)中的资源管理器发布关于副处理器的空闲状况的查询。
使用如图28A所示的这种副处理器空闲状况查询命令来传达查询。参照图28A,副处理器空闲状况查询命令包括发送者ID(在此实例中,信息处理装置1001的信息处理装置ID)、传送目的地ID(在此实例中,信息处理装置1002的信息处理装置ID)、以及响应目的地ID(在此实例中,信息处理装置1001的信息处理装置ID)。副处理器空闲状况查询命令还包括作为DMA命令的副处理器空闲状况查询命令主体和功能程序ID。
仍参照图62,响应于来自信息处理装置1001中的资源管理器的查询,在步骤1133,不同信息处理装置(在此实例中,信息处理装置1002)中的资源管理器从自身装置中的副处理器管理表确定自身装置中的副处理器的空闲状况。然后在步骤1135,如果在自身装置中可以获得空闲副处理器,那么不同信息处理装置中的资源管理器向信息处理装置1001中的资源管理器发布空闲副处理器的数量和副处理器ID的通知。然而,如果自身装置中不能获得空闲副处理器,那么不同信息处理装置中的资源管理器向信息处理装置1001中的资源管理器发布对此的通知。
使用如图28B所示的这种副处理器空闲状况返回命令来传达通知。参照图28B,副处理器空闲状况返回命令包括发送者ID(在此实例中,信息处理装置1002的信息处理装置ID)、传送目的地ID(在此实例中,信息处理装置1001的信息处理装置ID)、以及响应目的地ID(在此实例中,信息处理装置1001的信息处理装置ID)。副处理器空闲状况返回命令还包括作为DMA命令的副处理器空闲状况返回命令主体、功能程序ID、空闲副处理器的数量、以及空闲副处理器的副处理器ID。
信息处理装置1001中的资源管理器接收通知,并在图63所示的步骤1136确定是否可以确保包括自身装置(信息处理装置1001)中的空闲副处理器和不同装置(信息处理装置1002)中的空闲副处理器的总共n个副处理器。
在n是比较大的数字例如8、9或10的情况下,如果在信息处理装置1001中只能确保一个副处理器,而在信息处理装置2中只能确保n-2个副处理器,那么不能确保总共n个副处理器。
如果以这种方式不能确保总共n个副处理器,那么信息处理装置1001中的资源管理器使处理从步骤1136前进(返回)到图62中的步骤1131,在步骤1131,该资源管理器确定是否有另一不同信息处理装置连接到网络。图59示出不同信息处理装置1003和1004连接到网络。
随后,与上述信息处理装置1002的情况类似地重复步骤1132、1133、1135、1136、和1131的处理,直到在整个网络***上成功地确保n个副处理器之后为止,或者直到检测到不再有任何信息处理装置连接到网络之后为止。
在除了信息处理装置1001之外多个信息处理装置连接到网络的情况中,可以按照例如与上文所述的主导装置的确定方法相似的方式,来确定信息处理装置1001中的资源管理器向不同信息处理装置发布关于副处理器的空闲状况的查询的顺序。具体地说,可能的思想是用数值替换网络上的各个信息处理装置的信息处理装置ID,并以该数值的升序向信息处理装置发布关于副处理器的空闲状况的查询。
然后,如果可以从整个网络***上的空闲副处理器中确保n个副处理器,那么处理从如图63所示的步骤1136前进到步骤1137。在步骤1137,信息处理装置1001中的资源管理器向功能程序发布可以确保n个副处理器的通知。
在步骤1138,如下文所述,功能程序接收通知,并将副处理器确保请求输出到自身装置(信息处理装置1001)中的资源管理器。
另一方面,如果信息处理装置1001中的资源管理器在图62的步骤1131确定不再有信息处理装置连接到网络,也就是说,如果它确定不能从整个网络***(其中只有信息处理装置1001连接到该网络,仅在信息处理装置1001中)中的空闲副处理器中确保n个副处理器,那么处理从步骤1131前进到图63所示的步骤1141。参照图63,在步骤1141,信息处理装置1001中的资源管理器确定该装置自己(信息处理装置1001)是否包括执行具有比功能程序的优先级低的优先级的副处理器程序的那些副处理器,并且,如果这种副处理器存在,则检测这种副处理器的数量。
此实例中的“正在执行”不仅包括副处理器忙碌(当前被使用)的情况,还包括副处理器被预定(尽管当前副处理器没有被使用,但它们被预定用于使用)的另一情况。在以下描述中,具有比功能程序的优先级低的优先级的副处理器程序被简称为“具有较低优先级的副处理器程序”。
然后,在步骤1143,信息处理装置1001中的资源管理器确定是否可以确保包括整个网络***中的空闲副处理器和自身装置(信息处理装置1001)中执行具有较低优先级的副处理器程序的副处理器在内的总共n个副处理器。如果可以确保这样的n个副处理器,那么处理从步骤1143前进到步骤1144,在步骤1144,信息处理装置1001中的资源管理器向功能程序发布可以确保n个副处理器的通知。
在步骤1138,如下文所述,功能程序接收通知,并将副处理器确保请求输出到自身装置(信息处理装置1001)中的资源管理器。
另一方面,如果在步骤1143信息处理装置1001中的资源管理器确定不能确保包括整个网络***中的空闲副处理器和自身装置(信息处理装置1001)中执行具有较低优先级的副处理器程序的副处理器在内的总共n个副处理器,那么处理从步骤1143前进到图64所示的步骤1151。参照图64,在步骤1151,信息处理装置1001中的资源管理器确定不同信息处理装置是否连接到网络。
如果不同信息处理装置连接到网络,那么处理从步骤1151前进到步骤1152,在步骤1152,信息处理装置1001中的资源管理器向不同信息处理装置(在此实例中,信息处理装置1002)中的资源管理器发布关于执行具有较低优先级的副处理器程序的那些副处理器的存在或不存在、以及这种副处理器的数量的查询。同样,这个实例中的“正在执行”不仅包括忙碌状态还包括预定状态。
所述查询是使用这样的命令传达的,该命令包括如上文中参照图28A所述的这种副处理器空闲状况查询命令、以及将与功能程序协同操作的副处理器程序的副处理器程序优先级。
响应于所述查询,在图64中的步骤1153,不同信息处理装置(在这个实例中,信息处理装置1002)中的资源管理器从自身装置中的副处理器管理表确定自身装置是否包括执行具有较低优先级的副处理器程序的那些副处理器。如果这种副处理器存在,那么不同信息处理装置中的资源管理器向信息处理装置1001中的资源管理器发布副处理器的数量和副处理器ID的通知。然而,如果自身装置不包括执行具有较低优先级的副处理器程序的那些副处理器,那么不同信息处理装置中的资源管理器向信息处理装置1001中的资源管理器发布对此的通知。
所述通知是使用这样的命令传达的,该命令包括如上文中参照图28B所述的这种副处理器空闲状况返回命令,但是该命令描述各自执行具有较低优先级的副处理器程序的副处理器的数量和副处理器ID,而不是空闲副处理器的数量和副处理器ID。
响应于所述通知,在图64中的步骤1154,信息处理装置1001中的资源管理器确定是否可以确保包括整个网络***中的空闲副处理器、以及在自身装置(信息处理装置1001)和不同装置(在这个实例中,信息处理装置1002)中执行具有较低优先级的副处理器程序的副处理器在内的n个副处理器。
例如,在n=7的情况下,如果整个网络***只包括两个空闲副处理器并且信息处理装置1001只包括两个执行具有较低优先级的副处理器程序的副处理器、而信息处理装置1002只包括两个执行具有较低优先级的副处理器程序的副处理器,那么不能确保总共n个副处理器。
如果以这种方式不能确保总共n个副处理器,那么信息处理装置1001中的资源管理器使处理从步骤1154前进(返回)到步骤1151,在步骤1151,确定另外的不同信息处理装置是否连接到网络。
随后,与上述的信息处理装置1002的情况类似地重复步骤1152、1153、1154和1151的处理,直到在整个网络***上成功地确保n个副处理器之后为止,或者直到检测到不再有任何信息处理装置连接到网络之后为止。
然后,如果可以在整个网络***中确保包括空闲副处理器和执行具有较低优先级的副处理器程序的那些副处理器在内的n个副处理器,那么处理从步骤1154前进到步骤1155。在步骤1155,信息处理装置1001中的资源管理器向功能程序发布可以确保n个副处理器的通知。
在步骤158,功能程序接收通知,并以下列方式将副处理器确保请求输出到自身装置(信息处理装置1001)中的资源管理器。
具体地说,如果在图63的步骤1138或图64的步骤1158,功能程序从信息处理装置1001中的资源管理器接收到可以确保n个副处理器的通知,那么在如图65所示的步骤1161,它将确保n个副处理器的请求输出到自身装置(信息处理装置1001)中的资源管理器。
现在参照图65,响应于确保请求,如果自身装置(信息处理装置1001)包括要确保的副处理器,那么在步骤1162,信息处理装置1001中的资源管理器在自身装置中确保这样的副处理器。然后在步骤1163,信息处理装置1001中的资源管理器确定是否应当在不同信息处理装置中确保一些副处理器。如果不应当在不同信息处理装置中确保副处理器,那么处理从步骤1163前进到步骤1164,在步骤1164,信息处理装置1001中的资源管理器向功能程序发布确保了n个副处理器的通知。
不能仅从信息处理装置1001内的空闲副处理器中确保n个副处理器,并且除了信息处理装置1001以外没有其它信息处理装置连接到网络。然而,在可确保n个副处理器的情况中,如果包括信息处理装置1001中执行具有较低优先级的副处理器程序的那些副处理器,则仅在信息处理装置1001中确保n个副处理器。
在这个实例中,对于在自身装置中确保的、其在自身装置的副处理器管理表中的副处理器状态是未使用的那些副处理器,信息处理装置1001中的资源管理器将副处理器状态从未使用重写为被预定。另外,对于在自身装置中确保的每个副处理器,信息处理装置1001中的资源管理器重写自身装置的副处理器管理表中的副处理器程序ID、功能程序ID和副处理器程序优先级,以便与将由所确保的副处理器执行的副处理器程序的副处理器程序ID、功能程序ID和副处理器程序优先级相一致。此外,对于在自身装置中确保的每个副处理器,信息处理装置1001中的资源管理器发布锁定序号,并将该锁定序号记载在副处理器管理表中。然后在步骤1164,信息处理装置1001中的资源管理器将所提及的信息传送给功能程序。
要在步骤1164传送的信息具体包括所确保的副处理器的数量和所确保的副处理器的副处理器ID和锁定序号。
如图65所示,在步骤1167,如下文所述,功能程序接收副处理器确保通知,并将用于该副处理器的副处理器程序传送到自身装置(信息处理装置1001)中的资源管理器。
应当注意,如果在步骤1162将自身装置中执行具有较低优先级的副处理器程序的副处理器确保为用于执行与功能程序协同操作的副处理器程序的副处理器,那么信息处理装置1001中的资源管理器向具有较低优先级的副处理器程序、和与具有较低优先级的副处理器程序协同操作的一个或多个功能程序发布副处理器已被取走的通知。
另一方面,如果要确保的n个副处理器包括要在不同信息处理装置中确保的那些副处理器,那么处理从步骤1163前进到步骤1171。在步骤1171,信息处理装置1001中的资源管理器向信息处理装置1002、1003和1004中的资源管理器发布确保副处理器的请求。在步骤1172,信息处理装置1002、1003和1004中的资源管理器的每一个在自身装置中确保自身装置所需的副处理器。
对任何不同信息处理装置的确保副处理器的请求是使用这样的软件单元传达的,该软件单元包括作为DMA命令的副处理器确保请求命令,如图29A所示。具体地说,参照图29A,副处理器确保命令包括作为DMA命令的副处理器确保请求命令主体、功能程序ID、副处理器程序优先级、确保请求副处理器数量、以及与被请求确保的副处理器数量相等的多个副处理器程序ID。
不能只从信息处理装置1001中的空闲副处理器中确保n个副处理器。在可以确保n个副处理器的情况中,如果除了信息处理装置1001之外还有一个或多个不同信息处理装置连接到网络、并且只包括整个网络***中的空闲副处理器或者包括在整个网络***中执行具有较低优先级的副处理器程序的副处理器,那么以这种方式在包括所述一个或多个不同信息处理装置的整个网络***中确保n个副处理器。
在这个实例中,对于在自身装置中确保的、其在自身装置的副处理器管理表中的副处理器状态是未使用的那些副处理器,每个信息处理装置1002、1003和1004中的资源管理器将副处理器状态由未使用重写为被预定。另外,对于在自身装置中确保的每个副处理器,每个信息处理装置1002、1003和1004中的资源管理器重写自身装置的副处理器管理表中的副处理器程序ID、功能程序ID和副处理器程序优先级,以便与将由所确保的副处理器执行的副处理器程序的那些副处理器程序ID、功能程序ID和副处理器程序优先级相一致。此外,对于在自身装置中确保的每个副处理器,每个信息处理装置1002、1003和1004中的资源管理器发布锁定序号,并将该锁定序号记载在副处理器管理表中。
另外,如果在步骤1172自身装置中执行具有较低优先级的副处理器程序的副处理器被确保为用于执行与功能程序协同操作的副处理器程序的副处理器,那么每个信息处理装置1002、1003和1004中的资源管理器向具有较低优先级的副处理器程序以及与具有较低优先级的副处理器程序协同操作的一个或多个功能程序发布副处理器已被取走的通知。
另外,在图66中的步骤1173,信息处理装置1002、1003和1004中的资源管理器向信息处理装置1001中的资源管理器发布通知:在自身装置中确保了向自身装置请求的副处理器。
所述通知是使用这种软件单元传达的,该软件单元包括如图29B所示作为DMA命令的副处理器确保返回命令。具体地说,参照图29B,副处理器确保返回命令包括作为DMA命令的副处理器确保返回命令主体、功能程序ID、副处理器程序优先级、所确保的副处理器的数量、以及每个所确保的副处理器的副处理器ID、副处理器程序ID和锁定序号。
参照图66,在信息处理装置1001中的资源管理器从不同信息处理装置1002、1003和1004中的资源管理器接收到副处理器确保通知之后,在步骤1174,它向功能程序发布确保了n个副处理器的通知。
在步骤1177,功能程序接收副处理器确保通知,并将用于副处理器的副处理器程序传送给自身装置(信息处理装置1001)中的资源管理器。
具体地说,如果在图65的步骤1167或图66的步骤1177,功能程序从信息处理装置1001中的资源管理器接收到确保了n个副处理器的通知,那么在图66中的步骤1181,其将用于所确保的副处理器的副处理器程序连同对应于每个副处理器程序的副处理器程序ID、副处理器ID和锁定序号以及在其中确保了这些副处理器的那些信息处理装置的信息处理装置ID一起传送。
参照图66和67,在步骤1182,信息处理装置1001中的资源管理器接收从功能程序传送的副处理器程序,并且如果其中一些副处理器程序用于自身装置(信息处理装置1001),则将有关副处理器程序传送给在自身装置中确保的副处理器。然后在步骤1183,信息处理装置1001中的资源管理器确定是否有一些副处理器程序用于一个或多个不同信息处理装置。如果没有副处理器程序用于任何不同信息处理装置,则处理从步骤1183前进到步骤1184,在步骤1184,信息处理装置1001中的资源管理器向功能程序传送这样的通知:副处理器程序被传送到所确保的副处理器。
另一方面,如果从功能程序传送的副处理器程序包括用于一个或多个不同信息处理装置的那些副处理器程序,则处理从步骤1183前进到步骤1191。在步骤1191,信息处理装置1001中的资源管理器分别将用于各个信息处理装置1002、1003和1004的副处理器程序传送到信息处理装置1002、1003和1004中的资源管理器。
对于该传送,使用包括如图30所示的作为DMA命令的副处理器程序传送命令的这种软件单元。具体地说,参照图30,作为DMA命令,副处理器程序传送命令包括副处理器程序传送命令主体、用于每个所确保的副处理器的副处理器ID、锁定序号、用于每个所确保的副处理器的副处理器程序的副处理器程序ID、以及用于每个所确保的副处理器的副处理器程序主体。
在步骤1192,每个不同信息处理装置1002、1003和1004中的资源管理器将用于自身装置的副处理器程序传送到在该自身装置中确保的副处理器。然后在步骤1193,每个信息处理装置1002、1003和1004中的资源管理器向信息处理装置1001中的资源管理器发布这样的通知:副处理器程序被传送到所确保的副处理器。在步骤1184,信息处理装置1001中的资源管理器从信息处理装置1002、1003和1004接收该通知,并向功能程序发布这样的通知:副处理器程序被传送到所确保的副处理器程序。
应当注意,在图66的步骤1182或在图67的步骤1192,信息处理装置1001中的资源管理器和信息处理装置1002、1003和1004中的资源管理器中的每一个确定从功能程序接收的用于所确保的副处理器的副处理器程序的副处理器程序ID和锁定序号是否与自身装置中的副处理器管理表中的那些相同。然后,如果它们不同,则信息处理装置1001中的资源管理器直接向功能程序发布错误通知,或者信息处理装置1002、1003和1004中的资源管理器通过信息处理装置1001中的资源管理器向功能程序发布错误通知。然而,在图66和67中,这被省略了,而是只示出不包含错误的情况。
参照图67,在步骤1187,功能程序从信息处理装置1001中的资源管理器接收以下通知:副处理器程序被传送到所确保的副处理器。
按照如上所述的这种方式执行副处理器分配处理。不能只从信息处理装置1001内的空闲副处理器中确保n个副处理器,但是如果包括信息处理装置1001中执行具有较低优先级的副处理器程序的副处理器,则可以仅在信息处理装置1001中确保n个副处理器。可替换地,不能仅从信息处理装置1001内的空闲副处理器中确保n个副处理器,但是如果除了信息处理装置1001之外还有一个或多个不同信息处理装置连接到网络,则可以只从整个网络***内的空闲处理器中确保n个副处理器,或者可以确保包括在整个网络***中执行具有较低优先级的副处理器程序的副处理器的n个副处理器。
在传送副处理器程序的同时,或在传送副处理器程序之后,将由所确保的副处理器处理的数据被传送给所确保的副处理器。因此,所确保的副处理器可以单独地执行副处理器程序。
另一方面,如果在图64的步骤1151,信息处理装置1001中的资源管理器确定没有不同信息处理装置连接到网络,也就是说,如果信息处理装置1001中的资源管理器确定不能确保包括整个网络***中的空闲副处理器和执行具有较低优先级的副处理器程序的副处理器的n个副处理器,则处理从步骤1151前进到图68所示的步骤1195。参照图68,在步骤1195,信息处理装置1001中的资源管理器向功能程序发布以下通知:不能确保n个副处理器。
在步骤1197,功能程序接收通知并执行错误处理。在此实例中,错误处理可以是向用户发布不能立即执行处理的通知,并在一段时间后再次执行以图60的步骤1112开始的副处理器分配处理,或催促用户执行操作。
应当注意,如果将副处理器已被取走的通知发布给具有较低优先级的副处理器程序,则执行与所述副处理器程序相对应的不同处理。
在上述示例中,按照信息处理装置ID的所替换的数值的升序,即按照信息处理装置1001→信息处理装置1002→信息处理装置1003→信息处理装置1004的顺序发布有关副处理器的空闲状况的查询和确保副处理器的请求。然而,也可以以其它方式配置***,使得例如当要执行的副处理器程序的优先级为高时,每个信息处理装置中的资源管理器根据作为上文所述的装置信息一部分的每个信息处理装置的主处理器操作频率,来确定连接到网络1009的每个信息处理装置的操作频率,并以操作频率的降序向信息处理装置发布有关副处理器的空闲状况的查询和确保副处理器的请求。
可替换地,可以配置***,使得从作为装置信息一部分的信息处理装置类型ID确定连接到网络1009的每个信息处理装置的类型,并且从与网络1009断开可能性小的信息处理装置例如硬盘记录器按顺序将有关副处理器的空闲状况的查询和确保副处理器的请求发布给从网络1009断开可能性大的另一信息处理装置,例如PDA或便携式CD播放器。
另外,在上述示例中,当不能从信息处理装置1001内的空闲副处理器中确保必需数量的副处理器时,信息处理装置1001中的资源管理器首先向不同信息处理装置中的资源管理器发布有关副处理器的空闲状态的查询,并且随后在可以在整个网络***中确保必需数量的副处理器时,发布确保副处理器的请求。然而,***可以以其它方式配置,使得信息处理装置1001中的资源管理器向不同信息处理装置中的资源管理器发布确保副处理器的请求,而不发布有关副处理器空闲状况的查询。
此外,在上述示例中,信息处理装置1001作为主导装置操作,并且使用主导装置作为起点来执行副处理器分配处理。然而,***可以以其它方式配置,使得例如当用户操作作为从属装置运行的信息处理装置时,使用所操作的从属装置作为起点来执行副处理器分配处理。
[8.当信息处理装置从网络断开时通过副处理器分配进行的分布式处理2]
在如图59所示多个信息处理装置1001、1002、1003和1004连接到网络1009的时候,用户可能错误地将所述信息处理装置之一从网络1009断开(信息处理装置被物理地从网络1009断开,或者信息处理装置的主电源被切断)。可替换地,某个信息处理装置可能由于诸如强烈振动的某个外部因素而从网络1009断开。如果所断开的信息处理装置中的副处理器正在执行或被预定用于执行包括在未从网络1009断开的另一信息处理装置中的副处理器程序,那么优选的是,未断开的信息处理装置中的副处理器代替所断开的信息处理装置中的副处理器来执行副处理器程序。
因此,在这样的实例中,以下列方式分配未断开的信息处理装置中的副处理器,以执行由所断开的信息处理装置中的副处理器正在执行或预定用于执行的副处理器程序。
(8-1.***配置)
图69示出:当如图59所示4个信息处理装置1001、1002、1003和1004连接到网络1009时,信息处理装置1004从网络1009断开。
作为其软件配置,每个信息处理装置包括如图17所示的作为控制程序的资源管理器,并在该资源管理器中准备在上文中参照图18描述的这种副处理器管理表。副处理器管理表具有如上所述的那些内容。
(8-2.副处理器分配处理)
图70到78图示了由信息处理装置1001中的主导/从属(MS)管理器、信息处理装置1001的主存储器1026-1中的功能程序、信息处理装置1001中的资源管理器、以及不同信息处理装置1002和1003中的资源管理器执行的副处理器分配处理的示例。当如图69所示信息处理装置1001、1002、1003和1004连接到网络1009时,倘若信息处理装置1004从网络1009断开,则信息处理装置1001在信息处理装置1001中或不同信息处理装置1002和1003中确保用于执行副处理器程序的副处理器。副处理器程序与信息处理装置1001的主存储器1026-1中的功能程序协同操作。
信息处理装置1001、1002和1003中的MS管理器检测到信息处理装置1004已经从网络1009断开。
然后,在信息处理装置1001中的MS管理器检测到信息处理装置1004从网络1009断开之后,在如图70所示的步骤1201,它向自身装置(信息处理装置1001)中的资源管理器发布所断开的信息处理装置1004的信息处理装置ID的通知。然后在步骤1202,信息处理装置1001中的资源管理器将信息处理装置ID传送给自身装置的主存储器1026-1中的功能程序。
信息处理装置1001的主存储器1026-1中的功能程序接收信息处理装置ID,并从如上文中参照图28到30和60到68所述的这种副处理器分配处理的结果确定所断开的信息处理装置1004中的副处理器是否执行了与该功能程序自己协同操作的副处理器程序。
同样,这个实例中的“正在执行”不仅包括忙碌状态(副处理器当前被使用的状态),还包括预定状态(副处理器程序当前未被使用但被预定用于使用的状态)。
然后,如果所断开的信息处理装置1004中的副处理器均未执行与功能程序协同操作的副处理器程序,那么由于以后的处理是非必需的,因此副处理器分配处理立即结束。
另一方面,如果所断开的信息处理装置1004中的一些或全部副处理器执行了与功能程序协同操作的副处理器程序,那么处理从步骤1203前进到步骤1212。在步骤1212,功能程序将使用执行将与功能程序协同操作的副处理器程序、而不是所断开的信息处理装置1004中的副处理器程序所必需的数量(由m表示)的副处理器的请求输出到自身装置(信息处理装置1001)中的资源管理器,其中,所述请求附加功能程序的功能程序ID、以及由所断开的信息处理装置1004中的副处理器执行了(包括如上文所述的预定用于执行)将与功能程序协同操作的副处理器程序的副处理器程序ID。
响应于所述请求,在图71中所示的步骤1213,信息处理装置1001中的资源管理器查阅自身装置(信息处理装置1001)的图18所示的副处理器管理表,以确定在自身装置中是否可获得m个空闲副处理器。如果在自身装置中可获得m个或更多空闲副处理器,那么处理从步骤1213前进到步骤1214。在步骤1214,信息处理装置1001中的资源管理器在自身装置中确保m个副处理器,并且,对于每个所确保的副处理器,将副处理器管理表中的副处理器状态从未使用重写为被预定,并重写副处理器程序ID、功能程序ID和副处理器程序优先级,使得它们与将由所确保的副处理器程序执行的副处理器程序的那些副处理器程序ID、功能程序ID和副处理器程序优先级相一致。另外,资源管理器发布锁定序号,并将其记载到副处理器管理表中。
随后,处理前进到步骤1215,在步骤1215,信息处理装置1001中的资源管理器向功能程序发布在自身装置中确保了m个副处理器程序的事实、以及这m个所确保的副处理器的每一个的副处理器ID和锁定序号的通知。
在步骤1217,功能程序从资源管理器接收通知,并将与所确保的副处理器数量相等的多个所确保的副处理器的副处理器ID、副处理器程序ID、副处理器程序主体和锁定序号连同功能程序自己的功能程序ID一起传送到自身装置(信息处理装置1001)中的资源管理器。
现在参照图72,在步骤1221,信息处理装置1001中的资源管理器接收从功能程序传送的信息,并存储用于副处理器的副处理器程序。然后在步骤1222,信息处理装置1001中的资源管理器确定接收到的处理器程序ID和锁定序号是否与自身装置的副处理器管理表中的处理器程序ID和锁定序号相同。如果它们相同,那么处理前进到步骤1223,在步骤1223,信息处理装置1001中的资源管理器将副处理器程序传送到所确保的副处理器。然后在步骤1224,信息处理装置1001中的资源管理器向功能程序发布通知:副处理器程序被传送到副处理器。
从而,完成了副处理器分配处理,其中,可以只在信息处理装置1001内的空闲副处理器中确保必需数目的副处理器。
在传送副处理器程序的同时,或在传送副处理器程序之后,将由所确保的副处理器处理的数据被传送到所确保的副处理器。因此,所确保的副处理器可执行各个副处理器程序。
如果在步骤1222信息处理装置1001中的资源管理器确定从功能程序接收到的副处理器程序ID或锁定序号与自身装置的副处理器管理表中的副处理器程序ID或锁定序号不同,那么处理从步骤1222前进到步骤1226,在步骤1226,信息处理装置1001中的资源管理器向功能程序发布错误通知。在这个实例中,在步骤1227,功能程序执行错误处理。
另一方面,如果在图71的步骤1213,信息处理装置1001中的资源管理器确定在自身装置中不能获得m个空闲副处理器,即信息处理装置1001只包括m-1个空闲副处理器或更少(包括0),那么处理从步骤1213前进到图73所示的步骤1229。现在参照图73,在步骤1229,如果在自身装置中包括一些空闲副处理器,那么将这些副处理器确保为自身装置的副处理器。
然后,处理前进到步骤1231,在步骤1231,信息处理装置1001中的资源管理器确定是否有某个不同信息处理装置连接到网络。图69示出连接了不同信息处理装置1002和1003。
然后,如果一个或多个不同信息处理装置连接到网络,那么处理从步骤1231前进到步骤1232,在步骤1232,信息处理装置1001中的资源管理器向不同信息处理装置之一(在本情况中,信息处理装置1002)中的资源管理器发布确保空闲副处理器的请求。
确保请求是使用如图29A所示的这种副处理器确保请求命令来传达的。确保请求的副处理器的数量用m-a来表示,其中“a”是在步骤1229在信息处理装置1001中确保的副处理器数量,并且0≤a<m。
参照图73,响应于来自信息处理装置1001中资源管理器的确保请求,在步骤1233,不同信息处理装置(在这个实例中,信息处理装置1002)中的资源管理器从自身装置中的副处理器管理表确定自身装置中的副处理器的空闲状况。然后在步骤1234,如果在自身装置中可获得空闲副处理器,那么不同信息处理装置中的资源管理器在自身装置中确保等于或小于m-a的数量的副处理器。然后在步骤1235,如果在自身装置中确保了副处理器,那么不同信息处理装置中的资源管理器向信息处理装置1001中的资源管理器发布所确保的副处理器的数量和每个所确保的副处理器的副处理器ID、副处理器程序ID和锁定序号的通知。然而,如果在自身装置中不能确保空闲副处理器,那么不同信息处理装置中的资源管理器向信息处理装置1001中的资源管理器发布对此的通知。这个通知是使用如上文中参照图29B所述的这种副处理器确保返回命令传达的。
信息处理装置1001中的资源管理器接收通知,并在图74所示的步骤1236确定是否成功地确保了包括在自身装置(信息处理装置1001)中确保的副处理器和在不同装置(信息处理装置1002)中确保的副处理器在内的总共m个副处理器。
然后,如果不能确保总共m个副处理器,那么信息处理装置1001中的资源管理器使处理从步骤1236前进(返回)到图73所示的步骤1231。在步骤1231,信息处理装置1001中的资源管理器确定是否有另外的不同信息处理装置连接到网络。图69示出除了信息处理装置1002以外,不同信息处理装置1003也连接到网络1009。
随后,与上述信息处理装置1002的情况类似地重复步骤1232、1233、1234、1235、1236和1231的处理,直到在整个网络***上成功地确保m个副处理器之后为止、或者直到检测到不再有任何信息处理装置连接到网络为止。
然后,如果在整个网络***内的空闲副处理器中成功地确保m个副处理器,那么处理从图74所示的步骤1236前进到步骤1237。在步骤1237,信息处理装置1001中的资源管理器向功能程序发布确保了m个副处理器的通知。
在步骤1238,功能程序接收副处理器确保通知,并将用于副处理器的副处理器程序传送给自身装置(信息处理装置1001)中的资源管理器,如下文所述。
另一方面,如果在图73的步骤1231,信息处理装置1001中的资源管理器确定不再有信息处理装置连接到网络,也就是说,如果它确定不能从整个网络***(其中只有信息处理装置1001连接到该网络,只在信息处理装置1001中)内的空闲副处理器中确保m个副处理器,那么处理从步骤1231前进到图74所示的步骤1241。参照图74,在步骤1241,信息处理装置1001中的资源管理器确定该装置自己(信息处理装置1001)是否包括执行具有比功能程序优先级低的优先级的副处理器程序的那些副处理器,并且如果这种副处理器存在,则检测这种副处理器的数量。
同样,这个实例中的“正在执行”不仅包括副处理器忙碌(当前被使用)的情况,还包括副处理器被预定(尽管副处理器当前未被使用,但它们被预定用于使用)的另一情况。在以下描述中,具有比功能程序优先级低的优先级的副处理器程序被简称为“具有较低优先级的副处理器程序”。
然后在步骤1242,如果信息处理装置1001中的一些副处理器正在执行具有较低优先级的副处理器程序,那么信息处理装置1001中的资源管理器在一范围内确保执行具有较低优先级的副处理器程序的那些副处理器,其中,在所述范围内,可以确保包括整个网络***中的空闲副处理器在内的m个副处理器。另外,信息处理装置1001中的资源管理器向具有较低优先级的副处理器程序发布副处理器已被取走的通知。
随后,处理前进到图75所示的步骤1243。参照图75,在步骤1243,信息处理装置1001中的资源管理器确定是否成功地确保了包括整个网络***中的空闲副处理器和自身装置(信息处理装置1001)中执行具有较低优先级的副处理器程序的副处理器在内的总共m个副处理器。如果成功地确保了m个副处理器,那么处理从步骤1243前进到步骤1244,在步骤1244,信息处理装置1001中的资源管理器向功能程序发布成功地确保了m个副处理器的通知。
在步骤1248,功能程序接收副处理器确保通知,并将用于副处理器的副处理器程序传送给自身装置(信息处理装置1001)中的资源管理器,如下文所述。
另一方面,如果在步骤1243信息处理装置1001中的资源管理器确定不能确保包括整个网络***中的空闲副处理器和自身装置中执行具有较低优先级的副处理器程序的副处理器在内的总共m个副处理器,那么处理从步骤1243前进到步骤1251。在步骤1251,信息处理装置1001中的资源管理器确定不同信息处理装置是否连接到网络。
如果不同信息处理装置连接到网络,那么处理从步骤1251前进到步骤1252,在步骤1252,信息处理装置1001中的资源管理器向不同信息处理装置(在这个实例中,信息处理装置1002)中的资源管理器发布确保正在执行具有较低优先级的副处理器程序的那些副处理器的请求。该确保请求是使用如上文参照图29A所述的这种副处理器确保请求命令传达的。
现在参照图76,响应于确保请求,在步骤1253,不同信息处理装置(在这个实例中,信息处理装置1002)中的资源管理器从自身装置中的副处理器管理表确定自身装置是否包括正在执行具有较低优先级的副处理器程序的那些副处理器。如果存在这种副处理器,那么不同信息处理装置中的资源管理器确保正在执行具有较低优先级的副处理器程序的副处理器,并将所确保的副处理器数量以及每个所确保的副处理器的副处理器ID、副处理器程序ID和所发布的锁定序号的通知发布给信息处理装置1001中的资源管理器。然而,如果自身装置不包括正在执行具有较低优先级的副处理器程序的那些副处理器,那么不同信息处理装置中的资源管理器将对此的通知发布给信息处理装置1001中的资源管理器。所述通知是使用如上文参照图29B所述的这种副处理器确保返回命令传达的。
应当注意,如果在步骤1253确保了不同信息处理装置(在这个实例中,信息处理装置1002)中正在执行具有较低优先级的副处理器程序的副处理器,那么该不同信息处理装置中的资源管理器向与副处理器程序协同操作的功能程序发布以下通知:副处理器已被取走。
响应于来自不同信息处理装置(在此实例中,信息处理装置1002)中的资源管理器的确保通知,在图76中的步骤1254,信息处理装置1001中的资源管理器确定是否成功地确保了包括整个网络***中的空闲副处理器以及自身装置(信息处理装置1001)和不同装置(在这个实例中,信息处理装置1002)中正在执行具有较低优先级的副处理器程序的副处理器在内的m个副处理器。然而,如果不能确保总共m个副处理器,那么处理从步骤1254前进(返回)到图75所示的步骤1251,在步骤1251,信息处理装置1001中的资源管理器确定是否有另外的不同信息处理装置连接到网络。
随后,与上述信息处理装置1002的情况类似地重复步骤1252、1253、1254和1251的处理,直到在整个网络***上成功地确保m个副处理器之后为止,或者直到检测到不再有任何信息处理装置连接到网络为止。
然后,如果在整个网络***中成功地确保了包括空闲副处理器和正在执行具有较低优先级的副处理器程序的那些副处理器在内的m个副处理器,那么处理从步骤1254前进到步骤1255。在步骤1255,信息处理装置1001中的资源管理器向功能程序发布成功确保m个副处理器的通知。
在步骤1258,功能程序接收处理器确保通知,并以下列方式将用于副处理器的副处理器程序传送给自身装置(信息处理装置1001)中的资源管理器。
具体地说,如果在图74的步骤1238、图75的步骤1248、或图76的步骤1258,功能程序从信息处理装置1001中的资源管理器接收到成功确保m个副处理器的通知,那么在图77所示的步骤1281,功能程序将用于所确保的副处理器的副处理器程序传送给信息处理装置1001中的资源管理器。
参照图77,在步骤1282,信息处理装置1001中的资源管理器接收从功能程序传送的副处理器程序,并且如果其中一些副处理器程序用于自身装置(信息处理装置1001),则将有关副处理器程序传送给在自身装置中确保的副处理器。然后在步骤1283,信息处理装置1001中的资源管理器确定是否其中一些副处理器程序用于一个或多个不同信息处理装置。如果没有副处理器程序用于任何不同信息处理装置,那么处理从步骤1283前进到步骤1284,在步骤1284,信息处理装置1001中的资源管理器向功能程序传送以下通知:副处理器程序被传送到所确保的副处理器。
另一方面,如果从功能程序传送的副处理器程序包括用于一个或多个不同信息处理装置的那些副处理器程序,那么处理从步骤1283前进到步骤1291。在步骤1291,信息处理装置1001中的资源管理器分别将用于各个信息处理装置1002和1003的副处理器程序传送给信息处理装置1002和1003中的资源管理器。
在步骤1292,每个不同信息处理装置1002和1003中的资源管理器将用于自身装置的副处理器程序传送到自身装置中确保的副处理器。然后在步骤1293,每个信息处理装置1002和1003中的资源管理器向信息处理装置1001中的资源管理器发布以下通知:副处理器程序被传送到所确保的副处理器。在步骤1284,信息处理装置1001中的资源管理器从信息处理装置1002和1003接收所述通知,并向功能程序发布以下通知:副处理器程序被传送到所确保的副处理器。
应当注意,如果在图73的步骤1229或1234、图74的步骤1242、或图76的步骤1253,信息处理装置1001中的资源管理器以及信息处理装置1002和1003中的资源管理器的每一个在自身装置中确保了副处理器,则它重写自身装置中的副处理器管理表,并将信息处理装置1001、1002、或1003中的资源管理器发布的锁定序号记载在关于所确保的副处理器的副处理器管理表中。另外,在图77的步骤1282或1292,信息处理装置1001中的资源管理器以及信息处理装置1002和1003中的资源管理器的每一个确定从功能程序接收的副处理器程序ID和锁定序号是否与自身装置中的副处理器管理表中的副处理器程序ID和锁定序号相同。然后,如果它们不同,则信息处理装置1001中的资源管理器直接向功能程序发布错误通知,或者每个信息处理装置1002和1003中的资源管理器通过信息处理装置1001中的资源管理器向功能程序发布错误通知。然而,在图74到77中省略了这一点,而是只图示了不包含错误的情况。
参照图77,在步骤1287,功能程序从信息处理装置1001中的资源管理器接收以下通知:副处理器程序被传送到所确保的副处理器。
以如上所述的这种方式执行副处理器分配处理。不能只从信息处理装置1001中的空闲副处理器确保m个副处理器,但是如果包括信息处理装置1001中正在执行具有较低优先级的副处理器程序的副处理器,则可以只在信息处理装置1001中确保m个副处理器。可替换地,不能只从信息处理装置1001中的空闲副处理器确保m个副处理器,但是如果除了信息处理装置1001之外一个或多个不同信息处理装置也连接到网络,则可以只从整个网络***中的空闲处理器确保m个副处理器,或者可以确保包括整个网络***中正在执行具有较低优先级的副处理器程序的副处理器的m个副处理器。
在传送副处理器程序的同时,或在传送副处理器程序之后,将由所确保的副处理器处理的数据被传送到所确保的副处理器。从而,所确保的副处理器可单独执行副处理器程序。
另一方面,如果在图75的步骤1251信息处理装置1001中的资源管理器确定没有不同信息处理装置连接到网络,也就是说,如果信息处理装置1001中的资源管理器确定不能确保包括整个网络***中的空闲副处理器和正在执行具有较低优先级的副处理器程序的副处理器在内的m个副处理器,那么处理从步骤1251前进到图78所示的步骤1295。参照图78,在步骤1295,信息处理装置1001中的资源管理器向功能程序发布以下通知:不能确保m个副处理器。在步骤1297,功能程序接收所述通知并执行错误处理。
在上述示例中,按照信息处理装置ID的替换数值的升序,即按照信息处理装置1001→信息处理装置1002→信息处理装置1003→信息处理装置1004的顺序发布确保副处理器的请求。然而,***可以以其它方式配置,使得例如当要执行的副处理器程序的优先级为高时,每个信息处理装置中的资源管理器从作为上述装置信息一部分的每个信息处理装置的主处理器操作频率来确定连接到网络1009的每个信息处理装置的操作频率,并以操作频率的降序向信息处理装置发布确保副处理器的请求。
可替换地,可以配置***,使得从作为装置信息一部分的信息处理装置类型ID确定连接到网络1009的每个信息处理装置的类型,并且,从自网络1009断开可能性小的信息处理装置例如硬盘记录器将确保副处理器的请求按顺序发布给从网络1009断开可能性大的另一信息处理装置,例如PDA或便携式CD播放器。
此外,在上述示例中,当不能从信息处理装置1001内的空闲副处理器中确保必需数量的副处理器时,信息处理装置1001中的资源管理器立即向不同信息处理装置中的资源管理器发布确保副处理器的请求。然而,***可以以其它方式配置,使得信息处理装置1001中的资源管理器首先向不同信息处理装置中的资源管理器发布副处理器的空闲状况,并且当在整个网络***中可以确保必需数量的副处理器时,随后向不同信息处理装置发布确保副处理器的请求。
尽管使用特定术语描述了本发明的优选实施例,但是这样的描述仅仅是出于说明性的目的,并且应该理解,在不背离所附权利要求的精神或范围的情况下,可以进行改变和修改。
Claims (9)
1. 一种连接到网络的信息处理装置,包括:
一个或多个处理器部件,用于执行程序;以及
管理部件,用于管理所述处理器部件;其中
所述管理部件包括管理表,该管理表又包括用于指定所述处理器部件的标识符、以及表示由标识符指定的所述处理器部件是正在执行还是被预定用于执行程序的使用情况信息;以及
当响应于来自不同信息处理装置的确保请求,为通过所述网络连接到所述信息处理装置的不同信息处理装置确保一些或全部所述处理器部件时,所述管理部件重写所述管理表;并且
所述管理部件响应于来自不同信息处理装置的确保请求,而为不同信息处理装置确保既没有正在执行程序也没有被预定用于执行程序的所述处理器部件的任一个。
2. 根据权利要求1的信息处理装置,其中,所述管理部件响应于来自不同信息处理装置的查询而将所述管理表上的信息返回给不同信息处理装置,并且响应于来自不同信息处理装置的后面的确保请求,而为不同信息处理装置确保既没有正在执行程序也没有被预定用于执行程序的所述处理器部件的任一个。
3. 根据权利要求1的信息处理装置,其中,如果既没有正在执行也没有被预定用于执行程序的那些所述处理器部件的数量等于或大于由来自不同信息处理装置的确保请求指示的处理器部件的数量,则所述管理部件响应于来自不同信息处理装置的确保请求,而为不同信息处理装置确保数量等于所述确保请求所指示的处理器部件的数量的那些处理器部件,但是如果既没有正在执行也没有被预定用于执行程序的那些所述处理器部件的数量小于由来自不同信息处理装置的确保请求指示的处理器部件的数量,则为不同信息处理装置确保那些处理器部件、和正在执行或被预定用于执行具有比由来自不同信息处理装置的确保请求指示的优先级更低的程序优先级的程序的所述处理器部件的任一个。
4. 根据权利要求1的信息处理装置,其中,所述管理部件响应于来自不同信息处理装置的查询而将所述管理表上的信息返回给不同信息处理装置,并且响应于来自不同信息处理装置的后面的确保请求,如果既没有正在执行也没有被预定用于执行程序的那些所述处理器部件的数量等于或大于由来自不同信息处理装置的确保请求指示的处理器部件的数量,则为不同信息处理装置确保数量等于所述确保请求所指示的处理器部件的数量的那些处理器部件,但是如果既没有正在执行也没有被预定用于执行程序的那些所述处理器部件的数量小于由来自不同信息处理装置的确保请求指示的处理器部件的数量,则为不同信息处理装置确保那些处理器部件、和正在执行或被预定用于执行具有比由来自不同信息处理装置的确保请求指示的优先级更低的程序优先级程序的所述处理器部件的任一个。
5. 一种信息处理***,包括:
多个信息处理装置,连接到网络;其中
每个所述信息处理装置包括用于执行程序的一个或多个处理器部件、以及用于管理所述处理器部件的管理部件;
每个所述信息处理装置的所述管理部件包括管理表,该管理表又包括用于指定信息处理装置中的所述处理器部件的标识符、以及表示由标识符指定的所述处理器部件是正在执行程序还是被预定用于执行程序的使用情况信息;以及
当信息处理装置响应于来自不同信息处理装置的确保请求而为所述信息处理装置中不同的一个确保一些或全部所述处理器部件时,每个所述信息处理装置的所述管理部件重写所述管理表;并且
所述管理部件响应于来自不同信息处理装置的确保请求,而为不同信息处理装置确保既没有正在执行程序也没有被预定用于执行程序的所述处理器部件的任一个。
6. 一种用于网络***的信息处理方法,其中在所述网络***中,多个信息处理装置连接到网络,每个所述信息处理装置包括用于执行程序的一个或多个处理器部件以及用于管理所述处理器部件的管理部件,每个所述信息处理装置的所述管理部件包括管理表,该管理表又包括用于指定该信息处理装置中的所述处理器部件的标识符、以及表示由标识符指定的所述处理器部件是正在执行程序还是被预定用于执行程序的使用情况信息,所述信息处理方法包括:
第一步骤,由所述信息处理装置的第一个信息处理装置的所述管理部件执行,查阅第一信息处理装置中的所述管理表,以确定是否可能在第一信息处理装置中确保用于执行特定程序所必需的一个或多个处理器部件;
第二步骤,由第一信息处理装置的所述管理部件执行,当在第一步骤确定有可能在第一信息处理装置中确保这样的一个或多个处理器部件时,确保第一信息处理装置中的一个或多个处理器部件,并重写第一信息处理装置中的所述管理表;
第三步骤,由第一信息处理装置的所述管理部件执行,当在第一步骤确定不可能在第一信息处理装置中确保这样的一个或多个处理器部件时,向所述信息处理装置的第二个或更多个的所述管理部件发布确保一个或多个处理器部件的请求;以及
第四步骤,由所述信息处理装置的第二个或更多个信息处理装置的所述管理部件执行,响应于来自第一信息处理装置的确保请求,确保第二信息处理装置中的一个或多个处理器部件,并重写第二信息处理装置中的所述管理表,并且随后向第一信息处理装置中的所述管理部件发布被确保的一个或多个处理器部件的一个或多个标识符的通知。
7. 根据权利要求6的信息处理方法,其中,在第二步骤中,第一信息处理装置的所述管理部件确保既没有正在执行也没有被预定用于执行一种用来执行所述特定程序的程序的一个或多个所述处理器部件,并且如果仅通过既没有正在执行也没有被预定用于执行程序的所述一个或多个信息处理装置不能确保必需数量的处理器部件,则确保这样的一个或多个所述信息处理装置,其正在执行或被预定用于执行一种其程序优先级比用来执行所述特定程序的程序的程序优先级低的程序。
8. 根据权利要求6的信息处理方法,其中,在第四步骤中,第二信息处理装置的所述管理部件确保既没有正在执行也没有被预定用于执行一种用来执行所述特定程序的程序的一个或多个所述处理器部件,并且如果既没有正在执行程序也没有被预定用于执行程序的那些所述处理器部件的数量小于由来自第一信息处理装置的确保请求指示的处理器部件的数量,则确保正在执行或被预定用于执行一种其程序优先级比特定程序的程序优先级低的程序的所述处理器部件的任一个。
9. 根据权利要求6的信息处理方法,其中,在第三步骤中,第一信息处理装置的所述管理部件优先选择特定类型的信息处理装置作为第二信息处理装置,其中,对处理器部件的确保请求将被发布给所述第二信息处理装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004054044 | 2004-02-27 | ||
JP054044/04 | 2004-02-27 | ||
JP2004369157A JP4586526B2 (ja) | 2004-02-27 | 2004-12-21 | 情報処理装置、情報処理方法、情報処理システムおよび情報処理用プログラム |
JP369157/04 | 2004-12-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1684057A CN1684057A (zh) | 2005-10-19 |
CN100410918C true CN100410918C (zh) | 2008-08-13 |
Family
ID=34840233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100762858A Expired - Fee Related CN100410918C (zh) | 2004-02-27 | 2005-02-28 | 信息处理装置、***和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8413149B2 (zh) |
EP (1) | EP1577771A3 (zh) |
JP (1) | JP4586526B2 (zh) |
KR (1) | KR101096308B1 (zh) |
CN (1) | CN100410918C (zh) |
TW (1) | TWI276969B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101103237B1 (ko) * | 2009-12-30 | 2012-01-10 | 텔코웨어 주식회사 | 서비스 프로세스 관리방법 및 시스템, 및 이를 위한 기록매체 |
JP2011258041A (ja) * | 2010-06-10 | 2011-12-22 | Funai Electric Co Ltd | 映像装置、及び分散処理システム |
KR101748318B1 (ko) * | 2010-11-22 | 2017-06-27 | 삼성전자 주식회사 | 휴대 단말기의 어플리케이션 실행 방법 및 장치 |
US10310904B2 (en) * | 2014-11-26 | 2019-06-04 | Dropbox, Inc. | Distributed technique for allocating long-lived jobs among worker processes |
US11347488B2 (en) * | 2020-05-18 | 2022-05-31 | Fortinet, Inc. | Compiling domain-specific language code to generate executable code targeting an appropriate type of processor of a network device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5357632A (en) * | 1990-01-09 | 1994-10-18 | Hughes Aircraft Company | Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors |
JPH07271736A (ja) * | 1994-03-29 | 1995-10-20 | Mitsubishi Heavy Ind Ltd | マルチプロセッサシステム |
US20020152310A1 (en) * | 2001-04-12 | 2002-10-17 | International Business Machines Corporation | Method and apparatus to dynamically determine the optimal capacity of a server in a server farm |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5550906A (en) * | 1994-08-05 | 1996-08-27 | Lucent Technologies Inc. | Telecommunications feature server |
JP3862293B2 (ja) * | 1994-08-31 | 2006-12-27 | キヤノン株式会社 | 情報処理方法とその装置 |
US5884077A (en) | 1994-08-31 | 1999-03-16 | Canon Kabushiki Kaisha | Information processing system and method in which computer with high load borrows processor of computer with low load to execute process |
JPH08221372A (ja) * | 1995-02-10 | 1996-08-30 | Fuji Facom Corp | 分散処理システムにおける空き資源管理装置 |
US6112243A (en) * | 1996-12-30 | 2000-08-29 | Intel Corporation | Method and apparatus for allocating tasks to remote networked processors |
CA2236285C (en) * | 1997-05-08 | 2003-09-16 | Hitachi Ltd. | Network and switching node in which resource can be reserved |
US6408324B1 (en) * | 1997-07-03 | 2002-06-18 | Trw Inc. | Operating system having a non-interrupt cooperative multi-tasking kernel and a method of controlling a plurality of processes with the system |
JP3683082B2 (ja) * | 1997-10-17 | 2005-08-17 | 富士通株式会社 | 呼処理装置 |
JP2000194674A (ja) | 1998-12-28 | 2000-07-14 | Nec Corp | 分散ジョブ統合管理システム |
WO2001013228A2 (en) | 1999-08-13 | 2001-02-22 | Sun Microsystems, Inc. | Graceful distribution in application server load balancing |
US6427196B1 (en) | 1999-08-31 | 2002-07-30 | Intel Corporation | SRAM controller for parallel processor architecture including address and command queue and arbiter |
US6668317B1 (en) | 1999-08-31 | 2003-12-23 | Intel Corporation | Microengine for parallel processor architecture |
US6532509B1 (en) | 1999-12-22 | 2003-03-11 | Intel Corporation | Arbitrating command requests in a parallel multi-threaded processing system |
US6307789B1 (en) | 1999-12-28 | 2001-10-23 | Intel Corporation | Scratchpad memory |
US6625654B1 (en) | 1999-12-28 | 2003-09-23 | Intel Corporation | Thread signaling in multi-threaded network processor |
US6631462B1 (en) | 2000-01-05 | 2003-10-07 | Intel Corporation | Memory shared between processing threads |
JP3664021B2 (ja) * | 2000-01-05 | 2005-06-22 | 日本電気株式会社 | サービスレベルによる資源割当方式 |
JP2001331333A (ja) * | 2000-05-18 | 2001-11-30 | Hitachi Ltd | 計算機システム及び計算機システムの制御方法 |
US6809734B2 (en) | 2001-03-22 | 2004-10-26 | Sony Computer Entertainment Inc. | Resource dedication system and method for a computer architecture for broadband networks |
US6526491B2 (en) | 2001-03-22 | 2003-02-25 | Sony Corporation Entertainment Inc. | Memory protection system and method for computer architecture for broadband networks |
US7233998B2 (en) | 2001-03-22 | 2007-06-19 | Sony Computer Entertainment Inc. | Computer architecture and software cells for broadband networks |
US7093104B2 (en) | 2001-03-22 | 2006-08-15 | Sony Computer Entertainment Inc. | Processing modules for computer architecture for broadband networks |
US6826662B2 (en) | 2001-03-22 | 2004-11-30 | Sony Computer Entertainment Inc. | System and method for data synchronization for a computer architecture for broadband networks |
US7010596B2 (en) | 2002-06-28 | 2006-03-07 | International Business Machines Corporation | System and method for the allocation of grid computing to network workstations |
-
2004
- 2004-12-21 JP JP2004369157A patent/JP4586526B2/ja not_active Expired - Fee Related
-
2005
- 2005-02-23 EP EP05251023A patent/EP1577771A3/en not_active Withdrawn
- 2005-02-23 US US11/065,649 patent/US8413149B2/en not_active Expired - Fee Related
- 2005-02-25 TW TW094105907A patent/TWI276969B/zh not_active IP Right Cessation
- 2005-02-28 KR KR1020050016735A patent/KR101096308B1/ko not_active IP Right Cessation
- 2005-02-28 CN CNB2005100762858A patent/CN100410918C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5357632A (en) * | 1990-01-09 | 1994-10-18 | Hughes Aircraft Company | Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors |
JPH07271736A (ja) * | 1994-03-29 | 1995-10-20 | Mitsubishi Heavy Ind Ltd | マルチプロセッサシステム |
US20020152310A1 (en) * | 2001-04-12 | 2002-10-17 | International Business Machines Corporation | Method and apparatus to dynamically determine the optimal capacity of a server in a server farm |
Also Published As
Publication number | Publication date |
---|---|
KR20060043267A (ko) | 2006-05-15 |
TW200532474A (en) | 2005-10-01 |
US20050193108A1 (en) | 2005-09-01 |
JP2005276164A (ja) | 2005-10-06 |
US8413149B2 (en) | 2013-04-02 |
TWI276969B (en) | 2007-03-21 |
KR101096308B1 (ko) | 2011-12-20 |
CN1684057A (zh) | 2005-10-19 |
EP1577771A3 (en) | 2007-10-31 |
EP1577771A2 (en) | 2005-09-21 |
JP4586526B2 (ja) | 2010-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100370450C (zh) | 网络***、分布式处理方法和信息处理装置 | |
CN100534159C (zh) | 信息处理***以及信息处理方法 | |
CN1312592C (zh) | 信息处理***及信息处理方法 | |
US8103771B2 (en) | Distributing processing apparatus, method, and system | |
CN100440198C (zh) | 信息处理***和方法 | |
CN100377103C (zh) | 信息处理***、网络***状态提供方法和计算机程序 | |
CN100410918C (zh) | 信息处理装置、***和方法 | |
KR101119870B1 (ko) | 정보 처리 시스템 및 정보 처리 방법 | |
US7970137B2 (en) | Content reproduction apparatus, content recording apparatus, network system, and content recording/reproduction method | |
JP2005339174A (ja) | 情報処理システム及び情報処理方法、並びにコンピュータプログラム | |
JP4349189B2 (ja) | ネットワークシステム、番組録画予約方法および情報処理装置 | |
JP2005339401A (ja) | 情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラム | |
KR20060071069A (ko) | 정보 처리 장치, 정보 처리 방법, 정보 처리 시스템 및정보 처리용 컴퓨터 프로그램 | |
JP2005267150A (ja) | 情報処理システム及び情報処理方法、並びにコンピュータ・プログラム | |
JP2005301678A (ja) | ネットワークシステム、代理表示方法、情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080813 Termination date: 20140228 |