CN100565494C - 单处理器操作系统并行处理系统中的安全管理系统 - Google Patents

单处理器操作系统并行处理系统中的安全管理系统 Download PDF

Info

Publication number
CN100565494C
CN100565494C CNB2004100698908A CN200410069890A CN100565494C CN 100565494 C CN100565494 C CN 100565494C CN B2004100698908 A CNB2004100698908 A CN B2004100698908A CN 200410069890 A CN200410069890 A CN 200410069890A CN 100565494 C CN100565494 C CN 100565494C
Authority
CN
China
Prior art keywords
processor
parallel processing
working cell
uniprocessor
application program
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
Application number
CNB2004100698908A
Other languages
English (en)
Other versions
CN1577316A (zh
Inventor
井上浩明
伊藤义行
酒井淳嗣
枝广正人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of CN1577316A publication Critical patent/CN1577316A/zh
Application granted granted Critical
Publication of CN100565494C publication Critical patent/CN100565494C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures 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

Abstract

在多处理器上运行单处理器OS和应用程序的并行处理系统上,相对于应用程序,通过多处理器实现了并行处理,向能够在应用程序内并行化的工作单元提供单处理器OS服务的OS服务单元,响应来自工作单元的处理请求,控制相对于处理请求的安全功能。

Description

单处理器操作系统并行处理系统中的安全管理系统
技术领域
本发明涉及一种多处理器并行处理系统中的安全管理系统,更具体地,涉及一种利用单处理器的OS(操作系统)的并行处理系统中的安全管理系统,能够在多处理器上运行OS和针对单处理器的现有应用程序,使得应用程序能够实现多处理器并行处理。
背景技术
在如包括移动电话和移动PC的移动终端等数据处理设备中,基本上在单处理器上执行针对单处理器的操作系统(此后称为单处理器OS)以及针对单处理器的应用程序(此后简称为应用程序)。
在这样的环境下,当使用上述应用程序,而不在多处理器的基础上进行修改时,应当在多处理器OS上执行应用程序,来代替上述单处理器OS。
在这种控制多处理器OS和上述多处理器系统上的应用程序的执行的系统中,例如,在日本专利未审公开(Kokai)No.Heisei 3-257652和日本专利未审公开(Kokai)No.Heisei 3-113563中公开了现有技术。
日本专利未审公开(Kokai)No.Heisei 3-257652(文献1)公开了一种对由多个处理器元件组成的多处理器系统中的处理器元件之间的中断进行控制的方法。
日本专利未审公开(Kokai)No.Heisei 3-113563(文献2)公开了一种对要分配给多处理器系统中的多个处理器的进程进行调度的方法。
另一方面,日本专利未审公开(Kokai)No.2003-058515(文献3)公开了一种在多个处理器元件上执行单独的进程的方法。
但是,当如现有技术那样在多处理器OS上运行现有应用程序时,即使在应用程序只使用多个处理器之一时,多处理器OS仍然提供针对多处理器的服务,或者即使在没有其他应用程序运行时,仍然互斥地处理其他处理器,从而额外的处理引起了开销,或者可能会引起对上述应用程序进行修改从而用在多处理器中将需要巨大的劳动和成本的问题。
具体地,当以如包括移动电话和移动PC的移动终端等小型数据处理设备中的多处理器来实现并行处理系统时,多处理器OS处理中的开销和对应用程序的修改成为障碍。
在这样的情况下,当使用应用程序,而不对现有的单处理器OS进行修改时,需要实现能够无需修改地在多处理器上运行现有应用程序的并行处理系统。
此外,在传统的多处理器OS并行处理器系统中,由于OS实质上是单一的,难以分离每个处理器的安全功能,而且通过使每个处理器适合于安全性,将使处理器性能一致地退化。
在这样的情况下,希望如包括移动电话和移动PC在内的移动终端等小型数据处理设备是运行在多处理器的每个处理器上的单处理器OS,其中每个处理器独立地具有安全功能,而无需使处理器性能退化。
上述文献并未公开一种单独向每个处理器提供安全功能的技术。
发明内容
本发明的目的是提供一种安全管理系统,能够作为单独针对每个处理器的软件,确保安全性,而不会使与利用单处理器的OS的并行处理系统有关的处理器性能退化,单处理器OS在多处理器上运行单处理器OS和现有的应用程序,而无需对其进行修改,使得现有应用程序实现了多处理器并行处理。
根据本发明的第一方面,一种利用单处理器的OS的并行处理系统中的安全管理系统,其中
并行处理系统在多处理器上运行单处理器OS和应用程序,所述多处理器逻辑上被分为两组,第一处理器侧和第二处理器侧,并且所述并行处理系统控制能够在运行在第一处理器侧的处理器上的应用程序内并行化的工作单元,作为第二处理器侧的处理器上的新的工作单元,从而由多处理器相对于应用程序执行并行处理;
在所述并行处理系统上,向工作单元提供单处理器OS服务的OS服务单元响应来自工作单元的处理请求,控制相对于该处理请求的安全功能。
根据本发明的另一方面,一种利用单处理器的OS的并行处理系统中的安全管理系统,其中
并行处理系统在多处理器上运行单处理器OS和应用程序,并控制能够在运行在一个处理器上的应用程序内并行化的工作单元,作为其他处理器上的新的工作单元,从而由多处理器相对于应用程序执行并行处理;
在所述并行处理系统上,向工作单元提供单处理器OS服务的OS服务单元响应来自工作单元的处理请求,控制相对于该处理请求的安全功能。
根据本发明的另一方面,一种利用单处理器的OS的并行处理系统中的安全管理系统,其中
在作为多处理器上的任务运行单处理器OS和工作单元的并行处理系统上,向工作单元提供单处理器OS服务的OS服务单元响应来自工作单元的处理请求,控制相对于处理请求的安全功能。
根据本发明的另一方面,一种利用单处理器的OS的并行处理系统中的安全管理系统,其中
并行处理系统在多处理器上运行单处理器OS和应用程序,所述多处理器逻辑上被分为两组,第一处理器侧和第二处理器侧,并且
所述并行处理系统控制能够在运行在第一处理器侧的处理器上的应用程序内并行化的工作单元,作为第二处理器侧的处理器上的新的工作单元,从而由多处理器相对于应用程序执行并行处理;
在所述并行处理系统上,并入在单处理器OS中的安全扩展单元响应处理请求,控制相对于来自工作单元的处理请求的安全功能。
根据本发明的另一方面,一种利用单处理器的OS的并行处理系统中的安全管理系统,其中
并行处理系统在多处理器上运行单处理器OS和应用程序,并控制能够在运行在一个处理器上的应用程序内并行化的工作单元,作为其他处理器上的新的工作单元,从而由多处理器相对于应用程序执行并行处理;
在所述并行处理系统上,并入在单处理器OS中的安全扩展单元响应来自工作单元的处理请求,控制相对于处理请求的安全功能。
根据本发明的另一方面,一种利用单处理器的OS的并行处理系统中的安全管理系统,其中
在作为多处理器上的任务运行单处理器OS和工作单元的并行处理系统上,并入在单处理器OS中的安全扩展单元响应来自工作单元的处理请求,控制相对于处理请求的安全功能。
根据本发明的另一方面,一种利用单处理器的OS的并行处理系统中的安全管理系统,其中
并行处理系统在多处理器上运行单处理器OS和应用程序,所述多处理器逻辑上被分为两组,第一处理器侧和第二处理器侧,并且所述并行处理系统控制能够在运行在第一处理器侧的处理器上的应用程序内并行化的工作单元,作为第二处理器侧的处理器上的新的工作单元,从而由多处理器相对于应用程序执行并行处理;
在所述并行处理系统上,提供了工作单元的执行环境的应用程序控制单元响应来自工作单元的处理请求,控制相对于该处理请求的安全功能。
根据本发明的另一方面,一种利用单处理器的OS的并行处理系统中的安全管理系统,其中
并行处理系统在多处理器上运行单处理器OS和应用程序,并控制能够在运行在一个处理器上的应用程序内并行化的工作单元,作为其他处理器上的新的工作单元,从而由多处理器相对于应用程序执行并行处理;
在所述并行处理系统上,提供了工作单元的执行环境的应用程序控制单元响应来自工作单元的处理请求,控制相对于该处理请求的安全功能。
根据本发明的另一方面,一种利用单处理器的OS的并行处理系统中的安全管理系统,其中
在作为多处理器上的任务运行单处理器OS和工作单元的并行处理系统上,提供了工作单元的执行环境的应用程序控制单元响应来自工作单元的处理请求,控制相对于该处理请求的安全功能。
根据本发明的另一方面,一种利用单处理器的OS的并行处理系统中的安全管理系统,其中
并行处理系统在多处理器上运行单处理器OS和应用程序,所述多处理器逻辑上被分为两组,第一处理器侧和第二处理器侧,并且所述并行处理系统控制能够在运行在第一处理器侧的处理器上的应用程序内并行化的工作单元,作为第二处理器侧的处理器上的新的工作单元,从而由多处理器相对于应用程序执行并行处理;
在所述并行处理系统上,向工作单元提供单处理器OS服务的OS服务单元、并入在单处理器OS中的安全扩展单元、以及相对于工作单元控制安全功能的应用程序控制单元中的至少一个响应处理请求,控制相对于来自工作单元的处理请求的安全功能。
根据本发明的另一方面,一种利用单处理器的OS的并行处理系统中的安全管理系统,其中
并行处理系统在多处理器上运行单处理器OS和应用程序,并控制能够在运行在一个处理器上的应用程序内并行化的工作单元,作为其他处理器上的新的工作单元,从而由多处理器相对于应用程序执行并行处理;
在所述并行处理系统上,向工作单元提供单处理器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是示出了根据本发明的第四实例的并行处理系统的结构的方框图。
图30是示出了根据本发明第一实施例的并行处理系统中的安全管理系统的结构的方框图;
图31是示出了本发明第一实施例中控制文件的内容示例的图;
图32是用于解释在本发明的第一实施例中控制文件读取操作的图;
图33是用于解释在本发明的第一实施例中安全管理操作的图;
图34是用于解释在本发明的第一实施例中安全管理操作的图;
图35是示出了根据本发明的第二实施例的并行处理系统中的安全管理系统的结构的方框图;
图36是示出了本发明第二实施例中控制文件的内容示例的图;
图37是用于解释在本发明的第二实施例中控制文件读取操作的图;
图38是用于解释在本发明的第二实施例中安全管理操作的图;
图39是示出了根据本发明的第三实施例的并行处理系统中的安全管理系统的结构的方框图;
图40是示出了本发明第三实施例中控制文件的内容示例的图;
图41是用于解释在本发明的第三实施例中控制文件读取操作的图;以及
图42是用于解释在本发明的第三实施例中安全管理操作的图。
具体实施方式
下面将参考附图详细描述本发明的优选实施例。在以下描述中,阐明了大量特定细节,以便提供对本发明的完全理解。然而,对于本领域的技术人员显而易见,可以脱离这些具体细节来实施本发明。在其他实例中,为了不必要地使本发明不清楚,未详细示出公知结构。
首先,将对其中应用根据本发明的安全管理系统的并行处理系统进行描述。在下文中,通过添加用于询问针对多个处理器的处理的机制和在向多个处理器提供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中的任一个的情况下,命令并行处理单元40P0创建任务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是用于传送和接收第一处理器侧100和第二处理器侧200之间的控制信号和数据的单元,并且用于控制由多个处理器并行处理的多个进程。
下面,将参考附图详细描述根据第二实例构造的并行处理系统的操作。
这里假定应用程序运行于第一处理器侧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通过单处理器的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执行所述处理。
按照上述方式,在第一处理器侧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和互斥控制区域602b形成。
作为实例,将参考图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,以及控制代理单元500P1和500Pn之外,还包括用于实现在第一处理器侧100的处理器P0和第二处理器侧200的处理器P1到Pn上执行各个进程之间的通信的进程间通信单元1000P1到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再次尝试减小信号量。
如以上所阐明的处理(3)和(4)所述,利用单处理器的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到1000Pn利用信号量系统和消息队列系统的上述进程间通信的具体实例。
在图27中,进程PP-0、进程PP-j和进程PP-k分别在处理器P0、处理器Pj和处理器Pk上执行。这里,进程PP-0作为浏览器进行操作,进程PP-j作为Java(R)小应用程序进行操作,以及进程PP-k作为MPEG4应用程序进行操作,并且如图28所示,在嵌入在利用进程PP-0的浏览器1100中的窗口内,相互同步地显示利用进程PP-j的Java(R)小应用程序内容1200和利用进程PP-k的MPEG4图像内容1300。
在该实例中,在第一处理器侧100的单处理器的OS 300P0上运行的应用程序的工作单元中,进程PP-0运行在处理器P0上,进程PP-j和进程PP-k,即能够在应用程序内并行化的进程,在第二处理器侧200上的处理器Pj和处理器Pk中并行处理。
在图27中,当激活了Java(R)小应用程序(进程PP-j)和MPEG4应用程序(进程PP-k)时,两个应用程序都等待从浏览器(进程PP-0)中接收Java(R)小应用程序数据和MPEG4图像数据(步骤S101和S201)。
这里,从处理器P0的进程PP-0中,通过进程间通信单元1000P0利用消息传送,将Java(R)小应用程序数据和MPEG4图像数据作为消息传送,并且由Java(R)小应用程序(进程PP-j)和MPEG4应用程序(进程PP-k)接收。
结果,启动了由Java(R)小应用程序(进程PP-j)所进行的操作(步骤S102),以开始由MPEG4应用程序(进程PP-k)所进行的解码处理(步骤S202)。
在该实例中,由于事先清楚由Java(R)小应用程序(进程PP-j)所进行的操作结束得比由MPEG4应用程序(进程PP-k)所进行的解码处理要早,因此,将信号量计数器的初始值设置为“0”,从而在完成操作之后,Java(R)小应用程序(进程PP-j)等待由MPEG4应用程序(进程PP-k)所进行的处理的完成,从而防止已经较早完成操作的Java(R)小应用程序(进程PP-j)减小信号量。此外,定义MPEG4应用程序(进程PP-k),以便在完成处理之后增加信号量。
虽然Java(R)小应用程序(进程PP-j)尝试减小信号量(步骤S103),但是由于计数器的初始值为“0”,因此其不能够减小信号量,从而使其进入休眠以等待信号量。
当MPEG4应用程序(进程PP-k)结束处理(步骤S203)之后,该应用程序请求信号量增加(步骤S204)。结果,等待信号量的Java小应用程序(进程PP-j)被唤醒并允许其减小信号量。
对每一个帧重复前述操作导致了将利用进程PP-j的Java(R)小应用程序的内容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内的进程间通信和处理器之间的进程间通信,以执行进程之间的同步处理和数据传送和接收。
将参考图30来描述应用于上述并行处理系统的根据本发明的安全管理系统。这里,将对第一实施例进行描述,在第一实施例中,将本发明的安全管理系统应用于作为第一实例的并行处理系统。
根据第一实施例的安全管理系统具有与如图1所示的并行处理系统相同的结构,二者之间的区别在于设置在第一处理器侧10的处理器P0以及第二处理器侧20的处理器P1到Pn0中的OS服务单元1500P0和1500P1~1500Pn具有根据存储在由HD、闪速ROM等构成的外部存储设备93中的控制文件2000P0到2000Pn,通过对每个任务或每个处理器的访问控制、访问定量控制等来实现安全性的功能。与图1所示的组件相同的组件由相同的参考数字表示,并且在这里,将不再对其进行描述。
本实施例通过将安全功能添加到OS服务单元1500P0和1500P1~1500Pn,使系统适合于用户级安全性。
在图31中示出了存储在外部存储设备93中的控制文件2000P0到2000Pn的安全内容的设置实例。在图31所示的控制文件2000P0到2000Pn中,定义了以下安全内容。设置在控制文件2000P0到2000Pn中的安全内容可以全部相同或者彼此不同。
对于在处理器P0和P1到Pn中的每一个上执行的每个任务的控制等级,将任务A、B和C设置为等级0,将任务D和F设置为等级1,而其他任务设置为等级2。
设置为针对每个控制等级的访问控制内容的是:等级0,“全部可以访问”;等级1,“只读访问”;以及等级2,“除屏幕显示之外的所有外部输出均不可能”。
设置为针对每个控制等级的定量限制内容的是:等级0,“标准限制”;等级1,“最多一个读取文件”;以及等级2,“信号量不可用”。
尽管在图31所示的实例中,在控制文件中,针对每个任务设置控制等级,但也可以与所示实例不同,针对每个处理器P0和P1~Pn设置控制等级。
这里,将参照图32,针对每个步骤,描述根据本实施例的安全管理系统的操作。
首先,将对处理器P0到Pn读取存储在外部存储设备93中的控制文件2000P1到2000Pn的情况进行描述。
(1)在激活之后,处理器P1上的OS服务单元1500P1,为了获得其自身处理器的控制文件2000P1,向控制处理中继单元60传送读取存储在外部存储设备93中的控制文件2000P1的请求。
(2)处理器P0的OS服务单元1500P0从控制处理中继单元60接收上述读取请求。
(3)处理器P0的OS服务单元1500P0向单处理器的OS30发布读取控制文件2000P1的请求。
(4)单处理器的OS30向外部存储设备93发布访问控制文件2000P1的请求。
(5)单处理器的OS30从外部控制存储设备93接收控制文件P1的内容。
(6)单处理器的OS30将控制文件2000P1的安全内容移交给处理器P0的OS服务单元1500P0。
(7)处理器P0的OS服务单元1500P0通过控制处理中继单元60传递上述控制文件2000P1的安全内容。
(8)处理器P1的OS服务单元1500P1根据通过控制处理中继单元60传递过来的控制文件2000P1的安全内容,进行对在处理器P1上执行的任务PT-1的安全控制。
当不能通过一个读取请求全部读取出控制文件2000P1的内容时,可以请求只读取所需项(例如,在图31中,每个任务的控制等级),而每次从任务做出处理请求时,可以继续读取其他项。
还可以事先将设置在控制文件2000P0到2000Pn中的安全内容并入到各个处理器P0到Pn的OS服务单元1500P0到1500Pn中,而无需如先前那样,从外部存储设备93读取控制文件。
将对根据这样读取的控制文件2000P1的安全内容,对来自任务的请求进行控制的情况进行描述。
首先,将参照图33和34,对设置在控制文件2000P1中的安全功能限制来自处理器P1上的任务PT-1的请求的情况进行描述。
(1)处理器P1上的任务PT-1请求来自相同处理器上的OS服务单元1500P1的预定处理。
OS服务单元1500P1根据这样获得的控制文件2000P1的安全内容,确定是否接受来自任务PT-1的所述请求。更具体地,确定在针对任务PT-1而设置的控制等级,是否允许所述请求。
(2)当不允许所述请求时,OS服务单元1500P1向作为请求源的任务PT-1返回错误。结果,将对任务PT-1禁止控制文件2000P1中所不允许的处理请求。
例如,在针对处理器P1上的任务PT-1,控制文件2000P1设置控制等级1以允许只读访问的情况下,当从该任务PT-1做出对特定文件的写访问请求时,OS服务单元1500P1根据图31所示的控制文件的安全内容,确定对于任务PT-1,不允许写访问,并向任务PT-1返回错误。
之后,将参照图34,对处理器P0利用安全功能限制来自已经读取了控制文件2000P1的内容的处理器P1上的特定任务PT-1的请求的情况进行描述。
(1)处理器P1上的任务PT-1请求来自相同处理器上的OS服务单元1500P1的预定处理。
OS服务单元1500P1根据这样获得的控制文件2000P1的安全内容,确定是否接受来自任务PT-1的所述请求。
(2)当允许所述请求时,OS服务单元1500P1通过控制处理中继单元60传递所述请求。
(3)处理器P0的OS服务单元1500P0从控制处理中继单元60接收所述请求,以便根据控制文件,确定是否允许所述请求。
(4)当确定不允许所述请求时,处理器P0的OS服务单元1500P0向控制处理中继单元60返回错误。
(5)处理器P1的OS服务单元1500P1从控制处理中继单元60接收错误。
(6)此外,OS服务单元1500P1向作为请求源的任务PT-1返回错误。
如前所述,在处理器P0的OS服务单元1500P0上,对在其上任务PT-1运行的处理器P1的OS服务单元1500P1上允许的处理请求加以限制。因此,在处理器P0的OS服务单元1500P0中,可以设置其内容不同于处理器P1到Pn的控制文件的控制文件2000P0,以便进行对来自处理器P1到Pn的任务的处理请求的安全保护。
在上述实施例中,可以构造系统,将处理器P0的OS服务单元1500P0中的安全内容设置得较低,或者不提供任何安全功能,以便防止在处理器P0上执行的现有应用程序的性能受到限制。
尽管前面的描述中所示出的是通过控制文件设置每个任务的控制等级,例如,也可以设置每个处理器的OS服务单元的安全功能的程度,从不检查安全性的最低等级到检查所有内容(请求)的最高等级,设置对OS服务单元的验证。
还可以向并行处理单元40P0到40Pn,而不是OS服务单元提供安全功能,以便相对于每个并行处理单元40P0到40Pn,在控制文件中限制可发生任务的种类。
此外,尽管本实施例所描述的是将本发明的安全管理系统应用于第一实例的并行处理系统的情况,应当清楚理解的是,本发明的安全系统可以应用于第二和之后的实例的并行处理系统。
通过将本发明应用于第二和第三实例的并行处理系统,可以构造系统以具有设置在每个处理器的进程间通信单元中的安全功能,以针对每个进程间通信单元,限制可执行进程间通信的种类。
在提供了对处理器的电源状态进行管理以便向单处理器的OS做出电源状态改变请求的单元和向单处理器的OS做出运行时钟变化请求的单元的情况下,OS服务单元可以响应来自所述单元的电源控制请求或运行时钟变化请求来进行安全控制。
此外,尽管构造第一实施例,以便读取为各个处理器而准备的控制文件2000P0到Pn,从而使每个OS服务单元根据控制文件的安全内容,进行安全保护,可以通过设置存储在外部存储设备93中的控制文件以适当地改变,来动态地改变安全内容,从而在每次发生改变时,使OS服务单元再次读取控制文件。
尽管在前面的描述中,示出了OS服务单元1500P0到1500Pn读取控制文件或事先将安全内容并入OS服务单元1500P0到1500Pn的情况,可以构造系统,以针对每个OS服务单元,控制每个处理器P0-Pn的OS服务单元1500P0-1500Pn自身的功能,从而对来自运行在每个处理器P0到Pn上的任务的请求进行控制。这产生了与前述情况下所获得的相同效果。
例如,对于预定处理器Pn的OS服务单元1500Pn的功能,限制对文件的写入导致了对从运行在处理器Pn上的任务向文件的写请求的禁止。因此,通过限制每个处理器的OS服务单元的功能,可以获得每个处理器的安全效果。
接下来,将参照图35,对应用于并行处理系统的安全管理系统的第二实施例进行描述。
这里,将对其中将本发明的安全管理系统应用于图12和17中的第二和第三实例所示的并行处理系统的第二实施例进行描述。
构造本实施例,通过使每个OS的安全等级可变,通过运行在每个处理器上的进程,适当地保护服务。
示出了根据第二实施例的安全管理系统的图35中所示为将本发明应用于作为图12所示的第二实例的并行处理系统,与图12所示的组件相同的组件由相同的参考数字表示,以省略对其的描述。
根据第二实施例的安全管理系统具有单处理器的OS 3000P0到3000Pn,单处理器的OS 3000P0到3000Pn具有安全扩展功能,作为设置在各个处理器P0到Pn中的单处理器的OS的扩展。用于扩展安全功能的安全扩展单元3100P0到3100Pn,作为模块,并入单处理器的OS 3000P0到3000Pn中。
单处理器的OS 3000Pn具有请求安全扩展单元3100Pn检查在系统调用中请求安全保护的处理的安全内容的功能。
在本实施例中,在图36中示出了存储在外部存储设备93中的控制文件2000P0到2000Pn中的安全内容的设置实例。在图36所示的安全文件2000P0到2000Pn中,与在每个处理器P0和P1到Pn上执行的进程有关地定义了以下安全内容。设置在这些安全文件2000P0到2000Pn中的安全内容可以全部相同或彼此不同。
对于在处理器P0和P1到Pn中的每一个上执行的每个任务的控制等级,将任务A、B和C设置为等级0,将任务D和F设置为等级1,而其他任务设置为等级2。
对于每个控制等级的访问控制内容,将等级0设置为全部可以访问;将等级1设置为禁止另外的进程发生系统调用;以及将等级2设置为禁止与I/O有关的系统调用。
对于每个控制等级的定量限制,将等级0设置为标准限制;将等级1设置为将读取文件限制为一个;以及将等级2设置为将可用信号量限制为两个。
这里,将参照图37,针对每个步骤,描述根据第二实施例的安全管理系统的操作。
首先,将对将存储在外部存储设备93中的控制文件2000P1到Pn读取到处理器P0到Pn中时所执行的操作进行描述。
(1)处理器Pn上的安全扩展单元3100Pn向单处理器的OS 3000Pn发布读取存储在外部存储设备93中的控制文件2000Pn的请求。
(2)处理器Pn的单处理器OS 3000Pn访问外部存储设备93,以请求读取控制文件2000Pn。
(3)单处理器的OS 3000Pn从外部存储设备93接收控制文件2000Pn。
(4)处理器Pn的单处理器的OS 3000Pn将所获得的控制文件2000Pn的安全内容移交给其自身处理器的安全扩展单元3100Pn。结果,安全扩展单元3100Pn根据接收到的控制文件2000Pn的安全内容,执行安全功能。
当不能通过一个读取请求全部读取出控制文件2000Pn的内容时,可以请求只读取所需项(例如,在图36中,每个进程的控制等级),而每次从进程做出处理请求时,可以继续读取其他项。
还可以无需如先前那样,从外部存储设备93读取控制文件,而事先将设置在控制文件2000P0到2000Pn中的安全内容并入到各个处理器P0到Pn的安全扩展单元3100P0到3100Pn中。
这里,作为根据第二实施例的安全管理系统的操作,将对根据这样读取的控制文件2000P1的安全内容,对来自进程的请求进行控制时所执行的操作的每一步进行描述。
首先,将参照图38,对设置在控制文件2000P1中的安全功能限制来自处理器Pn上的特定进程PP-n的请求的情况进行描述。
(1)处理器Pn上的特定进程PP-n请求来自处理器Pn上的单处理器的OS 3000Pn的系统调用。
(2)当处理进行到需要系统调用中的安全保护的处理部分时,单处理器的OS 3000Pn请求安全扩展单元3100Pn检查安全性。
(3)处理器Pn上的安全扩展单元3100Pn根据事先获得的控制文件2000Pn的安全内容,确定是否应当执行所述安全调用,并将确定结果通知给单处理器的OS 3000Pn。例如,当根据安全内容,确定不允许执行时,将错误通知给单处理器的OS 3000Pn。
(4)被通知了错误的单处理器的OS 3000Pn将错误通知给作为请求源的进程PP-n。
在步骤(3),根据安全内容,允许执行系统调用的情况下,通知单处理器的OS 3000Pn,实现了对所请求的系统调用的处理。
例如,在处理器Pn上的特定进程PP-n的控制等级是等级2,并从所述进程PP-n请求与I/O有关的系统调用的情况下,安全扩展单元3100Pn根据图36所示的控制文件的安全内容,确定来自进程PP-n的请求不可执行,并将错误通知给进程PP-n。
可以构造本实施例,与上述第一实施例相结合,采用这种结构确保了更为可靠的安全环境。
对于每个处理器的安全扩展单元的安全等级,可以通过改变控制文件的内容,而针对每个处理器,不同地设置等级。例如,可以针对特定的处理器设置较为严密的安全等级,而对于其他设置较为宽松的安全等级。
在上述实施例中,也可以构造系统,将处理器P0的安全扩展单元3100P0中的安全内容设置得较低,以便防止对在处理器P0上执行的现有应用程序(进程)的性能加以限制。
同样,在本实施例中,通过将存储在外部存储设备93中的控制文件设置为可以适当地进行改变,并在每次改变控制文件时,使安全扩展单元再次进行读取,可以动态地改变安全内容。
尽管在前面的描述中,示出了安全扩展单元3100P0到3100Pn读取控制文件或事先将安全内容并入安全扩展单元3100P0到3100Pn的情况,可以针对每个安全扩展单元,限制处理器P0到Pn的安全扩展单元3100P0到3100Pn自身的功能,从而对来自运行在每个处理器P0~Pn上的任务的请求进行控制。结果,可以以不同的安全等级控制每个处理器,以获得与上述情况相同的效果。
接下来,将参照图39,对应用于并行处理系统的安全管理系统的第三实施例进行描述。
这里,将对其中将本发明的安全管理系统应用于作为图12和17所示的第二和第三实例的并行处理系统的第三实施例进行描述。
构造本实施例,以便通过使安全等级在应用程序执行环境等级上是可变的,适当地保护由运行在每个处理器上的进程所提供的服务。
示出了根据第三实施例的安全管理系统的图39所示为通过将本发明应用于如图12中的第二实例所示的并行处理系统而获得的结构,其中,与图12所示的组件相同的组件由相同的参考数字表示,以省略对其的描述。
在根据第三实施例的安全管理系统中,处理器P0到Pn具有应用程序控制单元(例如,Java(R)虚拟机)4000P0到4000Pn,其为如Java(R)等作为每个处理器P0到Pn上的进程执行的每个应用程序提供执行环境(以便向如Java(R)等应用程序提供功能),以及对安全等级进行管理。
在图40中示出了在本实施例中,存储在外部存储设备93中的控制文件2000P0到2000Pn的安全内容的设置实例。在图40所示的控制文件中,与作为在每个处理器P0和P1到Pn上执行的应用程序的进程有关地定义了以下安全内容。设置在这些安全文件2000P0到2000Pn中的安全内容可以全部相同或彼此不同。
对于在处理器P0和P1~Pn中的每一个上执行的每个任务的控制等级,将任务A、B和C设置为等级0,将任务D和F设置为等级1,而其他任务设置为等级2。
设置为针对每个控制等级的访问控制内容的是:等级0,“全部可以访问”;等级1,“禁止另外的进程发生系统”;以及等级2,“禁止与I/O有关的系统调用”。
设置为针对每个控制等级的定量限制内容的是:等级0,“标准限制”;等级1,“最多一个读取文件”;以及等级2,“最多两个信号量可用”。
此外,对于对作为应用程序的进程可以使用的库的限制,将等级0设置为所有库,将等级1设置为标准库和音乐功能库,而将等级2设置为标准库。
这里,将参照图41,针对每个步骤,描述根据第三实施例的安全管理系统的操作。
首先,将对处理器P0到Pn读取存储在外部存储设备93中的控制文件2000P1到Pn的情况进行描述。
(1)处理器Pn上的应用程序控制单元4000Pn向单处理器的OS3000Pn发布读取存储在外部存储设备93中的控制文件2000Pn的请求。
(2)处理器Pn的单处理器OS 3000Pn访问外部存储设备93,以请求读取控制文件2000Pn。
(3)单处理器的OS 3000Pn从外部存储设备93接收控制文件2000Pn。
(4)处理器Pn的单处理器的OS 3000Pn将所获得的控制文件2000Pn的安全内容移交给其自身处理器的应用程序控制单元4000Pn,从而应用程序控制单元4000Pn根据控制文件的安全内容,对在其自身处理器上执行的进程的安全性进行管理。
当不能通过一个读取请求全部读取出控制文件2000Pn的内容时,可以请求只读取所需项(例如,在图41中,每个进程的控制等级),而每次从进程做出处理请求时,可以继续读取其他项。
还可以事先将设置在控制文件2000P0到2000Pn中的安全内容并入到各个处理器P0到Pn的应用程序控制单元4000P0到4000Pn中,而无需如先前那样,从外部存储设备93读取控制文件。
作为根据第三实施例的安全管理系统的操作,将对根据这样读取的控制文件2000P1的安全内容,对来自进程的请求进行控制时所执行的操作的每一步进行描述。
首先,将参照图42,对由控制文件2000P1所设置的安全功能限制来自处理器Pn上的进程PP-n(例如,Java(R)应用程序)的请求的情况进行描述。
(1)处理器Pn上的进程PP-n(Java(R)应用程序)请求来自处理器Pn上的应用程序控制单元4000Pn的服务功能。
(2)已经接收到请求的应用程序控制单元4000Pn根据已获得的控制文件2000Pn,确定是否应当执行所请求的服务功能,并在做出不应当执行的确定时,将错误通知给作为请求源的进程PP-n,以及在应当执行时,向作为请求源的进程PP-n通知执行所述服务功能的结果。
例如,在处理器Pn上的特定进程PP-n的控制等级是等级2,并从所述进程PP-n请求使用音乐功能库的服务功能的情况下,应用程序控制单元4000Pn根据图40所示的控制文件的安全内容,确定来自进程PP-n的请求不可执行,并将错误通知给进程PP-n。
可以构造本实施例,与上述第一和第二实施例相结合,采用这种结构确保了更为可靠的安全环境。
尽管在上面的描述中,示出了其中通过控制文件,对每个任务设置控制等级的实例,例如,也可以针对每个应用程序控制单元4000P0到4000Pn,将安全功能设置为高或低,以便在应用程序控制单元,从不检查安全性的最低等级到检查所有内容(请求)的最高等级,对验证进行设置。
此外,在上述实施例中,也可以对系统进行构造,将处理器P0的应用程序控制单元4000P0中的安全内容设置得较低,以防止对在处理器P0上执行的现有应用程序(进程)的性能加以限制。
同样,在本实施例中,通过将存储在外部存储设备93中的控制文件设置为可以适当地进行改变,并在每次改变控制文件时,使应用程序控制单元再次进行读取,可以动态地改变安全内容。
在前面的描述中,示出了应用程序控制单元4000P0到4000Pn读取控制文件或事先将安全内容并入应用程序控制单元4000P0到4000Pn,以便根据安全内容,进行控制的情况,下面,作为第四实施例,将描述除此之外控制进程(例如,Java(R)应用程序)的执行的其他方法。
第四实施例的结构与第三实施例相同,与第三实施例的不同之处在于运行在系统上的每个进程(例如,Java(R)应用程序)的功能以及应用程序控制单元4000P0到4000Pn的功能。
在第四实施例中,当对由设置在每个处理器P0到Pn上以执行其请求的功能彼此不同的进程(例如,Java(R)应用程序)的、提供了进程(例如,Java(R)应用程序)的执行环境的应用程序控制单元(例如,Java(R)虚拟机)4000P0到4000Pn所提供的功能施加了彼此不同的限制时,作为管理所述进程的管理器的进程(例如,Java(R)应用程序)根据由各个处理器的应用程序控制单元4000P0到4000Pn提供的功能,将所述进程(例如,Java(R)应用程序)分配给每个处理器。结果,其请求的功能各不相同的多个进程(例如,Java(R)应用程序)在提供了所请求的功能的各个处理器中分布式地进行操作,有效地防止了性能的恶化。
例如,限制应用程序控制单元(例如,Java(R)虚拟机)的功能的方法包括:并入对每个处理器上的每个应用程序控制单元(例如,Java(R)虚拟机)的功能进行限制的不同简档表(profile)的方法,以及限制可以被加载的类文件或可用库的方法。
此外,通过具有并行处理系统、OS服务单元、控制处理中继单元、代理单元和进程间通信单元的相应功能的并行处理程序,可以实现上述根据各个实施例的并行处理系统,此外,通过具有OS服务单元和应用程序控制单元的功能的安全管理程序,可以实现安全管理系统。将这些程序存储在磁盘、半导体存储器或其他记录介质中,并且从记录介质加载到计算机处理设备上以控制计算机处理设备的操作,从而实现上述的相应功能。
尽管已经参考前述的优选实施例和特定实例描述了本发明,本发明并不一定局限于上述实施例和特定实例,并且可以在本发明的技术思想的范围内在变体中实现。
如前所述,在利用单处理器的OS的并行处理器系统中,其中在多处理器上操作单处理器的OS和现有应用程序,而不对其进行修改,以使现有应用程序能够实现利用多处理器的并行处理,本发明实现了能够通过软件单独控制每个处理器的安全性的安全管理系统,同时并未引起处理器性能上的恶化。
此外,通过有选择地设置向工作单元提供单处理器OS服务的OS服务单元、并入单处理器OS中的安全扩展单元和相对于工作单元进行安全控制的应用程序控制单元,可以在用户级、OS级或应用程序执行环境级实现安全控制。
尽管在用户级安全管理中,库具有单处理器结构,需要对单处理器OS进行修改,而本发明实现了用户级的安全管理,而无需修改OS。
此外,尽管传统的OS级安全管理需要在不同安全等级的执行中的最严重级的操作,恶化了系统性能,而本发明能够通过每个处理器的安全扩展单元,针对每个处理器设置安全等级,从而消除了对系统性能的恶化。
此外,尽管在执行如Java(R)应用程序等应用程序的环境下执行传统的安全管理时,运行其安全等级彼此不同的多个应用程序的需要使系统性能退化并增加了所需的频率,从而增加了功率消耗,而本发明消除了这些缺点,这是因为针对每个处理器或每个应用程序,进行安全管理。
尽管已经针对典型实施例示出和描述了本发明,本领域的技术人员应该理解,在不脱离本发明的精神和范围的情况下,可以进行前述和各种其他的改变、省略和添加。因此,本发明不应该被理解为限定于以上所述的特定实例,而是可以包括针对所附权利要求所提出的特征所涵盖的范围及其等价物内能够具体实现的所有可能的实施例。

Claims (12)

1、一种利用单处理器OS的并行处理系统中的安全管理系统,该并行处理系统在多处理器上运行单处理器OS和应用程序,对所述应用程序进行基于所述多处理器的并行处理,其中
所述多处理器逻辑上被分为两组,第一处理器侧和第二处理器侧,
所述安全管理系统具有:
并行处理单元,控制能够在运行在所述第一处理器侧的处理器上的所述应用程序内并行化的工作单元,作为所述第二处理器侧的处理器上的新的工作单元;和
OS服务单元,向所述第二处理器侧的处理器上的所述工作单元提供所述单处理器OS的服务;
所述OS服务单元具有通过针对每个所述工作单元的访问控制来实现安全性的功能。
2、一种利用单处理器OS的并行处理系统中的安全管理系统,该并行处理系统在多处理器上运行单处理器OS和应用程序,对所述应用程序进行基于所述多处理器的并行处理,其中
所述安全管理系统具有:
并行处理单元,控制能够在运行在一个处理器上的所述应用程序内并行化的工作单元,作为其他处理器上的新的工作单元;和
OS服务单元,向所述其他处理器上的所述工作单元提供所述单处理器OS的服务;
所述OS服务单元具有通过针对每个所述工作单元的访问控制来实现安全性的功能。
3、一种利用单处理器OS的并行处理系统中的安全管理系统,其中
所述并行处理系统是作为多处理器上的任务运行单处理器OS、应用程序、以及能够在所述应用程序内并行化的工作单元的并行处理系统,
所述安全管理系统具有:
OS服务单元,向其他处理器上的工作单元提供所述单处理器OS的服务,
所述OS服务单元具有通过针对每个所述工作单元的访问控制来实现安全性的功能。
4、根据权利要求1所述的安全管理系统,其特征在于
利用事先并入所述OS服务单元中的针对每个所述第一及第二处理器侧的处理器或每个所述第二处理器侧的处理器上的所述工作单元的安全内容,所述OS服务单元响应来自所述工作单元的处理请求,根据所述安全内容,相对于所述处理请求,进行安全性保护。
5、根据权利要求1所述的安全管理系统,其特征在于
利用设置在控制文件中的针对每个所述第一及第二处理器侧的处理器或每个所述第二处理器侧的处理器上的所述工作单元的安全内容,
所述OS服务单元响应来自所述工作单元的处理请求,根据所述控制文件的安全内容,相对于所述处理请求进行安全性保护。
6、根据权利要求5所述的安全管理系统,其特征在于
所述控制文件针对每个处理器,设置其等级根据每个所述处理器变化的安全内容,并存储在所述并行处理系统上的外部存储设备中,
所述第一及第二处理器侧的每个处理器的所述OS服务单元从所述外部存储设备读取每个相应的所述控制文件,以便响应来自所述第二处理器侧的处理器上的所述工作单元的请求,控制安全功能。
7、根据权利要求6所述的安全管理系统,其特征在于
当改变存储在所述外部存储设备中的所述控制文件时,相应的所述第一及第二处理器侧的处理器的所述OS服务单元再次读取改变后的所述控制文件。
8、一种利用单处理器OS的并行处理系统中的安全管理系统,该并行处理系统在多处理器上运行单处理器OS和应用程序,对所述应用程序进行基于所述多处理器的并行处理,其中
所述多处理器逻辑上被分为两组,第一处理器侧和第二处理器侧,
所述安全管理系统具有:
并行处理单元,控制能够在运行在所述第一处理器侧的处理器上的所述应用程序内并行化的工作单元,作为所述第二处理器侧的处理器上的新的工作单元;和
向所述第二处理器侧的处理器上的所述工作单元提供所述单处理器OS服务的OS服务单元、并入在所述单处理器OS中的安全扩展单元、以及相对于所述工作单元控制安全功能的应用程序控制单元,
所述OS服务单元、所述安全扩展单元、所述应用程序控制单元中的至少一个,响应来自所述工作单元的处理请求进行相对于所述处理请求的安全控制。
9、一种利用单处理器OS的并行处理系统中的安全管理系统,该并行处理系统在多处理器上运行单处理器OS和应用程序,对所述应用程序进行基于所述多处理器的并行处理,其中
所述多处理器逻辑上被分为两组,第一处理器侧和第二处理器侧,
所述安全管理系统具有:
并行处理单元,控制能够在运行在所述第一处理器侧的处理器上的所述应用程序内并行化的工作单元,作为所述第二处理器侧的处理器上的新的工作单元;和
OS服务单元,向所述第二处理器侧的处理器上的所述工作单元提供所述单处理器OS服务;
属于所述第一处理器侧的处理器,并且发出与所述第一处理器侧的处理器的工作单元有关的请求的并行处理单元,具有:
对于所述第二处理器侧的处理器发出与第一处理器侧的工作单元有关的请求,所述第二处理器侧的处理器根据所述请求,作为新的工作单元执行所述工作单元的单元;和
在执行请求的功能不同的工作单元时,根据由向所述工作单元提供执行环境的应用程序控制单元所提供的功能,选择并分配执行所述工作单元的处理器的单元,
所述OS服务单元,具有通过针对每个所述工作单元的访问控制来实现安全性的功能。
10、一种利用单处理器OS的并行处理系统中的安全管理系统,该并行处理系统在多处理器上运行单处理器OS和应用程序,对所述应用程序进行基于所述多处理器的并行处理,其中
所述安全管理系统具有:
并行处理单元,控制能够在运行在一个处理器上的所述应用程序内并行化的工作单元,作为其他处理器上的新的工作单元;和
OS服务单元,向所述其他处理器上的所述工作单元提供所述单处理器OS的服务;
属于所述一处理器,并且发出与所述一处理器的工作单元有关的请求的并行处理单元,具有:
对于所述其他处理器发出与所述一处理器的工作单元有关的请求,所述其他处理器根据所述请求,作为新的工作单元执行所述工作单元的单元;和
在执行请求的功能不同的工作单元时,根据由向所述工作单元提供执行环境的应用程序控制单元所提供的功能,选择并分配执行所述工作单元的处理器的单元,
所述OS服务单元,具有通过针对每个所述工作单元的访问控制来实现安全性的功能。
11、一种利用单处理器OS的并行处理系统中的安全管理系统,其中
所述并行处理系统作为多处理器上的任务运行单处理器OS、应用程序、以及能够在所述应用程序内并行化的工作单元的并行处理系统,
所述安全管理系统具有:
并行处理单元,属于一处理器,并且发出与所述一处理器的工作单元有关的请求;和
OS服务单元,向所述其他处理器上的所述工作单元提供所述单处理器OS的服务;
所述并行处理单元具有:
对于所述其他处理器发行出所述一处理器的工作单元有关的请求,所述其他处理器根据所述请求,作为新的工作单元执行所述工作单元的单元;和
在执行请求的功能不同的工作单元时,根据由向所述工作单元提供执行环境的应用程序控制单元所提供的功能,选择并分配执行所述工作单元的处理器的单元,
所述OS服务单元具有通过针对每个所述工作单元的访问控制来实现安全性的功能。
12、根据权利要求10所述的安全管理系统,其特征在于
所述工作单元是Java应用程序,并且通过将限制所述Java应用程序的简档表并入作为每个处理器的应用程序控制单元的每个Java虚拟机中,或者通过限制可加载类文件,来执行请求的功能不同的所述Java应用程序。
CNB2004100698908A 2003-07-18 2004-07-15 单处理器操作系统并行处理系统中的安全管理系统 Expired - Fee Related CN100565494C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003198889A JP4062441B2 (ja) 2003-07-18 2003-07-18 並列処理システム及び並列処理プログラム
JP2003198889 2003-07-18

Publications (2)

Publication Number Publication Date
CN1577316A CN1577316A (zh) 2005-02-09
CN100565494C true CN100565494C (zh) 2009-12-02

Family

ID=32866805

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100698908A Expired - Fee Related CN100565494C (zh) 2003-07-18 2004-07-15 单处理器操作系统并行处理系统中的安全管理系统

Country Status (5)

Country Link
US (1) US7516323B2 (zh)
JP (1) JP4062441B2 (zh)
KR (1) KR100622189B1 (zh)
CN (1) CN100565494C (zh)
GB (1) GB2404050B (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4051703B2 (ja) * 2003-03-31 2008-02-27 日本電気株式会社 シングルプロセッサ向けosによる並列処理システム、並列処理プログラム
US7940932B2 (en) * 2004-04-08 2011-05-10 Texas Instruments Incorporated Methods, apparatus, and systems for securing SIM (subscriber identity module) personalization and other data on a first processor and secure communication of the SIM data to a second processor
US7698552B2 (en) 2004-06-03 2010-04-13 Intel Corporation Launching a secure kernel in a multiprocessor system
KR101123742B1 (ko) * 2005-12-23 2012-03-16 삼성전자주식회사 사용자 인터페이스와 소프트웨어 간의 신뢰 경로 설정 방법및 장치
JP2008097498A (ja) * 2006-10-16 2008-04-24 Olympus Corp プロセッシング・エレメント、コントロール・ユニット、及びこれらを備える処理システム、分散処理方法
US8856522B2 (en) 2007-02-27 2014-10-07 Rockwell Automation Technologies Security, safety, and redundancy employing controller engine instances
JP2010033555A (ja) * 2008-06-30 2010-02-12 Olympus Corp コントロール・ユニット、分散処理システム及び分散処理方法
JP5627187B2 (ja) * 2009-03-13 2014-11-19 新日鉄住金ソリューションズ株式会社 情報処理装置、情報処理方法及びプログラム
CN102163054A (zh) * 2010-12-30 2011-08-24 上海自动化仪表股份有限公司 Profibus-dp主站通信设备及其微处理器和asic芯片共享数据的方法
JP6103647B2 (ja) 2011-11-04 2017-04-05 学校法人早稲田大学 プロセッサシステム及びアクセラレータ
KR101394225B1 (ko) * 2012-06-22 2014-05-14 인텔렉추얼디스커버리 주식회사 다중 언어로 개발된 어플리케이션을 위한 프로파일링 수행 시스템 및 이를 이용한 프로파일링 방법
US9276959B2 (en) * 2013-11-11 2016-03-01 Amazon Technologies, Inc. Client-configurable security options for data streams
US9794135B2 (en) 2013-11-11 2017-10-17 Amazon Technologies, Inc. Managed service for acquisition, storage and consumption of large-scale data streams
US9858322B2 (en) 2013-11-11 2018-01-02 Amazon Technologies, Inc. Data stream ingestion and persistence techniques
US10635644B2 (en) 2013-11-11 2020-04-28 Amazon Technologies, Inc. Partition-based data stream processing framework
US9720989B2 (en) 2013-11-11 2017-08-01 Amazon Technologies, Inc. Dynamic partitioning techniques for data streams
US9639589B1 (en) 2013-12-20 2017-05-02 Amazon Technologies, Inc. Chained replication techniques for large-scale data streams
JP6231899B2 (ja) 2014-02-06 2017-11-15 ルネサスエレクトロニクス株式会社 半導体装置、プロセッサシステム、及びその制御方法
US20170084373A1 (en) * 2015-09-21 2017-03-23 Qualcomm Incorporated Programmable magnet orientations in a magnetic array
US10133496B1 (en) * 2016-06-15 2018-11-20 Amazon Technologies, Inc. Bindable state maintaining components
GB2564878B (en) * 2017-07-25 2020-02-26 Advanced Risc Mach Ltd Parallel processing of fetch blocks of data
US11070600B1 (en) 2018-07-16 2021-07-20 Amazon Technologies, Inc. Optimization techniques to support lagging readers at streaming data service
US10768830B1 (en) 2018-07-16 2020-09-08 Amazon Technologies, Inc. Streaming data service with isolated read channels
US10956246B1 (en) 2018-07-16 2021-03-23 Amazon Technologies, Inc. Isolated read channel management interfaces at streaming data service
US10798140B1 (en) 2018-07-16 2020-10-06 Amazon Technologies, Inc. Stream data record reads using push-mode persistent connections
US10855754B1 (en) 2018-07-16 2020-12-01 Amazon Technologies, Inc. Isolated read channel categories at streaming data service
US11075984B1 (en) 2018-07-16 2021-07-27 Amazon Technologies, Inc. Workload management at streaming data service supporting persistent connections for reads
US20220276627A1 (en) * 2021-02-26 2022-09-01 Hewlett Packard Enterprise Development Lp Scalable microservices-driven industrial iot controller architecture

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5764859A (en) 1980-10-08 1982-04-20 Hitachi Ltd Multi-processor system
CA1244142A (en) * 1985-06-17 1988-11-01 William E. Hammer Distributed data management mechanism
DE69031233T2 (de) 1989-02-24 1997-12-04 At & T Corp Adaptive Arbeitsfolgeplanung für Mehrfachverarbeitungssysteme
US5142684A (en) * 1989-06-23 1992-08-25 Hand Held Products, Inc. Power conservation in microprocessor controlled devices
JP2769367B2 (ja) 1989-09-28 1998-06-25 株式会社日立製作所 マルチプロセッサスケジューリング方法
JP2831083B2 (ja) 1990-03-08 1998-12-02 株式会社日立製作所 マルチプロセッサシステムおよび割り込み制御装置
EP0674283A3 (en) * 1994-03-24 1996-03-27 At & T Global Inf Solution Order and download computerized repository resources.
JPH09237193A (ja) * 1996-02-29 1997-09-09 Mitsubishi Electric Corp 並列計算機における動的負荷分散方法
US5872972A (en) * 1996-07-05 1999-02-16 Ncr Corporation Method for load balancing a per processor affinity scheduler wherein processes are strictly affinitized to processors and the migration of a process from an affinitized processor to another available processor is limited
EP1057110A2 (en) 1998-02-26 2000-12-06 Sun Microsystems, Inc. Stack-based security requirements
JPH11306038A (ja) * 1998-04-16 1999-11-05 Sony Corp 並列演算処理装置およびその方法
US6581089B1 (en) * 1998-04-16 2003-06-17 Sony Corporation Parallel processing apparatus and method of the same
JP2003044297A (ja) * 2000-11-20 2003-02-14 Humming Heads Inc コンピュータリソースの制御を行なう情報処理方法および装置、情報処理システム及びその制御方法並びに記憶媒体、プログラム
JP2002353960A (ja) * 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
JP2003058515A (ja) 2001-08-21 2003-02-28 Nippon Telegr & Teleph Corp <Ntt> プロセッサ間コマンド処理装置、疎結合マルチプロセッサ装置およびコマンド処理方法
US7594229B2 (en) * 2001-10-09 2009-09-22 Nvidia Corp. Predictive resource allocation in computing systems
JP3969308B2 (ja) * 2002-03-20 2007-09-05 日本電気株式会社 シングルプロセッサ向けosによる並列処理システム
US7418703B2 (en) * 2002-03-20 2008-08-26 Nec Corporation Parallel processing system by OS for single processor
US20040181782A1 (en) * 2003-03-13 2004-09-16 Piotr Findeisen System and method for optimizing memory usage by locating lingering objects
JP4051703B2 (ja) * 2003-03-31 2008-02-27 日本電気株式会社 シングルプロセッサ向けosによる並列処理システム、並列処理プログラム
JP4196333B2 (ja) * 2003-05-27 2008-12-17 日本電気株式会社 並列処理システム及び並列処理プログラム

Also Published As

Publication number Publication date
KR20050009686A (ko) 2005-01-25
JP2005038113A (ja) 2005-02-10
KR100622189B1 (ko) 2006-09-13
JP4062441B2 (ja) 2008-03-19
US7516323B2 (en) 2009-04-07
GB0415370D0 (en) 2004-08-11
GB2404050A (en) 2005-01-19
CN1577316A (zh) 2005-02-09
GB2404050B (en) 2007-01-17
US20050015625A1 (en) 2005-01-20

Similar Documents

Publication Publication Date Title
CN100565494C (zh) 单处理器操作系统并行处理系统中的安全管理系统
CN1323364C (zh) 利用单处理器操作系统的并行处理系统及并行处理方法
CN100485583C (zh) 并行处理系统中的电源管理系统及电源管理程序
CN100511206C (zh) 应用单处理器操作系统的并行处理系统中的处理器间通信系统
US5357612A (en) Mechanism for passing messages between several processors coupled through a shared intelligent memory
US7827559B1 (en) Framework for executing multiple threads and sharing resources in a multithreaded computer programming environment
US20220171550A1 (en) Method and system for low latency data management
US20220283953A1 (en) Method and system for low latency data management
CN112130963A (zh) 虚拟机任务的调度方法、装置、计算机设备及存储介质
CN113377348A (zh) 应用于任务引擎的任务调整方法、相关装置和存储介质
JPH0589061A (ja) バージヨンアツプ方法
CN106547628A (zh) 多系统的资源释放方法及装置
CN101025747A (zh) 用于收集数据处理系统中的清单信息的方法和系统
US6389482B1 (en) Dynamic transitioning from a local pipe to a cross-system pipe
US20080127301A1 (en) Delivering Callbacks Into Secure Application Areas
JP2003345614A (ja) シングルプロセッサ向けosによる並列処理システム
US20030126135A1 (en) Remote resource management of local devices
JP2001236330A (ja) データ通信方法及びデータ通信装置、並びにプログラム記憶媒体
US6032176A (en) Data-independent type computer system: processing machine, data machine and man-machine interface therein
JPH04167152A (ja) 空きメモリ管理方式
CN116107733A (zh) 计算机系统及计算机系统的横向扩展方法
CN114168306A (zh) 调度方法及调度装置
JP2005071158A (ja) ファイル排他制御方法
Liao et al. The THUDSOS distributed operating system
GB2434008A (en) Inter-processor communication in a parallel processing system running an OS for single processors

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091202

Termination date: 20160715