CN1534504A - 利用单处理器操作系统的并行处理系统及并行处理程序 - Google Patents
利用单处理器操作系统的并行处理系统及并行处理程序 Download PDFInfo
- Publication number
- CN1534504A CN1534504A CNA2004100319333A CN200410031933A CN1534504A CN 1534504 A CN1534504 A CN 1534504A CN A2004100319333 A CNA2004100319333 A CN A2004100319333A CN 200410031933 A CN200410031933 A CN 200410031933A CN 1534504 A CN1534504 A CN 1534504A
- Authority
- CN
- China
- Prior art keywords
- processor
- uniprocessor
- operating system
- parallel processing
- working cell
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 327
- 238000000034 method Methods 0.000 claims description 232
- 230000008569 process Effects 0.000 claims description 228
- 230000006854 communication Effects 0.000 claims description 201
- 238000004891 communication Methods 0.000 claims description 197
- 230000006870 function Effects 0.000 claims description 43
- 230000007717 exclusion Effects 0.000 claims description 32
- 230000001360 synchronised effect Effects 0.000 claims description 22
- 230000005540 biological transmission Effects 0.000 claims description 13
- 230000007246 mechanism Effects 0.000 claims description 11
- 238000013500 data storage Methods 0.000 claims description 6
- 238000009434 installation Methods 0.000 claims 1
- 230000005059 dormancy Effects 0.000 description 14
- 230000004913 activation Effects 0.000 description 10
- 238000012217 deletion Methods 0.000 description 7
- 230000037430 deletion Effects 0.000 description 7
- 230000002618 waking effect Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000003213 activating effect Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000009933 burial Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000006386 neutralization reaction Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
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/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
- G06F15/8023—Two dimensional arrays, e.g. mesh, torus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Multi Processors (AREA)
Abstract
一种利用单处理器的操作系统的并行处理系统和并行处理程序,在所述并行处理系统中,在多处理器上运行单处理器的操作系统和现有的单处理器的应用程序,以针对应用程序来实现由多处理器所进行的并行处理,将所述多处理器逻辑上划分为第一处理器侧和第二处理器侧两组,以及将在所述第一处理器侧的处理器上运行的所述应用程序内能够并行化的工作单元控制为在所述第二处理器侧的处理器上的新工作单元。
Description
技术领域
本发明涉及利用多处理器的并行处理系统,更具体地,涉及一种利用单处理器的操作系统的并行处理系统,能够在多处理器上运行单处理器的操作系统和单处理器的现有应用程序,以使应用程序能够实现利用多处理器的并行处理,并且涉及一种并行处理程序。
背景技术
在诸如包括移动电话和移动PC之类的移动终端的数据处理设备中,用于单处理器的操作系统(此后,称之为单处理器的OS)和用于单处理器的应用程序(此后,简称为应用程序)主要在单处理器上执行。
在这些情况下,当使用上述应用程序而不在多处理器的基础上进行修改时,应用程序应该在替代了作为单处理器OS的多处理器OS上执行。
在控制在如上所述的多处理器系统上的多处理器的OS和应用程序的执行的这样的系统中,例如,在日本专利待审公开(Kokai)No.3-257652和日本专利待审公开(Kokai)No.3-113563中公开的传统技术。
日本专利待审公开(Kokai)No.3-257652(参考文献1)公开了一种控制由多个处理器单元构成的多处理器系统中的各个处理器单元之间的中断的方法。
日本专利待审公开(Kokai)No.3-113563(参考文献2)公开了一种在多处理器系统中调度分配给多个处理器的进程的方法。
另一方面,日本专利待审公开(Kokai)No.2003-058515(参考文献3)公开了一种在多个处理器单元中执行单独的进程的方法。
然而,当如同在传统技术中那样在多处理器的OS上运行现有的应用程序时,即使当应用程序只使用多个处理器中的一个处理器时,多处理器的OS也提供针对多处理器的服务,或者即使当没有运行其他应用程序时,也继续进行除其他处理器之外的处理,从而这些额外的处理造成了开销。
在修改上述应用程序以使其适合于多处理器将会消除上述问题,但是将产生需要相当大的劳动和修改成本的其他问题。
另一方面,当应用程序不进行修改就在现有的单处理器上的OS上使用时,具有以下的高要求:现有的应用程序应该不修改地在多处理器上运行。
而且,并行处理器中的进程之间的通信需要共享通信数据的功能和进行处理器的休眠和唤醒的机制,这些功能传统上通过安装在OS的内核级来实现。换句话说,并行处理器中的进程之间的通信需要用于并行处理器的OS。这里,进程之间的通信表示进程之间的处理同步,和数据传送与接收。
因此,前述的在多处理器的每一个处理器上运行单处理器的OS的单处理器的OS的简单并行化能够利用单处理器的OS的功能来实现进程之间的通信,而不能够实现不同处理器的进程之间的通信。
例如,参考文献3未公开任何在不同处理器之间的进程间通信的方法。
例如,虽然未利用单处理器的原有功能而利用了网络,但是,能够实现不同处理器中的进程间的通信,在网络通信的处理中的延迟将引起开销而使多处理器无意义地进行并行处理。
发明内容
本发明的目的是提出一种利用单处理器的OS的并行处理系统,其中,在多处理器上运行单处理器的OS和针对单处理器的现有应用程序而不对其进行修改,以使现有的应用程序能够实现利用多处理器的并行处理,以及提出了一种并行处理程序。
本发明的另一目的是提出一种利用单处理器的OS的并行处理系统,其中,在多处理器上运行单处理器的OS和现有应用程序而不对其进行修改,以及能够在处理器之间同步地或异步地控制应用程序的工作单元(work unit),以及提出了一种并行处理程序。
本发明的另一目的是提出一种利用单处理器的OS的并行处理系统,其中,通过在用户级提供进程间通信功能,即使在单处理器的OS上也能够实现并行处理器中的进程之间的通信,而不需要多处理器的OS,以及一种并行处理程序。
根据本发明的第一方面,提出了一种利用单处理器的OS的并行处理系统,其中,在多处理器上运行单处理器的OS和应用程序,以及将在一个处理器上运行的应用程序内能够并行化的工作单元控制为其他处理器上的新工作单元,从而针对所述应用程序,由所述多处理器进行并行处理。
根据本发明的另一方面,提出了一种利用单处理器的OS的并行处理系统,其中,在多处理器上运行单处理器的OS和应用程序,将所述多处理器逻辑上划分为第一处理器侧和第二处理器侧两组,以及将在所述第一处理器侧的处理器上运行的应用程序内能够并行化的工作单元控制为在所述第二处理器侧的处理器上的新工作单元,从而针对所述应用程序,由所述多处理器进行并行处理。
根据本发明的另一方面,提出了一种利用单处理器的OS的并行处理系统,其中,在多处理器上运行单处理器的OS和应用程序,将所述多处理器逻辑上划分为第一处理器侧和第二处理器侧两组,在所述第一处理器侧的处理器上运行单处理器的所述OS和所述应用程序,以及将在所述应用程序内能够并行化的工作单元控制为在所述第二处理器侧的处理器上的新工作单元,从而针对所述应用程序,由所述多处理器进行并行处理。
根据本发明,提出了一种利用单处理器的OS的并行处理程序,包括以下功能:在多处理器上运行单处理器的OS和应用程序,以及将在一个处理器上运行的应用程序内能够并行化的工作单元控制为其他处理器上的新工作单元,从而针对所述应用程序,由所述多处理器进行并行处理。
根据本发明的另一方面,提出了一种利用单处理器的OS的并行处理程序,包括以下功能:在多处理器上运行单处理器的OS和应用程序,在将所述多处理器逻辑上划分为第一处理器侧和第二处理器侧两组的系统上,将在所述第一处理器侧的处理器上运行的应用程序内能够并行化的工作单元控制为在所述第二处理器侧的处理器上的新工作单元,从而针对所述应用程序,由所述多处理器进行并行处理。
根据本发明的另一方面,提出了一种利用单处理器的OS的并行处理程序,包括以下功能:在多处理器上运行单处理器的OS和应用程序,在将所述多处理器逻辑上划分为第一处理器侧和第二处理器侧两组的系统上,在所述第一处理器侧的处理器上运行所述单处理器的OS和所述应用程序,以及将在所述应用程序内能够并行化的工作单元控制为在所述第二处理器侧的处理器上的新工作单元,从而针对所述应用程序,由所述多处理器进行并行处理。
从以下所给出的详细描述中,本发明的其他目的、特征和优点将变得清楚。
附图说明
从以下所给出的详细描述中和从本发明的优选实施例的附图中,本发明将得到更完整的理解,然而,这些优选实施例不应该看作对本发明的限定,而只用于解释和理解的目的。
在附图中:
图1是示出了根据本发明第一实施例的并行处理系统的结构的方框图;
图2是用于解释在第一实施例的并行处理系统中由并行处理单元进行的激活并行处理的操作的图。
图3是在由并行处理系统的并行处理单元的并行处理激活中,给出命令的消息结构的图;
图4是用于解释在第一实施例的并行处理系统中,响应来自第二处理器侧的任务中的文件访问命令,OS服务单元要进行的操作的图;
图5是用于解释响应来自第一处理器侧的顺序任务中的文件访问命令所执行的操作的图;
图6是示出在根据第一实施例的并行处理系统中的控制处理中继单元的内部结构的方框图;
图7是用于解释在根据第一实施例的并行处理系统中的控制处理中继单元的处理操作的图;
图8是用于解释在根据第一实施例的并行处理系统中由代理单元所进行的信号通知处理操作的图;
图9是示出了在根据第一实施例的并行处理系统中,用于实现在第二处理器侧的任务之间的协同操作的结构的方框图;
图10是用于解释在根据第一实施例的并行处理系统中,在第二处理器侧的任务之间的协同操作的图;
图11是用于解释作为应用于并行处理系统的实例,运行在多处理器的移动终端上的应用程序的情况的图;
图12是示出了根据本发明的第二实施例的并行处理系统的结构的方框图;
图13是用于解释在根据第二实施例的并行处理系统中,同步激活对进程的并行处理的操作的图;
图14是用于解释在根据第二实施例的并行处理系统中,异步激活对进程的并行处理的操作的图;
图15是示出了在根据第二实施例的并行处理系统中,控制处理中继单元的内部结构的方框图;
图16是用于解释在根据第二实施例的并行处理系统中,控制处理中继单元的处理操作的图。
图17是示出了根据本发明的第三实施例的并行处理系统的结构的方框图;
图18是用于解释在根据第三实施例的并行处理系统中,当处理器中的进程通过进程间通信单元利用信号量(semaphore)系统进行信号量增加(semaphore-up)或信号量减小(semaphore-down)时要执行的操作的图;
图19是用于解释在根据第三实施例的并行处理系统中,当处理器中的进程通过进程间通信单元利用信号量系统进行信号量增加时所执行的操作的图;
图20是用于解释在根据第三实施例的并行处理系统中,当通过进程间通信单元利用信号量系统在相同处理器中的进程间进行信号量增加时所执行的操作的图;
图21是用于解释在根据第三实施例的并行处理系统中,当通过进程间通信单元利用信号量系统在不同处理器中的进程间进行信号量增加时所执行的操作的图;
图22是用于解释在根据第三实施例的并行处理系统中,当处理器中的进程通过进程间通信单元利用消息队列系统接收消息时所执行的操作的图;
图23是用于解释在根据第三实施例的并行处理系统中,当处理器中的进程通过进程间通信单元利用消息队列系统接收消息时所执行的操作的图;
图24是用于解释在根据第三实施例的并行处理系统中,当处理器中的进程通过进程间通信单元利用消息队列系统传送消息时所执行的操作的图;
图25是用于解释在根据第三实施例的并行处理系统中,当通过进程间通信单元利用消息队列系统在相同处理器中的进程间进行消息传送和接收时所执行的操作的图;
图26是用于解释在根据第三实施例的并行处理系统中,当通过进程间通信单元利用消息队列系统在不同处理器中的进程间进行消息传送和接收时所执行的操作的图;
图27是用于解释在根据第三实施例的并行处理系统中,利用信号量系统和消息队列系统的进程间通信的特定实例的图;
图28是用于解释在图27所示的特定实例中,在浏览器屏幕上的显示内容的图;以及
图29是示出根据本发明第四实施例的并行处理系统的结构的方框图。
具体实施方式
下面将参考附图详细描述本发明的优选实施例。在以下描述中,阐明了大量特定细节,以便提供对本发明的完全理解。然而,对于本领域的技术人员显而易见,可以脱离这些具体细节来实施本发明。在其他实例中,为了不必要地使本发明不清楚,未详细示出公知结构。
在本发明的并行处理系统中,通过添加用于询问针对多个处理器的处理的机制和在向多个处理器提供OS服务中保护关键部分的机制,在多处理器上执行并行处理,而不对单处理器的传统OS添加任何修改。
在下文中,将参考附图详细描述本发明的优选实施例。
图1是示出了根据本发明的优选实施例的并行处理系统的结构的方框图。
如图1所示,根据本实施例的并行处理系统包括由通过系统总线91连接的多个处理器(CPU)P0到Pn(n是不小于1的整数)构成的多处理器,所述多个处理器逻辑上划分为第一处理器侧10和第二处理器侧20两组,其中,安装有单处理器的OS 30,其在第一处理器侧10的处理器P0上运行,用于进行并行处理的并行处理单元40P0到40Pn和用于处理OS服务的OS服务单元50P0到50Pn分别安装在第一处理器侧10的处理器P0上和在第二处理器侧20的处理器P1到Pn上。与系统总线91相连的是主存储设备92,作为由各个处理器P0到Pn和诸如盘设备的外部存储设备93共享的共享存储器。
可以对上述多处理器进行构造,以使其不仅包括相同种类的多个处理器,还包括诸如DSP和安全引擎之类不同种类的多个处理设备。
在第一处理器侧10和第二处理器侧20之间,唯一地设置了控制处理中继单元60,用于传送和接收控制信号和数据,并且在第一处理器侧10上设置了代理单元70,通过该代理单元70,单处理器的OS 30与在第二处理器侧20上执行的任务进行通信。
在上述第一处理器侧10上的处理器不必须作为单个处理器存在而可以作为多个处理器存在。例如,可以在第一处理器侧10上设置两个处理器,并且每一个处理器安装有不同的单处理器的OS。
将现有的OS用作由第一处理器侧10上的处理器激活的单处理器的OS 30。例如,使用实时OS和UNIX(R)OS而无需修改。
在本说明书中的任务表示用于对进程进行并行处理的工作单元、以及在UNIX(R)OS上的线程、在实时OS等上的任务。
在根据本实施例的并行处理系统中,应用程序在第一处理器侧10上的单处理器的OS上运行,并且在应用程序的工作单元中,不能够并行化的任务(顺序任务)由第一处理器侧10上的处理器P0处理,而将能够在应用程序内并行化的任务创建为第二处理器侧20上的新任务,并且被并行处理。
并行处理单元40P0和并行处理单元40P1到40Pn具有执行任务的创建、激活、停止、终止(termination)和删除和其他与任务有关的控制的功能。这里,第一处理器侧10的并行处理单元40P0针对在第二处理器侧20上的各个处理器P1到Pn的并行处理单元40P1到40Pn,通过控制处理中继单元60进行诸如任务的创建、激活、停止、终止和删除等处理。对于信号通知,从并行处理单元40P0和并行处理单元40P1到40Pn中对其进行双向处理。
OS服务单元50P0和OS服务单元50P1到50Pn具有作为对外部设备进行各种访问的接口及其控制、和作为对任务之间共享的资源进行各种访问的接口及其控制的功能。
控制处理中继单元60是用于传送和接收第一处理器侧10和第二处理器侧20之间的控制信号和数据的单元,并且用于由多个处理器相互并行地处理的多个任务之间的控制中。
代理单元70与在第二处理器侧20上执行的任务关联(部分任务或全部任务),并安装了代理单元70,用于第二处理器侧20上的任务和单处理器的OS 30之间的信号通知(通知用于控制任务的各种控制信号)。
下面,将参考附图对根据本实施例的这样构造的并行处理系统的操作进行详细的描述。
这里假定应用程序在第一处理器侧10上的单处理器的OS上运行,并且在应用程序的工作单元中,将要由第一处理器侧10上的处理器P0处理的单元定义为顺序任务ST,并且将作为在应用程序内可以并行化并由第二处理器侧20作为任务PT-1到PT-n并行处理的单元定义为并行化任务PT。
首先,将参考图2和3,描述由并行处理单元40P0和40P1到40Pn激活并行处理的操作。
(1)在激活第一处理器侧10上的并行化任务PT作为第二处理器侧20上的任务PT-1到PT-n中的任一个的情况下,命令并行处理单元P40创建任务PT-1到PT-n中的任一个,作为要在第二处理器侧20上的激活的工作单元。
来自并行处理单元40P0和并行处理单元40P1到40Pn的命令包括:诸如,创建(任务创建)、删除(任务删除)、激活(任务激活)、终止(任务终止)、信号(信号命令)等。在这些命令中,创建(任务创建)、删除(任务删除)、激活(任务激活)和终止(任务终止)是从第一处理器侧10发送到第二处理器侧20的命令,而信号(信号命令)同时从第一处理器侧10和第二处理器侧20双向地发送。
这些命令由图3所示的消息来实现。更具体地,通过向并行处理单元40P0传送由表示请求内容(在这种情况下的任务创建)的请求内容201、用于指定将处理该任务的第二处理器侧20上的处理器P1~Pn的处理器号202、表示要新创建的任务PT-1~PT-n的任务号、以及表示请求任务创建的并行化任务PT的原始任务号构成的消息,请求任务创建。对于任务创建之外的其他任务,将根据图3所示的消息来发送所述命令。
(2)并行处理单元40P0作为响应,激活与要创建的PT-1~PT-n相对应的代理单元70。激活所述代理单元70,以便防止任务的管理内容在第一处理器侧10和第二处理器侧20之间共享,并且完成在第一处理器侧10上的专门处理。此时,将任务PT-1~PT-n的任务号保存在代理单元70中。
(3)并行处理单元40P0还设置诸如上述任务号和请求内容的任务创建(在第二处理器侧20的处理器P1到Pn的任务创建)时所需的数据以及用于在控制处理中继单元60指定“并行处理”的通信理由信息(communication reason information)。
该处理造成了针对控制处理中继单元60,进行稍后将要描述的要传送到主存储设备92(共享存储器)上的内容的设置、以及处理器间中断的处理。
这里,通信理由信息表示传送到控制处理中继单元60的数据的接受者(接受方),并且在上述情况下,在控制处理中继单元60中设置的数据将由指定处理器P1~Pn的并行处理单元40P1~40Pn获得。
(4)在第二处理器侧20的指定处理器P1~Pn上的并行处理单元40P1~40Pn获得具有来自控制处理中继单元60的、作为通信理由信息的“并行处理”的请求内容(任务控制所需的数据)。
(5)然后,并行处理单元40P1~40Pn根据所获得的请求内容,在处理器P1~Pn上创建和激活任务PT-1~PT-n。
前述的处理使作为在第一处理器侧10的单处理器的OS上运行的应用程序的工作单元的并行化任务PT的工作单元能够在第二处理器侧20上作为任务PT-1~PT-n被并行处理。
虽然已经针对并行处理单元40P1到40Pn根据所获得的请求内容在处理器P1到Pn上创建和激活任务PT-1到PT-n的情况,描述了前述的操作,但是,可以提前创建第一处理器侧10上的并行化任务PT作为第二处理器侧20上的任务PT-1到PT-n中的任一个,并且并行化处理单元40P1到40Pn可以根据所获得的请求内容,激活处理器P1到Pn上的任务PT1到PTn。
接下来,将描述由OS服务单元50P0和50P1到50Pn所进行的OS服务处理操作。
OS服务单元50P0和50P1到50Pn具有根据来自在第二处理器侧20的处理器P1到Pn上创建的任务PT-1到PT-n的命令,提供与对外部设备的各种访问及其控制、和对由其他任务共享的资源的各种访问及其控制相关的服务,所述服务是由单处理器的OS30所提供的服务。由单处理器的OS30提供的主要服务等价于由普通OS提供的系统调用和API。
将参考图4,描述响应来自第二处理器侧20的处理器P1到Pn上的任务PT-1到PT-n的文件访问(例如,针对外部存储设备93上的文件的各种处理)命令,OS服务单元50P0和50P1到50Pn的操作。
这里,文件访问包括诸如以下的处理:打开(打开文件)、关闭(关闭文件)、读取(读取文件)、写入(写入文件)、查找(移动文件写入位置)、删除(删除文件)和更名(改变文件的名字)。
(1)当在第二处理器20上的任务PT-1到PT-n中产生了对文件访问处理的需要时,任务PT1到PTn请求第二处理器侧20上的OS服务单元50P1到50Pn提供文件访问的服务。例如,由该文件访问服务命令所调用的是定义为由OS服务单元50P1到50Pn对文件进行写入处理的写入功能、以及定义为文件读取处理的读取功能。
这里,OS服务单元50P1到50Pn设置在第一处理器侧10上的处理(由单处理器的OS30所进行的文件访问处理)所需的数据。这里,所需数据包括诸如以下的信息:请求内容(例如,写入请求)、要访问的文件的描述符(文件描述符)、指向字符串的指针、字符串的长度和任务号。
(2)利用设置为“OS服务”的通信理由信息,通过在控制处理中继单元60处设置包含请求内容的所需数据,OS服务单元50P1~50Pn向第一处理器侧10发布文件访问命令。
之后,已经发布了文件访问的服务命令的任务PT-1~PT-n进入等待状态,并且在相应的处理器P1~Pn中,由并行处理单元40P1~40Pn将处理切换到其他任务(任务切换)。
(3)在第一处理器侧10上的OS服务单元50P0从控制处理中继单元60中获得具有作为通信理由信息的“OS服务”的上述文件访问命令。
(4)在第一处理器侧10上的OS服务单元50P0根据所获得的请求内容,从单处理器的OS30中请求文件访问。
(5)结果,单处理器的OS30根据命令对外部存储设备93进行文件访问(写入、读取等)。利用单处理器的OS30最初具有的文件访问服务来执行该文件访问处理而无需修改。
(6)在完成所请求的文件访问处理之后,单处理器的OS30将针对文件访问命令的返回值发送回OS服务单元50P0,以便返回处理。
(7)此外,OS服务单元50P0在具有作为通信理由信息的“OS服务”的控制中继单元60处,设置通信内容,即,包括已经请求文件访问的任务PT-1~PT-n的返回值和任务号的数据,从而通知第二处理器侧20上的处理器P1~Pn该文件访问的完成。
(8)由此,相应处理器P1~Pn的OS服务单元50P1~50Pn从控制处理中继单元60接收所设置的返回值和完成通知。
(9)然后,第二处理器侧20上的OS服务单元50P1~50Pn要求并行处理单元40P1~40Pn激活已经给出文件访问命令的任务PT-1~PT-n。
结果,处理切换到处于等待状态的任务PT-1~PT-n。
(10)由并行处理单元40P1~40Pn激活的任务PT-1~PT-n从OS服务单元50P1~50Pn中接收文件访问的返回值,以继续处理。
前述的处理使在第二处理器侧20上的任务PT-1~PT-n能够进行文件访问,而无需在第二处理器侧20上提供单独的文件访问的处理单元,同时,利用了单处理器的OS30的服务,而无需进行修改。此外,利用该布置,在第一处理器侧10上完成针对文件访问的专有处理,从而可以实现并行处理,而没有如同在运行多处理器的OS上的应用程序那样由这样的专有处理所引起的开销。
在第二处理器侧20的处理器P1~Pn上的任务PT-1~PT-n对外部存储设备93的只读数据进行文件访问的情况下,可以从每一个处理器P1~Pn对外部存储设备93进行直接访问,而无需如前面所描述的由OS服务单元50P1~50Pn进行这样的处理。
这里,对于来自第一处理器侧的处理器P0上的顺序任务ST的文件访问命令,由单处理器的OS30直接进行处理,而无需使用OS服务单元。下面,将参考图5来描述该处理。
(1)在处理器P0上的顺序任务ST请求单处理器的OS30进行文件访问。
(2)结果,单处理器的OS30根据命令,对外部存储设备93等进行文件访问(写入、读取等)。利用单处理器的OS30最初所具有的没有修改的文件访问服务来执行文件访问处理。
(3)当完成文件访问处理时,单处理器的OS30将针对文件访问命令的返回值发送回顺序任务ST,以返回处理。
由于响应来自顺序任务ST的OS服务命令,不需要专有控制等,将不会产生任何额外的开销。
将参考图6和7来描述控制处理中继单元60所进行的处理操作。
首先,图6中示出了控制处理中继单元60的结构。如图所示,控制处理中继单元60包括与各个处理器P0到Pn相对应的中断控制设备61P0到61Pn、以及与各个处理器P0到Pn相对应的通信区域62P0到62Pn。这里,在主存储设备92中确保了通信区域62P0到62Pn。
中断设备61P0到61Pn的每一个还包括:中断指示单元61a,用于指示其他处理器中断;中断状态保存单元61b,用于保存响应中断指示而进行的中断的信息;以及中断取消单元61c,用于清除中断。
通信区域62P0到62Pn的每一个包括:通信理由保存区域62a,用于保存来自作为通信源的处理器的通信理由信息;通信数据保存区域62b,用于保存要通信的通信数据;以及互斥控制区域62c,用于锁定通信区域以确保通信。
在这个时刻,在通信数据保存区域62b中,将存储指向主存储设备92的指针,其中存储了要通信的通信数据(包括请求内容的所需数据)。
将参考图7,针对作为实例的从第一处理器侧10上的并行处理单元40P0到第二处理器侧20上的处理器P1的通信的处理,对操作进行描述。
(1)并行处理单元40P0锁定针对处理器P1的通信区域62P1的互斥控制区域62c。更具体地,通过使在互斥控制区域62c中存储的锁定变量变为锁定状态,防止当前针对处理器P1的通信区域62P1由其他处理器使用。
当该区域已经由其他处理器锁定时,等待该锁定的释放。
(2)当得到了通信区域62P1的锁定时,并行处理单元40P0分别在通信区域62P1的通信理由保存区域62a和通信数据保存区域62b中存储通信理由信息和通信数据(包括请求内容的所需数据)。
在如上所述的创建任务的通信处理的情况下,要存储的通信理由信息是表示“并行处理”的信息(例如,对应于并行处理预定的诸如数值的数据)。
(3)并行处理单元40P0指示其自身的中断控制设备61P0的中断指示单元61a中断处理器P1。
(4)中断控制设备61P0的中断指示单元61a在对应于处理器P1的中断控制设备61P1的中断状态保存单元61b处,设置表示中断的信息。这使处理器P1进入中断状态。
(5)处理器P1的并行处理单元40P1根据在控制处理中继单元60中的中断控制设备61P1的中断状态保存单元61b中的状态,确定中断被设置。
(6)处理器P1的并行处理单元40P1通过清除在控制处理中继单元60中的其自身的中断状态保存单元61b的中断信息,从终端状态中释放它自己。
(7)处理器P1的并行处理单元40P1分别从控制处理中继单元60的通信理由保存区域62a和通信数据保存区域62b中获得通信理由信息和通信数据(包括请求内容的所需数据)。
(8)当允许其接收下一个通信时,处理器P1的并行处理单元40P1释放其自身通信区域62P1的互斥控制区域62c的锁定。更具体地,通过使互斥控制区域62c中的锁定变量变为未锁定状态,释放处理器P1的通信区域62P1,以使其可以由其他处理器使用。
因此,利用控制处理中继单元60,实现了第一处理器侧10和第二处理器侧20之间的控制信号和数据的传送和接收。
将参考图8来描述由代理单元70所进行的信号通知处理的操作。
代理单元70具有使单处理器的OS30能够利用信号(控制信号)与第二处理器侧20上产生的任务PT-1~PT-n进行通信的功能。将相应任务的PT-1~PT-n的任务号保存在代理单元70中。
代理单元70可以与多个任务PT-1~PT-n中的每一个一对一地关联,或者多个任务PT-1~PT-n可以与一个代理单元70关联。
(1)第一处理器侧10上的顺序任务ST从单处理器的OS30请求信号通知服务。由信号通知所传达的信号是由单处理器的OS30最初具有的服务功能控制在第二处理器侧20的各个处理器P1到Pn上激活的任务PT-1到PT-n的控制信号。
(2)单处理器的OS30将信号通知给相应的代理单元70。
(3)通过控制处理中继单元60,代理单元70将所通知的信号通知给其相应的处理器P1~Pn,其中,任务PT-1存在于第二处理器侧20。此时,设置“并行处理”作为通信理由信息。
(4)由于去往通信处理中继单元60的通信理由是“并行处理”,在第二处理器侧20上的相应处理器的并行处理单元40P1~40Pn从控制处理中继单元60获得信号通知命令。
(5)已经获得信号通知命令的并行处理单元40P1~40Pn向相应的任务PT-1~PT-n通知所述信号(控制信号)。
因此,由于代理单元70在第一处理器侧10利用任务号与第二处理器侧20的处理器P0~Pn上的任务PT-1~PT-n关联,可以针对任务PT-1~PT-n来执行由单处理器的OS30所进行的信号通知服务。
最后,将参考图9和10来描述在第二处理器侧20上的任务间协同操作。
图9示出了用于获得任务间的协同的并行处理单元40P1到40Pn的结构。如图所示,并行处理单元40P1到40Pn设置有互斥(mutualexclusion)单元41P1到41Pn。
主存储设备92还包括互斥控制区域43和任务管理内容保存区域44,以便获得任务的协作。
(1)在处理器P1上的任务PT-1从其自身的并行处理单元40P1上请求所需的并行处理。
(2)处理器P1的并行处理单元40P1从互斥单元41P1中请求获得锁定,以便确保用于并行处理的资源。
(3)互斥单元41P1利用主存储设备92的互斥控制区域43来获得锁定。
(4)互斥单元41P1通知并行处理单元40P1已经获得了锁定。
(5)并行处理单元40P1在任务管理内容保存区域44中保存已经请求处理器P1上的并行处理的任务PT-1的管理内容(请求内容、任务号和其他所需数据)。
(6)并行处理单元40P1中断正在执行低优先级任务的其他处理器P2~Pn。这里假定处理器Pn被中断。
(7)并行处理单元40P1要求互斥单元41P1释放如上所述的所确保的锁定。
(8)互斥单元41P1对主存储设备92的互斥控制区域43进行解锁。
(9)互斥单元41P1向并行处理单元40P1通知解锁的完成。
(10)并行处理单元40P1将处理返回到任务PT-1。
(11)处理器Pn的并行处理单元40Pn从互斥单元41Pn中请求获得锁定,以确保用于并行处理的资源。
(12)互斥单元41Pn利用主存储设备92的互斥控制区域43来获得锁定。
(13)互斥单元41Pn向并行处理单元40Pn通知锁定获取的完成。
(14)并行处理单元40Pn获得在任务管理内容保存区域44中所存储的任务管理内容。
(15)并行处理单元40Pn根据任务管理内容来创建和激活新的任务。
(16)并行处理单元40Pn从互斥单元41Pn中请求如上所述的所确保的锁定的释放。
(17)互斥单元41Pn对主存储设备92的互斥控制区域43进行解锁。
(18)互斥单元41Pn向并行处理单元40Pn通知解锁的完成。
如上所述的这样的任务协同操作允许在特定处理器P1~Pn上激活的任务PT-1~PT-n使其自身的工作单元由其他处理器来并行处理。
作为应用于这样构造的并行处理系统的实例,将对在多处理器的移动终端上运行应用程序的情况进行描述。
这里,将参考图11来进行描述,假定以下情况:应用程序具有在移动终端上同时再现图像(运动图像)和声音的功能,并且将声音输出处理定义为顺序任务A,而图像输出处理定义为并行化任务B,应用程序运行于第一处理器侧10的处理器P0上。
由上述并行处理单元将并行化任务B创建和激活为在第二处理器侧20的处理器P1到Pn的任一个上的任务C。
创建的任务C通过OS服务单元的文件访问处理,在屏幕上输出图像。
关于由顺序任务A输出的声音,由单处理器的OS30的服务来输出声音。
为了周期性地同步声音和图像,通过经由代理单元70所进行的信号通知操作在顺序任务A和任务C之间提供信号通知来达到同步。
此外,当执行在任务C中的编辑图像处理时,由任务协同处理将编辑处理创建和激活为其他处理器上的任务D。
当完成了由任务C所进行的图像输出处理时,任务C通过文件访问操作,向单处理器的OS通知该终止。
在本实施例中,作为模块设置的并行处理单元40P0到40Pn、OS服务单元50P0到50Pn、控制处理中继单元60和代理单元70使单处理器的OS30和应用程序能够在没有多处理器系统上的开销的情况下操作,而无需修改单处理器的OS30和在处理器P0上运行的应用程序,同时收到由多处理器进行并行处理的好处。
接下来,将参考图12和随后的附图来描述根据本发明第二实施例的并行处理系统。图12是示出了根据第二实施例的并行处理系统的结构的方框图,其中,与图1相同的组件由相同的参考符号表示。图12所示的第二实施例中示出了其中第一实施例中的并行处理单元40P0到40Pn分别由并行处理通信单元400P0到400Pn和控制代理单元500P0到500Pn形成的情况。
如图12所示,根据本实例的并行处理系统与第一实施例的相同在于:将由通过系统总线91连接的多个处理器(CPU)P0到Pn(n是不小于1的整数)形成的多处理器逻辑划分为两个组,即,第一处理器侧100和第二处理器侧200。
在第二实施例中,实现了在第一处理器侧100的处理器P0上和在第二处理器侧200的各个处理器(CPU)P0到Pn上运行的单处理器的OS300P0到300Pn。
此外,用于并行处理的并行处理通信单元400P0到400Pn和控制代理单元500P0到500Pn分别安装在第一处理器侧100的处理器P0上和第二处理器侧200的处理器P1到Pn上。作为在各个处理器P0到Pn间共享的主存储设备92和诸如盘设备的外部存储设备93等与系统总线91相连。
同时,唯一地设置控制处理中继单元600,用于传送和接收第一处理器侧100和第二处理器侧200之间的控制信号和数据。
由于关于通过其在第一处理器侧100上的单处理器的OS 300P0与第二处理器侧200上执行的进程进行通信的第一实施例所示的代理单元70,该单元在本实施例执行与第一实施例中完全相同的功能,这里为了简便,将不再对其进行任何描述。
虽然在第一实施例中,已经描述了响应来自第二处理器侧20的处理器P1到Pn上的任务的文件访问命令来进行任务切换,然而,同时,在本实施例中,也能够进行来自第二处理器侧200的文件访问,并且由第二处理器侧200上的单处理器的OS 300P1到300Pn来进行第二处理器侧200上的进程PP-1到PPn的切换。
对于安装在各个处理器P0到Pn上的单处理器的OS 300P0到300Pn,这些单处理器的OS与第一实施例的不同在于:不仅可以使用诸如实时OS之类实现了存储器保护功能的无虚拟存储器机制的OS,而且可以使用作为现有OS的诸如Linux和Windows(R)之类具有虚拟存储机制的OS,并且可以在所有和部分处理器P0到Pn上实现存储器保护机制。
此外,单处理器的OS 300P0到300Pn不必是相同种类的OS,而可以是彼此不同种类的OS。
在本实施例中,作为进行并行处理的工作单元的任务是在处理器之间受到存储器保护的,并且在这种意义上,称之为与第一实施例中的任务区别的进程。
在根据本实施例的并行处理系统中,在运行于第一处理器侧100的单处理器的OS 300P0上的应用程序的工作单元中,不能够并行化的那些进程(顺序进程SP)由第一处理器侧100上的处理器P0来处理,而将能够在应用程序内并行化的那些任务创建为第二处理器侧200上的新的进程PP-1到PP-n,并且进行并行处理。
并行处理通信单元400P0和并行处理通信单元400P1到400Pn具有传送和接收与进程创建、激活、停止、终止和删除有关的信息、与进程和单处理器的OS 300P0到300Pn之间的处理有关的其他控制的功能。
这里,将与任务的创建、激活、停止、终止、删除等有关的控制信息和数据通过控制处理中继单元600,在第一处理器侧100和第二处理器侧200之间传送和接收。
此外,控制代理单元500P0和控制代理单元500P1到500Pn具有从单处理器的OS 300P0~OS 300Pn中获得对进程的处理命令,并且激活该进程。
控制处理中继单元600是用于传送和接收第一处理器侧10和第二处理器侧20之间的控制信号和数据的单元,并且用于控制由多个处理器并行处理的多个进程。
下面,将参考附图详细描述根据第二实施例构造的并行处理系统的操作。
这里假定应用程序运行于第一处理器侧100的单处理器的OS300P0上,并且在应用程序的工作单元中,将要由第一处理器侧100上的处理器P0处理的工作单元定义为顺序进程SP,而将作为可以在应用程序内并行化的进程和由第二处理器侧200作为任务PP-1到PP-n并行处理的工作单元定义为并行化进程PP。
在第二实施例中,在激活特定进程(任务)之后,其中在调用侧作为进程(任务)的并行化进程PP等待已激活进程PP-1~PP-n的终止的并行处理的同步激活、以及其中在调用侧作为进程(任务)的并行化进程PP不必等待已激活进程PP-1~PP-n的终止的并行处理的异步激活都是可行的。
首先,将参考图13来描述进程的并行处理的同步激活的操作。
这里假定在第二处理器侧200的处理器Pk(1≤k≤n)中,事先将第一处理器侧100上的并行化进程PP创建为作为要在第二处理器侧200上激活的工作单元的进程PP-k。
(1)在第二处理器侧200的处理器Pk(1≤k≤n)上的进程PP-k在并行处理通信单元400Pk中登记与属于其自身的进程的处理有关的信息。结果,进程PP-k进入待机状态。
(2)并行处理通信单元400Pk通过单处理器的OS 300Pk,请求访问在主存储设备92(共享存储器)上的所需数据。
(3)结果,将与属于进程PP-k的处理有关的信息存储在主存储设备92上(共享存储器)。
(4)处理器P0上的进程PP从并行处理通信单元400P0中请求同步处理。因此,进程PP进入待机状态。
(5)已经接收到请求的并行处理通信单元400P0通过单处理器的OS 300P0,请求访问主存储设备92(共享存储器)上的数据。
(6)由单处理器的OS 300P0对主存储器设备92(共享存储器)进行访问。
(7)并行处理通信单元400P0从主存储设备92(共享存储器)中获得与属于进程PP-k的处理有关的信息。因此,获得了处理器号和用于执行处理PP-k的进程号。
(8)并行处理通信单元400P0根据通过单处理器的OS 300P0从主存储设备92(共享存储器)中获得的信息来进行通信请求。
(9)单处理器的OS 300P0设置在控制处理中继单元600的通信所需的信息。
(10)结果,将处理命令从控制处理中继单元600发送到处理器Pk的单处理器的OS 300Pk。
(11)处理器Pk的控制代理单元500Pk获得通过单处理器的OS300Pk发送的处理命令。
(12)然后,控制代理单元500Pk根据所获得的处理命令来激活进程PP-k。
(13)结果,处于待机状态的进程PP-k执行所述处理。
(14)在完成处理之后,进程PP-k向并行处理通信单元400Pk通知取得该效果的信息。
(15)已经接收到通知的并行处理通信单元400Pk根据通过单处理器的OS 300Pk通知的信息来进行通信请求。
(16)单处理器的OS 300Pk在控制处理中继单元600处,设置通信所需的信息。
(17)结果,将处理命令从控制处理中继单元600发送到处理器P0中的单处理器的OS 300P0。
(18)处理器P0的控制代理单元500P0获得通过单处理器的OS300P0发送的处理命令。
(19)然后,控制代理单元500P0根据所获得的处理命令来激活进程PP。
因此,在第一处理器侧100的处理器P0上的进程PP和第二处理器侧200的处理器PP-k之间,实现了同步处理。
接下来,将参考图14来描述对进程的并行处理的异步激活的操作。
这里还假定在第二处理器侧200上的处理器Pk(1≤k≤n)中,事先将第一处理器侧100上的并行化进程PP创建为作为要在第二处理器侧200上激活的工作单元的进程PP-k。
(1)正在第二处理器侧200的处理器Pk((1≤k≤n)上执行处理的进程PP-k在并行处理通信单元400Pk中,登记与属于其自身的进程的处理有关的信息。结果,进程PP-k输入待机状态。
(2)并行处理通信单元400Pk通过单处理器的OS 300Pk,请求访问主存储设备92(共享存储器)上所需的数据。
(3)结果,将与属于进程PP-k的处理有关的信息存储在主存储设备92(共享存储器)中。
(4)在处理器P0上的进程PP从并行处理通信单元400P0中请求异步处理。在这种情况下,之后,进程PP继续处理,而不进入待机状态。
(5)已经接收到该请求的并行处理通信单元400P0通过单处理器的0S 300P0,请求在主存储设备92(共享存储器)上的数据。
(6)由单处理器的0S 300P0对主存储设备92(共享存储器)进行访问。
(7)并行处理通信单元400P0从主存储设备92(共享存储器)中获得与属于进程PP-k的处理有关的信息。因此,获得了处理器号和用于执行进程PP-k的进程号。
(8)并行处理通信单元400P0根据通过单处理器的OS 300P0从主存储设备92(共享存储器)中获得的信息来进行通信请求。
(9)单处理器的OS 300P0在控制处理中继单元600处,设置通信所需的信息。
(10)因此,将处理命令从控制处理中继单元600发送到处理器Pk的单处理器的OS 300Pk。
(11)处理器Pk的控制代理单元500Pk获得通过单处理器的OS300Pk发送的处理命令。
(12)然后,控制代理单元500Pk根据所获得的处理命令来激活进程PP-k。
(13)因此,处于待机状态的进程PP-k执行所述处理。
按照上述方式,在第一处理器侧100的处理器P0上的进程PP和第二处理器侧200的进程PP-k之间,实现了异步处理。
下面将参考图15和16来描述在根据第二实施例的并行处理系统中,由控制处理中继单元600所进行的处理操作。
首先,在图15中示出了控制处理中继单元600的结构。如图所示,对控制处理中继单元600进行构造,以使其包括与各个处理器P0到Pn相对应的中断控制设备601P0到601Pn、以及与各个处理器P0到Pn相对应的通信区域602P0到602Pn。这里,在主存储设备92中确保了通信区域602P0到602Pn。
中断控制设备601P0到601Pn的每一个具有与图6所示的根据第一实施例的控制处理中继单元60中的结构相同的结构,并且由中断指示单元601a、中断状态保存单元601b和中断取消单元601c组成。
同时,通信区域602P0到602Pn的每一个基本上具有与图6所示的第一实施例中的结构相同的结构,并且由作为图6所示的通信理由保存区域62a和通信数据保存区域62b的组合的通信队列602a和互斥控制区域602c形成。
作为实例,将参考图16来描述从第一处理器侧100上的并行处理通信单元400P0到第二处理器侧200上的处理器Pn的通信处理操作。
(1)并行处理通信单元400P0锁定针对处理器Pn的通信区域602Pn的互斥控制区域602b。更具体地,使在互斥控制区域602b中的锁定变量变为锁定状态以防止当前针对处理器Pn的通信区域602Pn被其他处理器使用。
(2)并行处理通信单元400P0将通信理由信息和通信数据(包括请求内容的所需数据)存储在通信区域602Pn的通信队列602a。
作为要存储的通信理由信息,在如上所述的针对进程创建/激活的通信处理的情况下,存储表示“进程激活”的信息(例如,诸如与并行处理相对应的预定数值的数据)。
(3)在(1)的时刻,如果通信区域602Pn的通信队列602a是空的,并行处理通信单元400P0指示其自身的中断控制设备601P0的中断指示单元601a中断处理器Pn。
(4)处理器P0的并行处理通信单元400P0使针对处理器Pn的通信区域602Pn的互斥控制区域602b进入未锁定状态。如果在(1)的时刻,通信区域602Pn的通信队列602a不是空的,则由于不需要中断,处理在该时刻终止。
(5)中断控制设备601P0的中断指示单元601a在与处理器Pn相对应的中断控制设备601Pn的中断状态保持单元601b处设置表示中断的信息。结果,处理器Pn进入中断状态。
(6)处理器Pn的单处理器的OS 300Pn根据针对处理器Pn的中断控制设备601Pn的中断状态保持单元601b的条件来接受中断。
(7)处理器Pn中的单处理器的OS 300Pn通过利用中断控制设备601Pn中的中断取消单元601c清除其自身中断状态保持单元601b中的中断信息,释放其中断状态。
(8)处理器Pn中的单处理器的OS 300Pn激活其自身控制代理单元500Pn。
(9)处理器Pn的控制代理单元500Pn在其自身通信区域602Pn的互斥控制区域602b处设置锁定。
(10)处理器Pn的控制代理单元500Pn还从其自身通信区域602Pn的通信队列602a中删除通信理由信息和通信数据。
(11)处理器Pn的控制代理单元500Pn对处理器Pn的通信区域602Pn的互斥控制区域602b进行解锁。这使处理器Pn的通信区域602Pn不能够由其他处理器使用。
因此,通过使用控制处理中继单元600,实现了第一处理器100和第二处理器200之间的控制信号和数据的传送和接收。
接下来,下面将参考图17来描述根据本发明第三实施例的并行处理系统。图17是示出了根据第三实施例的并行处理系统的结构的方框图,在图中,与图13所示相同的组件由相同的参考符号表示。
在第二实施例的上述同步处理中,需要重复检查在进程之间,一个进程是否使其在主存储设备92上的数据被其他进程更新,造成了涉及与重复同样多的额外处理,同时,本实施例能够实现进程之间的高性能同步和数据传送和接收,其中不需要任何这样的额外处理。
如图17所示,与第二实施例相似,根据本实施例的并行处理系统包括:通过系统总线91连接的多个处理器(CPU)P0到Pn(n是不小于1的整数)构成的多处理器,将所述多个处理器逻辑上划分为第一处理器侧100和第二处理器侧200,其中,安装了运行在第一处理器侧100的处理器P0上和第二处理器侧200的处理器(CPU)P1到Pn上的单处理器的OS 300P0到300Pn。
第三实施例的特征在于:除了用于在第一处理器侧100上的处理器P0和第二处理器侧200上的处理器P1到Pn上进行并行处理的并行处理通信单元400P0~400Pn,以及控制代理单元500P0和500Pn之外,还包括用于实现在第一处理器侧100的处理器P0和第二处理器侧200的处理器P1到Pn上执行各个进程之间的通信的进程间通信单元1000P0到1000Pn。
换句话说,本实施例使传统上安装在多处理器的OS上的进程间通信功能能够在运行单处理器的OS和多处理器的应用程序的、单处理器的OS所进行的并行处理系统上实现,从而能够在用户级提供进程间通信功能。
此外,由于在本实施例中,第一处理器侧100上的单处理器的OS300P0与要在如第一实施例所示的第二处理器侧200上执行的进程进行通信所使用的代理单元70完全执行与第一实施例相同的功能,为了简便,不再对其进行描述。
由于除了上述进程间通信单元1000P0到1000Pn之外的其他组件的结构和操作与第二实施例的上述结构和操作完全相同,因此将只对进程间通信单元1000P0到1000Pn进行描述。
进程间通信单元1000P0到1000Pn利用诸如信号量(semaphore)或消息队列之类的系统,实现在处理器P1到Pn上执行的进程之间的通信。
这里,将针对进程间单元1000P0到1000Pn利用信号量系统进行进程间通信的情况来进行描述。
如图18所示,将对以下情况进行描述:当进程PP-m和进程PP-n分别在第二处理器侧200的处理器Pm和处理器Pn上执行时,进程PP-m和进程PP-n通过进程间通信单元1000Pm和1000Pm利用信号量系统进行通信。
信号量(semaphore)是一种用于多个进程在同时执行多个进程的多任务OS上相互通信和同步的系统,并且是一种共享标记(计数器),相互同步的进程注意着该计数器,以根据计数器的改变进行处理,从而实现通信(同步)。
首先,参考图18,将描述增加或减小主存储设备92的信号量信息区域(共享标记)的处理器Pm上的进程PP-m的操作。这里假定信号量增加(semaphore-up)是递增信号量信息区域的计数器值,而信号量减小(semaphore-down)是递减信号量信息的计数器值。当不允许信号量增加时,当前的进程休眠以进入等待状态,并且由信号量减小来唤醒。
(1)当处理器Pm上的进程PP-m增加或减小信号量(信号量计数器)时,该进程PP-m请求作用于进程间通信单元1000Pm。
(2)已经接收到请求的进程间通信单元1000Pm访问信号量信息区域#N(确保了与由系统预定的数量同样多的信号量信息区域),作为可由主存储设备92中所确保的信号量数可区分的共享标记,以确定是否可以增加或减小所述信号量。
接下来,参考图19,将描述处理器Pm上的进程PP-m增加信号量(信号量标记)的情况。
(1)处理器Pm上的进程PP-m请求进程间通信单元1000Pm减小信号量(信号量标记)。
(2)已经接收到请求的进程间通信单元1000Pm访问在主存储设备92中所确保的信号量信息区域#N。这里,在信号量信息区域#N处设置了初始值“0”作为信号量的计数器值,并且事先固定,即使尝试也不能减小。因此,确定不能够减小该信号量。
(3)进程间通信单元1000Pm利用系统调用,请求单处理器的OS300Pm使进程PP-m休眠。
(4)单处理器的OS 300Pm利用系统调用,使进程PP-m休眠,以从运行队列(run queue)中取出该进程。
换句话说,在上述情况下,不允许减小信号量,进程PP-m休眠。
此外,参考图20,将描述当在如上所述进程PP-m休眠的情况下,相同处理器Pm上的进程PP-m1增加信号量时所执行的操作。
(1)进程PP-m1请求进程间通信单元1000Pm增加信号量。
(2)进程间通信单元1000Pm访问在主存储设备92中确保的信号量信息区域#N,以确定存在等待信号量的进程PP-m。
(3)进程间通信单元1000Pm还向控制处理中继单元600传送消息(控制消息),以请求唤醒进程PP-m。
(4)控制代理单元500Pm从控制处理中继单元600接收消息。根据参考图15和16所述的操作,由控制处理中继单元600进行消息中继。
(5)控制代理单元500Pm从消息中确定进行了唤醒等待信号量的进程的请求,以便利用系统调用,向单处理器的OS 300Pm提供用于唤醒处于等待状态的进程PP-m的请求。
(6)单处理器的OS 300Pm利用系统调用来唤醒所请求的进程PP-m,以将其连接到运行队列。在这种情况下,唤醒的进程PP-m再次尝试减小信号量。
利用单处理器的OS 300Pm的通信功能而不使用上述处理(3)和(4)所述的通过控制处理器中继单元600进行的控制消息中继来从进程间通信单元1000Pm到控制代理单元500Pm直接请求进程PP-m的唤醒造成了处理(3)和(4)的取消,从而能够高速处理。
参考图21,将描述在当处理器Pm的进程PP-m如上所述休眠时其他处理器Pn上的进程PP-n增加信号量的情况下所进行的操作。
(1)处理器Pn上的进程PP-n从其自身的处理器Pn的进程间通信单元1000Pn请求信号量增加。
(2)进程间通信单元1000Pn访问在主存储设备92中所确保的信号量信息区域#N,以确定存在等待信号量的进程PP-m。
(3)进程间通信单元1000Pn还向控制处理中继单元600传送消息(控制消息),以请求唤醒进程PP-m。
(4)随后,处理器Pm的控制代理单元500Pm从控制处理中继单元600接收消息。根据参考图15和16所述的操作来由控制处理中继单元600进行消息中继。
(5)控制代理单元500Pm从该消息中确定进行了唤醒等待信号量的进程的请求,以利用系统调用,向单处理器的OS 300Pm提供用于唤醒处于等待状态的进程PP-m的请求。
(6)处理器的OS 300Pm利用系统调用唤醒所请求的进程PP-m,以将其连接到运行队列。在这种情况下,所唤醒的进程PP-m再次尝试减小信号量。
接下来,如图22所示,将描述以下情况,所述情况为:当进程PP-m和进程PP-n在第二处理器侧200的处理器Pm和处理器Pn上执行时,进程PP-m和进程PP-n通过进程间通信单元1000Pm和1000Pn利用消息队列系统相互通信。
作为多个进程之间的通信方法的消息队列系统,是一个创建以其名称字面所表示的“队列”并将消息(在进程间传送和接收的处理数据)作为信息存储在队列中的系统。在消息队列系统中,允许接收器侧按照任意顺序接收消息。当进程中的任一个接收到消息时,该消息从队列中消失。
参考图22,将描述处理器Pm上的进程PP-m利用消息队列系统接收消息的情况。在这种情况下,要获得的消息存在于可由主存储设备92中确保的队列信号区分的队列消息区域#N(确保了与预定数量同样多的队列信息区域)。
(1)为了接收消息,在处理器Pm上的进程PP-m从进程间通信单元1000Pm中请求接收。
(2)已经接收到请求的进程间通信单元1000Pm访问在主存储设备92中所确保的队列信息区域#N以接收消息。
(3)然后,进程间通信单元1000Pm将接收到的消息拷贝到请求源进程PP-m上。此时,将当前的消息从主存储设备92中所确保的队列信息区域#N中删除。
接下来,参考图23,将描述当在处理器Pm上的进程PP-m通过消息队列系统接收消息时所执行的第二操作。在这种情况下,要获取的消息未能存在于主存储设备92所确保的队列信息区域#N中。
(1)为了接收消息,在处理器Pm上的进程PP-m请求作用于进程间通信单元1000Pm。
(2)已经接收到该请求的进程间通信单元1000Pm访问在主存储设备92中所确保的队列信息区域#N。在这种情况下,确定要获得的消息未能存在于所确保的队列信息区域#N,而不能接收消息。
(3)进程间通信单元1000Pm利用系统调用,请求单处理器的OS300Pm使进程PP-m休眠。
(4)单处理器的OS 300Pm利用系统调用来使进程PP-m休眠以从运行队列中断开所述进程。
换句话说,不允许进程PP-m接收消息,从而在上述情况下,该进程休眠。
参考图24,将描述当处理器Pm上的进程PP-m通过消息队列系统传送消息时所执行的操作。在这种情况下,不存在正在等待要传送的消息的任何进程,并且只进行向主存储设备92中所确保的队列信息区域#N的消息传送。
(1)为了传送消息,在处理器Pm的进程PP-m请求作用于进程间通信单元1000Pm。
(2)已经接收到该请求的进程间通信单元1000Pm访问在主存储设备92中所确保的队列信息区域#n,以存储来自进程PP-m的消息。
还将描述如图25所示,当处理器Pm上的进程通过消息队列系统传送消息时所执行的操作。在这种情况下,存在等待要传送的消息的进程。换句话说,这是如图23的实例所示,当进程PP-m不能够接收消息并休眠时从进程PP-m1发送消息的情况。
(1)进程PP-m1从进程间通信单元1000Pm请求消息传送。
(2)进程间通信单元1000Pm访问在主存储设备92中所确保的队列信息区域#N,以存储来自进程PP-m1的消息。这里,确定存在等待消息的进程PP-m。
(3)进程间通信单元1000Pm还向控制处理中继单元600传送控制消息,以请求唤醒进程PP-m。
(4)控制代理单元500Pm从控制处理中继单元600接收控制消息。
(5)控制代理单元500Pm从控制消息中确定命令用于唤醒等待消息的进程,并且利用系统调用,请求单处理器的OS 300Pm唤醒处于等待状态的上述进程PP-m。
(6)单处理器的OS 300Pm利用系统调用唤醒所请求的进程PP-m,以将进程连接到运行队列。
在这种情况下,所唤醒的进程PP-m再次尝试接收消息。结果,来自进程PP-m1的消息由进程PP-m接收。
利用单处理器的OS 300Pm的通信功能而不利用如上述处理(3)和(4)所示的通过控制处理中继单元600所进行的控制消息中继来从进程间通信单元1000Pm向控制代理单元500Pm直接请求进程PP-m的唤醒造成了处理(3)和(4)的取消,从而能够实现高速处理。
参考图26,将描述在当处理器Pm上的进程PP-m休眠以等待消息时,在其他处理器Pn上的进程PP-n如图23所示传送消息的情况下所进行的操作。
(1)处理器Pn上的进程PP-n请求其自身处理器Pn的进程间通信单元1000Pn传送消息。
(2)进程间通信单元1000Pn访问在主存储设备92中所确保的队列信息区域#N,以存储来自进程PP-n的消息。这里确定了存在等待消息的进程PP-m。
(3)进程间通信单元1000Pn控制处理中继单元600传送控制消息,以请求唤醒进程PP-m。
(4)随后,处理器Pm的控制代理单元500Pm从控制处理中继单元600接收控制消息。
(5)控制代理单元500Pm从控制消息中确定命令用于唤醒等待消息的进程,并且利用系统调用,向单处理器的OS 300Pm提供用于唤醒处于等待状态的上述进程PP-m的请求。
(6)单处理器的OS 300Pm利用系统调用唤醒所请求的进程PP-m,以将进程连接到运行队列。
在这种情况下,所唤醒的进程PP-m再次尝试接收消息。结果,来自进程PP-n的消息由进程PP-m接收,以执行在不同处理器间的进程间通信。
根据本实施例,按照前述的方式,利用信号量系统或消息队列系统,通过进程间通信单元1000P0到Pn在相同处理器内或不同处理器间的进程(同步或消息传送和接收)之间的通信,能够实现诸如进程切换和数据传送和接收之类的进程控制。
虽然在相同处理器中的进程之间有限制地进行利用单处理器的OS的进程间通信,并且不同处理器间的进程间通信应该利用具有较重处理负载等的网络来进行,但是,由其处理速度快于网络通信速度的控制处理中继单元600和进程间通信单元1000P0到Pn使用信号量系统和消息队列系统实现了在安装有单处理器的OS的多处理器系统中也具有高处理速度的进程间通信。
对于相同处理器内的进程间通信,通过单处理器的OS,可以获得几乎等价于从进程的休眠到唤醒所需要的处理性能的性能。
另外的优点在于:与多处理器的OS不同,即使安装有随每一个处理器而改变的单处理器的OS,处理器间的进程间通信也是可行的。
接下来,将参考图27来描述通过进程间通信单元1000P0到1000P利用信号量系统和消息队列系统的上述进程间通信的具体实例。
在图27中,进程PP-0、进程PP-j和进程PP-k分别在处理器P0、处理器Pj口处理器Pk上执行。这里,进程PP-0作为浏览器进行操作,进程PP-j作为Java小应用程序进行操作,以及进程PP-k作为MPEG4应用程序进行操作,并且如图28所示,在嵌入在利用进程PP-0的浏览器1100中的窗口内,相互同步地显示利用进程PP-j的Java小应用程序内容1200和利用进程PP-k的MPEG4图像内容1300。
在该实例中,在第一处理器侧100的单处理器的OS 300P0上运行的应用程序的工作单元中,进程PP-0运行在处理器P0上,进程PP-j和进程PP-k,即能够在应用程序内并行化的进程,在第二处理器侧200上的处理器Pj和处理器Pk中并行处理。
在图27中,当激活了Java小应用程序(进程PP-j)和MPEG4应用程序(进程PP-k)时,两个应用程序都等待从浏览器(进程PP-0)中接收Java小应用程序数据和MPEG4图像数据(步骤S101和S201)。
这里,从处理器P0的进程PP-0中,通过进程间通信单元1000P0利用消息传送,将Java小应用程序数据和MPEG4图像数据作为消息传送,并且由Java小应用程序(进程PP-j)和MPEG4应用程序(进程PP-k)接收。
结果,启动了由Java小应用程序(进程PP-j)所进行的操作(步骤S102),以开始由MPEG4应用程序(进程PP-k)所进行的解码处理(步骤S202)。
在该实例中,由于事先清楚由Java小应用程序(进程PP-j)所进行的操作结束得比由MPEG4应用程序(进程PP-k)所进行的解码处理要早,因此,将信号量计数器的初始值设置为“0”,从而在完成操作之后,Java小应用程序(进程PP-j)等待由MPEG4应用程序(进程PP-k)所进行的处理的完成,从而防止已经较早完成操作的Java小应用程序(进程PP-j)减小信号量。此外,定义MPEG4应用程序(进程PP-k),以便在完成处理之后增加信号量。
虽然Java小应用程序(进程PP-j)尝试增加信号量(步骤S103),但是由于计数器的初始值为“0”,因此其不能够减小信号量,从而使其进入休眠以等待信号量。
当MPEG4应用程序(进程PP-k)结束处理(步骤S203)之后,该应用程序请求信号量增加(步骤S204)。结果,等待信号量的Java小应用程序(进程PP-j)被唤醒并允许其减小信号量。
对每一个帧重复前述操作导致了将利用进程PP-j的Java小应用程序的内容1200和利用进程PP-k的MPEG4图像内容1300相互同步地显示在嵌入于利用进程PP-0的浏览器1100的窗口内。
接下来,将参考图29来描述根据本发明第四实施例的并行处理系统。图29是示出了根据第四实施例的并行处理系统结构的方框图,其中,与图13所示的组件相同的组件由相同的参考符号表示。
如图29所示,根据第四实施例的并行处理系统包括通过系统总线91连接的多个处理器(CPU)P1~Pn(n是不小于2的整数)构成的多处理器,所述多个处理器安装有运行于各个处理器P1到Pn上的单处理器的OS 300P1到300Pn。
更具体地,本实施例与第一到第三实施例的不同在于:不将多处理器逻辑上划分为第一处理器侧和第二处理器侧两组。
与上述第三实施例相似,第四实施例的特征在于:除了用于进行处理器P1到Pn的并行处理的并行处理通信单元400P1到400Pn,以及控制代理单元500P1到500Pn之外,还包括用于实现在处理器P1到Pn上执行的各个进程之间的通信的进程间通信单元1000P1到1000Pn。
另一方面,可以进行每一个处理器P1到Pn上的进程控制,而没有第一实施例中所设置的OS服务单元50P1到50Pn以及在第一到第三实施例中所设置的并行处理通信单元400P1到400Pn。在各个处理器P1到Pn上的单处理器的OS 300P1到300Pn不需要是相同的OS,而可以相互不同。
换句话说,本实施例还使传统上安装在多处理器的OS上的进程间通信功能能够在由运行单处理器的OS和多处理器上的应用程序的单处理器的OS所进行的并行处理系统上实现,从而能够在用户级提供进程间通信功能。
进行每一个处理器P1到Pn中的每一个进程的执行,而不需要与其他处理器的互斥控制。
如在第三实施例中所描述的,通过进程间通信单元1000P1到1000Pn,利用信号量系统和消息排队系统,进行各个处理器P1~Pn内的进程间通信和处理器之间的进程间通信,以执行进程之间的同步处理和数据传送和接收。
此外,通过具有并行处理单元、OS服务单元、控制处理中继单元、代理单元和进程间通信单元的各自功能的并行处理程序,可以实现根据各个实施例的上述并行处理系统。将并行处理程序存储在磁盘、半导体存储器或其他存储介质中,并且将其从存储介质中加载到计算机处理设备上,以控制计算机处理设备的操作,从而实现上述的各个功能。
虽然已经针对前述的优选实施例和操作实例描述了本发明,但是本发明并不局限于上述方面,并且可以在其技术思想的范围内的变体中实现。
根据本发明,如前面所述,通过操作单处理器的OS和多处理器上的现有应用程序而不对其进行修改,可以针对该应用程序来实现由多处理器所进行的并行处理。
而且,根据本发明,将并行处理单元、OS服务单元、控制处理中继单元和代理单元作为模块来实现使单处理器的OS和现有的应用程序能够无开销地在多处理器系统结构上操作,而无需修改在单处理器的OS上所执行的应用程序,还会收到由多处理器进行并行处理的好处。
此外,无需在第二处理器侧设置用于文件访问的单独的处理单元,通过利用单处理器的OS的服务而无需对其进行修改,就允许在第二处理器侧上的任务进行文件访问。此外,这使文件访问的专有处理在第一处理器侧上完成,从而可以实现并行处理,而不会如同操作多处理器的OS上的应用程序的情况那样,由于专用处理而产生开销。
此外,通过在第一处理器侧的处理器上和第二处理器侧的每一个处理器上安装具有虚拟存储器机制的单处理器的OS,可以实现上述并行处理,同时进行进程之间的存储器保护。
另外,当第一处理器侧上的工作单元和第二处理器侧上的工作单元中一个或两个都从并行处理单元中请求处理时,第二处理器侧上的并行处理单元或单处理器的OS使请求源工作单元进入待机状态,从而实现同步处理。
而且,当第一处理器侧上的工作单元(任务/进程)和第二处理器侧上的工作单元中一个或两个都从并行处理单元中请求处理时,第二处理器侧上的并行处理单元或单处理器的OS继续执行请求源的工作单元,从而实现异步处理。
此外,将进程间通信功能安装在用户级上能够实现并行处理器中的、单处理器的OS上的进程之间的通信,而不需要多处理器的OS。
另外的优点在于:与多处理器的OS不同,即使当每一个处理器安装有不同的单处理器的OS,也能够进行处理器之间的进程间通信。
虽然已经针对典型实施例示出和描述了本发明,本领域的技术人员应该理解,在不脱离本发明的精神和范围的情况下,可以进行前述和各种其他的改变、省略和添加。因此,本发明不应该被理解为限定于以上所述的特定实施例,而是可以包括针对所附权利要求所提出的特征所涵盖的范围及其等价物内能够具体实现的所有可能的实施例。
Claims (35)
1.一种利用单处理器的操作系统的并行处理系统,所述利用单处理器的操作系统的并行处理系统
在多处理器上运行单处理器的操作系统和应用程序,以及
将在一个处理器上运行的所述应用程序内能够并行化的工作单元控制为其他处理器上的新工作单元,从而针对所述应用程序,由所述多处理器进行并行处理。
2.一种利用单处理器的操作系统的并行处理系统,所述利用单处理器的操作系统的并行处理系统
在多处理器上运行单处理器的操作系统和应用程序,
将所述多处理器逻辑上划分为第一处理器侧和第二处理器侧两组,以及
将在所述第一处理器侧的一个处理器上运行的所述应用程序内能够并行化的工作单元控制为在所述第二处理器侧的处理器上的新工作单元,从而针对所述应用程序,由所述多处理器进行并行处理。
3.一种利用单处理器的操作系统的并行处理系统,所述利用单处理器的操作系统的并行处理系统
在多处理器上运行单处理器的操作系统和应用程序,
将所述多处理器逻辑上划分为第一处理器侧和第二处理器侧两组,
在所述第一处理器侧的处理器上运行单处理器的所述操作系统和所述应用程序,以及
将在所述应用程序内能够并行化的工作单元控制为在所述第二处理器侧的处理器上的新工作单元,从而针对所述应用程序,由所述多处理器进行并行处理。
4.根据权利要求1所述的利用单处理器的操作系统的并行处理系统,其特征在于:
在所述第二处理器侧的处理器上事先创建在所述应用程序内能够并行化的工作单元。
5.根据权利要求1所述的利用单处理器的操作系统的并行处理系统,其特征在于:
将在所述应用程序内能够并行化的工作单元创建和激活为在所述第二处理器侧的处理器上的新工作单元。
6.根据权利要求2所述的利用单处理器的操作系统的并行处理系统,其特征在于:
将具有虚拟存储器机制的单处理器的操作系统安装在所述第一处理器侧的处理器上和在所述第二处理器侧的每一个处理器上。
7.根据权利要求6所述的利用单处理器的操作系统的并行处理系统,其特征在于:
与在所述第一处理器侧的处理器上的工作单元同步地或异步地控制在所述第二处理器侧的处理器上的新工作单元。
8.根据权利要求6所述的利用单处理器的操作系统的并行处理系统,其特征在于:
在所述第一处理器侧的处理器上和在所述第二处理器侧的处理器上的工作单元之间能够实现同步处理和数据传送和接收。
9.根据权利要求8所述的利用单处理器的操作系统的并行处理系统,其特征在于:
在所述第一处理器侧的处理器上和在所述第二处理器侧的处理器上设置了进程间通信单元,所述进程间通信单元利用信号量系统和消息队列系统来执行所述工作单元之间的同步处理和数据传送和接收。
10.根据权利要求1所述的利用单处理器的操作系统的并行处理系统,其特征在于:
把进行包括所述工作单元的创建的与工作单元有关的控制的并行处理单元、以及向所述工作单元提供所述单处理器的操作系统的服务的操作系统服务单元包括在所述第一处理器侧和所述第二处理器侧的每一个中。
11.根据权利要求1所述的利用单处理器的操作系统的并行处理系统,其特征在于包括:
控制处理中继单元,用于进行所述第一处理器侧和所述第二处理器侧之间的控制信号和数据的传送和接收。
12.根据权利要求11所述的利用单处理器的操作系统的并行处理系统,其特征在于:
所述控制处理中继单元包括与每一个处理器相对应的中断控制设备和与每一个处理器相对应的通信区域,
所述中断控制设备由以下组件形成:中断指示单元,用于指示其他处理器中断;中断状态保存单元,用于保存由中断指示进行了中断的信息;以及中断取消单元,用于清除中断,以及
所述通信区域由以下部分形成:通信理由保存区域,用于保存来自通信源处理器的通信理由;通信数据保存区域,用于保存要通信的通信数据;以及互斥控制区域,用于锁定通信区域以确保通信。
13.根据权利要求11所述的利用单处理器的操作系统的并行处理系统,其特征在于:
所述控制处理中继单元包括与每一个处理器相对应的中断控制设备和与每一个处理器相对应的通信区域,
所述中断控制设备由以下组件形成:中断指示单元,用于指示其他处理器中断;中断状态保存单元,用于保存由中断指示进行了中断的信息;以及中断取消单元,用于清除中断,以及
所述通信区域由以下部分形成:通信队列,用于保存来自通信源处理器的通信理由和要通信的通信数据;以及互斥控制区域,用于锁定通信区域以确保通信。
14.根据权利要求10所述的利用单处理器的操作系统的并行处理系统,其特征在于:
在所述第一处理器侧设置代理单元,所述代理单元通过处理单元号与所述第二处理器侧的工作单元关联,以进行所述第二处理器侧的工作单元和所述单处理器的操作系统之间的各种控制信号的通知。
15.根据权利要求10所述的利用单处理器的操作系统的并行处理系统,其特征在于:
将所述并行处理单元、操作系统服务单元、控制处理中继单元和代理单元以模块的方式被包括在内。
16.根据权利要求10所述的利用单处理器的操作系统的并行处理系统,其特征在于:
在所述第二处理器侧的所述并行处理单元具有创建由所述第二处理器侧上的其他处理器并行处理的工作单元的功能。
17.根据权利要求1所述的利用单处理器的操作系统的并行处理系统,其特征在于:
每一个所述处理器安装有具有虚拟存储器机制的所述单处理器的操作系统,以便能够实现所述一个处理器和所述其他处理器上的工作单元之间的同步处理和数据传送和接收。
18.根据权利要求17所述的利用单处理器的操作系统的并行处理系统,其特征在于:
在每一个所述处理器上设置进程间通信单元,所述进程间通信单元利用信号量系统和消息队列系统来执行所述工作单元之间的同步处理和数据传送和接收。
19.根据权利要求17所述的利用单处理器的操作系统的并行处理系统,其特征在于包括:
控制处理中继单元,用于在每一个所述处理器上的所述工作单元之间的同步处理和数据传送和接收时,进行控制信号和数据的传送和接收。
20.一种利用单处理器的操作系统的并行处理程序,包括以下功能:
在多处理器上运行单处理器的操作系统和应用程序,以及
将在一个处理器上运行的所述应用程序内能够并行化的工作单元控制为其他处理器上的新工作单元,从而针对所述应用程序,由所述多处理器进行并行处理。
21.一种利用单处理器的操作系统的并行处理程序,包括以下功能:
在多处理器上运行单处理器的操作系统和应用程序,以及
在将所述多处理器逻辑上划分为第一处理器侧和第二处理器侧两组的系统中,
将在所述第一处理器侧的处理器上运行的所述应用程序内能够并行化的工作单元控制为在所述第二处理器侧的处理器上的新工作单元,从而针对所述应用程序,由所述多处理器进行并行处理。
22.一种利用单处理器的操作系统的并行处理程序,包括以下功能:
在多处理器上运行单处理器的操作系统和应用程序,
在将所述多处理器逻辑上划分为第一处理器侧和第二处理器侧两组的系统中,
在所述第一处理器侧的处理器上运行所述单处理器的操作系统和所述应用程序,以及
将在所述应用程序内能够并行化的工作单元控制为在所述第二处理器侧的处理器上的新工作单元,从而针对所述应用程序,由所述多处理器进行并行处理。
23.根据权利要求20所述的利用单处理器的操作系统的并行处理程序,其特征在于包括以下功能:
在所述第二处理器侧的处理器上事先创建在所述应用程序内能够并行化的工作单元。
24.根据权利要求20所述的利用单处理器的操作系统的并行处理程序,其特征在于包括以下功能:
将在所述应用程序内能够并行化的工作单元创建和激活为在所述第二处理器侧的处理器上的新工作单元。
25.根据权利要求20所述的利用单处理器的操作系统的并行处理程序,其特征在于:
在安装了具有虚拟存储器机制的所述单处理器的操作系统的所述第一处理器侧的处理器上和所述第二处理器侧的每一个处理器上执行所述并行处理程序。
26.根据权利要求25所述的利用单处理器的操作系统的并行处理程序,其特征在于包括以下功能:
与在所述第一处理器侧的处理器上的工作单元同步地或异步地控制在所述第二处理器侧的处理器上的新工作单元。
27.根据权利要求25所述的利用单处理器的操作系统的并行处理程序,其特征在于包括以下功能:
在所述第一处理器侧的处理器上和在所述第二处理器侧的处理器上的工作单元之间能够实现同步处理和数据传送和接收。
28.根据权利要求27所述的利用单处理器的操作系统的并行处理程序,其特征在于:
在所述第一处理器侧的处理器上和在所述第二处理器侧的处理器上执行进程间通信功能,所述进程间通信功能利用信号量系统和消息队列系统来执行所述工作单元之间的同步处理和数据传送和接收。
29.根据权利要求20所述的利用单处理器的操作系统的并行处理程序,其特征在于:
所述第一处理器侧和所述第二处理器侧的每一个具有:并行处理功能,用于进行包括所述工作单元的创建的、与工作单元有关的控制;以及操作系统服务功能,用于向所述工作单元提供所述单处理器的操作系统的服务。
30.根据权利要求20所述的利用单处理器的操作系统的并行处理程序,其特征在于包括:
控制处理中继功能,用于进行所述第一处理器侧和所述第二处理器侧之间的控制信号和数据的传送和接收。
31.根据权利要求29所述的利用单处理器的操作系统的并行处理程序,其特征在于包括:
代理功能,在所述第一处理器侧,所述代理功能通过处理单元号与所述第二处理器侧的工作单元关联,以进行所述第二处理器侧的工作单元和所述单处理器的操作系统之间的各种控制信号的通知。
32.根据权利要求29所述的利用单处理器的操作系统的并行处理程序,其特征在于:
在所述第二处理器侧的所述并行处理功能创建由所述第二处理器侧上的其他处理器并行处理的工作单元。
33.根据权利要求20所述的利用单处理器的操作系统的并行处理程序,其特征在于:
在每一个所述处理器上安装有具有虚拟存储器机制的所述单处理器的操作系统,在所述一个处理器和所述其他处理器上的工作单元之间能够实现同步处理和数据传送和接收。
34.根据权利要求33所述的利用单处理器的操作系统的并行处理程序,其特征在于:
在每一个所述处理器上执行进程间通信功能,所述进程间通信功能利用信号量系统和消息队列系统来执行所述工作单元之间的同步处理和数据传送和接收。
35.根据权利要求33所述的利用单处理器的操作系统的并行处理程序,其特征在于:
在每一个所述处理器上的所述工作单元之间进行同步处理和数据传送和接收时,执行进行控制信号和数据的传送和接收的控制处理中继功能。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003094768 | 2003-03-31 | ||
JP2003094768A JP4051703B2 (ja) | 2003-03-31 | 2003-03-31 | シングルプロセッサ向けosによる並列処理システム、並列処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1534504A true CN1534504A (zh) | 2004-10-06 |
CN1323364C CN1323364C (zh) | 2007-06-27 |
Family
ID=32290556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100319333A Expired - Fee Related CN1323364C (zh) | 2003-03-31 | 2004-03-31 | 利用单处理器操作系统的并行处理系统及并行处理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7526673B2 (zh) |
JP (1) | JP4051703B2 (zh) |
CN (1) | CN1323364C (zh) |
GB (1) | GB2400213B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102200929A (zh) * | 2010-03-26 | 2011-09-28 | 迈普通信技术股份有限公司 | 任务间异步通信的处理方法及多任务异步通信处理系统 |
CN103176941B (zh) * | 2013-04-09 | 2016-08-03 | 华为技术有限公司 | 核间通信方法和代理装置 |
WO2020174300A1 (en) * | 2019-02-27 | 2020-09-03 | International Business Machines Corporation | Functional completion when retrying non-interruptible instruction in bi-modal execution environment |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4062441B2 (ja) | 2003-07-18 | 2008-03-19 | 日本電気株式会社 | 並列処理システム及び並列処理プログラム |
JP4315057B2 (ja) * | 2004-06-02 | 2009-08-19 | ソニー株式会社 | 情報処理装置および情報処理方法、並びに、プログラム |
JP2006260377A (ja) * | 2005-03-18 | 2006-09-28 | Seiko Epson Corp | 並列処理装置および情報処理方法 |
US7752622B1 (en) | 2005-05-13 | 2010-07-06 | Oracle America, Inc. | Method and apparatus for flexible job pre-emption |
US7844968B1 (en) * | 2005-05-13 | 2010-11-30 | Oracle America, Inc. | System for predicting earliest completion time and using static priority having initial priority and static urgency for job scheduling |
US8214836B1 (en) | 2005-05-13 | 2012-07-03 | Oracle America, Inc. | Method and apparatus for job assignment and scheduling using advance reservation, backfilling, and preemption |
US7984447B1 (en) | 2005-05-13 | 2011-07-19 | Oracle America, Inc. | Method and apparatus for balancing project shares within job assignment and scheduling |
US7743378B1 (en) | 2005-05-13 | 2010-06-22 | Oracle America, Inc. | Method and apparatus for multi-dimensional priority determination for job scheduling |
JP5006526B2 (ja) | 2005-05-31 | 2012-08-22 | ルネサスエレクトロニクス株式会社 | 割り込み分配装置 |
JP4831599B2 (ja) * | 2005-06-28 | 2011-12-07 | ルネサスエレクトロニクス株式会社 | 処理装置 |
GB0516454D0 (en) * | 2005-08-10 | 2005-09-14 | Symbian Software Ltd | Coprocessor support in a computing device |
US8001549B2 (en) * | 2006-04-27 | 2011-08-16 | Panasonic Corporation | Multithreaded computer system and multithread execution control method |
JP4386926B2 (ja) * | 2007-02-16 | 2009-12-16 | 富士通株式会社 | 暗号通信プログラム、暗号通信方法および暗号通信装置 |
US7987385B2 (en) * | 2007-07-24 | 2011-07-26 | Ge Aviation Systems Llc | Method for high integrity and high availability computer processing |
JP4984153B2 (ja) * | 2007-09-12 | 2012-07-25 | 独立行政法人産業技術総合研究所 | 実時間タスクにおけるブロック回避方法 |
US8881163B2 (en) * | 2007-12-07 | 2014-11-04 | Microsoft Corporation | Kernel processor grouping |
JP5212381B2 (ja) * | 2008-01-31 | 2013-06-19 | 日本電気株式会社 | フィードフォーワード制御方法、サービス提供品質制御装置、システム、プログラム及びその記録媒体 |
US8191073B2 (en) * | 2008-03-04 | 2012-05-29 | Fortinet, Inc. | Method and system for polling network controllers |
KR20110097447A (ko) * | 2010-02-25 | 2011-08-31 | 삼성전자주식회사 | 인터럽트 프록시 기능을 구비한 시스템 온 칩 및 그에 따른 인터럽트 프록시 처리방법 |
JP5778478B2 (ja) | 2011-05-23 | 2015-09-16 | ルネサスエレクトロニクス株式会社 | データ処理システム |
US9098270B1 (en) * | 2011-11-01 | 2015-08-04 | Cypress Semiconductor Corporation | Device and method of establishing sleep mode architecture for NVSRAMs |
JP5752009B2 (ja) * | 2011-11-02 | 2015-07-22 | 三菱電機株式会社 | サービス連携装置及びサービス連携方法及びプログラム |
KR101249279B1 (ko) * | 2012-07-03 | 2013-04-02 | 알서포트 주식회사 | 동영상 생성 방법 및 장치 |
US20150046676A1 (en) * | 2013-08-12 | 2015-02-12 | Qualcomm Incorporated | Method and Devices for Data Path and Compute Hardware Optimization |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2253421A5 (zh) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
JPS5764859A (en) | 1980-10-08 | 1982-04-20 | Hitachi Ltd | Multi-processor system |
JPS58225469A (ja) | 1982-06-25 | 1983-12-27 | Nec Corp | マルチプロセツサ制御方式 |
US4694396A (en) * | 1985-05-06 | 1987-09-15 | Computer X, Inc. | Method of inter-process communication in a distributed data processing system |
WO1988008162A1 (en) * | 1987-04-10 | 1988-10-20 | Eip Microwave, Inc. | Data transfer system for a multiprocessor computing system |
JP3107308B2 (ja) | 1988-02-25 | 2000-11-06 | 株式会社日立製作所 | 異種言語混在形プログラム処理コントローラ |
JP2769367B2 (ja) | 1989-09-28 | 1998-06-25 | 株式会社日立製作所 | マルチプロセッサスケジューリング方法 |
JP2831083B2 (ja) | 1990-03-08 | 1998-12-02 | 株式会社日立製作所 | マルチプロセッサシステムおよび割り込み制御装置 |
US5257372A (en) * | 1990-12-19 | 1993-10-26 | Cray Research, Inc. | Methods for efficient distribution of parallel tasks to slave processes in a multiprocessing system |
JPH05324574A (ja) | 1991-10-22 | 1993-12-07 | Fujitsu Ltd | プロセッサ間通信方式 |
JPH08272755A (ja) | 1995-03-29 | 1996-10-18 | Fujitsu Ltd | プロセッサ切替え装置 |
JP3122606B2 (ja) * | 1995-12-15 | 2001-01-09 | 株式会社日立製作所 | メッセージ受信制御方式 |
JP3292976B2 (ja) | 1996-07-22 | 2002-06-17 | 株式会社日立製作所 | マルチプロセッサ描画処理装置 |
US6496823B2 (en) * | 1997-11-07 | 2002-12-17 | International Business Machines Corporation | Apportioning a work unit to execute in parallel in a heterogeneous environment |
JPH11306038A (ja) | 1998-04-16 | 1999-11-05 | Sony Corp | 並列演算処理装置およびその方法 |
US6647423B2 (en) * | 1998-06-16 | 2003-11-11 | Intel Corporation | Direct message transfer between distributed processes |
US6163801A (en) * | 1998-10-30 | 2000-12-19 | Advanced Micro Devices, Inc. | Dynamic communication between computer processes |
JP2002055966A (ja) * | 2000-08-04 | 2002-02-20 | Internatl Business Mach Corp <Ibm> | マルチプロセッサ・システム、マルチプロセッサ・システムに用いるプロセッサ・モジュール及びマルチプロセッシングでのタスクの割り当て方法 |
JP2003058515A (ja) | 2001-08-21 | 2003-02-28 | Nippon Telegr & Teleph Corp <Ntt> | プロセッサ間コマンド処理装置、疎結合マルチプロセッサ装置およびコマンド処理方法 |
WO2003048961A1 (en) * | 2001-12-04 | 2003-06-12 | Powerllel Corporation | Parallel computing system, method and architecture |
US7418703B2 (en) | 2002-03-20 | 2008-08-26 | Nec Corporation | Parallel processing system by OS for single processor |
JP4196333B2 (ja) * | 2003-05-27 | 2008-12-17 | 日本電気株式会社 | 並列処理システム及び並列処理プログラム |
JP4062441B2 (ja) * | 2003-07-18 | 2008-03-19 | 日本電気株式会社 | 並列処理システム及び並列処理プログラム |
JP4171910B2 (ja) * | 2004-03-17 | 2008-10-29 | 日本電気株式会社 | 並列処理システム及び並列処理プログラム |
US20070011687A1 (en) * | 2005-07-08 | 2007-01-11 | Microsoft Corporation | Inter-process message passing |
-
2003
- 2003-03-31 JP JP2003094768A patent/JP4051703B2/ja not_active Expired - Fee Related
-
2004
- 2004-03-24 US US10/807,168 patent/US7526673B2/en active Active
- 2004-03-31 GB GB0407373A patent/GB2400213B/en not_active Expired - Fee Related
- 2004-03-31 CN CNB2004100319333A patent/CN1323364C/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102200929A (zh) * | 2010-03-26 | 2011-09-28 | 迈普通信技术股份有限公司 | 任务间异步通信的处理方法及多任务异步通信处理系统 |
CN103176941B (zh) * | 2013-04-09 | 2016-08-03 | 华为技术有限公司 | 核间通信方法和代理装置 |
WO2020174300A1 (en) * | 2019-02-27 | 2020-09-03 | International Business Machines Corporation | Functional completion when retrying non-interruptible instruction in bi-modal execution environment |
US11449367B2 (en) | 2019-02-27 | 2022-09-20 | International Business Machines Corporation | Functional completion when retrying a non-interruptible instruction in a bi-modal execution environment |
Also Published As
Publication number | Publication date |
---|---|
JP4051703B2 (ja) | 2008-02-27 |
JP2004302837A (ja) | 2004-10-28 |
US20080172667A1 (en) | 2008-07-17 |
US7526673B2 (en) | 2009-04-28 |
GB0407373D0 (en) | 2004-05-05 |
GB2400213A (en) | 2004-10-06 |
GB2400213B (en) | 2006-11-29 |
CN1323364C (zh) | 2007-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1534504A (zh) | 利用单处理器操作系统的并行处理系统及并行处理程序 | |
CN1573656A (zh) | 并行处理系统中的电源管理系统及电源管理程序 | |
CN1670721A (zh) | 应用单处理器操作系统的并行处理系统中的处理器间通信系统及其程序 | |
CN1577316A (zh) | 单处理器操作系统并行处理系统中的安全管理系统 | |
CN1287282C (zh) | 执行实时操作的方法和系统 | |
CN1269337C (zh) | 内容自适应服务控制方法 | |
CN1287283C (zh) | 调度方法和信息处理系统 | |
CN100336352C (zh) | 内容发布系统、描述数据发布设备和内容发布方法 | |
CN1123838C (zh) | 群集控制系统 | |
CN1295583C (zh) | 实现实时操作的方法和系统 | |
CN1120425C (zh) | 存储器控制器和存储器控制方法 | |
CN1577311A (zh) | 调度方法和实时处理系统 | |
CN1260643C (zh) | 数据处理系统和方法、信息处理装置和方法 | |
CN1172239C (zh) | 执行移动对象的方法 | |
CN1204810A (zh) | 遥控方法、服务器及记录介质 | |
CN101036393A (zh) | 信息处理系统、信息处理方法和计算机程序 | |
CN1881903A (zh) | 文件版本管理装置及方法和程序 | |
CN1890944A (zh) | 用于web服务中介体的端口类型不可知的代理支持 | |
CN1702634A (zh) | 便利无环境主机干预下的可分页模式虚拟环境存储管理 | |
CN1656452A (zh) | 用于数据管理的电子设备、方法、程序和存储介质 | |
CN1522006A (zh) | 数字传送网上不同的数据帧接入和传送的系统和方法 | |
CN1181545A (zh) | 信息获取代理系统和信息传送管理系统 | |
CN1609802A (zh) | 用于管理许可的编程接口 | |
CN100339842C (zh) | 信息处理器 | |
CN1666188A (zh) | 无缝系统和记录介质以及计算机系统的处理继续方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070627 Termination date: 20180331 |
|
CF01 | Termination of patent right due to non-payment of annual fee |