JP4062441B2 - 並列処理システム及び並列処理プログラム - Google Patents

並列処理システム及び並列処理プログラム Download PDF

Info

Publication number
JP4062441B2
JP4062441B2 JP2003198889A JP2003198889A JP4062441B2 JP 4062441 B2 JP4062441 B2 JP 4062441B2 JP 2003198889 A JP2003198889 A JP 2003198889A JP 2003198889 A JP2003198889 A JP 2003198889A JP 4062441 B2 JP4062441 B2 JP 4062441B2
Authority
JP
Japan
Prior art keywords
processor
control
security
parallel processing
unit
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
JP2003198889A
Other languages
English (en)
Other versions
JP2005038113A (ja
JP2005038113A5 (ja
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
Priority to JP2003198889A priority Critical patent/JP4062441B2/ja
Priority to GB0415370A priority patent/GB2404050B/en
Priority to US10/886,639 priority patent/US7516323B2/en
Priority to CNB2004100698908A priority patent/CN100565494C/zh
Priority to KR1020040055408A priority patent/KR100622189B1/ko
Publication of JP2005038113A publication Critical patent/JP2005038113A/ja
Publication of JP2005038113A5 publication Critical patent/JP2005038113A5/ja
Application granted granted Critical
Publication of JP4062441B2 publication Critical patent/JP4062441B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、マルチプロセッサによる並列処理システムにおける電源管理システムに関し、特に、マルチプロセッサ上でシングルプロセッサ向けOS及び既存のアプリケーションを動作させ、アプリケーションに対してマルチプロセッサによる並列処理を実現するシングルプロセッサ向けOSによる並列処理システムにおけるセキュリティ管理システムに関する。
【0002】
【従来の技術】
携帯電話及び携帯PCを含む携帯端末等のデータ処理装置においては、基本的にシングルプロセッサ上でシングルプロセッサ向けオペレーティングシステム(以下、シングルプロセッサ向けOS)及びシングルプロセッサ向けのアプリケーション(以下、単にアプリケーションと称する)を実行させているのが現状である。
【0003】
このような状況において、マルチプロセッサベースで上記アプリケーションそのままを使用したい場合には、上記シングルプロセッサ向けOSの代わりにマルチプロセッサ向けOS上でアプリケーションを実行させる必要がある。
【0004】
上記のようなマルチプロセッサシステム上でマルチプロセッサ向けOSとアプリケーションの実行を制御するシステムとしては、例えば、特開平3−257652号公報、特開平3−113563号公報に開示される従来技術がある。
【0005】
特開平3−257652号公報(特許文献1)では、複数のプロセッサエレメントからなるマルチプロセッサシステムにおける各プロセッサエレメント間の割り込み制御方法を開示する。
【0006】
特開平3−113563号公報(特許文献2)では、マルチプロセッサシステムにおける複数のプロセッサに割り当てるプロセスのスケジューリング方法を開示する。
【0007】
また、特開2003−058515号公報(特許文献3)では、複数のプロセッサエレメントで個別のプロセスを実行するための方法を開示している。
【0008】
【特許文献1】
特開平3−257652号公報
【特許文献2】
特開平3−113563号公報
【特許文献3】
特開2003−058515号公報
【特許文献4】
米国特許第5142684号明細書
【0009】
【発明が解決しようとする課題】
しかし、従来のように、マルチプロセッサ向けOS上で既存のアプリケーションを動作させる場合、アプリケーションは複数のプロセッサのうちの一つしか使用しないにもかかわらず、マルチプロセッサ向けOSがマルチプロセッサ向けのサービスを行ったり、他のアプリケーションが動作していないのに他のプロセッサとの排他処理を続行するために、その余分な処理がオーバヘッドになってしまい、また上記アプリケーションをマルチプロセッサ用に改造するにも、改造に非常に手間とコストがかかるという問題点があった。
【0010】
特に、携帯電話及び携帯PCを含む携帯端末等の小型データ処理装置においてマルチプロセッサによる並列処理システムを実現する場合、マルチプロセッサ向けOSの処理のオーバヘッド、アプリケーションの改造が大きな障害となる。
【0011】
このような状況において、アプリケーションがそのまま既存のシングルプロセッサ向けOS上で利用されている場合には、既存のアプリケーションをそのままマルチプロセッサ上で動作させることのできる並列処理システムの実現が望まれている。
【0012】
さらに、従来のマルチプロセッサ向けOSによる並列処理システムにおていは、OSが実質的に単一であるため、各プロセッセ毎にセキュリティ機能を分離するといったことが困難であり、また、セキュリティに対応させることにより、プロセッサ性能が一律に下がってしまうという問題点がある。
【0013】
このような状況の元、携帯電話及び携帯PCを含む携帯端末等の小型データ処理装置においては、マルチプロセッサの各プロセッサ上でシングルプロセッサ向けOSを動作させるような並列処理システムであって、各プロセッサ毎に個別にセキュリティ機能を持たせると共に、不必要にプロセッサの性能を下げることのないシステムの提供が期待される。
【0014】
また、上述した何れの特許文献においても、各プロセッサ毎に個別にセキュリティ機能を持たせるといった技術を開示しているものはない。
【0015】
本発明の目的は、マルチプロセッサ上でシングルプロセッサ向けOSと既存のアプリケーションをそれらに改造を加えることなく動作させ、その既存のアプリケーションに対してマルチプロセッサによる並列処理を実現できるようにしたシングルプロセッサ向けOSによる並列処理システム上で、ソフトウェア的に各プロセッサ毎に個別にセキュリティを確保することができ、かつ、プロセッサの性能を低下させることのないセキュリティ管理システムを提供することにある。
【0016】
【課題を解決するための手段】
上記目的を達成するため本発明の並列処理システムは、マルチプロセッサ上でOS及びアプリケーションを動作させ、前記アプリケーションに対して前記マルチプロセッサによる並列処理を実現する並列処理システムにおいて、前記マルチプロセッサを論理的に、第1のプロセッサ群と第2のプロセッサ群の二つに分け、前記第1のプロセッサ群のプロセッサに属し、かつ、前記第1のプロセッサ群のプロセッサのOSとは機能的に独立に設けられ、前記第2のプロセッサ群のプロセッサに対して前記第1のプロセッサ群のプロセッサの処理単位に関する要求を前記第1のプロセッサ群のプロセッサ上のOSに代理して発行する並列処理手段と、前記第2のプロセッサ群のプロセッサに属し、かつ、前記第2のプロセッサ群のプロセッサのOSとは機能的に独立に設けられ、発行されたOSの管理する資源参照に関する要求を制限し、又は、前記OSの管理する資源参照に関する要求を、前記第1のプロセッサ群のプロセッサに対して、前記第2のプロセッサ群のOSに代理して発行するOSサービス手段と、前記第1のプロセッサ群のプロセッサに属し、かつ、前記第1のプロセッサ群のプロセッサのOSとは機能的に独立に設けられ、前記第2のプロセッサ群の前記OSサービス手段からの、前記OSの管理する資源参照に関する要求を制限するOSサービス手段とを備えることを特徴とする。
【0017】
請求項2の本発明の並列処理システムは、前記第1のプロセッサ群のプロセッサに属する並列処理手段が、前記第2のプロセッサ群の少なくとも一のプロセッサに対して、前記第1のプロセッサ群の処理単位に関する要求を発し、前記第2のプロセッサ群のプロセッサが前記要求に基づいて前記処理単位を新たな処理単位として制御することを特徴とする。
【0018】
請求項3の本発明の並列処理システムは、前記OSがシングルプロセッサ向けOSであることを特徴とする。
【0019】
請求項4の本発明の並列処理システムは、前記OSサービス手段が、前記処理単位に対して前記OSのサービスを提供する手段であることを特徴とする。
【0020】
請求項5の本発明の並列処理システムは、前記プロセッサ又は前記処理単位毎のセキュリティ内容を予め前記OSサービス手段に組み込み、前記OSサービス手段が、前記処理単位からの処理要求について、前記セキュリティ内容に従って、前記処理要求に対するセキュリティ保護を行うことを特徴とする。
【0021】
請求項6の本発明の並列処理システムは、前記プロセッサ又は前記処理単位毎のセキュリティ内容を制御ファイルに設定し、前記OSサービス手段が、前記処理単位からの処理要求について、前記制御ファイルのセキュリティ内容に従って、前記処理要求に対するセキュリティ保護を行うことを特徴とする。
【0022】
請求項7の本発明の並列処理システムは、前記並列システム上の外部記憶装置に、前記各プロセッサ毎にレベルの異なるセキュリティ内容を設定した前記制御ファイルを格納し、前記各プロセッサの前記OSサービス手段が、前記外部記憶装置から対応する前記制御ファイルを各々読み込み、前記処理単位からの要求に対するセキュリティ制御を行うことを特徴とする。
【0023】
請求項8の本発明の並列処理システムは、前記外部記憶装置に格納された前記制御ファイルが変更された場合に、対応する前記第1又は第2のプロセッサ群の前記OSサービス手段が、変更された前記制御ファイルを再読込みすることを特徴とする。
【0024】
請求項9の本発明の並列処理システムは、前記OSに組み込んだセキュリティ拡張手段が、前記OSサービス手段の機能を有することを特徴とする。
【0025】
請求項10の本発明の並列処理システムは、前記セキュリティ拡張手段は、前記OSにモジュールとして組み込まれ、前記処理単位からの前記OSに対するシステムコールの要求に対して、前記処理要求に対するセキュリティ制御を行うことを特徴とする。
【0026】
請求項11の本発明の並列処理システムは、前記プロセッサ又は前記処理単位毎のセキュリティ内容を予め前記セキュリティ拡張手段に組み込み、前記セキュリティ拡張手段が、前記処理単位からの処理要求について、前記セキュリティ内容に従って、前記処理要求に対するセキュリティ保護を行うことを特徴とする。
【0027】
請求項12の本発明の並列処理システムは、前記プロセッサ又は前記処理単位毎のセキュリティ内容を制御ファイルに設定し、前記セキュリティ拡張手段が、前記処理単位からの処理要求について、前記制御ファイルのセキュリティ内容に従って、前記処理要求に対するセキュリティ保護を行うことを特徴とする。
【0028】
請求項13の本発明の並列処理システムは、前記並列システム上の外部記憶装置に、前記各プロセッサ毎にレベルの異なるセキュリティ内容を設定した前記制御ファイルを格納し、前記各プロセッサの前記セキュリティ拡張手段が、前記外部記憶装置から対応する前記制御ファイルを各々読み込み、前記処理単位からの要求に対するセキュリティ制御を行うことを特徴とする。
【0029】
請求項14の本発明の並列処理システムは、前記外部記憶装置に格納された前記制御ファイルが変更された場合に、対応する前記プロセッサの前記セキュリティ拡張手段が、変更された前記制御ファイルを再読込みすることを特徴とする。
【0030】
請求項15の本発明の並列処理システムは、前記処理単位に対する実行環境を提供するアプリケーション制御手段が、前記OSサービス手段の機能を有することを特徴とする。
【0031】
請求項16の本発明の並列処理システムは、前記プロセッサ又は前記処理単位毎のセキュリティ内容を予め前記アプリケーション制御手段に組み込み、前記アプリケーション制御手段が、前記処理単位からの処理要求について、前記セキュリティ内容に従って、前記処理要求に対するセキュリティ保護を行うことを特徴とする。
【0032】
請求項17の本発明の並列処理システムは、前記プロセッサ又は前記処理単位毎のセキュリティ内容を制御ファイルに設定し、前記アプリケーション制御手段が、前記処理単位からの処理要求について、前記制御ファイルのセキュリティ内容に従って、前記処理要求に対するセキュリティ保護を行うことを特徴とする。
【0033】
請求項18の本発明の並列処理システムは、前記並列システム上の外部記憶装置に、前記各プロセッサ毎にレベルの異なるセキュリティ内容を設定した前記制御ファイルを格納し、前記各プロセッサの前記アプリケーション制御手段が、前記外部記憶装置から対応する前記制御ファイルを各々読み込み、前記処理単位からの要求に対するセキュリティ制御を行うことを特徴とする。
【0034】
請求項19の本発明の並列処理システムは、前記外部記憶装置に格納された前記制御ファイルが変更された場合に、対応する前記第1又は第2のプロセッサ群の前記アプリケーション制御手段が、変更された前記制御ファイルを再読込みすることを特徴とする。
【0035】
請求項20の本発明の並列処理システムは、前記処理単位がJ a v a (登録商標)アプリケーションであることを特徴とする。
【0036】
請求項21の本発明の並列処理システムは、前記処理単位に対して前記シングルプロセッサ向けOSのサービスを提供する前記OSサービス手段の機能について前記プロセッサ毎に制限を設け、前記各プロセッサ上で動作する前記処理単位からの処理要求を制限することを特徴とする。
【0037】
請求項22の本発明の並列処理システムは、要求機能の異なる処理単位を実行させる場合に、前記処理単位に対する実行環境を提供する前記アプリケーション制御手段の提供する機能に応じて、当該処理単位を実行するプロセッサを選択して割り振ることを特徴とする。
【0038】
請求項23の本発明の並列処理システムは、前記処理単位がJ a v a (登録商標)アプリケーションであり、前記各プロセッサのアプリケーション制御手段としてのJ a v a (登録商標)仮想マシン毎に前記J a v a (登録商標)アプリケーションの機能を制限するプロファイルを組み込み、或いはロード可能なクラスファイルを制限することで、要求機能の異なる前記Jav a (登録商標)アプリケーションを実行することを特徴とする。
【0047】
【発明の実施の形態】
まず、本発明の電源管理システムを適用する並列処理システムについて説明する。以下で説明する並列処理システムでは、従来のシングルプロセッサ向けOSに対して改造を加えることなく、複数のプロセッサへの処理を依頼する機構や複数のプロセッサへのOSサービスの提供におけるクリテイカルセクションの保護機構を付加することにより、マルチプロセッサ上での並列処理を実行する。
【0048】
図1は第1例としての並列処理システムの構成を示すブロック図である。
【0049】
図1に示すように、第1例の並列処理システムは、システムバス91で接続される複数のプロセッサ(CPU)P0〜Pn(nは1以上の整数)からなるマルチプロセッサを、論理的に第1プロセッサ側10と第2プロセッサ側20の二組に分け、第1プロセッサ側10のプロセッサP0上で動作するシングルプロセッサ向けOS30を実装し、かつ第1プロセッサ側10のプロセッサP0及び第2プロセッサ側20のプロセッサP1〜Pnのそれぞれに、並列処理を行うための並列処理手段40P0〜40Pn及びOSサービスを処理するためのOSサービス手段50P0〜50Pnを実装して構成される。また、システムバス91には、各プロセッサP0〜Pnが共有する共有メモリとしての主記憶装置92及びディスク装置等の外部記憶装置93が接続される。
【0050】
なお、上記マルチプロセッサには、同一種類のプロセッサを複数備える構成だけでなく、DSPやセキュリティエンジン等の異種の処理装置を複数備える構成も含む。
【0051】
また、第1プロセッサ側10と第2プロセッサ側20間で、制御信号やデータのやり取りを行うための制御処理中継手段60が独自に設けられ、かつ第1プロセッサ側10には、シングルプロセッサ向けOS30が第2プロセッサ側20で実行されるタスクと通信するための代理手段70が設けられている。
【0052】
上記第1プロセッサ側10のプロセッサは、必ずしも単一である必要はなく複数のプロセッサからなっていてもよい。例えば、第1プロセッサ側10を2つのプロセッサとし、それぞれに異なるシングルプロセッサ向けOSを実装するような構成とすることも可能である。
【0053】
また、第1プロセッサ側10のプロセッサで起動されるシングルプロセッサ向けOS30としては、既存のOSが利用される。例えば、リアルタイムOSやUNIX(R) OSがそのまま利用される。
【0054】
本明細書で使用するタスクとは、UNIX(R) OSにおけるプロセスやスレッド、リアルタイムOSにおけるタスク等の並列処理を行うための処理単位を意味している。
【0055】
本並列処理システムにおいては、第1プロセッサ側10のシングルプロセッサ向けOS上でアプリケーションが動作し、そのアプリケーションの処理単位のうち、並列化を行えないタスク(逐次タスク)を第1プロセッサ側10のプロセッサP0で処理し、アプリケーション内で並列化を行えるタスクを第2プロセッサ側20において新たなタスクとして生成して並列処理をさせる。
【0056】
並列処理手段40P0及び並列処理手段40P1〜40Pnは、タスクの生成、起動、停止、終了、削除、及びその他のタスクに関する制御を行う機能を有する。ここでは、第1プロセッサ側10の並列処理手段40P0から第2プロセッサ側20の各プロセッサP1〜Pnの並列処理手段40P1〜40Pnに対して、制御処理中継手段60を介してタスクの生成、起動、停止、終了、削除等の処理を行う。また、シグナル通知については、並列処理手段40P0と並列処理手段40P1〜40Pnの双方向から処理される。
【0057】
OSサービス手段50P0及びOSサービス手段50P1〜50Pnは、外部機器への各種のアクセスと制御を行うためのインタフェース、タスクどうしが共有するリソースへの各種アクセスと制御を行うためのインタフェースとして機能を有する。
【0058】
制御処理中継手段60は、第1プロセッサ側10と第2プロセッサ側20間で、制御信号やデータのやり取りを行うための手段であり、複数のプロセッサで並列処理される複数のタスク間の制御に使用される。
【0059】
代理手段70は、第2プロセッサ側20で実行されるタスク(一部あるいは全部)に対応付けられ、第2プロセッサ側20のタスクとシングルプロセッサ向けOS30間におけるシグナル通知(タスクを制御するための各種制御信号の通知)のために実装されている。
【0060】
以下、上記のように構成される第1例の並列処理システムの動作について、図面を参照して詳しく説明する。
【0061】
ここでは、第1プロセッサ側10のシングルプロセッサ向けOS上でアプリケーションが動作し、そのアプリケーションの処理単位のうち、第1プロセッサ側10のプロセッサP0で処理する処理単位を逐次タスクSTとし、アプリケーション内で並列化を行えるタスクであって、第2プロセッサ側20に対してタスクPT−1〜PT−nとして並列処理をさせる処理単位を並列化タスクPTとする。
【0062】
まず、並列処理手段40P0、40P1〜40Pnによる並列処理起動の動作について、図2と図3を用いて説明する。
【0063】
(1)第1プロセッサ側10の並列化タスクPTを、第2プロセッサ側20のタスクPT−1〜PT−nの何れかとして起動させる場合、並列処理手段40P0に対して、第2プロセッサ側20で起動させる処理単位としてのタスクPT−1〜PT−nの何れかの生成を要求する。
【0064】
並列処理手段40P0、並列処理手段40P1〜40Pnからの要求(command)としては、例えば、以下のようなものがある。create(タスクの生成)、delete(タスクの削除)、activate(タスクの起動)、terminate(タスクの終了)、signal(シグナル要求)等がある。このうち、create(タスクの生成)、delete(タスクの削除)、activate(タスクの起動)、terminate(タスクの終了)については、第1プロセッサ側10から第2プロセッサ側20へ送られる要求であり、signal(シグナル要求)は、第1プロセッサ側10と第2プロセッサ側20間で双方向から送られる。
【0065】
この要求は、図3に示すようなメッセージによって行われる。すなわち、要求する内容(この場合は、タスク生成)を示す要求内容201、タスクを処理させる第2プロセッサ側20のプロセッサP1〜Pnを指定するプロセッサ番号202、新たに生成するタスクPT−1〜PT−nを示すタスク番号、タスク生成を要求する並列化タスクPTを示す元タスク番号からなるメッセージを並列処理手段40P0に対して送信することで、タスク生成の要求を行う。なお、タスク生成以外の要求についても、図3に示すメッセージに従った要求が送られる。
【0066】
(2)これに対して、並列処理手段40P0は、生成するタスクPT−1〜PT−nに対応する代理手段70を起動する。この代理手段70は、第1プロセッサ側10と第2プロセッサ側20でタスクの管理内容を共有しないようにするため、かつ排他処理を第1プロセッサ側10で完結させるために起動される。この時、代理手段70にはタスクPT−1〜PT−nのタスク番号が保持される。
【0067】
(3)さらに、並列処理手段40P0は、上述したタスク番号及び要求内容(第2プロセッサ側20のプロセッサP1〜Pnへのタスク生成)といったタスク生成に必要なデータと、「並列処理」を指定する通信理由情報とを制御処理中継手段60に設定する。
【0068】
これにより、制御処理中継手段60に対して、後述する主記憶装置92(共有メモリ)への通信内容の設定とプロセッサ間割り込みのための処理が行われる。
【0069】
ここで、通信理由情報とは、制御処理中継手段60に渡したデータの受け取り先(取得先)を示すものであり、上記の場合、指定されたプロセッサP1〜Pnの並列処理手段40P1〜40Pnによって、制御処理中継手段60に設定されたデータが取得されることになる。
【0070】
(4)第2プロセッサ側20の指定されたプロセッサP1〜Pn上の並列処理手段40P1〜40Pnは、制御処理中継手段60から通信理由情報が「並列処理」の要求内容(タスク制御に必要なデータ)を取得する。
【0071】
(5)そして、並列処理手段40P1〜40Pnは、取得した要求内容に基づいてプロセッサP1〜Pn上でタスクPT−1〜PT−nを生成・起動する。
【0072】
以上により、第1プロセッサ側10のシングルプロセッサ向けOS上で動作するアプリケーションの処理単位である並列化タスクPTの処理単位をを、第2プロセッサ側20上にタスクPT−1〜PT−nとして並列処理をさせることが可能となる。
【0073】
なお、上記の動作においては、並列処理手段40P1〜40Pnは、取得した要求内容に基づいてプロセッサP1〜Pn上でタスクPT−1〜PT−nを生成して起動する場合について述べたが、第1プロセッサ側10の並列化タスクPTを、予め第2プロセッサ側20のタスクPT−1〜PT−nの何れかとして生成しておき、並列処理手段40P1〜40Pnが、取得した要求内容に基づいてプロセッサP1〜Pn上でタスクPT−1〜PT−nを起動するようにすることもできる。
【0074】
次に、OSサービス手段50P0、50P1〜50PnによるOSサービス処理動作について説明する。
【0075】
OSサービス手段50P0、50P1〜50Pnは、第2プロセッサ側20のプロセッサP1〜Pn上に生成したタスクPT−1〜PT−nからの要求に基づいて、シングルプロセッサ向けOS30によるサービスである、外部機器への各種アクセスと制御、他のタスクと共用するリソースへの各種アクセスと制御に関するサービスを提供するための機能を有する。シングルプロセッサ向けOS30によるサービスには、通常のOSが提供するシステムコールやAPIに相当するものが主な対象となる。
【0076】
第2プロセッサ側20のプロセッサP1〜Pn上のタスクPT−1〜PT−nからのファイルアクセス(例えば、外部記憶装置93上のファイルに対する各種の処理)要求に対するOSサービス手段50P0、50P1〜50Pnの動作を図4を参照して説明する。
【0077】
ここで、ファイルアクセスには、open(ファイルのオープン)、close(ファイルのクローズ)、read(ファイルの読み出し)、write(ファイルの書き込み)、seek(ファイル書き込み位置の移動)、remove(ファイルの削除)、rename(ファイルの名称変更)等の処理が含まれる。
【0078】
(1)第2プロセッサ側20のタスクPT−1〜PT−nにおいてファイルアクセス処理の必要が発生すると、タスクPT−1〜PT−nが、第2プロセッサ側20のOSサービス手段50P1〜50Pnに対してファイルアクセスのためのサービスを要求する。このファイルアクセスのサービス要求においては、例えば、OSサービス手段50P1〜50Pnのファイルへの書き込み処理として定義されたwrite関数やファイルの読み出し処理として定義されたread関数等が呼び出される。
【0079】
ここで、OSサービス手段50P1〜50Pnは、第1プロセッサ側10の処理(シングルプロセッサ向けOS30によるファイルアクセス処理)に必要なデータを設定する。ここで、必要なデータには、要求内容(例えば、write request)、アクセスするファイルの記述子(file descriptor)、文字列へのポインタ、文字列の長さ、タスク番号等の情報が含まれる。
【0080】
(2)OSサービス手段50P1〜50Pnは、通信理由情報を「OSサービス」として、要求内容を含む必要なデータを制御処理中継手段60に対して設定することで、第1プロセッサ側10に対してファイルアクセス要求を発行する。
【0081】
その後、ファイルアクセスのサービス要求を行ったタスクPT−1〜PT−nは、待ち状態となり、対応するプロセッサP1〜Pnにおいては並列処理手段40P1〜40Pnにより他のタスクへ処理が切り替わる(タスクのswitch:スイッチ)。
【0082】
(3)第1プロセッサ側10のOSサービス手段50P0は、制御処理中継手段60から「OSサービス」という通信理由情報の上記ファイルアクセス要求を取得する。
【0083】
(4)第1プロセッサ側10のOSサービス手段50P0は、取得した要求内容に従ってシングルプロセッサ向けOS30に対してファイルアクセスを要求する。
【0084】
(5)これにより、シングルプロセッサ向けOS30は、要求に基づいて外部記憶装置93等に対するファイルアクセス(writeやread等)を行う。このファイルアクセス処理は、シングルプロセッサ向けOS30が本来備えているファイルアクセスサービスをそのまま利用して実行される。
【0085】
(6)要求されたファイルアクセス処理が終了すると、シングルプロセッサ向けOS30は、第1プロセッサ側10のOSサービス手段50P0にファイルアクセス要求に対する戻り値を返し、処理を戻す。
【0086】
(7)さらに、OSサービス手段50P0は、その戻り値とファイルアクセス要求を行ったタスクPT−1〜PT−nのタスク番号を含むデータである通信内容を、「OSサービス」を通信理由情報として制御処理中継手段60に設定することにより、第2プロセッサ側20のプロセッサP1〜Pnに対してファイルアクセスの完了を通知する。
【0087】
(8)対応するプロセッサP1〜PnのOSサービス手段50P1〜50Pnは、制御処理中継手段60から上記設定された戻り値と完了通知を受け取る。
【0088】
(9)そして、第2プロセッサ側20のOSサービス手段50P1〜50Pnは、並列処理手段40P1〜40Pnに対してファイルアクセス要求を行ったタスクPT−1〜PT−nを起動するように依頼する。
【0089】
これにより、待ち状態となっていたタスクPT−1〜PT−nに処理が切り替わる。
【0090】
(10)並列処理手段40P1〜40Pnから起動されたタスクPT−1〜PT−nは、OSサービス手段50P1〜50Pnからファイルアクセスの戻り値を受け取り、処理を継続する。
【0091】
以上により、第2プロセッサ側20に個別にファイルアクセスのための処理手段を設けることなく、第2プロセッサ側20におけるタスクPT−1〜PT−nはシングルプロセッサ向けOS30のサービスをそのまま利用してファイルアクセスが可能となる。また、これにより、ファイルアクセスのための排他処理については、第1プロセッサ側10で完結するため、マルチプロセッサ向けOS上でアプリケーションを動作させる場合のような排他処理によるオーバヘッドが発生することなく並列処理を実現できる。
【0092】
なお、第2プロセッサ側20のプロセッサP1〜Pn上のタスクPT−1〜PT−nが、例えば外部記憶装置93上のリードオンリー(read only)のデータをファイルアクセスする場合には、上記のようにOSサービス手段50P1〜50Pnによる処理を経ることなく、各プロセッサP1〜Pnから外部記憶装置93に直接アクセスするようにしてもよい。
【0093】
ここで、第1プロセッサ側10のプロセッサP0上の逐次タスクSTからのファイルアクセス要求については、OSサービス手段によることなく直接シングルプロセッサ向けOS30によって処理がなされる。以下、図5を参照して説明する。
【0094】
(1)プロセッサP0上の逐次タスクSTは、シングルプロセッサ向けOS30に対してファイルアクセスを要求する。
【0095】
(2)これにより、シングルプロセッサ向けOS30は、要求に基づいて外部記憶装置93等に対するファイルアクセス(writeやread等)を行う。このファイルアクセス処理は、シングルプロセッサ向けOS30が本来備えているファイルアクセスサービスをそのまま利用して実行される。
【0096】
(3)ファイルアクセス処理が終了すると、シングルプロセッサ向けOS30は、逐次タスクSTに対してファイルアクセス要求に対する戻り値を返し、処理を戻す。
【0097】
逐次タスクSTからのOSサービス要求に対しては排他制御等の必要がないので、余計なオーバヘッドが発生しない。
【0098】
制御処理中継手段60による処理動作について、図6及び図7を参照して説明する。
【0099】
まず、制御処理中継手段60の構成を図6に示す。図示のように、制御処理中継手段60は、各プロセッサP0〜Pnに対応した割り込み制御装置61P0〜61Pnと、各プロセッサP0〜Pnに対応した通信領域62P0〜62Pnとを備えて構成される。ここで、通信領域62P0〜62Pnは、主記憶装置92内に確保される。
【0100】
さらに、割り込み装置61P0〜61Pnは、他のプロセッサに対して割り込みを指示する割込指示部61a、割り込みの指示により割り込みがあった旨の情報を保持する割込状態保持部61b、割り込みをクリアする割込取消部61cにより構成される。
【0101】
また、通信領域62P0〜62Pnは、通信元のプロセッサからの通信理由情報を保持する通信理由保持領域62a、通信するための通信データを保持する通信データ保持領域62b、通信を確保するために通信領域に対してロックをかけるための排他制御領域62cにより構成される。
【0102】
ここで、通信データ持領域62bには、通信する通信データ(要求内容を含む必要データ)が格納される主記憶装置92へのポインタが格納されることになる。
【0103】
第1プロセッサ側10の並列処理手段40P0から第2プロセッサ側20のプロセッサP1への通信処理を例にとり、図7を参照してその動作を説明する。
【0104】
(1)並列処理手段40P0は、プロセッサP1用の通信領域62P1の排他制御領域62cにロックをかける。具体的には、排他制御領域62cに格納されるlock変数をロック状態とすることにより、当該プロセッサP1用の通信領域62P1が他のプロセッサで使用されるのを排する。
【0105】
他のプロセッサによって既にロックされている場合には、ロックが解除されるのを待つ。
【0106】
(2)通信領域62P1のロックが取得できた場合、並列処理手段40P0は、通信理由情報と通信データ(要求内容を含む必要データ)を、通信領域62P1の通信理由保持領域62aと通信データ保持領域62bのそれぞれに格納する。
【0107】
格納される通信理由情報としては、上述したようにタスク生成のための通信処理であれば、「並列処理」を示す情報(例えば、並列処理に対応して予め定められている数値等のデータ)が格納される。
【0108】
(3)並列処理手段40P0は、自身の割込制御装置61P0の割込指示部61aに対して、プロセッサP1への割り込みを指示する。
【0109】
(4)割込制御装置61P0の割込指示部61aは、プロセッサP1に対応する割込制御装置61P1の割込状態保持部61bに、割り込みを示す情報をセットする。これにより、プロセッサP1が割り込み状態となる。
【0110】
(5)プロセッサP1の並列処理手段40P1は、制御処理中継手段60の割込制御装置61P1の割込状態保持部61bの状態より、割り込みがセットされたことを判別する。
【0111】
(6)プロセッサP1の並列処理手段40P1は、制御処理中継手段60の自身の割込状態保持部61bの割り込み情報をクリアすることにより、自身の割り込み状態を解除する。
【0112】
(7)プロセッサP1の並列処理手段40P1は、さらに、制御処理中継手段60の自身の通信領域62P1の通信理由保持領域62aと通信データ保持領域62bから、通信理由情報と通信データ(要求内容を含む必要データ)をそれぞれ取得する。
【0113】
(8)プロセッサP1の並列処理手段40P1は、次の通信を受理できるようになった後、自身の通信領域62P1の排他制御領域62cのロックを解除する。具体的には、排他制御領域62cに格納されるlock変数をアンロック状態とすることにより、当該プロセッサP1用の通信領域62P1が他のプロセッサから使用できるように解放する。
【0114】
以上のように、制御処理中継手段60を用いることにより、第1プロセッサ側10と第2プロセッサ側20間で、制御信号やデータのやり取りが実現される。
【0115】
また、代理手段70によるシグナル通知処理動作について、図8を参照して説明する。
【0116】
代理手段70は、シングルプロセッサ向けOS30が第2プロセッサ側20に生成したタスクPT−1〜PT−nとシグナル(制御信号)による通信を行うための機能を有する。この代理手段70には、対応するタスクPT−1〜PT−nのタスク番号が保持されている。
【0117】
なお、複数のタスクPT−1〜PT−nに一対一に代理手段70を関連付けてもよいし、一つの代理手段70に複数のタスクPT−1〜PT−nを関連付けてもよい。
【0118】
(1)第1プロセッサ側10の逐次タスクSTが、シングルプロセッサ向けOS30に対してシグナル通知のサービスを要求する。このシグナル通知によって通信されるシグナルは、シングルプロセッサ向けOS30が本来有するサービス機能により、第2プロセッサ側20の各プロセッサP1〜Pn上で起動されているタスクPT−1〜PT−nを制御するための制御信号である。
【0119】
(2)シングルプロセッサ向けOS30は、シグナルを対応する代理手段70に通知する。
【0120】
(3)代理手段70は、通知されたシグナルを制御処理中継手段60を通じて、自身に対応する第2プロセッサ側20のタスクPT−1の存在するプロセッサP1〜Pnへ通知する。ここで、通信理由情報としては、「並列処理」が設定される。
【0121】
(4)制御処理中継手段60への通信理由情報が「並列処理」であることから、第2プロセッサ側20の対応するプロセッサの並列処理手段40P1〜40Pnは、制御処理中継手段60からシグナル通知要求を取得する。
【0122】
(5)シグナル通知要求を取得した並列処理手段40P1〜40Pnは、対応するタスクPT−1〜PTnに対してシグナル(制御信号)を通知する。
【0123】
以上により、代理手段70が第2プロセッサ側20のプロセッサP0〜Pn上のタスクPT−1〜PT−nとタスク番号によって関連付けられているので、第1プロセッサ側10ではタスクPT−1〜PT−nに対してシングルプロセッサ向けOS30によるシグナル通知のサービスを実行することが可能となる。
【0124】
最後に、第2プロセッサ側20におけるタスク相互の連携動作について、図9と図10を参照して説明する。
【0125】
タスク間の連携を取るための並列処理手段40P1〜40Pnの構成を図9に示す。図示のように、並列処理手段40P1〜40Pnは、相互排他手段41P1〜41Pnを備えている。
【0126】
また、タスクの連携を取るため、主記憶装置92内には、排他制御領域43とタスク管理内容保持領域44を有する。
【0127】
(1)プロセッサP1上のタスクPT−1は、自身の並列処理手段40P1に対して所望の並列処理を要求する。
【0128】
(2)プロセッサP1の並列処理手段40P1は、相互排他手段41P1に並列処理に用いる資源の確保のためにロック取得を要求する。
【0129】
(3)相互排他手段41P1は、主記憶装置92の排他制御領域43を用いてロックを取得する。
【0130】
(4)相互排他手段41P1は、並列処理手段40P1に対してロック取得ができた旨を通知する。
【0131】
(5)並列処理手段40P1は、タスク管理内容保持領域44にプロセッサP1上の並列処理を要求したタスクPT−1の管理内容(要求内容、タスク番号その他の必要なデータ)を保持する。
【0132】
(6)並列処理手段40P1は、優先度の低いタスクを実行している他のプロセッサP2〜Pnへ割り込みをかける。ここでは、プロセッサPnへの割り込みがかけられたものとする。
【0133】
(7)並列処理手段40P1は、相互排他手段41P1に対して上記確保したロックの解除を要求する。
【0134】
(8)相互排他手段41P1は、主記憶装置92の排他制御領域43のロックを解除する。
【0135】
(9)相互排他手段41P1は、並列処理手段40P1に対してロックの解除完了を通知する。
【0136】
(10)並列処理手段40P1は、タスクPT−1に処理を戻す。
【0137】
(11)プロセッサPnの並列処理手段40Pnは、相互排他手段41Pnに対して並列処理に用いる資源の確保のためのロック取得を要求する。
【0138】
(12)相互排他手段41Pnは、主記憶装置92の排他制御領域43を用いてロックを取得する。
【0139】
(13)相互排他手段41Pnは、並列処理手段40Pnに対してロックの取得完了を通知する。
【0140】
(14)並列処理手段40Pnは、タスク管理内容保持領域44内に格納されているタスク管理内容を取得する。
【0141】
(15)並列処理手段40Pnは、タスク管理内容に基づいて新たなタスクを生成起動する。
【0142】
(16)並列処理手段40Pnは、相互排他手段41Pnに対して上記確保したロックの解除を要求する。
【0143】
(17)相互排他手段41Pnは、主記憶装置92の排他制御領域43のロックを解除する。
【0144】
(18)相互排他手段41Pnは、並列処理手段40Pnに対してロックの解除完了を通知する。
【0145】
以上のタスク連携動作により、あるプロセッサP1〜Pnで起動しているタスクPT−1〜PT−nが、自身の処理単位を他のプロセッサに対して並列処理させることが可能となる。
【0146】
上記のように構成される並列処理システムにおける適用例としては、例えばマルチプロセッサの携帯端末において、アプリケーションを動作させる場合を説明する。
【0147】
ここで、アプリケーションが携帯端末上で映像(動画)と音声を同時に再生する機能を有し、そのうち音声出力処理を逐次タスクAとして、映像出力処理を並列化タスクBとして第1プロセッサ側10のプロセッサP0上で動作させる場合を想定して、図11を参照して説明する。
【0148】
並列化タスクBは、上述した並列処理手段によって、第2プロセッサ側20のプロセッサP1〜Pnの何れかにタスクCとして生成され起動される。
【0149】
生成されたタスクCは、OSサービス手段のファイルアクセス処理によって映像の画面出力を実行する。
【0150】
また、逐次タスクAによる音声出力は、シングルタスクOS30のサービスによって音声の出力が実行される。
【0151】
音声と映像の同期を定期的に取る場合には、上述した代理手段70によるシグナル通知動作によって逐次タスクAとタスクC間のシグナル通知を行うことで同期をとる。
【0152】
また、タスクCにおいて、映像に編集を加える処理を実行する場合には、その編集処理をタスク連携処理によって他のプロセッサ上にタスクDとして生成起動する。
【0153】
タスクCによる映像出力処理が終了した場合には、タスクCからファイルアクセス動作によってシングルプロセッサ向けOSに終了通知を行う。
【0154】
本並列処理システムにおいては、並列処理手段40P0〜40Pn、OSサービス手段50P0〜50Pn、制御処理中継手段60及び代理手段70については、モジュールとして実装することにより、シングルプロセッサ向けOS30及びプロセッサP0上で実行されるアプリケーションに改造を加えることなく、マルチプロセッサのシステム構成上で、シングルプロセッサ向けOS30及びアプリケーションをオーバヘッドなく動作させることができると共に、マルチプロセッサによる並列処理の恩恵を受けることが可能となる。
【0155】
次に、本発明を適用する第2例の並列処理システムについて、図12以下を参照して説明する。図12は、この第2例の形態による並列処理システムの構成を示すブロック図であり、図1と共通の構成要素については同じ符号を用いている。図12に示す第2例では、第1例における並列処理手段40P0〜40Pnを、それぞれ並列処理通信手段400P0〜400Pnと制御代理手段500P0〜500Pnとで構成した場合を示している。
【0156】
図12に示すように、本例の並列処理システムにおいて、システムバス91で接続される複数のプロセッサ(CPU)P0〜Pn(nは1以上の整数)からなるマルチプロセッサを、論理的に第1プロセッサ側100と第2プロセッサ側200の二組に分けて構成している点については、第1例と同様である。
【0157】
この第2例においては、第1プロセッサ側100のプロセッサP0及び第2プロセッサ200のプロセッサ(CPU)P0〜Pnの各プロセッサ上で動作するシングルプロセッサ向けOS300P0〜300Pnを実装している。
【0158】
また、第1プロセッサ側100のプロセッサP0及び第2プロセッサ側200のプロセッサP1〜Pnのそれぞれに、並列処理を行うための並列処理通信手段400P0〜400Pnと制御代理手段500P0〜500Pnを実装して構成される。また、システムバス91には、各プロセッサP0〜Pnが共有する共有メモリとしての主記憶装置92及びディスク装置等の外部記憶装置93が接続されている。
【0159】
また、第1プロセッサ側100と第2プロセッサ側200間で、制御信号やデータのやり取りを行うための制御処理中継手段600が独自に設けられている。
【0160】
なお、この第2例では、第1例で示した第1プロセッサ側100のシングルプロセッサ向けOS300P0が第2プロセッサ側200で実行されるプロセスと通信するための代理手段70については、第1例と全く同じ機能を実行するため、便宜上省略している。
【0161】
また、第1例では、第2プロセッサ側20のプロセッサP1〜Pn上のタスクからのファイルアクセス要求に対してタスクのswitch(スイッチ)がなされることを説明したが、本例においても、第2プロセッサ側200からのファイルアクセスが可能であり、ファイルアクセス要求を行なった第2プロセッサ側200のプロセスPP−1〜PPnは、第2プロセッサ側200のシングルプロセッサ向けOS300P1〜300Pnによってプロセスのswitch(スイッチ)が行なわれる。
【0162】
上記各プロセッサP0〜Pnに実装されるシングルプロセッサ向けOS300P0〜300Pnについては、リアルタイムOSのようなメモリ保護機能を実現する仮想記憶機構を持たないOSだけではなく、既存のOSであるLinuxやWindows(R)等といった仮想記憶機構を備えるOSも用いることが可能であり、各プロセッサP0〜Pnの全て、もしくは一部においてメモリ保護機構の実現が可能である点で第1例と相違する。
【0163】
なお、シングルプロセッサ向けOS300P0〜300Pnは、全部が同じ種類のOSである必要はなく、互いに異なる種類のOSであってもよい。
【0164】
この例では、並列処理を行うための処理単位であるタスクが互いのプロセッサ間でメモリ保護されており、その意味で第1例のタスクと区別するためにプロセスと称することとする。
【0165】
本例による並列処理システムにおいては、第1プロセッサ側100のシングルプロセッサ向けOS300P0上で動作するアアプリケーションの処理単位のうち、並列化を行えないプロセス(逐次プロセスSP)を第1プロセッサ側100のプロセッサP0で処理し、アプリケーション内で並列化を行えるタスクを第2プロセッサ側200において新たなプロセスPP−1〜PP−nとして生成し並列処理をさせる。
【0166】
並列処理通信手段400P0及び並列処理通信手段400P1〜400Pnは、プロセスとシングルプロセッサ向けOSOS300P0〜300Pnとの間で、プロセスの生成、起動、停止、終了、削潤A及びその他のプロセスに関する制御情報の受け渡しを行う機能を有する。
【0167】
ここで、第1プロセッサ側100と第2プロセッサ側200間においては、制御処理中継手段600を介してタスクの生成、起動、停止、終了、削除等に関する制御情報やデータをやり取りする。
【0168】
また、制御代理手段500P0及び制御代理手段500P1〜500Pnは、シングルプロセッサ向けOSOS300P0〜300Pnからプロセスへの処理要求を入手してプロセスを起動する機能を有する。
【0169】
制御処理中継手段600は、第1プロセッサ側10と第2プロセッサ側20間で、制御信号やデータのやり取りを行うための手段であり、複数のプロセッサで並列処理される複数のプロセス間の制御に使用される。
【0170】
以下、上記のように構成される第2例の並列処理システムの動作について、図面を参照して詳しく説明する。
【0171】
ここでは、第1プロセッサ側100のシングルプロセッサ向けOS300P0上でアプリケーションが動作し、そのアプリケーションの処理単位のうち、第1プロセッサ側100のプロセッサP0で処理する処理単位を逐次プロセスSPとし、アプリケーション内で並列化を行えるプロセスであって、第2プロセッサ側200に対してタスクPP−1〜PP−nとして並列処理をさせる処理単位を並列化プロセスPPとする。
【0172】
この第2例の並列処理システムにおいては、あるプロセス(タスク)を起動した後に、呼び出し側のプロセス(タスク)である並列化プロセスPPが、起動したプロセスPP−1〜PP−nの終了を待ち合わせる並列処理の同期起動と、呼び出し側のプロセス(タスク)である並列化プロセスPPが、起動したプロセスPP−1〜PP−nの終了を待ち合わせなくとよい並列処理の非同期起動とが可能である。
【0173】
まず、プロセスの並列処理の同期起動の動作について、図13を参照して説明する。
【0174】
ここでは、第1プロセッサ側100の並列化プロセスPPが、第2プロセッサ側200のプロセッサPk(1≦k≦n)において、第2プロセッサ側200で起動させる処理単位であるプロセスPP−kとして予め生成されているものとする。
【0175】
(1)第2プロセッサ側200のプロセッサPk(1≦k≦n)上のプロセスPP−kが、並列処理通信手段400Pkに対して、自プロセスに属する処理の情報を登録する。これにより、プロセスPP−kは待機状態となっている。
【0176】
(2)並列処理通信手段400Pkは、シングルプロセッサ向けOS300Pk経由で主記憶装置92(共有メモリ)上に必要なデータをアクセスする要求を行う。
【0177】
(3)これにより、プロセスPP−kに属する処理の情報が主記憶装置92(共有メモリ)に格納される。
【0178】
(4)プロセッサP0上のプロセスPPは、並列処理通信手段400P0に対して同期的な処理を依頼する。その後、プロセスPPは待機状態となる。
【0179】
(5)依頼を受けた並列処理通信手段400P0は、シングルプロセッサ向けOS300P0経由で主記憶装置92(共有メモリ)上のデータに対するアクセス要求を行う。
【0180】
(6)シングルプロセッサ向けOS300P0により主記憶装置92(共有メモリ)がアクセスされる。
【0181】
(7)並列処理通信手段400P0は、主記憶装置92(共有メモリ)からプロセスPP−kに属する処理の情報を取得する。これにより、プロセスPP−kを実行するプロセッサ番号とプロセス番号が取得される。
【0182】
(8)並列処理通信手段400P0は、シングルプロセッサ向けOS300P0経由で主記憶装置92(共有メモリ)から取得した情報に基づいて通信依頼を要求する。
【0183】
(9)シングルプロセッサ向けOS300P0により、通信に必要な情報が制御処理中継手段600に設定される。
【0184】
(10)これにより、制御処理中継手段600からプロセッサPkのシングルプロセッサ向けOS300Pkに対して処理要求が送信される。
【0185】
(11)プロセッサPkの制御代理手段500Pkは、シングルプロセッサ向けOS300Pk経由で送信された処理要求を入手する。
【0186】
(12)そして、制御代理手段500Pkは、入手した処理要求によりプロセスPP−kを起動する。
【0187】
(13)これにより、待機状態にあったプロセスPP−kは処理を実行する。
【0188】
(14)処理が終了後、プロセスPP−kは、その旨の情報を並列処理通信手段400Pkに通知する。
【0189】
(15)通知を受けた並列処理通信手段400Pkは、シングルプロセッサ向けOS300Pk経由で通知された情報に基づいて通信依頼を要求する。
【0190】
(16)シングルプロセッサ向けOS300Pkにより、通信に必要な情報が制御処理中継手段600に設定される。
【0191】
(17)これにより、制御処理中継手段600からプロセッサP0のシングルプロセッサ向けOS300P0に対して処理要求が送信される。
【0192】
(18)プロセッサP0の制御代理手段500P0は、シングルプロセッサ向けOS300P0経由で送信された処理要求を入手する。
【0193】
(19)そして、制御代理手段500P0は、入手した処理要求によりプロセスPPを起動する。
【0194】
以上により、第1プロセッサ側100のプロセッサP0上のプロセスPPと第2プロセッサ側200のプロセッサPP−kとの間での同期的な処理が実現される。
【0195】
次に、プロセスの並列処理の非同期起動の動作について、図14を参照して説明する。
【0196】
ここでも、第1プロセッサ側100の並列化プロセスPPが、第2プロセッサ側200のプロセッサPk(1≦k≦n)において、第2プロセッサ側200で起動させる処理単位であるプロセスPP−kとして予め生成されているものとする。
【0197】
(1)処理を行っていた第2プロセッサ側200のプロセッサPk(1≦k≦n)上のプロセスPP−kが、並列処理通信手段400Pkに対して、自プロセスに属する処理の情報を登録する。これにより、プロセスPP−kは待機状態となる。
【0198】
(2)並列処理通信手段400Pkは、シングルプロセッサ向けOS300Pk経由で主記憶装置92(共有メモリ)上に必要なデータをアクセスする要求を行う。
【0199】
(3)これにより、プロセスPP−kに属する処理の情報が主記憶装置92(共有メモリ)に格納される。
【0200】
(4)プロセッサP0上のプロセスPPは、並列処理通信手段400P0に対して非同期的な処理を依頼する。この場合、プロセスPPは待機状態となることなくその後も処理を継続する。
【0201】
(5)依頼を受けた並列処理通信手段400P0は、シングルプロセッサ向けOS300P0経由で主記憶装置92(共有メモリ)上のデータに対するアクセス要求を行う。
【0202】
(6)シングルプロセッサ向けOS300P0により主記憶装置92(共有メモリ)がアクセスされる。
【0203】
(7)並列処理通信手段400P0は、主記憶装置92(共有メモリ)からプロセスPP−kに属する処理の情報を取得する。これにより、プロセスPP−kを実行するプロセッサ番号とプロセス番号が取得される。
【0204】
(8)並列処理通信手段400P0は、シングルプロセッサ向けOS300P0経由で主記憶装置92(共有メモリ)から取得した情報に基づいて通信依頼を要求する。
【0205】
(9)シングルプロセッサ向けOS300P0により、通信に必要な情報が制御処理中継手段600に設定される。
【0206】
(10)これにより、制御処理中継手段600からプロセッサPkのシングルプロセッサ向けOS300Pkに対して処理要求が送信される。
【0207】
(11)プロセッサPkの制御代理手段500Pkは、シングルプロセッサ向けOS300Pk経由で送信された処理要求を入手する。
【0208】
(12)そして、制御代理手段500Pkは、入手した処理要求によりプロセスPP−kを起動する。
【0209】
(13)これにより、待機状態にあったプロセスPP−kは処理を実行する。
【0210】
以上により、第1プロセッサ側100のプロセッサP0上のプロセスPPと第2プロセッサ側200のプロセッサPP−kとの間での非同期的な処理が実現される。
【0211】
さらに、第2例の並列処理システムにおける制御処理中継手段600による処理動作について、図15及び図16を参照して説明する。
【0212】
まず、制御処理中継手段600の構成を図15に示す。図示のように、制御処理中継手段600は、各プロセッサP0〜Pnに対応した割り込み制御装置601P0〜601Pnと、各プロセッサP0〜Pnに対応した通信領域602P0〜602Pnとを備えて構成される。ここで、通信領域602P0〜602Pnは、主記憶装置92内に確保される。
【0213】
上記割り込み制御装置601P0〜601Pnについては、図6に示した第1例の制御処理中継手段60の構成と同様であり、割込指示部601a、割込状態保持部601b、割込取消部601cにより構成される。
【0214】
また、通信領域602P0〜602Pnについても、図6に示した第1例と基本的に同じ構成であり、図6の通信理由保持領域62aと通信データ保持領域62bとを組み合わせた通信キュー602aと、排他制御領域602cにより構成される。
【0215】
第1プロセッサ側100の並列処理通信手段400P0から第2プロセッサ側20のプロセッサPnへの通信処理を例にとり、図16を参照してその動作を説明する。
【0216】
(1)並列処理通信手段400P0は、プロセッサP1用の通信領域602Pnの排他制御領域602bにロックをかける。具体的には、排他制御領域602bに格納されるlock変数をロック状態とすることにより、当該プロセッサPn用の通信領域602Pnが他のプロセッサで使用されるのを排する。
【0217】
(2)並列処理通信手段400P0は、通信理由情報と通信データ(要求内容を含む必要データ)を、通信領域602Pnの通信キュー602aに格納する。
【0218】
格納される通信理由情報としては、上述したようにプロセスの生成起動のための通信処理であれば、「プロセス起動」を示す情報(例えば、並列処理に対応して予め定められている数値等のデータ)が格納される。
【0219】
(3)(1)の時点で通信領域602Pnの通信キュー602aが空であった場合、並列処理通信手段400P0は、自身の割込制御装置601P0の割込指示部601aに対して、プロセッサPnへの割り込みを指示する。
【0220】
(4)プロセッサP0の並列処理通信手段400P0は、プロセッサPn用の通信領域602Pnの排他制御領域602bをアンロック状態とする。(1)の時点で通信領域602Pnの通信キュー602aが空でない場合には、割り込みの必要がないので、ここで処理を終了する。
【0221】
(5)割込制御装置601P0の割込指示部601aは、プロセッサPnに対応する割込制御装置601Pnの割込状態保持部601bに、割り込みを示す情報をセットする。これにより、プロセッサPnが割り込み状態となる。
【0222】
(6)プロセッサPnのシングルプロセッサ向けOS300pnは、プロセッサPn用の割込制御装置601Pnの割込状態保持部601bの状態より、割り込みを受理する。
【0223】
(7)プロセッサPnのシングルプロセッサ向けOS300pnは、割込制御装置601Pnの割込取消部601cによって自身の割込状態保持部601bの割り込み情報をクリアすることにより、自身の割り込み状態を解除する。
【0224】
(8)プロセッサPnのシングルプロセッサ向けOS300pnは、自身の制御代理手段500Pnを起動する。
【0225】
(9)プロセッサPnの制御代理手段500Pnは、自身の通信領域602Pnの排他制御領域602bにロックをセットする。
【0226】
(10)プロセッサPnの制御代理手段500Pnは、さらに、自身の通信領域602Pnの通信キュー602aから、通信理由情報と通信データをそれぞれ削除する。
【0227】
(11)プロセッサPnの制御代理手段500Pnが、プロセッサPn用の通信領域602Pnの排他制御領域602bをアンロックとする。これにより、当該プロセッサPn用の通信領域602Pnが他のプロセッサから使用できるようになる。
【0228】
以上のように、制御処理中継手段600を用いることにより、第1プロセッサ側100と第2プロセッサ側200間で、制御信号やデータのやり取りが実現される。
【0229】
次に、本発明を適用する第3例による並列処理システムについて、図17以下を参照して説明する。図17は、この第3例の並列処理システムの構成を示すブロック図であり、図13と共通の構成要素については同じ符号を用いている。
【0230】
上記説明した第2例における同期的な処理では、プロセス相互において、一方のプロセスが他方のプロセスによって主記憶装置92上のデータが更新されたかどうかのチェックを繰り返す必要があり、その繰り返しの分だけ余計な処理が発生していたが、本例では、そのような余計な処理を必要としない高性能なプロセス間の同期とデータ受け渡しを可能にするものである。
【0231】
図17に示すように、第3例の並列処理システムにおいては、第2例と同様に、システムバス91で接続される複数のプロセッサ(CPU)P0〜Pn(nは1以上の整数)からなるマルチプロセッサを、論理的に第1プロセッサ側100と第2プロセッサ側200の二組に分けて構成し、第1プロセッサ側100のプロセッサP0及び第2プロセッサ200のプロセッサ(CPU)P0〜Pnの各プロセッサ上で動作するシングルプロセッサ向けOS300P0〜300Pnを実装している。
【0232】
この第3例では、第2例において、第1プロセッサ側100のプロセッサP0及び第2プロセッサ側200のプロセッサP1〜Pnの並列処理を行うための並列処理通信手段400P0〜400Pnと制御代理手段500P0〜500Pnに加えて、第1プロセッサ側100のプロセッサP0及び第2プロセッサ側200のプロセッサP1〜Pn上で実行される各プロセス間での通信を実現するためのプロセス間通信手段1000P0〜1000Pnを新たに備えた点を特徴としている。
【0233】
すなわち、本例では、これまでマルチプロセッサ向けOSに実装されていたプロセス間通信の機能を、マルチプロセッサ上でシングルプロセッサ向けOS及びアプリケーションを動作させるシングルプロセッサ向けOSによる並列処理システム上で実現するものであり、ユーザレベルによるプロセス間通信機能の実装を可能にしている。
【0234】
なお、この例でも、第1例で示した第1プロセッサ側100のシングルプロセッサ向けOS300P0が第2プロセッサ側200で実行されるプロセスと通信するための代理手段70については、第1例と全く同じ機能を実行するため、便宜上省略している。
【0235】
上記プロセス間通信手段1000P0〜1000Pn以外の構成要素に関する構成及び動作については、上述した第2例と全く同じであるので、以下では、プロセス間通信手段1000P0〜1000Pnについてのみ説明することとする。
【0236】
上記プロセス間通信手段1000P0〜1000Pnは、セマフォ(semaphore)やメッセージキュー等の方式を用いることにより、プロセッサP1〜Pn上で実行される各プロセス間での通信を実現するものである。
【0237】
ここでは、プロセス間通信手段1000P0〜1000Pnがセマフォ方式を用いてプロセス間通信を行なう場合について説明する。
【0238】
図18に示すように、第2プロセッサ側200のプロセッサPmとプロセッサPn上でそれぞれプロセスPP−mとプロセスPP−nが実行されている場合において、プロセスPP−mとプロセスPP−nがプロセス間通信手段1000Pmと1000Pnによるセマフォ方式を用いて通信を行う場合について説明する。
【0239】
セマフォ方式とは、複数のプロセスが同時実行されるマルチタスクOSにおいて、複数プロセス間で通信して同期をとるための方式であり、セマフォは一種の共有フラグ(カウンタ)で、同期をとるプロセス同士がこのカウンタに注目し、カウンタの変化に応じて処理を行なうようにすることで通信(同期)を実現する。
【0240】
まず、図18において、プロセッサPm上のプロセスPP−mが主記憶装置92のセマフォ情報領域(共有フラグ)をup又はdownする場合の動作を説明する。ここで、セマフォupは、セマフォ情報領域のカウンタ値をインクリメントし、セマフォdownは、セマフォ情報領域のカウンタ値をデクリメントする。セマフォdownできない場合、当該プロセスはスリープして待ち状態となり、セマフォupによってウェイクアップされる。
【0241】
(1)プロセッサPm上のプロセスPP−mがセマフォ(セマフォカウンタ)をup又はdownする場合、プロセス間通信手段1000Pmにその旨を要求する。
【0242】
(2)要求を受けたプロセス間通信手段1000Pmは、主記憶装置92に確保されているセマフォ番号で区別される共有フラグとしてのセマフォ情報領域#N(このセマフォ情報領域は、システムによって予め決定される数だけ確保される)にアクセスすることにより、セマフォをup又はdownできることが判明する。
【0243】
次に、図19において、プロセッサPm上のプロセスPP−mがセマフォ(セマフォフラグ)をdownする場合の動作を説明する。
【0244】
(1)プロセッサPm上のプロセスPP−mがセマフォ(セマフォフラグ)をdownしようとプロセス間通信手段1000Pmに要求する。
【0245】
(2)要求を受けたプロセス間通信手段1000Pmは、主記憶装置92に確保されているセマフォ情報領域#Nにアクセスする。ここでは、セマフォ情報領域#Nには、セマフォのカウンタ値として初期値「0」が設定されており、downしようとしてもdownできないように予め定められている。よって、セマフォをdownできないことが判明する。
【0246】
(3)プロセス間通信手段1000Pmは、シングルプロセッサ向けOS300Pmに対しシステムコールを用いて上記プロセスPP−mをスリープさせるように要求する。
【0247】
(4)シングルプロセッサ向けOS300Pmはシステムコールを用いてプロセスPP−mをスリープさせ、ランキューから外す。
【0248】
すなわち、上記の場合、プロセスPP−mはセマフォをdownできないのでスリープする。
【0249】
さらに、図20において、上記のようにプロセスPP−mがスリープした状態で、同じプロセッサPm上のプロセスPP−m1がセマフォをupする場合の動作を説明する。
【0250】
(1)プロセスPP−m1がセマフォのupをプロセス間通信手段1000Pmに要求する。
【0251】
(2)プロセス間通信手段1000Pmは、主記憶装置92に確保されているセマフォ情報領域#Nにアクセスすることにより、セマフォ待ちのプロセスPP−mが存在することが判明する。
【0252】
(3)さらに、プロセス間通信手段1000Pmは、制御処理中継手段600に対してメッセージ(制御メッセージ)を送信することで、プロセスPP−mのウェイクアップを要求する。
【0253】
(4)制御代理手段500Pmが、制御処理中継手段600からメッセージを受信する。この制御処理中継手段600によるメッセージの中継は、図15、図16で説明した動作に基づいて行われる。
【0254】
(5)制御代理手段500Pmは、メッセージからセマフォ待ちのプロセスのウェイクアップ要求であると判断し、シングルプロセッサ向けOS300Pmに対しシステムコールを用いて待ち状態の上記プロセスPP−mをウェイクアップさせるよう要求する。
【0255】
(6)シングルプロセッサ向けOS300Pmは、システムコールを用いて要求されたプロセスPP−mをウェイクアップし、ランキューへつなぐ。この場合、ウェイクアップされたプロセスPP−mは再度セマフォをdownしようと試みる。
【0256】
なお、上記処理(3)、(4)における制御処理中継手段600による制御メッセージの中継を利用することなく、シングルプロセッサ向けOS300Pmの通信機能を用いて、プロセス間通信手段1000Pmから制御代理手段500Pmに対して直接プロセスPP−mのウェイクアップを要求するようにすれば、処理(3)、(4)が簡略されて高速化が可能である。
【0257】
図21において、上記のようにプロセッサPm上のプロセスPP−mがスリープした状態で、他のプロセッサPn上のプロセスPP−nがセマフォをupする場合の動作を説明する。
【0258】
(1)プロセッサPn上のプロセスPP−nがセマフォのupを自プロセッサPnのプロセス間通信手段1000Pnに要求する。
【0259】
(2)プロセス間通信手段1000Pnは、主記憶装置92に確保されているセマフォ情報領域#Nにアクセスすることにより、セマフォ待ちのプロセスPP−mが存在することが判明する。
【0260】
(3)さらに、プロセス間通信手段1000Pnは、制御処理中継手段600に対してメッセージ(制御メッセージ)を送信することで、プロセスPP−mのウェイクアップを要求する。
【0261】
(4)次いで、プロセッサPmの制御代理手段500Pmが、制御処理中継手段600からメッセージを受信する。この制御処理中継手段600によるメッセージの中継は、図15、図16で説明した動作に基づいて行われる。
【0262】
(5)制御代理手段500Pmは、メッセージからセマフォ待ちのプロセスのウェイクアップ要求であると判断し、シングルプロセッサ向けOS300Pmに対しシステムコールを用いて待ち状態の上記プロセスPP−mをウェイクアップさせるよう要求する。
【0263】
(6)シングルプロセッサ向けOS300Pmは、システムコールを用いて要求されたプロセスPP−mをウェイクアップし、ランキューへつなぐ。この場合、ウェイクアップされたプロセスPP−mは再度セマフォをdownしようと試みる。
【0264】
次に、図22に示すように、第2プロセッサ側200のプロセッサPmとプロセッサPn上でそれぞれプロセスPP−mとプロセスPP−nが実行されている場合において、プロセスPP−mとプロセスPP−nがプロセス間通信手段1000Pmと1000Pnによるメッセージキュー方式を用いて通信を行う場合について説明する。
【0265】
メッセージキュー方式とは、複数のプロセス間で通信を行なう方法であって、名前の通り「キュー」を作成して、そこに情報としてのメッセージ(プロセス相互でやり取りされる処理データ)を格納していく方式である。メッセージキュー方式では、受け取り側のプロセスはそのメッセージを任意の順番で受け取ることができる。また、メッセージを何れかのプロセスが受け取るとそのメッセージはキューから消える。
【0266】
図22において、プロセッサPm上のプロセスPP−mがメッセージキュー方式によってメッセージを受信する場合の動作を説明する。ここでは、取得すべきメッセージが主記憶装置92に確保されているキュー番号で区別されるキュー情報領域#N(このキュー情報領域は、システムによって予め決定される数だけ確保される)に存在する場合である。
【0267】
(1)プロセッサPm上のプロセスPP−mがメッセージの受信をするためにプロセス間通信手段1000Pmにその旨を要求する。
【0268】
(2)要求を受けたプロセス間通信手段1000Pmは、主記憶装置92に確保されているキュー情報領域#Nをアクセスし、メッセージを受信する。
【0269】
(3)そして、プロセス間通信手段1000Pmは、受信したメッセージを要求元のプロセスPP−mにコピーする。この時点で当該メッセージは主記憶装置92に確保されているキュー情報領域#Nから消去される。
【0270】
次に、図23において、プロセッサPm上のプロセスPP−mがメッセージキュー方式によってメッセージを受信する場合の第2の動作を説明する。ここでは、取得すべきメッセージが主記憶装置92に確保されているキュー情報領域#Nに存在しない場合である。
【0271】
(1)プロセッサPm上のプロセスPP−mがメッセージの受信をするためにプロセス間通信手段1000Pmにその旨を要求する。
【0272】
(2)要求を受けたプロセス間通信手段1000Pmは、主記憶装置92に確保されているキュー情報領域#Nにアクセスする。この場合、取得すべきメッセージがに確保されているキュー情報領域#Nに存在せず、メッセージを受信できないことが判明する。
【0273】
(3)プロセス間通信手段1000Pmは、シングルプロセッサ向けOS300Pmに対しシステムコールを用いて上記プロセスPP−mをスリープさせるように要求する。
【0274】
(4)シングルプロセッサ向けOS300Pmはシステムコールを用いてプロセスPP−mをスリープさせ、ランキューから外す。
【0275】
すなわち、上記の場合、プロセスPP−mはメッセージを受信できないのでスリープする。
【0276】
図24において、プロセッサPm上のプロセスPP−mがメッセージキュー方式によってメッセージを送信する場合の動作を説明する。ここでは、送信しようとするメッセージ待ちのプロセスが存在せず、主記憶装置92に確保されているキュー情報領域#Nへのメッセージの送信のみを行なう場合である。
【0277】
(1)プロセッサPm上のプロセスPP−mがメッセージの送信するためにプロセス間通信手段1000Pmにその旨を要求する。
【0278】
(2)要求を受けたプロセス間通信手段1000Pmは、主記憶装置92に確保されているキュー情報領域#Nにアクセスし、プロセスPP−mからのメッセージを格納する。
【0279】
さらに、図25において、プロセッサPm上のプロセスがメッセージキュー方式によってメッセージを送信する場合の動作を説明する。ここでは、送信しようとするメッセージ待ちのプロセスが存在する場合である。すなわち、図23の例のように、プロセスPP−mがメッセージを受信できずにスリープしている状態でプロセスPP−m1からメッセージが送信される場合である。
【0280】
(1)プロセスPP−m1がメッセージの送信をプロセス間通信手段1000Pmに要求する。
【0281】
(2)プロセス間通信手段1000Pmは、主記憶装置92に確保されているキュー情報領域#Nにアクセスし、プロセスPP−m1からのメッセージを格納する。ここで、メッセージ待ちのプロセスPP−mが存在することが判明する。
【0282】
(3)さらに、プロセス間通信手段1000Pmは、制御処理中継手段600に対して制御メッセージを送信することで、プロセスPP−mのウェイクアップを要求する。
【0283】
(4)制御代理手段500Pmが、制御処理中継手段600から制御メッセージを受信する。
【0284】
(5)制御代理手段500Pmは、制御メッセージからメッセージ待ちのプロセスのウェイクアップ要求であると判断し、シングルプロセッサ向けOS300Pmに対しシステムコールを用いて待ち状態の上記プロセスPP−mをウェイクアップさせるよう要求する。
【0285】
(6)シングルプロセッサ向けOS300Pmは、システムコールを用いて要求されたプロセスPP−mをウェイクアップし、ランキューへつなぐ。
【0286】
この場合、ウェイクアップされたプロセスPP−mは再度メッセージの受信を試みる。これにより、プロセスPP−m1からのメッセージがプロセスPP−mで受信される。
【0287】
なお、上記処理(3)、(4)における制御処理中継手段600による制御メッセージの中継を利用することなく、シングルプロセッサ向けOS300Pmの通信機能を用いて、プロセス間通信手段1000Pmから制御代理手段500Pmに対して直接プロセスPP−mのウェイクアップを要求するようにすれば、処理(3)、(4)が簡略されて高速化が可能である。
【0288】
図26において、図23に示すようにプロセッサPm上のプロセスPP−mがスリープしてメッセージ待ちの状態で、他のプロセッサPn上のプロセスPP−nがメッセージを送信する場合の動作を説明する。
【0289】
(1)プロセッサPn上のプロセスPP−nがメッセージの送信を自プロセッサPnのプロセス間通信手段1000Pnに要求する。
【0290】
(2)プロセス間通信手段1000Pnは、主記憶装置92に確保されているキュー情報領域#Nにアクセスし、プロセスPP−nからのメッセージを格納する。ここで、メッセージ待ちのプロセスPP−mが存在することが判明する。
【0291】
(3)さらに、プロセス間通信手段1000Pnは、制御処理中継手段600に対して制御メッセージを送信することで、プロセスPP−mのウェイクアップを要求する。
【0292】
(4)次いで、プロセッサPmの制御代理手段500Pmが、制御処理中継手段600から制御メッセージを受信する。
【0293】
(5)制御代理手段500Pmは、制御メッセージからメッセージ待ちのプロセスのウェイクアップ要求であると判断し、シングルプロセッサ向けOS300Pmに対しシステムコールを用いて待ち状態の上記プロセスPP−mをウェイクアップさせるよう要求する。
【0294】
(6)シングルプロセッサ向けOS300Pmは、システムコールを用いて要求されたプロセスPP−mをウェイクアップし、ランキューへつなぐ。
【0295】
この場合、ウェイクアップされたプロセスPP−mは再度メッセージの受信を試みる。これにより、プロセスPP−nからのメッセージがプロセスPP−mで受信され、異なるプロセッサ相互でプロセス間の通信が実行される。
【0296】
本例の並列処理システムによれば、上記のようにプロセス間通信手段1000P0〜Pnによって、セマフォ方式又はメッセージキュー方式を用いた同一プロセッサ内又は異なるプロセッサ間のプロセス通信(同期又はメッセージの送受)を行うことにより、プロセス切り替えなどのプロセス制御やデータのやり取りを行うことが可能となる。
【0297】
シングルプロセッサ向けOSによるプロセス間通信は、同一プロセッサ内のプロセス間に限られ、異なるプロセッサ間でのプロセス通信は処理の重いネットワーク等を利用して行う必要があったが、ネットワーク通信に比べて処理の高速な制御処理中継手段600とプロセス間通信手段1000P0〜Pnによるセマフォ方式又はメッセージキュー方式を用いることで、シングルプロセッサ向けOSを実装するマルチプロセッサシステムにおいても、処理の早いプロセス間通信が実現できる。
【0298】
同一プロセッサ内のプロセス間通信に関しては、シングルプロセッサ向けOSによるプロセスのスリープからウェイクアップに要する処理性能とほぼ同等の性能が得られる。
【0299】
また、マルチプロセッサ向けOSと異なり、プロセッサ毎に異なるシングルプロセッサ向けOSを実装していてもプロセッサ相互でのプロセス間通信が可能となる利点がある。
【0300】
次に、上記プロセス間通信手段1000P0〜1000Pnによるセマフォ方式及びメッセージキュー方式を用いたプロセス間通信の具体例について、図27を参照して説明する。
【0301】
図27において、プロセッサP0上でプロセスPP−0が、プロセッサPj上でプロセスPP−jが、プロセッサPk上でプロセスPP−kがそれぞれ実行されている。ここでは、プロセスPP−0がブラウザ、プロセスPP−jがjava(R)アプレット、プロセスPP−kがMPEG4アプリケーションとして動作し、図28に示すように、プロセスPP−0によるブラウザ1100に埋め込まれたウィンドウ内で、プロセスPP−jによるjava(R)アプレットのコンテンツ1200と、プロセスPP−kによるMPEG4映像コンテンツ1300とが同期して表示される。
【0302】
この例では、第1プロセッサ側100のシングルプロセッサ向けOS300P0上で動作するアアプリケーションの処理単位のうち、プロセスPP−0をプロセッサP0上で動作させ、アプリケーション内で並列化を行えるプロセスであるプロセスPP−jとプロセスPP−kを第2プロセッサ側200のプロセッサPjとプロセッサPkにおいて並列処理する場合である。
【0303】
図27において、java(R)アプレット(プロセスPP−j)とMPEG4アプリケーション(プロセスPP−k)は起動されると、共にブラウザ(プロセスPP−0)からのjava(R)アプリデータ及びMPEG4映像データの受信を待つ(ステップS101、S201)。
【0304】
ここで、プロセッサP0のプロセスPP−0からプロセス間通信手段1000P0によるメッセージ送信を利用して、java(R)アプリデータ及びMPEG4映像データがメッセージとして送信され、java(R)アプレット(プロセスPP−j)及びMPEG4アプリケーション(プロセスPP−k)で受信される。
【0305】
これにより、java(R)アプレット(プロセスPP−j)による動作が開始され(ステップS102)、MPEG4アプリケーション(プロセスPP−k)によるデコード処理が開始される(ステップS202)。
【0306】
この例では、java(R)アプレット(プロセスPP−j)による動作の方がMPEG4アプリケーション(プロセスPP−k)によるデコード処理より早く終了することが予め分かっており、java(R)アプレット(プロセスPP−j)は動作終了後に、MPEG4アプリケーション(プロセスPP−k)の処理完了を待つように、セマフォのカウンタの初期値を「0」に設定し、早く終了したjava(R)アプレット(プロセスPP−j)がセマフォdownできないようになっている。また、MPEG4アプリケーション(プロセスPP−k)は処理終了後にセマフォupするように定義されている。
【0307】
java(R)アプレット(プロセスPP−j)は、セマフォdownしようとするが(ステップS103)、カウンタの初期値が「0」であるためにdownできずにスリープされ、セマフォ待ちの状態となる。
【0308】
MPEG4アプリケーション(プロセスPP−k)が処理が終了すると(ステップS203)、セマフォupを要求する(ステップS204)。これにより、セマフォ待ちのjava(R)アプレット(プロセスPP−j)がウェイクアップされ、セマフォdownが可能となる。
【0309】
以上の動作を、フレーム毎に繰り返すことにより、プロセスPP−0によるブラウザ1100に埋め込まれたウィンドウ内で、プロセスPP−jによるjava(R)アプレットのコンテンツ1200と、プロセスPP−kによるMPEG4映像コンテンツ1300とが同期して表示される。
【0310】
次に、本発明の第4例の並列処理システムについて、図29以下を参照して説明する。図29は、この第4例の並列処理システムの構成を示すブロック図であり、図13と共通の構成要素については同じ符号を用いている。
【0311】
図29に示すように、第4例の並列処理システムにおいては、システムバス91で接続される複数のプロセッサ(CPU)P1〜Pn(nは2以上の整数)からなるマルチプロセッサを構成しており、プロセッサP1〜Pnの各プロセッサ上で動作するシングルプロセッサ向けOS300P1〜300Pnを実装している。
【0312】
すなわち、マルチプロセッサを、論理的に第1プロセッサ側と第2プロセッサ側の二組に分ける構成をとっていない点が、第1例から第3例と相違する。
【0313】
この第4例では、上記第3例と同様に、プロセッサP1〜Pnの並列処理を行うための並列処理通信手段400P1〜400Pnと制御代理手段500P1〜500Pnに加えて、プロセッサP1〜Pn上で実行される各プロセス間での通信を実現するためのプロセス間通信手段1000P1〜1000Pnを備えている。
【0314】
一方、第1例のようなOSサービス手段50P1〜50Pnや、第1例から第3例のような並列処理通信手段400P1〜400Pnを備えることなく、各プロセッサP1〜Pn上のプロセス制御が可能である。また、各プロセッサP1〜Pn上のシングルプロセッサ向けOS300P1〜300Pnについては、同じOSである必要はなく互いに異なっていてもよい。
【0315】
すなわち、本例でも、これまでマルチプロセッサ向けOSに実装されていたプロセス間通信の機能を、マルチプロセッサ上でシングルプロセッサ向けOS及びアプリケーションを動作させるシングルプロセッサ向けOSによる並列処理システム上で実現するものであり、ユーザレベルによるプロセス間通信機能の実装を可能にしている。
【0316】
この各プロセッサP1〜プロセッサPn内における各プロセスの実行については、他のプロセッサとの排他制御を必要とすることなく行われる。
【0317】
個々のプロセッサP1〜プロセッサPn内におけるプロセス間通信及びプロセッサ相互におけるプロセス間通信については、第3例で説明したように、プロセス間通信手段1000P1〜1000Pnによるセマフォ方式及びメッセージキュー方式を用いて行われ、プロセス相互の同期処理及びデータの受け渡しが実行される。
【0318】
上記並列処理システムに適用される本発明のセキュリティ管理システムについて図30を参照して説明する。ここでは、第1例として示した並列処理システムに対して本発明のセキュリティ管理システムを適用した第1の実施の形態について説明する。
【0319】
第1の実施の形態によるセキュリティ管理システムは、図1に示した第1例による並列処理システムの構成と同様の構成であり、の第1プロセッサ側10のプロセッサP0と第2プロセッサ側20のプロセッサP1〜Pn0に備えられるOSサービス手段1500P0、1500P1〜1500Pnが、HDやFlash ROM等からなる外部記憶装置93に格納された制御ファイル2000P0〜2000Pnに基づいてタスク毎或いは各プロセッサ毎にアクセス制御やアクセスの量的制御等によるセキュリティを実現する機能を有する点が相違している。図1と同じ構成については同じ符号を付し説明を省略する。
【0320】
本実施の形態においては、OSサービス手段1500P0、1500P1〜1500Pnにセキュリティ機能を付加することで、ユーザレベルでのセキュリティへの対応を可能としている。
【0321】
外部記憶装置93に格納される制御ファイル2000P0〜2000Pnのセキュリティ内容の設定例を図31に示す。図31の制御ファイル2000P0〜2000Pnにおいては、以下のようなセキュリティ内容が定義されている。これら制御ファイル2000P0〜2000Pnで設定されるセキュリティ内容はそれぞれ同じ内容でもよいし、互いに異なる内容であってもよい。
【0322】
各プロセッサP0、P1〜Pn上で実行されるタスク毎の制御レベルについて、タスクA、B、CがLevel0、タスクD、FがLevel1、その他のタスクがLevel2に設定されている。
【0323】
各制御レベル毎のアクセス制御内容について、Level0が全てのアクセスが可能、Level1が読み込みのアクセスのみ可能、Level2が画面を除く外部出力は一切不可であることが設定されている。
【0324】
また、制御レベル毎の量的な制限内容については、Level0が標準的な制限、Level1が読み込みファイルが1つまで、Level2がセマフォは使用不可であることが設定されている。
【0325】
なお、図31の例では、制御ファイルにタスク毎に制御レベルを設定した例を示したが、それ以外に各プロセッサP0、P1〜Pn毎に制御レベルを設定することも可能である。
【0326】
ここで、本実施の形態によるセキュリティ管理システムの動作について、図32を参照してステップ毎に説明する。
【0327】
まず、外部記憶装置93に格納される制御ファイル2000P1〜2000PnがプロセッサP0〜Pnに読み込まれる場合の動作を説明する。
【0328】
(1)プロセッサP1上のOSサービス手段1500P1が起動後に自プロセッサ用の制御ファイル2000P1を取得するため、外部記憶装置93に格納されている制御ファイル2000P1の読み込み要求を制御処理中継手段60へ転送する。
【0329】
(2)プロセッサP0のOSサービス手段1500P0は、制御処理中継手段60から上記読み込み要求を受け取る。
【0330】
(3)プロセッサP0のOSサービス手段1500P0は、シングルプロセッサ向けOS30に対して制御ファイル2000P1の読み込み要求を発行する。
【0331】
(4)シングルプロセッサ向けOS30は、外部記憶装置93に制御ファイル2000P1のアクセス要求を発行する。
【0332】
(5)シングルプロセッサ向けOS30は、外部記憶装置93から制御ファイル2000P1の内容を受け取る。
【0333】
(6)シングルプロセッサ向けOS30は、制御ファイル2000P1のセキュリティ内容をプロセッサP0のOSサービス手段1500P0に渡す。
【0334】
(7)プロセッサP0のOSサービス手段1500P0は、制御処理中継手段60を介して上記制御ファイル2000P1のセキュリティ内容を転送する。
【0335】
(8)プロセッサP1のOSサービス手段1500P1は、制御処理中継手段60を介して転送された制御ファイル2000P1のセキュリティ内容に従って、プロセッサP1上で実行されるタスクPT−1についてセキュリティの制御を行う。
【0336】
なお、制御ファイル2000P1の内容が一度の読み込み要求で全て読み取れない場合には、必要事項(例えば、図31において、各タスクの制御レベル)だけを読み込み要求し、その他の事項についてはタスクからの処理要求がある度に逐次読み込みを行うようにしてもよい。
【0337】
さらに、上記のように外部記憶装置93から制御ファイルの読み込みを行うことなく、制御ファイル2000P0〜2000Pnに設定されるセキュリティ内容を予め各プロセッサP0〜PnのOSサービス手段1500P0〜1500Pnに組み込んでおくようにしてもよい。
【0338】
上記のように読み込まれた制御ファイル2000P1のセキュリティ内容に基づいてタスクからの要求が制御される場合の動作について説明する。
【0339】
まず、プロセッサP1上のあるタスクPT−1からの要求が制御ファイル2000P1で設定されるセキュリティ機能によって制限される場合について、図33及び図34を用いて説明する。
【0340】
(1)プロセッサP1上のタスクPT−1が同じプロセッサ上のOSサービス手段1500P1に対して所定の処理を要求する。
【0341】
OSサービス手段1500P1は、上記のようにして取得した制御ファイル2000P1のセキュリティ内容に基づいて、タスクPT−1からの当該要求を受理すべきかどうかを判断する。具体的には、タスクPT−1に設定されている制御レベルにおいて当該要求が許可されているかどうかを判断する。
【0342】
(2)当該要求が許可されていない場合、OSサービス手段1500P1が要求元のタスクPT−1に対してエラーを返す。これにより、タスクPT−1に対して制御ファイル2000P1において許可されてない処理要求は禁止されることになる。
【0343】
例えば、プロセッサP1上のタスクPT−1について、制御ファイル2000P1によって制御レベルLevel1に設定され、読み込みのアクセスのみが許可されている場合、このこのようなタスクPT−1からあるファイルへの書き込みアクセスの要求があると、OSサービス手段1500P1は、図31に示した制御ファイルのセキュリティ内容に基づいて、タスクPT−1について、書き込みアクセスは許可されていないと判断し、タスクPT−1に対してエラーを返すものである。
【0344】
次いで、上記のように制御ファイル2000P1の内容を読み込んだプロセッサP1上のあるタスクPT−1からの要求がセキュリティ機能によってプロセッサP0、で制限される場合について、図34を用いて説明する。
【0345】
(1)プロセッサP1上のタスクPT−1が同じプロセッサ上のOSサービス手段1500P1に対して所定の処理を要求する。
【0346】
OSサービス手段1500P1は、上記のようにして取得した制御ファイル2000P1のセキュリティ内容に基づいて、タスクPT−1からの当該要求を受理すべきかどうかを判断する。
【0347】
(2)当該要求が許可されている場合には、OSサービス手段1500P1が制御処理中継手段60を介して当該要求を転送する。
【0348】
(3)プロセッサP0のOSサービス手段1500P0は、制御処理中継手段60から当該要求を受理し、当該要求を許可すべきかどうかを制御ファイルに基づいて判断する。
【0349】
(4)プロセッサP0のOSサービス手段1500P0は、許可されないと判断した場合、エラーとして制御処理中継手段60へ返答する。
【0350】
(5)プロセッサP1のOSサービス手段1500P1は、制御処理中継手段60からエラーを受理する。
【0351】
(6)さらに、OSサービス手段1500P1は、要求元のタスクPT−1に対してエラーを返す。
【0352】
上記のように、タスクPT−1が動作するプロセッサP1のOSサービス手段1500P1上で許可された処理要求が、プロセッサP0のサービス手段50P0において制限される。このように、プロセッサP0のOSサービス手段1500P0には、プロセッサP1〜Pnのタスクからの処理要求に対するセキュリティ保護を行うために、プロセッサP1〜Pnに対する制御ファイルと内容の異なる制御ファイル2000P0を設定することが可能である。
【0353】
なお、上記実施の形態において、プロセッサP0のOSサービス手段1500P0におけるセキュリティ内容を低く設定し、あるいはセキュリティ機能を設けないことで、プロセッサP0上で実行される既存のアプリケーションの性能が制限されないように構成することも可能である。
【0354】
上記の説明では、制御ファイルによってタスク毎に制御レベルを設定した例を示したが、例えば各プロセッサのOSサービス手段毎に、セキュリティ機能の高低を設定し、セキュリティを全くチェックしない最低のレベルから全ての内容(要求)をチェックする最高レベルまでの権限をOSサービス手段に設定することも可能である。
【0355】
また、OSサービス手段以外に、並列処理手段40P0〜40Pnに対してセキュリティ機能を設け、制御ファイルに各並列処理手段40P0〜40Pn毎に、生成可能なタスクの種類を制限するような構成とすることも可能である。
【0356】
さらに、上記の実施の形態では、第1例の並列処理システムに対して本発明のセキュリティ管理システムを適用した場合を示したが、第2例以下の並列処理システムに本発明のセキュリティシステムを適用できることは言うまでもない。
【0357】
また、第2例や第3例の並列処理システムに本発明を適用することで、各プロセッサのプロセス間通信手段に対してセキュリティ機能を設け、各プロセス間通信手段毎に、実行できるプロセス間通信の種類を制限するような構成とすることもできる。
【0358】
プロセッサの電源状態を管理してシングルプロセッサ向けOSに対して電源状態の変更要求を行う手段や、シングルプロセッサ向けOSに対して動作クロックの可変要求を行う手段を備える場合に、当該手段からの電源の制御要求や動作クロックの可変要求に対しても、OSサービス手段によるセキュリティ制御が可能である。
【0359】
さらに、第1の実施の形態では、各プロセッサ毎に用意された制御ファイル2000P0〜Pnを読み込んで、その制御ファイルのセキュリティ内容に基づいて各OSサービス手段がセキュリティ保護を行う構成を示したが、外部記憶装置93に格納する制御ファイルを適宜変更可能とし、制御ファイルが変更される度にOSサービス手段が再読み込みを行うようにすることで、動的にセキュリティ内容を変更することができる。
【0360】
また、上記説明では、OSサービス手段1500P0〜1500Pnが制御ファイルを読み込み、或いは予めOSサービス手段1500P0〜1500Pnにセキュリティ内容を組み込んだ例を示したが、各プロセッサP0〜PnのOSサービス手段1500P0〜1500Pnそのものの機能について、各OSサービス手段毎に制限を設けることにより、各プロセッサP0〜Pn上で動作するタスクからの要求を制御するように構成することも可能である。これにより、上記の場合と同様の効果が得られる。
【0361】
例えば、所定のプロセッサPnのOSサービス手段1500Pnの機能についてファイルへの書込みを制限するものとすれば、プロセッサPn上で動作するタスクからのファイルへの書込み要求は禁止されるようになる。このように、プロセッサ毎にOSサービス手段の機能を制限することにより、プロセッサ毎のセキュリティ効果が実現できる。
【0362】
次に、並列処理システムに適用されるセキュリティ管理システムの第2の実施の形態について、図35を参照して説明する。
【0363】
ここでは、第2例及び第3例として図12及び図17に示した並列処理システムに対して本発明のセキュリティ管理システムを適用した第2の実施の形態について説明する。
【0364】
本実施の形態は、各OSにおけるセキュリティレベルを可変にすることにより、各プロセッサ上で動作するプロセスによるサービスを適切に保護する構成となっている。
【0365】
第2の実施の形態によるセキュリティ管理システムを示す図35においては、第2例として図12に示した並列処理システムに本発明を適用した構成となっており、図12と同じ構成については同じ符号を付し説明を省略する。
【0366】
この第2の実施の形態によるセキュリティ管理システムにおいては、各プロセッサP0〜Pnに設けられるシングルプロセッサ向けOSを拡張することにより、セキュリティ拡張機能を有するシングルプロセッサ向けOS3000P0〜3000Pnを備えている。このシングルプロセッサ向けOS3000P0〜3000Pnには、セキュリティ機能を拡張するためのセキュリティ拡張手段3100P0〜3100Pnがモジュールとして組み込まれている。
【0367】
シングルプロセッサ向けOS3000Pnは、システムコール内でセキュリティ保護が必要な処理において、セキュリティ拡張手段3100Pnに対してセキュリティ内容のチェックを要求するための機能を有している。
【0368】
本実施の形態において、外部記憶装置93に格納される制御ファイル2000P0〜2000Pnのセキュリティ内容の設定例を図36に示す。図36の制御ファイル2000P0〜2000Pnにおいては、各プロセッサP0、P1〜Pn上で実行されるプロセスに関する以下のようなセキュリティ内容が定義されている。これら制御ファイル2000P0〜2000Pnで設定されるセキュリティ内容はそれぞれ同じ内容でもよいし、互いに異なる内容であってもよい。
【0369】
各プロセッサP0、P1〜Pn上で実行されるプロセス毎の制御レベルについて、プロセスA、B、CがLevel0、プロセスD、FがLevel1、その他のプロセスがLevel2に設定されている。
【0370】
各制御レベル毎のアクセス制御内容について、Level0が全てのアクセスが可能、Level1が別プロセス生成のシステムコール禁止、Level2がI/Oに関するシステムコール禁止であることが設定されている。
【0371】
また、制御レベル毎の量的な制限内容については、Level0が標準的な制限、Level1が読み込みファイルが1つまで、Level2がセマフォが2つまで使用可能であることが設定されている。
【0372】
ここで、第2の実施の形態によるセキュリティ管理システムの動作について、図37を参照してステップ毎に説明する。
【0373】
まず、外部記憶装置93に格納される制御ファイル2000P1〜PnがプロセッサP0〜Pnに読み込まれる場合の動作を説明する。
【0374】
(1)プロセッサPn上のセキュリティ拡張手段3100Pnがシングルプロセッサ向けOS3000Pnに対して外部記憶装置93に格納される制御ファイル2000Pnの読み込み要求を発行する。
【0375】
(2)プロセッサPnのシングルプロセッサ向けOS3000Pnは、外部記憶装置93をアクセスし、制御ファイル2000Pnの読み込みを要求する。
【0376】
(3)シングルプロセッサ向けOS3000Pnは、外部記憶装置93から制御ファイル2000Pnを受け取る。
【0377】
(4)プロセッサPnのシングルプロセッサ向けOS3000Pnは、自プロセッサのセキュリティ拡張手段3100Pnに対して、取得した制御ファイル2000Pnのセキュリティ内容を渡す。これにより、セキュリティ拡張手段3100Pnは、受け取った制御ファイル2000Pnのセキュリティ内容に基づいて、セキュリティ機能を実行する。
【0378】
なお、制御ファイル2000Pnの内容が一度の読み込み要求で全て読み取れない場合には、必要事項(例えば、図36において、各プロセスの制御レベル)だけを読み込み要求し、その他の事項についてはプロセスからの処理要求がある度に逐次読み込みを行うようにしてもよい。
【0379】
さらに、上記のように外部記憶装置93から制御ファイルの読み込みを行うことなく、制御ファイル2000P0〜2000Pnに設定されるセキュリティ内容を予め各プロセッサP0〜Pnのセキュリティ拡張手段3100P0〜3100Pnに組み込んでおくようにしてもよい。
【0380】
ここで、第2の実施の形態によるセキュリティ管理システムの動作として、上記のように読み込まれた制御ファイル2000P1のセキュリティ内容に基づいてプロセスからの要求が制御される場合の動作についてステップ毎に説明する。
【0381】
まず、プロセッサPn上のあるプロセスPP−nからの要求が制御ファイル2000P1で設定されるセキュリティ機能によって制限される場合について、図38を用いて説明する。
【0382】
(1)プロセッサPn上のあるプロセスPP−nが、プロセッサPnのシングルプロセッサ向けOS3000Pnに対してシステムコールを要求する。
【0383】
(2)シングルプロセッサ向けOS3000Pnは、システムコール内でセキュリティ保護が必要な処理部分まで処理が進むと、セキュリティ拡張手段3100Pnに対してセキュリティのチェックを要求する。
【0384】
(3)プロセッサPn上のセキュリティ拡張手段3100Pnは、予め取得した制御ファイル2000Pnのセキュリティ内容に基づいて、当該セキュリティコールを実行してもよいかどうかを判断し、その判断結果をシングルプロセッサ向けOS3000Pnへ通知する。例えば、セキュリティ内容により実行不可との判断された場合には、シングルプロセッサ向けOS3000Pnに対してエラーを通知する。
【0385】
(4)エラーを通知されたシングルプロセッサ向けOS3000Pnは、要求元のプロセスPP−nへエラーを通知する。
【0386】
なお、ステップ(3)において、セキュリティ内容によりシステムコールの実行が許可された場合には、その旨がシングルプロセッサ向けOS3000Pnに通知され、要求されたシステムコールを処理する。
【0387】
例えば、プロセッサPn上のあるプロセスPP−nの制御レベルがLevel2であって、当該プロセスPP−nからI/Oに関するシステムコールの要求があった場合、セキュリティ拡張手段3100Pnが、図36に示す制御ファイルのセキュリティ内容に基づいて、プロセスPP−nからの要求が実行不可であることを判別し、プロセスPP−nに対してエラーを通知する。
【0388】
なお、本実施の形態は、上述した第1の実施の形態と組み合わせて構成することも可能である。このような構成とすることで、より強固なセキュリティ環境が確保される。
【0389】
また、各プロセッサのセキュリティ拡張手段によるセキュリティレベルについては、制御ファイルのセキュリティ内容を変えることでプロセッサ毎に異なるように設定することができる。例えば、あるプロセッサでは強固なセキュリティレベルとし、他のプロセッサでは緩いセキュリティレベルとすることができる。
【0390】
なお、上記実施の形態において、プロセッサP0のセキュリティ拡張手段3100P0におけるセキュリティ内容を低く設定することで、プロセッサP0上で実行される既存のアプリケーション(プロセス)の性能が制限されないように構成することも可能である。
【0391】
また、この実施の形態でも、外部記憶装置93に格納する制御ファイルを適宜変更可能とし、制御ファイルが変更される度にセキュリティ拡張手段が再読み込みを行うようにすることで、動的にセキュリティ内容を変更することができる。
【0392】
また、上記説明では、セキュリティ拡張手段3100P0〜3100Pnが制御ファイルを読み込み、或いは予めセキュリティ拡張手段3100P0〜3100Pnにセキュリティ内容を組み込んだ例を示したが、各プロセッサP0〜Pnのセキュリティ拡張手段3100P0〜3100Pnそのものの機能について、各セキュリティ拡張手段毎に制限を設けることにより、各プロセッサP0〜Pn上で動作するタスクからの要求を制御するように構成することも可能である。これにより、プロセッサ毎にセキュリティレベルの異なる制御ができ、上記の場合と同様の効果が得られる。
【0393】
次に、並列処理システムに適用されるセキュリティ管理システムの第3の実施の形態について、図39を参照して説明する。
【0394】
ここでは、第2例及び第3例として図12及び図17に示した並列処理システムに対して本発明のセキュリティ管理システムを適用した第3の実施の形態について説明する。
【0395】
本実施の形態は、アプリケーションの実行環境レベルでセキュリティレベルを可変にすることにより、各プロセッサ上で動作するプロセスによるサービスを適切に保護する構成となっている。
【0396】
第3の実施の形態によるセキュリティ管理システムを示す図39においては、第2例として図12に示した並列処理システムに本発明を適用した構成となっており、図12と同じ構成については同じ符号を付し説明を省略する。
【0397】
この第3の実施の形態によるセキュリティ管理システムにおいては、各プロセッサP0〜Pnに、各プロセッサP0〜Pn上でプロセスとして実行されるJava(R)等のアプリケーション毎の実行環境を提供する(Java(R)等のアプリケーションに対して機能を提供する)と共に、セキュリティレベルを管理するアプリケーション制御手段(例えば、Java(R)仮想マシン)4000P0〜Pnが設けられている。
【0398】
本実施の形態において、外部記憶装置93に格納される制御ファイル2000P0〜2000Pnのセキュリティ内容の設定例を図40に示す。図40の制御ファイルにおいては、各プロセッサP0、P1〜Pn上で実行されるアプリケーションとしてのプロセスに関する以下のようなセキュリティ内容が定義されている。これら制御ファイル2000P0〜2000Pnで設定されるセキュリティ内容はそれぞれ同じ内容でもよいし、互いに異なる内容であってもよい。
【0399】
各プロセッサP0、P1〜Pn上で実行されるプロセス毎の制御レベルについて、プロセスA、B、CがLevel0、プロセスD、FがLevel1、その他のプロセスがLevel2に設定されている。
【0400】
各制御レベル毎のアクセス制御内容について、Level0が全てのアクセスが可能、Level1が別プロセス生成のシステムコール禁止、Level2がI/Oに関するシステムコール禁止であることが設定されている。
【0401】
また、制御レベル毎の量的な制限内容については、Level0が標準的な制限、Level1が読み込みファイルが1つまで、Level2がセマフォが2つまで使用可能であることが設定されている。
【0402】
さらに、アプリケーションとしてのプロセスが使用できるライブラリの制限について、Level0が全てのライブラリ、Level1が標準のライブラリと音楽機能のライブラリ、Level2が標準のライブラリであることが設定されている。
【0403】
ここで、第3の実施の形態によるセキュリティ管理システムの動作について、図41を参照してステップ毎に説明する。
【0404】
まず、外部記憶装置93に格納される制御ファイル2000P1〜PnがプロセッサP0〜Pnに読み込まれる場合の動作を説明する。
【0405】
(1)プロセッサPn上のアプリケーション制御手段4000Pnが、シングルプロセッサ向けOS300Pnに対して制御ファイル2000Pnの読み込み要求を出す。
【0406】
(2)プロセッサPnのシングルプロセッサ向けOS300Pnは、外部記憶装置93にアクセスし、制御ファイル2000Pnの読み込みを指示する。
【0407】
(3)シングルプロセッサ向けOS300Pnは、外部記憶装置93から制御ファイル2000Pnを受け取る。
【0408】
(4)そして、プロセッサPnのシングルプロセッサ向けOS300Pnは、アプリケーション制御手段4000Pnへ取得した制御ファイル2000Pnを渡し、アプリケーション制御手段4000Pnはその制御ファイルのセキュリティ内容に従って自プロセッサ上で実行するプロセスのセキュリティを管理する。
【0409】
なお、制御ファイル2000Pnの内容が一度の読み込み要求で全て読み取れない場合には、必要事項(例えば、図41において、各プロセスの制御レベル)だけを読み込み要求し、その他の事項についてはプロセスからの処理要求がある度に逐次読み込みを行うようにしてもよい。
【0410】
さらに、上記のように外部記憶装置93から制御ファイルの読み込みを行うことなく、制御ファイル2000P0〜2000Pnに設定されるセキュリティ内容を予め各プロセッサP0〜Pnのアプリケーション制御手段4000P0〜4000Pnに組み込んでおくようにしてもよい。
【0411】
ここで、第3の実施の形態によるセキュリティ管理システムの動作として、上記のように読み込まれた制御ファイル2000P1のセキュリティ内容に基づいてプロセスからの要求が制御される場合の動作についてステップ毎に説明する。
【0412】
まず、プロセッサPn上のあるプロセスPP−n(例えば、Java(R)アプリ)からの要求が制御ファイル2000P1で設定されるセキュリティ機能によって制限される場合について、図42を用いて説明する。
【0413】
(1)プロセッサPn上のプロセスPP−n(Java(R)アプリ)が、プロセッサPnのアプリケーション制御手段4000Pnに対してサービス関数を要求する。
【0414】
(2)要求を受けたアプリケーション制御手段4000Pnは、取得した制御ファイル2000Pnに基づいて、要求されたサービス関数を実行してよいかどうかを判断し、実行不可であればエラーを要求元のプロセスPP−nに通知し、実行可能であれば当該サービス関数の実行結果を要求元のプロセスPP−nに通知する。
【0415】
例えば、プロセッサPn上のあるプロセスPP−nの制御レベルがLevel2であって、当該プロセスPP−nから音楽機能ライブラリを使用するサービス関数が要求された場合、アプリケーション制御手段4000Pnは、図40に示す制御ファイルのセキュリティ内容に基づいて、プロセスPP−nからの要求が実行不可であることを判別し、プロセスPP−nに対してエラーを通知する。
【0416】
なお、本実施の形態は、上述した第1の実施の形態、第2の実施の形態と組み合わせて構成することも可能である。このような構成とすることで、より強固なセキュリティ環境が確保される。
【0417】
上記の説明では、制御ファイルによってタスク毎に制御レベルを設定した例を示したが、例えばアプリケーション制御手段4000P0〜4000Pn毎に、セキュリティ機能の高低を設定し、セキュリティを全くチェックしない最低のレベルから全ての内容(要求)をチェックする最高レベルまでの権限をアプリケーション制御手段に設定することも可能である。
【0418】
加えて、上記実施の形態において、プロセッサP0のアプリケーション制御手段4000P0におけるセキュリティ内容を低く設定することで、プロセッサP0上で実行される既存のアプリケーション(プロセス)の性能が制限されないように構成することも可能である。
【0419】
また、この実施の形態でも、外部記憶装置93に格納する制御ファイルを適宜変更可能とし、制御ファイルが変更される度にアプリケーション制御手段が再読み込みを行うようにすることで、動的にセキュリティ内容を変更することができる。
【0420】
上記説明では、アプリケーション制御手段4000P0〜4000Pnが制御ファイルを読み込み、或いは予めアプリケーション制御手段4000P0〜4000Pnにセキュリティ内容を組み込み、そのセキュリティ内容に基づいて制御を行う例を示したが、それ以外にプロセス(例えば、Java(R)アプリ)の実行を制御する方法を、第4の実施の形態の変形として以下に述べる。
【0421】
この第4の実施の形態の構成については、第3の実施の形態と同じであり、システム上で動作する各プロセス(例えば、Java(R)アプリ)と、アプリケーション制御手段4000P0〜4000Pnの機能が第3の実施の形態と相違する。
【0422】
第4の実施の形態では、各プロセッサP0〜Pnに設けるプロセス(例えば、Java(R)アプリ)の実行環境を提供するアプリケーション制御手段(例えば、Java(R)仮想マシン)4000P0〜4000Pnについて、それらが提供する機能に互いに異なる制限を設け、要求機能の異なるプロセス(例えば、Java(R)アプリ)を実行させる場合、当該プロセス(例えば、Java(R)アプリ)を管理するためのマネージャとしてのプロセスが各プロセッサのアプリケーション制御手段4000P0〜4000Pnの提供する機能に応じて、当該プロセス(例えば、Java(R)アプリ)を各プロセッサに振り分けるものである。これにより、要求機能の異なる複数のプロセス(例えば、Java(R)アプリ)が当該要求機能を提供する各プロセッサに振り分けられて動作することになり、性能低下を効果的に防ぐことができる。
【0423】
アプリケーション制御手段(例えば、Java(R)仮想マシン)の機能に制限を設ける方法としては、例えば各プロセッサ上のアプリケーション制御手段(例えば、Java(R)仮想マシン)毎にそれらの機能を制限する異なるプロファイルを組み込む方法、或いはロード可能なクラスファイルないし利用可能なライブラリを制限しておくといった方法が考えられる。
【0424】
なお、上記各実施の形態の並列処理システムは、並列処理手段、OSサービス手段、制御処理中継手段、代理手段、プロセス間通信手段の各機能を有する並列処理プログラムによって実現することができ、セキュリティ管理システムについても、OSサービス手段、アプリケーション制御手段の機能を有するセキュリティ管理プログラムによって実現できる。これらのプログラムは、磁気ディスク、半導体メモリその他の記録媒体に格納され、その記録媒体からコンピュータ処理装置にロードされ、コンピュータ処理装置の動作を制御することにより、上述した各機能を実現する。
【0425】
以上好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【0426】
【発明の効果】
以上説明したように本発明によれば、マルチプロセッサ上でシングルプロセッサ向けOSと既存のアプリケーションをそれらに改造を加えることなく動作させ、その既存のアプリケーションに対してマルチプロセッサによる並列処理を実現できるようにしたシングルプロセッサ向けOSによる並列処理システムにおいて、ソフトウェア的に各プロセッサ毎に個別にセキュリティの制御を行うことができると共に、プロセッサの性能を低下させることのないセキュリティ管理システムを実現することができる。
【0427】
また、処理単位に対して前記シングルプロセッサ向けOSのサービスを提供するOSサービス手段、シングルプロセッサ向けOSに組み込んだセキュリティ拡張手段、処理単位に対するセキュリティ制御を行うためのアプリケーション制御手段を選択的に設けることにより、ユーザレベル、OSレベル又はアプリケーション実行環境レベルでのセキュリティ制御を実現することができるようになる。
【0428】
シングルプロセッサ構成におけるユーザレベルライブラリによるセキュリティ管理では、シングルプロセッサ向けOSの改造が必要となるが、本発明によれば、OSの改造をすることなくユーザレベルでのセキュリティ管理を実現することができる。
【0429】
また、これまでのOSレベルでのセキュリティ管理では、異なるセキュリティレベルの実行の際に、最も厳しいレベルでの動作が要求されるため、システム性能が低下してしまうことなるが、本発明によれば、プロセッサ毎のセキュリティ拡張手段によってセキュリティレベルをプロセッサ毎に設定することができるので、システム性能の低下を解消することができる。
【0430】
さらに、これまでのJava(R)アプリ等のアプリケーション実行環境によるセキュリティ管理では、セキュリティレベルの異なる複数のアプリケーションを動作させる必要から、システム性能が低下しまた要求される周波数が高くなり消費電力量が大きくなってしまうが、本発明によれば、プロセッサ毎或いはアプリケーション毎にセキュリティを管理するので、そのような不具合を解消することができる。
【図面の簡単な説明】
【図1】 本発明を適用する第1例の並列処理システムの構成を示すブロック図である。
【図2】 第1例の並列処理システムの並列処理手段による並列処理起動の動作を説明するための図である。
【図3】 並列処理システムの並列処理手段による並列処理起動における要求を行うためのメッセージの構成を示す図である。
【図4】 第1例の並列処理システムにおける第2プロセッサ側のタスクからのファイルアクセス要求に対するOSサービス手段の動作を説明する図である。
【図5】 第1プロセッサ側の逐次タスクからのファイルアクセス要求に対する動作を説明する図である。
【図6】 第1例の並列処理システムにおける制御処理中継手段の内部構成を示すブロック図である。
【図7】 第1例の並列処理システムにおける制御処理中継手段の処理動作を説明する図である。
【図8】 第1例の並列処理システムにおける代理手段によるシグナル通知処理動作を説明する図である。
【図9】 第1例の並列処理システムにおける第2プロセッサ側におけるタスク相互の連携動作を実現するための構成を示すブロック図である。
【図10】 第1例の並列処理システムにおける第2プロセッサ側におけるタスク相互の連携動作を説明する図である。
【図11】 並列処理システムにおける適用例としてのマルチプロセッサの携帯端末においてアプリケーションを動作させる場合の例を説明する図である。
【図12】 本発明を適用する第2例の並列処理システムの構成を示すブロック図である。
【図13】 第2例の並列処理システムにおけるプロセスの同期的な並列処理起動の動作を説明するための図である。
【図14】 第2例の並列処理システムにおけるプロセスの非同期的な並列処理起動の動作を説明するための図である。
【図15】 第2例の並列処理システムにおける制御処理中継手段の内部構成を示すブロック図である。
【図16】 第2例の並列処理システムにおける制御処理中継手段の処理動作を説明する図である。
【図17】 本発明を適用する第3例の並列処理システムの構成を示すブロック図である。
【図18】 第3例の並列処理システムにおいて、プロセッサ内のプロセスがプロセス間通信手段によるセマフォ方式を用いてセマフォup又はdownを行う場合の動作を説明するための図である。
【図19】 第3例の並列処理システムにおいて、プロセッサ内のプロセスがプロセス間通信手段によるセマフォ方式を用いてセマフォdownを行う場合の動作を説明するための図である。
【図20】 第3例の並列処理システムにおいて、同一プロセッサ内のプロセス間でプロセス間通信手段によるセマフォ方式を用いてセマフォupを行う場合の動作を説明するための図である。
【図21】 第3例の並列処理システムにおいて、異なるプロセッサ相互のプロセス間でプロセス間通信手段によるセマフォ方式を用いてセマフォupを行う場合の動作を説明するための図である。
【図22】 第3例の並列処理システムにおいて、プロセッサ内のプロセスがプロセス間通信手段によるメッセージキュー方式を用いてメッセージの受信を行う場合の動作を説明するための図である。
【図23】 第3例の並列処理システムにおいて、プロセッサ内のプロセスがプロセス間通信手段によるメッセージキュー方式を用いてメッセージの受信を行う場合の動作を説明するための図である。
【図24】 第3例の並列処理システムにおいて、プロセッサ内のプロセスがプロセス間通信手段によるメッセージキュー方式を用いてメッセージの送信を行う場合の動作を説明するための図である。
【図25】 第3例の並列処理システムにおいて、同一プロセッサ内のプロセス間でプロセス間通信手段によるメッセージキュー方式を用いてメッセージの送受信を行う場合の動作を説明するための図である。
【図26】 第3例の並列処理システムにおいて、異なるプロセッサ相互のプロセス間でプロセス間通信手段によるメッセージキュー方式を用いてメッセージの送受信を行う場合の動作を説明するための図である。
【図27】 第3例の並列処理システムにおいて、セマフォ方式及びメッセージキュー方式を用いたプロセス間通信の具体例を説明するための図である。
【図28】 図27の具体例におけるブラウザ画面の表示内容を説明する図である。
【図29】 本発明を適用する第4例の並列処理システムの構成を示すブロック図である。
【図30】 本発明の第1の実施の形態による並列処理システムのセキュリティ管理システムの構成を示すブロック図である。
【図31】 本発明の第1の実施の形態における制御ファイルの内容例を示す図である。
【図32】 本発明の第1の実施の形態における制御ファイルの読み込み動作を説明するための図である。
【図33】 本発明の第1の実施の形態におけるセキュリティ管理動作を説明するための図である。
【図34】 本発明の第1の実施の形態におけるセキュリティ管理動作を説明するための図である。
【図35】 本発明の第2の実施の形態による並列処理システムのセキュリティ管理システムの構成を示すブロック図である。
【図36】 本発明の第2の実施の形態における制御ファイルの内容例を示す図である。
【図37】 本発明の第2の実施の形態における制御ファイルの読み込み動作を説明するための図である。
【図38】 本発明の第2の実施の形態におけるセキュリティ管理動作を説明するための図である。
【図39】 本発明の第3の実施の形態による並列処理システムのセキュリティ管理システムの構成を示すブロック図である。
【図40】 本発明の第3の実施の形態における制御ファイルの内容例を示す図である。
【図41】 本発明の第3の実施の形態における制御ファイルの読み込み動作を説明するための図である。
【図42】 本発明の第3の実施の形態におけるセキュリティ管理動作を説明するための図である。
【符号の説明】
10、100:第1プロセッサ側
20、200:第2プロセッサ側
30、300P0、300P1〜300Pn:シングルプロセッサ向けOS
40P0〜40Pn:並列処理手段
400P0〜400Pn:並列処理通信手段
50P0〜50Pn:OSサービス手段
500P0〜500Pn:制御代理手段
60、600:制御処理中継手段
61P0〜61Pn、601P0〜601Pn:割込制御装置
61a、601a:割込指示部
61b、601b:割込状態保持部
61c、601c:割込取消部
62P0〜62Pn、602P0〜602Pn:通信領域
62a:通信理由保持領域
62b:通信データ保持領域
62c、602b:排他制御領域
602a:通信キュー
70:代理手段
91:システムバス
92:主記憶装置
93:外部記憶装置
1000P0〜1000Pn:プロセス間通信手段
ST:逐次タスク
PT:並列化タスク
PT−1〜PT−n:タスク
41P1〜41Pn:相互排他手段
43 排他制御領域
44:タスク管理内容保持領域
SP:逐次プロセス
PP:並列化プロセス
PP−1〜PP−n:プロセス
1500P0〜1500Pn:OSサービス手段
2000P0〜2000Pn:制御ファイル
2000s:副電源管理手段
3000P0〜3000Pn:シングルプロセッサ向けOS
3100P0〜3100Pn:セキュリティ拡張手段
4000P0〜4000Pn:アプリケーション制御手段

Claims (23)

  1. マルチプロセッサ上でOS及びアプリケーションを動作させ、前記アプリケーションに対して前記マルチプロセッサによる並列処理を実現する並列処理システムにおいて、
    前記マルチプロセッサを論理的に、第1のプロセッサ群と第2のプロセッサ群の二つに分け、
    前記第1のプロセッサ群のプロセッサに属し、かつ、前記第1のプロセッサ群のプロセッサのOSとは機能的に独立に設けられ、前記第2のプロセッサ群のプロセッサに対して前記第1のプロセッサ群のプロセッサの処理単位に関する要求を前記第1のプロセッサ群のプロセッサ上のOSに代理して発行する並列処理手段と、
    前記第2のプロセッサ群のプロセッサに属し、かつ、前記第2のプロセッサ群のプロセッサのOSとは機能的に独立に設けられ、発行されたOSの管理する資源参照に関する要求を制限し、又は、前記OSの管理する資源参照に関する要求を、前記第1のプロセッサ群のプロセッサに対して、前記第2のプロセッサ群のOSに代理して発行するOSサービス手段と、
    前記第1のプロセッサ群のプロセッサに属し、かつ、前記第1のプロセッサ群のプロセッサのOSとは機能的に独立に設けられ、前記第2のプロセッサ群の前記OSサービス手段からの、前記OSの管理する資源参照に関する要求を制限するOSサービス手段
    とを備えることを特徴とする並列処理システム。
  2. 前記第1のプロセッサ群のプロセッサに属する並列処理手段が、前記第2のプロセッサ群の少なくとも一のプロセッサに対して、
    前記第1のプロセッサ群の処理単位に関する要求を発し、前記第2のプロセッサ群のプロセッサが前記要求に基づいて前記処理単位を新たな処理単位として制御することを特徴とする請求項1に記載の並列処理システム。
  3. 前記OSがシングルプロセッサ向けOSであることを特徴とする請求項1又は請求項2に記載の並列処理システム。
  4. 前記OSサービス手段が、前記処理単位に対して前記OSのサービスを提供する手段であることを特徴とする請求項1から請求項3の何れか1項に記載の並列処理システム。
  5. 前記プロセッサ又は前記処理単位毎のセキュリティ内容を予め前記OSサービス手段に組み込み、前記OSサービス手段が、前記処理単位からの処理要求について、前記セキュリティ内容に従って、前記処理要求に対するセキュリティ保護を行うことを特徴とする請求項1から請求項4の何れか1項に記載の並列処理システム。
  6. 前記プロセッサ又は前記処理単位毎のセキュリティ内容を制御ファイルに設定し、
    前記OSサービス手段が、前記処理単位からの処理要求について、前記制御ファイルのセキュリティ内容に従って、前記処理要求に対するセキュリティ保護を行うことを特徴とする請求項4又は請求項5に記載の並列処理システム。
  7. 前記並列システム上の外部記憶装置に、前記各プロセッサ毎にレベルの異なるセキュリティ内容を設定した前記制御ファイルを格納し、
    前記各プロセッサの前記OSサービス手段が、前記外部記憶装置から対応する前記制御ファイルを各々読み込み、
    前記処理単位からの要求に対するセキュリティ制御を行うことを特徴とする請求項6に記載の並列処理システム。
  8. 前記外部記憶装置に格納された前記制御ファイルが変更された場合に、対応する前記第1又は第2のプロセッサ群の前記OSサービス手段が、変更された前記制御ファイルを再読込みすることを特徴とする請求項7に記載の並列処理システム。
  9. 前記OSに組み込んだセキュリティ拡張手段が、前記OSサービス手段の機能を有することを特徴とする請求項1から請求項3の何れか1項に記載の並列処理システム。
  10. 前記セキュリティ拡張手段は、前記OSにモジュールとして組み込まれ、前記処理単位からの前記OSに対するシステムコールの要求に対して、前記処理要求に対するセキュリティ制御を行うことを特徴とする請求項9に記載の並列処理システム。
  11. 前記プロセッサ又は前記処理単位毎のセキュリティ内容を予め前記セキュリティ拡張手段に組み込み、前記セキュリティ拡張手段が、前記処理単位からの処理要求について、前記セキュリティ内容に従って、前記処理要求に対するセキュリティ保護を行うことを特徴とする請求項9又は請求項10に記載の並列処理システム。
  12. 前記プロセッサ又は前記処理単位毎のセキュリティ内容を制御ファイルに設定し、
    前記セキュリティ拡張手段が、前記処理単位からの処理要求について、前記制御ファイルのセキュリティ内容に従って、前記処理要求に対するセキュリティ保護を行うことを特徴とする請求項9又は請求項10に記載の並列処理システム。
  13. 前記並列システム上の外部記憶装置に、前記各プロセッサ毎にレベルの異なるセキュリティ内容を設定した前記制御ファイルを格納し、
    前記各プロセッサの前記セキュリティ拡張手段が、前記外部記憶装置から対応する前記制御ファイルを各々読み込み、
    前記処理単位からの要求に対するセキュリティ制御を行うことを特徴とする請求項12に記載の並列処理システム。
  14. 前記外部記憶装置に格納された前記制御ファイルが変更された場合に、対応する前記プロセッサの前記セキュリティ拡張手段が、変更された前記制御ファイルを再読込みすることを特徴とする請求項13に記載の並列処理システム。
  15. 前記処理単位に対する実行環境を提供するアプリケーション制御手段が、前記OSサービス手段の機能を有することを特徴とする請求項1から請求項3の何れか1項に記載の並列処理システム。
  16. 前記プロセッサ又は前記処理単位毎のセキュリティ内容を予め前記アプリケーション制御手段に組み込み、前記アプリケーション制御手段が、前記処理単位からの処理要求について、前記セキュリティ内容に従って、前記処理要求に対するセキュリティ保護を行うことを特徴とする請求項15に記載の並列処理システム。
  17. 前記プロセッサ又は前記処理単位毎のセキュリティ内容を制御ファイルに設定し、
    前記アプリケーション制御手段が、前記処理単位からの処理要求について、前記制御ファイルのセキュリティ内容に従って、前記処理要求に対するセキュリティ保護を行うことを特徴とする請求項15又は請求項16に記載の並列処理システム。
  18. 前記並列システム上の外部記憶装置に、前記各プロセッサ毎にレベルの異なるセキュリティ内容を設定した前記制御ファイルを格納し、
    前記各プロセッサの前記アプリケーション制御手段が、前記外部記憶装置から対応する前記制御ファイルを各々読み込み、
    前記処理単位からの要求に対するセキュリティ制御を行うことを特徴とする請求項17に記載の並列処理システム。
  19. 前記外部記憶装置に格納された前記制御ファイルが変更された場合に、対応する前記第1又は第2のプロセッサ群の前記アプリケーション制御手段が、変更された前記制御ファイルを再読込みすることを特徴とする請求項18に記載の並列処理システム。
  20. 前記処理単位がJ a v a (登録商標)アプリケーションであることを特徴とする請求項15から請求項19の何れか1項に記載の並列処理システム。
  21. 前記処理単位に対して前記シングルプロセッサ向けOSのサービスを提供する前記OSサービス手段の機能について前記プロセッサ毎に制限を設け、前記各プロセッサ上で動作する前記処理単位からの処理要求を制限することを特徴とする請求項 1から請求項19の何れか1項に記載の並列処理システム。
  22. 要求機能の異なる処理単位を実行させる場合に、前記処理単位に対する実行環境を提供する前記アプリケーション制御手段の提供する機能に応じて、当該処理単位を実行するプロセッサを選択して割り振ることを特徴とする請求項15から請求項20の何れか1項に記載の並列処理システム。
  23. 前記処理単位がJ a v a (登録商標)アプリケーションであり、前記各プロセッサのアプリケーション制御手段としてのJ a v a (登録商標)仮想マシン毎に前記J a v a (登録商標)アプリケーションの機能を制限するプロファイルを組み込み、或いはロード可能なクラスファイルを制限することで、要求機能の異なる前記Jav a (登録商標)アプリケーションを実行することを特徴とする請求項21又は請求項22に記載の並列処理システム。
JP2003198889A 2003-07-18 2003-07-18 並列処理システム及び並列処理プログラム Expired - Fee Related JP4062441B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2003198889A JP4062441B2 (ja) 2003-07-18 2003-07-18 並列処理システム及び並列処理プログラム
GB0415370A GB2404050B (en) 2003-07-18 2004-07-08 Security management system in a parallel processing system
US10/886,639 US7516323B2 (en) 2003-07-18 2004-07-09 Security management system in parallel processing system by OS for single processors
CNB2004100698908A CN100565494C (zh) 2003-07-18 2004-07-15 单处理器操作系统并行处理系统中的安全管理系统
KR1020040055408A KR100622189B1 (ko) 2003-07-18 2004-07-16 병렬 처리 시스템

Applications Claiming Priority (1)

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

Publications (3)

Publication Number Publication Date
JP2005038113A JP2005038113A (ja) 2005-02-10
JP2005038113A5 JP2005038113A5 (ja) 2006-03-23
JP4062441B2 true JP4062441B2 (ja) 2008-03-19

Family

ID=32866805

Family Applications (1)

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

Country Status (5)

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

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芯片共享数据的方法
US9846673B2 (en) 2011-11-04 2017-12-19 Waseda University Processor, accelerator, and direct memory access controller within a processor core that each reads/writes a local synchronization flag area for parallel execution
KR101394225B1 (ko) * 2012-06-22 2014-05-14 인텔렉추얼디스커버리 주식회사 다중 언어로 개발된 어플리케이션을 위한 프로파일링 수행 시스템 및 이를 이용한 프로파일링 방법
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
US9276959B2 (en) * 2013-11-11 2016-03-01 Amazon Technologies, Inc. Client-configurable security options for data streams
US9720989B2 (en) 2013-11-11 2017-08-01 Amazon Technologies, Inc. Dynamic partitioning techniques 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
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
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
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
US11075984B1 (en) 2018-07-16 2021-07-27 Amazon Technologies, Inc. Workload management at streaming data service supporting persistent connections for reads
US12001183B2 (en) * 2021-02-26 2024-06-04 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
EP0384635B1 (en) 1989-02-24 1997-08-13 AT&T Corp. Adaptive job scheduling for multiprocessing systems
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
CN1298511A (zh) 1998-02-26 2001-06-06 太阳微系统公司 基于堆栈的安全性要求
US6581089B1 (en) 1998-04-16 2003-06-17 Sony Corporation Parallel processing apparatus and method of the same
JPH11306038A (ja) * 1998-04-16 1999-11-05 Sony Corp 並列演算処理装置およびその方法
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
GB0415370D0 (en) 2004-08-11
CN100565494C (zh) 2009-12-02
KR100622189B1 (ko) 2006-09-13
US20050015625A1 (en) 2005-01-20
CN1577316A (zh) 2005-02-09
GB2404050A (en) 2005-01-19
GB2404050B (en) 2007-01-17
US7516323B2 (en) 2009-04-07
JP2005038113A (ja) 2005-02-10
KR20050009686A (ko) 2005-01-25

Similar Documents

Publication Publication Date Title
JP4062441B2 (ja) 並列処理システム及び並列処理プログラム
JP4051703B2 (ja) シングルプロセッサ向けosによる並列処理システム、並列処理プログラム
JP4196333B2 (ja) 並列処理システム及び並列処理プログラム
US8443377B2 (en) Parallel processing system running an OS for single processors and method thereof
US7650602B2 (en) Parallel processing computer
US12026100B2 (en) Method and system for low latency data management
US11966599B2 (en) Method and system for low latency data management
US8413163B2 (en) Program control device including per-timeslot switching of thread execution
JP2013516711A (ja) 電子デバイスにおける電力を制御するシステムおよび方法
JP3969308B2 (ja) シングルプロセッサ向けosによる並列処理システム
JP7346649B2 (ja) 同期制御システムおよび同期制御方法
CN113791898A (zh) 一种基于TrustZone的可信微内核操作系统
JP2018049406A (ja) 複数プロセッサ間のタスク連携装置
GB2434008A (en) Inter-processor communication in a parallel processing system running an OS for single processors
JP2000235553A (ja) マルチプロセッサシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070618

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071218

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120111

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130111

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130111

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees