JP3952992B2 - 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム - Google Patents

情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP3952992B2
JP3952992B2 JP2003157565A JP2003157565A JP3952992B2 JP 3952992 B2 JP3952992 B2 JP 3952992B2 JP 2003157565 A JP2003157565 A JP 2003157565A JP 2003157565 A JP2003157565 A JP 2003157565A JP 3952992 B2 JP3952992 B2 JP 3952992B2
Authority
JP
Japan
Prior art keywords
partition
interrupt
processing
interrupt processing
request
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
JP2003157565A
Other languages
English (en)
Other versions
JP2004362100A5 (ja
JP2004362100A (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.)
Sony Corp
Original Assignee
Sony 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
Priority to JP2003157565A priority Critical patent/JP3952992B2/ja
Application filed by Sony Corp filed Critical Sony Corp
Priority to EP04732211.0A priority patent/EP1548592B1/en
Priority to PCT/JP2004/006608 priority patent/WO2004109512A1/ja
Priority to US10/523,094 priority patent/US7818751B2/en
Priority to CNB2004800006820A priority patent/CN100483351C/zh
Priority to KR1020057001912A priority patent/KR20060023514A/ko
Publication of JP2004362100A publication Critical patent/JP2004362100A/ja
Publication of JP2004362100A5 publication Critical patent/JP2004362100A5/ja
Application granted granted Critical
Publication of JP3952992B2 publication Critical patent/JP3952992B2/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
    • 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
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、情報処理装置、プロセス制御方法、並びにコンピュータ・プログラムに関する。詳細には、割り込み要求処理の実行タイミングの管理により最適なデータ処理を実現する情報処理装置、プロセス制御方法、並びにコンピュータ・プログラムに関する。
【0002】
【従来の技術】
一般に、コンピュータ・システムは、周辺ハードウェアにおいてソフトウェアの介在が必要な事象が発生した際に、割り込み要求をプロセッサに送出することによって、その時点で実行されていたプログラムの実行を中断し、割り込み処理プログラムを起動する機構を有する。
【0003】
一方、近年のプロセッサは、例えば以下のa〜cの機構を採用することによってその性能を飛躍的に高めている。すなわち、
a.キャッシュメモリ
b.多数のレジスタ
c.分岐予測機構
ところが、これらの機構は、割り込み処理のように、あらかじめ予測できない時点に制御の流れが変化する処理に対する性能が相対的に低い。
【0004】
一方、いわゆるギガビットイーサネット(登録商標)などのように例えば12μsec毎の割り込みが発生し得る高速な通信機構では、高頻度の割り込み要求が発生する。例えば、1Gbpsの通信速度で1500バイトのパケットを受信した場合、12マイクロ秒毎に1パケットを受信することになる。パケット受信毎に割り込みを発生するという一般的なハードウェア構成を採用した場合、12マイクロ秒ごとに割り込み処理を行う必要が生じることになる。
【0005】
また、セットトップボックスなどのように、内部に多数の割り込み要求発生源を格納する必要があるシステムにおいても、割り込み処理に費やされる時間が全処理時間に占める割合が高くなる傾向がある。
【0006】
仮に、割り込み要求発生間隔が予測可能であれば、オペレーティングシステムによるタイマデバイスのポーリングによって、この問題を解決することが可能である。この構成については、例えば非特許文献1に記載されている。
【0007】
しかし、あらかじめ割り込み要求発生間隔が予測できない割込み発生源では、このような手法を適用することができない。割込みの発生頻度の増加によるオーバヘッド増大という問題は、個々のオペレーティングシステム(OS)の問題を引き起こすばかりでなく、複数のOSを一つのシステム上で同時に動作させるためのOSスケジューリングを実行するパーティション管理ソフトウェアにおいても重大な問題となる。
【0008】
1つのシステム上に複数のOSを搭載した場合、各OSの実行する処理は、システムで共通のハードウェア、すなわちCPUやメモリ等を利用することになるため、各OSの実行処理を時系列に順次切り替えて実行することが必要となる。このようなOSスケジューリングを実行するのがパーティション管理ソフトウェアである。パーティションは各OSに対応する処理である。
【0009】
例えば1つのシステムにOS(α)とOS(β)の2つのオペレーティングシステムが並存する場合、OS(α)の処理をパーティションAとし、OS(β)の処理をパーティションBとすると、パーティション管理ソフトウェアは、パーティションAとパーティションBの実行スケジュールを決定し、決定したスケジュールに基づいて、各OSにおける処理を実行する。
【0010】
このように複数OSを一つのシステム上で動作させる環境において、ある割り込み処理が特定のパーティションで動作しているOS(α)のみにおいて実行可能である場合、割り込み要求発生時点で動作しているパーティションが割り込み処理に適応しないOS(β)のパーティション(B)である場合は、パーティション(B)の処理を中断し、OS(α)を適用して割り込み処理を実行し、割り込み処理の実行後にパーティション(B)の処理を再開するといった処理が行われる。このように割り込み要求の処理には、パーティション切り替えが頻繁に行われることになる。
【0011】
また、従来のパーティション管理方式として、割込みの発生とは無関係に管理下の各OSに対応するパーティションの実行タイミングを定める構成としたものもある。このような方式では、割り込み要求が発生した場合、予めスケジュール済みの管理下OSに対応するパーティションを変更せずに割り込み要求に対応するパーティションの設定を行うことになる。既にスケジュール設定済みのパーティションが長期間にわたって存在する場合なには、割り込み要求の処理の実行開始までに長時間の待機を要する場合があった。
【0012】
このように、管理下のOSの処理(パーティション)を優先し、割り込み要求の処理を管理下のOSの処理(パーティション)の空き時間まで待機して実行する従来型のパーティション管理方式では、応答時間に対する要求が厳しい割り込み要求発生源が存在する場合には、適切な割り込み要求処理が実行されず、通信エラーなどのデータ処理エラーを引き起こす可能性があった。
【0013】
【非特許文献1】
Mohit Aron and Peter Druschel, Soft Timers: Efficient Microsecond Software Timer Support for Network Processing, ACM Transactions on Computer Systems, Vol. 18, No. 3, August 2000
【0014】
【発明が解決しようとする課題】
本発明は、上述の従来技術における問題点に鑑みてなされたものであり、複数OSが搭載され、パーティション管理により各OSの処理が実行されるシステムにおいて、割り込み要求に応じて最適な処理タイミングを決定して実行することで、割り込み要求に対する処理に基づくオーバヘッド増大を防止してシステム全体の効率的な処理を実現するとともに、割り込み要求に対する許容時間を越える待機等に基づく処理エラーの発生を防止した情報処理装置、プロセス制御方法、並びにコンピュータ・プログラムを提供することを目的とする。
【0015】
【課題を解決するための手段】
本発明の第1の側面は、
複数のオペレーティングシステム(OS)を格納した記憶部と、
前記複数のOSに基づく処理を実行するプロセッサと、
前記複数のOS各々の処理として規定されるパーティションを時間軸に沿ってスケジューリングし、スケジューリングに沿ったパーティション切り替え制御に基づいて前記複数OSの切り換え制御を実行するプロセス管理手段とを有する情報処理装置であり、
前記プロセス管理手段は、
最大許容遅延時間の設定された割り込み処理要求の発生から前記最大許容遅延時間以内に、予め設定されたパーティション切り替えタイミングがあるか否かを判断し、
前記最大許容遅延時間以内に、予め設定されたパーティション切り替えタイミングがあると判断した場合には、割り込み処理要求に対応する割り込み処理実行期間としての割り込み処理パーティションを、予め設定されたパーティション切り替えタイミングに一致させて設定し、パーティションスケジュールにおいて予定された1つのパーティションの終了に続く処理として前記OSのいずれかにおいて割り込み処理を実行させるプロセス制御を行う構成を有することを特徴とする情報処理装置にある。
【0016】
さらに、本発明の情報処理装置の一実施態様において、前記プロセス管理手段は、前記割り込み処理パーティションを、割り込み要求発生後の最も早いタイミングのパーティション切り替えタイミングに一致させて設定する処理を実行する構成であることを特徴とする。
【0017】
さらに、本発明の情報処理装置の一実施態様において、前記プロセス管理手段は、割り込み処理要求の発生から前記最大許容遅延時間以内に、予め設定されたパーティション切り替えタイミングがないと判断した場合は、実行中のパーティションを中断し、割り込み処理を実行させるプロセス制御を行う構成を有することを特徴とする。
【0018】
さらに、本発明の情報処理装置の一実施態様において、前記複数のOSに基づく処理を実行するプロセッサは並列に動作可能な複数のプロセッサを有する構成であり、前記プロセス管理手段は、前記複数のプロセッサの各々について、前記パーティションを時間軸に沿ってスケジューリングし、各プロセッサについてのパーティションスケジュールに沿ったパーティション切り替え制御を実行する構成であり、前記割り込み処理パーティションを、前記複数のプロセッサに対応する複数のパーティションスケジュールの1つを選択し、該選択したパーティションスケジュール中のパーティション切り替えタイミングに一致させて設定する処理を実行する構成であることを特徴とする。
【0019】
さらに、本発明の情報処理装置の一実施態様において、前記プロセス管理手段は、複数のパーティションスケジュール中、割り込み要求発生後、最も早いタイミングのパーティション切り替えタイミングを持つパーティションスケジュールを選択し、最も早いタイミングのパーティション切り替えタイミングに一致させて前記割り込み処理パーティションを設定する処理を実行する構成であることを特徴とする。
【0020】
さらに、本発明の情報処理装置の一実施態様において、前記プロセス管理手段は、割り込み処理要求が最小許容遅延時間の設定された要求である場合において、割り込み処理要求の発生から最小許容遅延時間以後に発生する予め設定されたパーティション切り替えタイミングに一致させて前記割り込み処理パーティションを設定する処理を実行する構成であることを特徴とする。
【0021】
さらに、本発明の情報処理装置の一実施態様において、前記プロセス管理手段は、割り込み処理要求に対応する割り込み処理が予め設定されたパーティションスケジュールに規定されたスケジュール済みパーティションにおいて実行可能である場合において、該割り込み処理を前記スケジュール済みパーティションにおいて実行させる処理を行う構成であることを特徴とする。
【0022】
さらに、本発明の情報処理装置の一実施態様において、前記複数のOSに基づく処理を実行するプロセッサは並列に動作可能な複数のプロセッサを有する構成であり、前記プロセス管理手段は、各プロセッサに対応するプロセス制御を実行するプロセッサ対応のパーティション切り替えモジュールを有する構成であることを特徴とする。
【0023】
さらに、本発明の情報処理装置の一実施態様において、前記パーティション切り替えモジュールは、パーティション切り替えモジュールの対応付けられたプロセッサの処理可能な割り込み要求発生源情報としての割り込みグループ情報を有するとともに、割り込みグループ毎に設定された割り込み要求待ち行列として設定される複数の割り込みグループ別保留キューから前記割り込みグループ情報によって判別されるプロセッサによって処理可能なグループに対応する保留キューに格納された割り込み要求のエントリに関する処理を実行する構成であることを特徴とする。
【0024】
さらに、本発明の第2の側面は、
複数のオペレーティングシステム(OS)に基づく処理を切り替え制御するプロセス制御方法であり、
割り込み処理要求の発生を検出するステップと、
割り込み処理要求が最大許容遅延時間の設定された割り込み処理要求であるか否かを判断する割り込み処理要求態様判断ステップと、
最大許容遅延時間の設定された割り込み処理要求の発生から前記最大許容遅延時間以内に、予め設定されたパーティション切り替えタイミングがあるか否かを判断するタイミング判断ステップと、
前記最大許容遅延時間以内に、予め設定されたパーティション切り替えタイミングがあると判断した場合には、割り込み処理要求に対応する割り込み処理実行期間としての割り込み処理パーティションを、予め設定されたパーティション切り替えタイミングに一致させて設定する割り込み処理パーティション設定ステップと、
前記割り込み処理パーティション設定ステップにおいて設定された情報に従って、パーティションスケジュールにおいて予定された1つのパーティションの終了に続く処理として前記OSのいずれかにおいて割り込み処理を実行する割り込み処理実行ステップと、
を有することを特徴とするプロセス制御方法にある。
【0025】
さらに、本発明のプロセス制御方法の一実施態様において、前記割り込み処理パーティション設定ステップは、前記割り込み処理パーティションを、割り込み要求発生後の最も早いタイミングのパーティション切り替えタイミングに一致させて設定する処理を実行することを特徴とする。
【0026】
さらに、本発明のプロセス制御方法の一実施態様において、前記割り込み処理パーティション設定ステップは、前記割り込み処理要求態様判断ステップにおいて、割り込み処理要求が最大許容遅延時間の設定された割り込み処理要求であると判断され、かつ、前記タイミング判断ステップにおいて、前記最大許容遅延時間以内に、予め設定されたパーティション切り替えタイミングがないと判断された場合、実行中のパーティションを中断し、中断部に割り込み処理パーティションを設定することを特徴とする。
【0027】
さらに、本発明のプロセス制御方法の一実施態様において、前記プロセス制御方法は、さらに、前記複数のOSに基づく処理を実行する複数のプロセッサの各々について、前記パーティションを時間軸に沿ってスケジューリングし、各プロセッサについてのパーティションスケジュールに沿ったパーティション切り替え制御を実行するステップを有し、前記割り込み処理パーティション設定ステップは、前記複数のプロセッサに対応する複数のパーティションスケジュールの1つを選択し、該選択したパーティションスケジュール中のパーティション切り替えタイミングに一致させて割り込み処理パーティションを設定することを特徴とする。
【0028】
さらに、本発明のプロセス制御方法の一実施態様において、前記割り込み処理パーティション設定ステップは、複数のパーティションスケジュール中、割り込み要求発生後、最も早いタイミングのパーティション切り替えタイミングを持つパーティションスケジュールを選択し、最も早いタイミングのパーティション切り替えタイミングに一致させて前記割り込み処理パーティションを設定する処理を実行することを特徴とする。
【0029】
さらに、本発明のプロセス制御方法の一実施態様において、前記割り込み処理パーティション設定ステップは、割り込み処理要求が最小許容遅延時間の設定された要求である場合において、割り込み処理要求の発生から最小許容遅延時間以後に発生する予め設定されたパーティション切り替えタイミングに一致させて前記割り込み処理パーティションを設定する処理を実行する構成であることを特徴とする。
【0030】
さらに、本発明のプロセス制御方法の一実施態様において、前記プロセス制御方法は、さらに、割り込み処理要求に対応する割り込み処理が予め設定されたパーティションスケジュールに規定されたスケジュール済みパーティションにおいて実行可能である場合において、該割り込み処理を前記スケジュール済みパーティションにおいて実行させるステップを有することを特徴とする。
【0031】
さらに、本発明の第3の側面は、
複数のオペレーティングシステム(OS)に基づく処理を切り替え制御するプロセス制御を実行するコンピュータ・プログラムであり、
割り込み処理要求の発生を検出するステップと、
割り込み処理要求が最大許容遅延時間の設定された割り込み処理要求であるか否かを判断する割り込み処理要求態様判断ステップと、
最大許容遅延時間の設定された割り込み処理要求の発生から前記最大許容遅延時間以内に、予め設定されたパーティション切り替えタイミングがあるか否かを判断するタイミング判断ステップと、
前記最大許容遅延時間以内に、予め設定されたパーティション切り替えタイミングがあると判断した場合には、割り込み処理要求に対応する割り込み処理実行期間としての割り込み処理パーティションを、予め設定されたパーティション切り替えタイミングに一致させて設定する割り込み処理パーティション設定ステップと、
前記割り込み処理パーティション設定ステップにおいて設定された情報に従って、パーティションスケジュールにおいて予定された1つのパーティションの終了に続く処理として前記OSのいずれかにおいて割り込み処理を実行する割り込み処理実行ステップと、
を有することを特徴とするコンピュータ・プログラム。
【0032】
【作用】
本発明の構成によれば、複数のオペレーティングシステム(OS)に基づく処理を切り替え制御するプロセス制御において、割り込み処理要求に対応する割り込み処理実行期間としての割り込み処理パーティションを、予め設定されたパーティション切り替えタイミングに一致させて設定する構成としたので、割り込み要求に対応するパーティション切り替え処理の増加を1回のみに抑えることが可能となり、処理負荷の増大を防止し、効率的なデータ処理を実行することが可能となる。
【0033】
さらに、本発明の構成によれば、割り込み処理要求に、最大許容遅延時間、あるいは最小許容遅延時間が設定されている場合、これらの許容時間内にパーティション切り替えが発生した場合は、その切り替えタイミングに割り込み処理パーティションを設定し、これらの許容時間内にパーティション切り替えが発生しなかった場合は、強制割り込みを行うなど、各割り込み要求に対応した処理を実行する構成であるので、処理エラーを発生させることない構成が実現される。
【0034】
さらに、本発明の構成によれば、マルチプロセッサシステムにおいて複数OSによる処理が並列に実行可能な構成では、複数のプロセッサに対応する複数のパーティションスケジュールの1つを選択し、選択したパーティションスケジュール中のパーティション切り替えタイミングに一致させて割り込み処理パーティションを設定する構成としたので、複数のパーティションスケジュール中、割り込み要求発生後、最も早いタイミングのパーティション切り替えタイミングに割り込み要求を実行させることが可能となり、さらに効率的なデータ処理が可能となる。
【0035】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやDVD、MOなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【0036】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【0037】
【発明の実施の形態】
以下、本発明の情報処理装置、プロセス制御方法、並びにコンピュータ・プログラムの詳細について説明する。なお、説明は、以下の項目順に行う。
1.本発明におけるプロセス管理の概要
2.割り込み要求に対する処理例1
3.割り込み要求に対する処理例2
4.マルチプロセッサシステムにおける処理
5.最小遅延時間の設定された割り込み要求処理
6.規定スケジュールを利用した割り込み要求処理
7.プロセス管理手段の構成
8.割り込み処理の設定および実行シーケンス
9.情報処理装置のハード構成例
【0038】
[1.本発明におけるプロセス管理の概要]
まず、図1を参照して本発明の情報処理装置、プロセス制御方法の概要について説明する。図1は、本発明の情報処理装置、プロセス制御方法において適用するオペレーティングシステム(OS)の構成を説明する図である。
【0039】
本発明の情報処理装置、プロセス制御方法において適用するオペレーティングシステム(OS)は、図1に示すように、レベル0のレベル0−OS(0)102上に複数のレベル1−OS(1α)(1β)(1γ)103が設定された構成を持つ。様々な具体的処理プログラムとしてのアプリケーション104は、レベル1−OS103上に設定され、レベル1−OS103のいずれかのOSに対応付けられて動作する。なお、図1にはレベル1−OS103を3つ示してあるが、これは一例であり、本発明は2つ以上の任意の数の複数OSを持つシステム、いわゆるマルチOSシステムにおいて適用可能である。これらのOSは、情報処理装置の記憶部に格納され、プロセッサにおいて実行される。
【0040】
なお、以下の説明において、OS(1)、OS(1α)、OS(1β)・・はレベル1のOSを意味し、OS(0)はレベル0のOSを意味するものとする。
【0041】
ハードウェア(HW)101は、各OSにおいて共通に利用されるプロセッサ(CPU)、メモリなどのハードウェアである。
【0042】
レベル0のOS(0)102は、レベル1のOS(1)103、すなわち本例ではOS(1α)、OS(1β)、OS(1γ)の3つのOS(1)の実行する処理に関するスケジューリングを実行する。レベル0のOS(0)102は、レベル1の各OS(1)に対応する処理をパーティションという区切りで時系列にスケジューリングする。
【0043】
図2にパーティションに基づくスケジューリング例を示す。図2(a)は、レベル1のOS(1)の処理に適用可能なプロセッサが1つの単一プロセッサシステムの構成におけるパーティションスケジュールの設定例である。
【0044】
レベル1のOS(1)の処理に適用可能なプロセッサが1つの単一プロセッサシステムにおいては、レベル1のOS(1)であるOS(1α)、OS(1β)、OS(1γ)は並列に処理を実行することができないため、各OS(1)における処理は、単一の時系列処理としてスケジューリングされる。
【0045】
図2(a)に示す例では、時間t0〜t1においてOS(1α)による処理、すなわちパーティションAを実行し、時間t1〜t2においてOS(1β)による処理、すなわちパーティションBを実行し、時間t2〜t3においてOS(1γ)による処理、すなわちパーティションCを実行する。以下、時間軸に沿って各OSの処理が実行されることになる。
【0046】
図2(b)は、レベル1OSの処理に適用可能なプロセッサが2つの複数プロセッサシステムの構成におけるパーティションスケジュールの設定例である。
【0047】
レベル1OSの処理に適用可能なプロセッサが複数ある場合、レベル1のOSであるOS(1α)、OS(1β)、OS(1γ)は、プロセッサ数に応じて並列に処理を実行することができる。従って、レベル0のOS(0)は、プロセッサ数に応じた複数の時系列処理としてレベル1のOS(1)の実行処理をスケジューリングする。
【0048】
図2(b)に示す例では、プロセッサ1において、時間t10〜t11においてOS(1α)による処理、すなわちパーティションAを実行し、時間t11〜t12においてOS(1β)による処理、すなわちパーティションBを実行する。一方、プロセッサ2において、時間t20〜t21においてOS(1β)による処理、すなわちパーティションBを実行し、時間t21〜t22においてOS(1γ)による処理、すなわちパーティションCを実行する。
【0049】
[2.割り込み要求に対する処理例1]
次に、割り込み要求が発生した場合の、パーティション管理について説明する。割り込み処理要求が発生した場合、プロセス管理手段としてのレベル0のOS(0)102は、その割り込み処理をどのタイミングでどのレベル1のOS(1)によって実行させるかを決定する処理を実行する。すなわち、プロセス管理手段としてのレベル0のOS(0)102は割り込み要求に対応する割り込み処理の実行期間としての割り込み処理パーティションの設定処理を行う。
【0050】
レベル1のOS(1)は、割り込み処理パーティションの設定がなされた場合は、その設定されたパーティションスケジュールに従った処理を行うことになる。
【0051】
プロセッサの数が1つであるか、または、割り込み処理に関してプロセッサが互いに独立であるシステム、すなわち単一プロセッサシステムにおける割り込み要求のスケジューリング例について図3を用いて説明する。
【0052】
図3に示す割り込み要求のスケジューリング例は、割り込み要求発生時に実行中のパーティションのOS(1α)によって割り込み要求が処理できない場合、実行中のパーティションの終了時まで待機し、実行中のパーティションの終了後に割り込み要求を処理できるOS(1x)(x≠α)の割り込みパーティションを設定した例である。図3(a)は割込みが発生していない時のスケジューリングである。
【0053】
図3(b)は、OS(1α)による処理であるパーティションAの実行期間中に割り込み要求が発生し、この割り込み要求がOS(1α)では実行できず、他のOS(1x)(x≠α)によって実行可能である場合に、予めスケジュール済みのパーティション切り替え時まで割り込み要求の処理実行を待機する。割り込み要求に対する処理の実行後に、パーティションBの処理を実行する。
【0054】
図3(b)に示すように、割り込み要求201は、OS(1α)による処理であるパーティションAの実行期間中に発生しているが、レベル0のOS(0)は、割り込み要求201の処理の開始をパーティションAの実行終了まで遅らせる。
【0055】
すなわち、割り込み要求201の発生後、時間Td経過後のパーティションAの終了時間まで待機し、割り込み要求に対応する処理である割り込み処理パーティションを設定する。この遅延時間Tdは、割込みが発生していない時に予定されているパーティションスケジュールにおいて、パーティションAから他のパーティションへの切り替えが発生するタイミングまでの時間である。本実施例においては、割り込み処理パーティションを、割り込み要求発生後の最も早いタイミングのパーティション切り替えタイミングに一致させて設定する。
【0056】
上述の割り込み要求に対するスケジューリング処理は、従来の方式と比較すると、パーティションの切り替え回数を減少させるという効果がある。
【0057】
割り込み要求発生の直後に割り込み処理パーティションを即座に起動する従来型の割り込み要求処理例を図4に示す。
【0058】
図4に示す処理例は、図3に示すと同様のタイミングで割り込み要求が発生した場合の処理例である。図4(a)は割込みが発生していない時のスケジューリングである。
【0059】
図4(b)は、OS(1α)による処理であるパーティションAの実行期間中に割り込み要求211が発生し、この割り込み要求がOS(1α)では実行できず、他のOS(1x)(x≠α)によって実行可能である場合、割り込み要求発生の直後に割り込み処理パーティション212を即座に起動する。
【0060】
図4(b)に示すように、割り込み要求211は、OS(1α)による処理であるパーティションAの実行期間中に発生し、直後に割り込み処理パーティション212が設定される。
【0061】
この時点で、パーティションAは中断され、割り込み処理パーティション212の前後において2つのパーティションA221、パーティションA222によって実行することになる。この結果、パーティションA221から割り込み処理パーティション212へのパーティション切り替え、割り込み処理パーティション212からパーティションA222へのパーティション切り替えが必要となり、割り込み処理実行のために増加するパーティション切り替え回数が2回となる。
【0062】
図3に示す例では、パーティションAの終了後に割り込み処理パーティションを実行するのみであるので、割り込み処理実行のために増加するパーティション切り替え回数は1回のみである。このように、割り込み処理を遅らせることによってパーティション切り替え回数を1回減少させる効果が得られる。
【0063】
もう1つの効果は、命令実行効率の向上である。図4において、分断された2つのパーティションA221、パーティションA222に設定される時間は、それぞれT1、T2となり、T1+T2は、割り込み処理が無い場合に設定されていた時間Tに等しくなる。すなわちT=T1+T2である。
【0064】
しかし、期間Tの長さが期間T1とT2の長さを加えたものと等しいにもかかわらず、期間Tの間に実行できる命令の数は、期間T1とT2の間に実行される命令の数の合計よりも多くなる。これは、パーティションAの実行が、割り込み処理パーティションの実行によって分断されないためである。パーティションAの実行が割り込み処理パーティションによって中断されている間に、プロセッサが備えている種々のキャッシュ機構やバッファ(キャッシュメモリやTLB、分岐予測バッファ)の状態が割り込み処理パーティションによって更新される。この更新の結果、パーティションAに復帰した後の命令実行効率は、パーティションAを連続的に実行していた場合にくらべて低下するのである。
【0065】
図3を参照して説明したように、割り込み要求の処理パーティションの設定を、割り込み要求発生時に実行中のパーティションの終了予定時刻後とすることで、パーティション切り替えオーバヘッドの削減と、命令実行効率の向上という効果が得られる。
【0066】
[3.割り込み要求に対する処理例2]
上述した割り込み要求の処理遅延手法のみを適用すると、割り込み要求発生時に実行中のパーティションの設定時間が長い場合には、割り込み要求の処理開始時刻が遅れ、処理によってはエラーを発生させる場合がある。
【0067】
これを解決する処理例として、最大遅延時間を制限した処理例について図5を参照して説明する。
【0068】
図5(a)は、上述した実施例に相当する処理例であり、割り込み処理の実行開始位置を、割り込み要求301発生時に実行中のパーティション(パーティションA)の終了時点とした例である。パーティションAの終了後に割り込み処理パーティション302を設定している。
【0069】
図5(a)に示す例は、割り込み要求301発生時からパーティションAの終了予定時刻までの時間Tdが、割り込み要求の最大許容遅延時間Tmaxより短い、すなわちTd<Tmaxであり、パーティションAの終了予定時刻まで待機しても問題がない場合の処理である。
【0070】
割り込み要求には、最大許容遅延時間が設定された割り込み要求がある。最大許容遅延時間は、例えば割り込み要求発生源に対応して設定された情報として、レベル0のOS(0)が保持している。これらの構成については後述する。
【0071】
最大許容遅延時間が設定された割り込み要求が発生した場合において、図5(b)に示すように、割り込み要求311発生時に実行中のパーティションの終了予定時刻までの時間が、割り込み要求の最大許容遅延時間Tmaxより長い場合は、パーティションの処理終了まで待機することなく、パーティションAを割り込み要求の最大許容遅延時間Tmax以内に中断し、割り込み処理パーティション312を設定し実行する。
【0072】
この処理を強制割り込み処理と呼ぶ。この強制割り込み処理の結果、パーティションAは前段パーティションA321と後段パーティションA322に分割されて処理されることになる。
【0073】
このように、割り込み要求の最大許容遅延時間が経過してもパーティションの切り替えが発生しない場合には、最大許容遅延時間の経過時点あるいは経過以前の時点で、実行中のパーティションを中断し、割り込み処理パーティションへ切り替えて割り込み処理を実行する。
【0074】
このように、許容遅延時間を考慮した割り込み処理の遅延を行うことによって、最大応答時間(最大許容遅延時間)に制限のある割り込み要求が発生し得るシステムにおいて、最大応答時間(最大許容遅延時間)の割り込み要求処理の実行を保証することが可能となり、割り込み要求の過大な遅延によるデータ処理エラーの発生を防止することができる。
【0075】
[4.マルチプロセッサシステムにおける処理]
上述した実施例では、プロセッサの数が1つであるか、または、割り込み処理に関してプロセッサが互いに独立であるシステムを前提としてきた。複数のプロセッサが並列に処理を実行できるシステムにおいては、さらに効率的な処理が可能となる。
【0076】
マルチプロセッサシステムにおける割り込み要求のスケジューリング例について、図6を参照して説明する。図6において、並列処理可能なプロセッサは3つ(プロセッサ1、プロセッサ2、プロセッサ3)あり、プロセッサ1、プロセッサ2、プロセッサ3各々の処理シーケンスが、レベル0のOS(0)によってスケジューリングされる。
【0077】
図6(a)は、プロセッサ1を適用した処理のパーティションによるスケジューリングであり、図6(b)は、プロセッサ2を適用した処理のパーティションによるスケジューリングであり、図6(c)は、プロセッサ3を適用した処理のパーティションによるスケジューリングである。
【0078】
この例では、プロセッサ1で割り込み要求X401と割り込み要求Y402が発生した例を示している。プロセッサ1ではパーティションAが実行を続けており、割り込み処理パーティションは遅延されつづけている。その後、プロセッサ2において、パーティションBの処理が終了し、パーティション切り替えタイミング411が発生している。
【0079】
各プロセッサのパーティション構成は、レベル0のOS(0)が把握しており、プロセッサ1で発生した割り込み要求X401または割り込み要求Y402の後に発生するパーティション切り替えタイミングに中、最も早いパーティション切り替えタイミングが設定されたプロセッサを識別する。
【0080】
この時、割り込み処理Xを設定可能な、最も早いパーティション切り替えタイミングは、プロセッサ2のパーティションBの処理終了時のパーティション切り替えタイミング411である。レベル0のOS(0)は、プロセッサ1で保留中となっている割り込み処理Xをプロセッサ2に委譲し、パーティションBに続いて処理するようにスケジューリングをし、割り込み処理パーティション412をプロセッサ2のパーティションBの処理終了後に設定して、プロセッサ2により割り込み処理Xを実行させる。
【0081】
さらに、割り込み処理Yを設定可能な、最も早いパーティション切り替えタイミングは、プロセッサ3のパーティションDの処理終了時のパーティション切り替えタイミング421である。レベル0のOS(0)は、プロセッサ1で保留中となっている割り込み処理Yをプロセッサ3に委譲し、パーティションDに続いて処理するようにスケジューリングをし、割り込み処理パーティション422をプロセッサ3のパーティションDの処理終了後に設定して、プロセッサ3により割り込み処理Yを実行させる。
【0082】
このように、複数プロセッサによる並列処理が実行可能なマルチプロセッサシステムにおいては、遅延中の割り込み処理をプロセッサ間で委譲することが可能であり、割り込み要求発生後の最も早いパーティション切り替えタイミングの設定されたプロセッサに遅延中の割り込み処理を実行させることで、遅延時間を短くした割り込み処理の実行が可能となり、実行中のパーティションを中断させて強制割り込みを行うことなく、予め定められたパーティションスケジュールのパーティション切り替えタイミングを利用した割り込み処理の実行を、さらに高い確率で行うことが可能となる。
【0083】
[5.最小遅延時間の設定された割り込み要求処理]
前述したように、割り込み要求には、最大許容遅延時間が設定された割り込み要求がある。さらに、割り込み要求には最小遅延時間の設定された割り込み要求がある。最小遅延時間は、例えば割り込み要求発生源ごとに定められており、割り込み要求発生源情報として、レベル0のOS(0)の管理情報として設定される。これらの情報については後述する。
【0084】
最小遅延時間の設定された割り込み要求が発生した場合は、最小遅延時間が経過するまでは、たとえパーティション切り替えが行われても処理を開始しない。
【0085】
図7を参照して最小遅延時間の設定された割り込み要求に対するレベル0のOS(0)の実行するパーティション設定に基づくスケジューリング処理について説明する。
【0086】
図7において、パーティションAの実行中に割り込みが要求501が発生している。前述の実施例に従った場合は、パーティションAからパーティションBの切り替えの発生時に割り込み処理パーティションが設定されることになるが、割り込みが要求501は、最小遅延時間の設定された割り込み要求である。
【0087】
このように、最小遅延時間の設定された割り込み要求である場合は、割込みの要求501の発生時点から最小遅延時間が経過するまで待機し、その後に発生するパーティション切り替えタイミングに割り込み処理パーティション511を設定する。図7に示すパーティションBの終了後に割り込み処理パーティション511が設定される。
【0088】
なお、割り込み要求にさらに最大遅延時間が設定されている場合は、さらに、最大遅延時間を考慮した処理を行うことになる。すなわち、割り込み要求の発生時点から最小遅延時間経過後であり、最大遅延時間以内にパーティション切り替えが行われるタイミングがあれば、そこに割り込み処理パーティションを設定するが、割り込み要求の発生時点から最小遅延時間経過後、最大遅延時間以内にパーティション切り替えが行われるタイミングがない場合は、そのパーティション実行を中断してそこに割り込み処理パーティションを設定する。
【0089】
[6.規定スケジュールを利用した割り込み要求処理]
これまで説明してきた方式は、基本的に、割込みが発生してから最初のパーティション切り替えが行われる時点まで割り込み処理を延期し、許容されない場合にパーティションを中断し割り込み処理を実行する構成例を説明してきた。
【0090】
ところが、割り込み要求発生源によっては、その許容遅延時間がパーティション切り替えの発生間隔にくらべて十分に大きいものがある。一方で、割込み処理を行うパーティションが、割り込み処理だけをおこなうことはまれであり、他のパーティションと同様にプロセッサ時間の割り当てをうけていることが多い。そのような場合には、レベル0のOS(0)が実行する規定のスケジューリングプロセスにおいて、割り込み処理を行い得るパーティションがスケジュールされるのを待機し、スケジューリングされたパーティションで割り込み処理を実行する構成とすることが可能である。ただし、この場合も、割り込み要求の許容遅延時間をこえない範囲での待機が条件となる。
【0091】
本構成によれば、割り込み要求の実行のためだけのパーティションの設定を行う必要がなくなるので、割り込み処理オーバヘッドがさらに削減される。
【0092】
本構成は、レベル0のOS(0)の設定したパーティションスケジュールが、あらかじめ予測可能な場合、この予測されたスケジュールを利用して割り込み処理を延期するという手法である。図8を参照して、本実施例に従った割り込み要求の処理とパーティションスケジュールとの対応について説明する。
【0093】
図8では、パーティションAの実行中に割り込み要求601が発生している。この割り込み要求601には、最大許容遅延時間(Tmax)が設定されている。
【0094】
割り込み要求601の発生後、最大許容遅延時間(Tmax)以内において、この割込み要求を処理可能なパーティションがスケジューリングされていると予測できたとする。すると、この割り込み要求601はそのパーティションで処理されるように設定される。
【0095】
図8においては、パーティションD611が、割込み要求601を処理可能なパーティションであり、レベル0のOS(0)が規定のパーティションスケジューリングによってスケジュールされたパーティションであり、割り込み要求601は、パーティションD611において実行されるように設定される。
【0096】
本構成によれば、割り込み要求の実行のためだけのパーティションの設定を行う必要がなくなり、割り込み処理オーバヘッドが削減され、効率的なデータ処理が実現される。
【0097】
[7.プロセス管理手段の構成]
以上、本発明のプロセス管理処理例を複数説明してきた。以下、これらの処理を実行するためのプロセス管理手段の構成について説明する。
【0098】
図9を参照して本発明のプロセス管理手段の情報管理構成について説明する。図9に示す構成例は、複数プロセッサを持つマルチプロセッサシステムにおける情報構成であり、図1に示すレベル0のOS(0)の制御の下に各情報が管理され、また、各モジュールによる動作が制御される。プロセッサ1,731、プロセッサ2,732、プロセッサ3,733は、レベル1のOS(1)に従った処理を並列に実行することができる。なお、レベル0のOS(0)もいずれかのプロセッサによって処理を実行することになる。
【0099】
情報を管理するメモリは、各OS、各プロセッサに共通のメモリ領域としての共有メモリ710と、各プロセッサに対応して設定されるプロセッサ対応モジュール720に区分される。
【0100】
共有メモリ710には、割り込み要求発生源情報711、割り込みグループ毎に設定された保留キュー712,713・・、および、通知済み割り込み要求情報714が格納される。
【0101】
各プロセッサに対応するプロセッサ対応モジュール720には、タイマ721と、パーティション切り替えモジュール722、局所メモリ723が設定される。
【0102】
各構成要素について説明する。共有メモリ710に格納される割り込み要求発生源情報711は、割り込み要求を発生させる割り込み要求発生源に対応する情報であり、図10に示す情報によって構成される。
【0103】
データ処理を実行する装置において、割り込み要求を発生させる割り込み要求発生源は、例えばネットワークI/Fなど予め決まった要素である。割り込み要求発生源情報711は、このような割り込み要求を発生させる割り込み要求発生源毎の情報を記録した情報である。
【0104】
図10に示すように、各割り込み要求発生源ごとに、以下のa〜dの情報、すなわち、
a.割り込みグループ番号
b.割り込み処理パーティションID
c.最大許容遅延時間
d.最小許容遅延時間
の各情報が対応付けられて設定される。
【0105】
a.割り込みグループ番号は、各プロセッサに対応付けられて設定されるパーティション切り替えモジュールの対応プロセッサの処理可能な割り込み要求発生源のグループ情報である。例えば図11に示すようなグループ番号が設定される。図11に示す例において、グループ1は、割り込み要求を発生する割り込み要求発生源a,b,cのグループとして設定され、グループ2は、割り込み要求を発生する割り込み要求発生源d,e,fのグループとして設定された例を示している。
【0106】
各プロセッサに対応付けられて設定されるパーティション切り替えモジュールは、割り込みグループ毎に設定された割り込み要求待ち行列として設定される複数の割り込みグループ別保留キュー712,713・・から、割り込みグループ情報によって判別されるプロセッサによって処理可能なグループに対応する保留キューに格納された割り込み要求のエントリに関する処理のみを実行することになる。
【0107】
図10に戻り、割り込み要求発生源情報の構成について説明を続ける。b.割り込み処理パーティションIDは、その割り込み要求発生源の発生する割り込み要求を実行するパーティションの識別子としてのIDである。レベル0のOS(0)は、上述した各処理例において、割り込み処理パーティションをスケジューリングする場合、割り込み処理パーティションIDをパーティションスケジューリングデータとして設定する。この設定に従って、割り込みパーティションが実行される。
【0108】
c.最大許容遅延時間、d.最小許容遅延時間は、その割り込み要求発生源の発生する割り込み要求に対応付けられる最大許容遅延時間、および最小許容遅延時間である。これらの情報は設定されない場合もある。設定がある場合は、上述した各処理例において説明したように、レベル0のOS(0)は、それぞれの許容時間内での処理が実行できるように、割り込み処理パーティションの設定を行う。
【0109】
図9に示すように、共有メモリ710には、割り込みグループ毎に設定される保留キュー712,713が格納される。割り込みグループは、図11を参照して説明したように、各プロセッサに対応付けられて設定されるパーティション切り替えモジュールの対応プロセッサの処理可能な割り込み要求発生源のグループ情報である。
【0110】
例えば、保留キュー712には、グループ番号1、すなわち、割り込み要求を発生する割り込み要求発生源a,b,cからの割り込み要求のみがエントリとして設定される。保留キュー713には、グループ番号2、すなわち、割り込み要求を発生する割り込み要求発生源d,e,fからの割り込み要求のみがエントリとして設定される。
【0111】
各保留キューには、図12に示すように、発生済みの割り込み要求情報として、各割り込み要求の識別子である割り込み要求IDと、各割り込み要求に対応する最大許容遅延時間、および最小許容遅延時間情報が格納される。格納順は最大許容遅延時間の短い順に設定され、レベル0のOS(0)は、上述した各処理例において、割り込み処理パーティションをスケジューリングする場合、保留キューの先頭から、すなわち、最大許容遅延時間の短い順にキューを取り出して割り込み処理パーティションの設定、あるいは割り込み処理を実行するパーティションの設定処理を行う。
【0112】
図9に示す共有メモリ710の通知済み割り込み要求情報714は、すでに実際に割り込み要求を処理するレベル1のOSに対して通知済みの割り込み要求情報を格納する領域である。
【0113】
すなわち、保留キュー712,713に格納された割り込み要求情報は、レベル0のOS(0)の制御の下に順次、各レベル1のOS(1x)に通知され、処理がまかされるが、通知された後は、この通知済み割り込み要求情報714に格納され、割り込み処理パーティションが完了し、パーティションの切り替えが発生すると通知済み割り込み要求情報714の格納情報もクリアされる。なお、割り込み要求が発生した時点においてプロセッサにおいて実行中のパーティションにおいて、即座に割り込み要求を実行可能な場合には、レベル0のOS(0)は、保留キューに割り込み要求を保持することなく、割り込み要求を実行するOS(1x)に通知して、通知済み割り込み要求情報714に割り込み要求情報を格納する。
【0114】
次に、図9に示すプロセッサ対応モジュール720の構成について説明する。プロセッサ対応モジュール720には、タイマ721と、パーティション切り替えモジュール722、局所メモリ723が設定される。
【0115】
パーティション切り替えモジュール722は、各プロセッサ毎に設定されるモジュールであり、タイマ721で計測される時間の経過にしたがって各パーティションを時分割で実行するように、パーティション切り替えを行う。
【0116】
上述した処理例で説明したように、レベル0のOS(0)の設定したパーティションスケジュールに従って、スケジューリングされたパーティション切り替え時刻に、スケジュールされたパーティションに切り替える。たとえばパーティションAからパーティションBへの切り替え、あるいは割り込み処理パーティションへの切り替えを行う。
【0117】
図9に示す例は、プロセッサが3つであり、各プロセッサに対応するパーティション切り替えモジュールは、例えば先に説明した図6に示す(a),(b),(c)の各パーティションスケジュールに従って、パーティション切り替えを実行することになる。
【0118】
パーティション切り替えモジュールは、局所メモリ723に格納した図13に示す情報を参照して処理を実行する。
【0119】
すなわち、以下の変数、およびデータ構造を参照してパーティション切り替え処理を実行する。
a.現行パーティション:現在、実行中のパーティションID
b.割り込みグループ集合:パーティション切り替えモジュールが動作しているプロセッサが処理できる割込みグループ集合
c.パーティションコンテキスト:各パーティションのコンテキスト
【0120】
パーティションコンテキストには、レジスタの内容などのように中断された処理を再開するために必要な情報に加え、以下の値が格納されている。
c−1.通知済み割り込み集合:このパーティションで処理すべき割込みの集合
c−2.予測起動時刻:次に、このパーティションが起動される予定時間(予定よりも遅く起動されないよう制御される)
【0121】
さらに、局所メモリ723には、パーティションスケジュールに従った処理を実行するための時間情報、プログラム実行用のアドレス情報が格納される。具体的には、
設定時刻情報:設定された処理を開始する時刻
設定時刻に起動されるルーチンアドレス:実行すべき処理が記述されたルーチンのアドレス
付加情報アドレス:ルーチン起動時に引き数として渡される付加情報アドレス
【0122】
これらの情報が、設定時刻順にならんだリストとして格納される。各プロセッサは、設定時刻情報として設定された設定時刻、すなわち、パーティション切り替え後の新たなパーティション実行時において、設定時刻に起動されるルーチンアドレスおよび付加情報アドレスに基づいて実行プログラムおよびプログラム実行に必要なパラメータ等を取得して新たなパーティションの処理を開始する。
【0123】
[8.割り込み処理の設定および実行シーケンス]
次に、本発明のプロセス管理処理において実行する割り込み要求に対応する処理手順について、図14〜図17のフローを参照して説明する。説明は以下の4つの処理に分けて行う。なお、これらの処理は、レベル0のOS(0)が実行する処理である。
a.割り込み要求発生時の処理(図14)
b.割り込み要求の保留キューへの追加処理(図15)
c.強制割り込み処理(図16)
d.パーティション切り替え処理(図17)
【0124】
a.割り込み要求発生時の処理
まず、図14のフローチャートを参照してある割り込み要求発生源が割り込み要求をプロセッサに送出した時に行う処理の手順について説明する。
【0125】
ある割り込み要求発生源が割り込み要求をプロセッサに送出すると、レベル0のOS(0)は、ステップS101において、当該プロセッサにおいて実行中の現行パーティションが割り込み要求を実行可能なパーティションであるか否かを判定する。これは、先に図10を参照して説明した割り込み要求発生源情報に基づいて、レベル0のOS(0)が判定する。
【0126】
現行パーティションが割り込み要求を実行可能なパーティションである場合には、ステップS102に進み、割り込み要求の処理要求を現行パーティションを実行中のOS(1x)に通知するとともに、通知済み割り込み要求情報に登録する。
【0127】
割り込み要求の処理要求を通知されたレベル1のOS(1x)は、自己のスケジュールの下に現行パーティション内での割り込み要求処理を行う。
【0128】
ステップS101において、プロセッサにおいて実行中の現行パーティションが割り込み要求を実行可能なパーティションでないと判定すると、ステップS103に進み、割り込み要求を実行するパーティションが割り込み要求発生源に対応して設定されている最大許容遅延時間以前に実行が予定されているか否かを判定する。これは予め設定されたパーティションスケジュール情報に基づいてレベル0のOS(0)が判定する。
【0129】
割り込み要求を実行するパーティションが割り込み要求発生源に対応して設定されている最大許容遅延時間以前に実行が予定されている場合には、ステップS104に進み、割り込み要求の処理要求を最大許容遅延時間以前に実行が予定されているパーティションを実行するOS(1x)に通知するとともに、通知済み割り込み要求情報に登録する。
【0130】
割り込み要求の処理要求を通知されたレベル1のOS(1x)は、自己のスケジュールの下に実行予定パーティション内での割り込み要求処理を行う。
【0131】
一方、ステップS103において、割り込み要求を実行するパーティションが割り込み要求発生源に対応して設定されている最大許容遅延時間以前に実行が予定されていないと判定された場合には、ステップS105に進み、割り込み要求発生源に対応して設定されている最小許容遅延時間経過後に「保留キューへの追加処理」を実行するようタイマーを設定する。
【0132】
最小許容遅延時間は、先に図10を参照して説明したように、割り込み要求発生源情報に含まれる情報である。レベル0のOS(0)は、最小許容遅延時間に基づいてタイマーを設定し、最小許容遅延時間経過後に「保留キューへの追加処理」を実行する。この保留キューへの追加処理ついては、図15を参照して後段で説明する。
【0133】
なお、保留キューに追加する情報は、前述したように、割り込みグループ別に設定されており、割り込み要求発生源情報に含まれる割り込みグループ番号に基づいて、対応する割り込みグループの保留キューに割り込み要求情報が追加される。キューに設定される情報は、先に図12を参照して説明したように、割り込み要求ID、最大許容遅延時間、最小許容遅延時間の各情報である。
【0134】
保留キューに追加された後は、レベル0のOS(0)が順次キューの先頭から割り込み要求を取得し、前述の各処理例に従って最大許容遅延時間、最小許容遅延時間を考慮したパーティション設定処理を実行する。
【0135】
b.割り込み要求の保留キューへの追加処理(図15)
次に、割り込み要求の保留キューへの追加処理について、図15のフローを参照して説明する。
【0136】
ステップS201において、割り込み要求の発生源Sの特定を行い、ステップS202において、割り込み要求発生源Sに基づいて、割り込み要求発生源情報を参照して割り込みグループgを特定し、割り込み要求を追加すべき対象とするグループを決定する。
【0137】
さらに、ステップS203において、割り込み要求の発生時刻(t)に、割り込み要求に対応する最大許容遅延時間(Tmax)を加算して、割り込み要求の最大遅延実行時間情報Td(デッドライン)を算出し、ステップS204において、最大遅延実行時間情報Td(デッドライン)にタイマを設定する。このタイマ設定情報は、この間にパーティション切り替え等の割り込みパーティションが設定できない場合に強制割り込みを実行するために使用される。
【0138】
タイマの設定された制限時間以前に、パーティション切り替え等の割り込みパーティションが設定できた場合には、タイマはリセットされる。タイマの設定された制限時間以前に、パーティション切り替え等の割り込みパーティションが設定できなかった場合は、タイマの設定期限に伴い、実行パーティションの中断および割り込み処理の実行、すなわち強制割り込み処理が行われる。
【0139】
c.強制割り込み処理
次に、図16を参照して強制割り込み処理の実行手順について説明する。この強制割り込み処理は、先に図5を参照して説明したように、割り込み要求(割り込み要求発生源)に対応して設定されている最大許容遅延時間内にパーティション切り替えが行われない場合に行われる処理である。
【0140】
ステップS301において、レベル0のOS(0)は、現行パーティションを中断させて割り込み処理を実行させるレベル1のOS(1x)の実行中のパーティションに対応するコンテキストをメモリに記憶する。例えばレジスタ値など、処理中断後、再開する際に必要な情報である。
【0141】
ステップS302において、強制割り込みにより実行される割り込み処理に対応する保留キューのエントリを削除し、ステップS303において通知済み割り込み要求情報に割り込み情報を追加する。なお、この処理に際して、レベル0のOS(0)は、強制割り込みによる割り込みパーティションを実行するOS(1x)に割り込み要求処理の実行を通知する。割り込み要求の処理要求を通知されたレベル1のOS(1x)は、割り込み要求処理を行う。
【0142】
さらに、ステップS304において、レベル0のOS(0)は、中断パーティションのコンテキストを復元し、ステップS305において、中断パーティションの割り込みベクタへジャンプする。このステップS304、S305の処理は、割り込み要求処理によって中断されたパーティションをレベル1のOS(1x)に再開させるための処理であり、ステップS304において中断の発生時点の状態を回復し、ステップS305において、中断発生時点の処理ステップに回帰させる処理として実行するものである。
【0143】
d.パーティション切り替え処理
次に、パーティシヨン切り替え処理について、図17のフローチャートを参照して説明する。
【0144】
パーティション切り替えは、レベル0のOS(0)の設定したパーティションスケジュールに従ったタイミングで実行される。あるいは上述の強制割り込み処理の場合にも実行される処理である。
【0145】
ステップS401において、レベル0のOS(0)は、パーティション切り替えを実行するために処理を閉じる現行パーティションのコンテキストをメモリに記憶する。例えばレジスタ値など、パーティションを再開する際に必要な情報である。
【0146】
ステップS402において、現行パーティションを実行中のプロセッサが関係する割り込みグループの保留キューのキュー格納状態を判定する。
【0147】
キューが空である場合は、割り込み処理は実行されないことになり、予め設定されたパーティションスケジュールに従った処理が行われるので、ステップS403に進み、次に実行予定のパーティションのコンテキストを復元し、復元されたコンテキストに基づいて、レベル1のOS(1x)によって次のパーティションが実行される。
【0148】
ステップS402において、現行パーティションを実行中のプロセッサが関係する割り込みグループの保留キューに割り込み要求が存在すると判定された場合は、ステップS411に進み、保留キューの先頭から、割り込み要求のエントリを取得する。前述したように、保留キューは最大許容遅延時間の短いものから順に並べられている。
【0149】
ステップS412において、取り出した保留キューの割り込み要求に対応する割り込みパーティションを実行するOS(1x)に割り込み要求処理の実行を通知する。割り込み要求の処理要求を通知されたレベル1のOS(1x)は、割り込み要求処理を行う。ステップS413において通知済み割り込み要求情報に割り込み情報を追加する。
【0150】
ステップS414において、通知済み割り込み要求の最大許容遅延時間に対応して設定されている強制割り込み処理のタイマ設定を解除する。
【0151】
さらに、ステップS415において、割り込み処理の実行前の状態値の回復、すなわちパーティションのコンテキストを復元し、ステップS416において、パーティションの割り込みベクタへジャンプ処理を実行する。このステップS415、S416の処理は、割り込み要求処理によって遅延された次に実行予定のパーティションをレベル1のOS(1x)に正常に実行させるための処理であり、ステップS415の処理は、割り込みの発生によって変化した各種の状態値を割り込みが発生しなかった場合の状態値に回復させる処理として行われ、ステップS416は、割り込みが発生しなかった場合の処理ステップにレベル1のOS(1x)を設定する処理として実行するものである。
【0152】
[9.情報処理装置のハード構成例]
次に、上述した処理を実行するプロセス管理手段を備えた情報処理装置のハードウェア構成例について説明する。上述したプロセス管理は、一般的なPCによっても実現可能であり、図1に示す階層構成のOS、すなわち、実際にアプリケーションと連携した処理を実行するレベル1のOS(1x)プログラムを複数格納し、これらの複数のレベル1のOS(1x)プログラムのパーティション管理を実行するレベル0のOS(0)プログラムを格納することによりPC等のさまざまな情報処理装置において実現される。
【0153】
図18に上述したプロセス管理を実行可能な情報処理装置のハードウェア構成例を示す。
【0154】
CPU(Central Processing Unit)951,952,953は、ROM(Read Only Memory)902、またはHDD904等に記憶されているプログラムに従って、各種の処理を実行し、データ処理手段として機能する。
【0155】
上述した実施例におけるレベル1の各OS(1x)の制御の下に様々な処理を実行する。さらに、レベル0のOS(0)の実行する処理にも適用される。それぞれのプロセッサ(CPU)にはタイマ961,962,963が設けられ、パーティションスケジュールの管理、割り込み要求の最大許容遅延時間、最小許容遅延時間の計測に利用される。
【0156】
RAM903には、CPU961,962,963の各々が実行するプログラムやデータが適宜記憶される。プログラムとしてはレベル0のOS(0)の実行するパーティション管理プログラムが含まれ、上述した各種の処理はパーティション管理プログラムに基づいて実行されることになる。
【0157】
また、図9を参照して説明した共有メモリ内の割り込みグループ別の保留キュー、割り込み要求発生源情報、通知済み割り込み要求情報、さらに各プロセッサ対応の局所メモリの格納情報、例えばパーティション切り替え時に保存、復元すべきコンテキスト情報、様々な時間情報、アドレス情報などが格納される。図9においては、各局所メモリ、共有メモリを個別に区分して記載したが、これらは1つのメモリに各記憶領域を区分設定して記憶することが可能である。CPU951,952,953、ROM902、およびRAM903、HDD904は、バス905を介して相互に接続されている。
【0158】
バス905には、入出力インタフェース906が接続されており、この入出力インタフェース906には、例えば、ユーザにより操作されるキーボード、マウス等の入力情報を処理する入力部907、ユーザに各種の情報を提示するLCD、CRT、スピーカ等により構成される出力部908が接続される。さらに、データ送受信手段として機能する通信部909、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記録媒体911を装着し、これらのリムーバブル記録媒体911からのデータ読み出しあるいは書き込み処理を実行するドライブ910が接続される。
【0159】
図18に示すハード構成は、上述のプロセス管理を適用可能な情報処理装置の1つとしてPCのハード構成を示したものであり、本発明のプロセス管理は、このPC構成に限らず、複数のOSが搭載され、パーティション管理によるプロセス管理が実行されるゲーム機器、通信端末装置など、様々な情報処理装置において適用可能なものである。
【0160】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0161】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【0162】
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
【0163】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【0164】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【0165】
【発明の効果】
以上、説明したように、本発明の構成によれば、複数のオペレーティングシステム(OS)に基づく処理を切り替え制御するプロセス制御において、割り込み処理要求に対応する割り込み処理実行期間としての割り込み処理パーティションを、予め設定されたパーティション切り替えタイミングに一致させて設定する構成としたので、割り込み要求に対応するパーティション切り替え処理の増加を1回のみに抑えることが可能となり、処理負荷の増大を防止し、効率的なデータ処理を実行することが可能となる。
【0166】
さらに、本発明の構成によれば、割り込み処理要求に、最大許容遅延時間、あるいは最小許容遅延時間が設定されている場合、これらの許容時間内にパーティション切り替えが発生した場合は、その切り替えタイミングに割り込み処理パーティションを設定し、これらの許容時間内にパーティション切り替えが発生しなかった場合は、強制割り込みを行うなど、各割り込み要求に対応した処理を実行する構成であるので、処理エラーを発生させることない構成が実現される。
【0167】
さらに、本発明の構成によれば、マルチプロセッサシステムにおいて複数OSによる処理が並列に実行可能な構成では、複数のプロセッサに対応する複数のパーティションスケジュールの1つを選択し、選択したパーティションスケジュール中のパーティション切り替えタイミングに一致させて割り込み処理パーティションを設定する構成としたので、複数のパーティションスケジュール中、割り込み要求発生後、最も早いタイミングのパーティション切り替えタイミングに割り込み要求を実行させることが可能となり、さらに効率的なデータ処理が可能となる。
【図面の簡単な説明】
【図1】本発明のプロセス管理手段、プロセス管理方法において適用するオペレーティングシステム(OS)の構成を説明する図である。
【図2】パーティションに基づくスケジューリング例を示す図である。
【図3】単一プロセッサシステムにおける割り込み要求のスケジューリング例について説明する図である。
【図4】割り込み要求発生の直後に割り込み処理パーティションを即座に起動する従来型の割り込み要求処理例を説明する図である。
【図5】最大遅延時間を制限した処理例について説明する図である。
【図6】マルチプロセッサシステムにおける割り込み要求のスケジューリング例について説明する図である。
【図7】最小遅延時間の設定された割り込み要求に対するパーティションスケジューリング処理について説明する図である。
【図8】割り込み処理を行い得るパーティションがスケジュールされるのを待機し、スケジューリングされたパーティションで割り込み処理を実行する処理を説明する図である。
【図9】本発明のプロセス管理手段の構成について説明する図である。
【図10】割り込み要求発生源情報のデータ構成について説明する図である。
【図11】割り込みグループ番号の設定例について説明する図である。
【図12】保留キューの格納情報例を説明する図である。
【図13】パーティション切り替えモジュールによるパーティション切り替え処理の際に参照される情報について説明する図である。
【図14】割り込み要求発生時の処理を説明するフローチャートである。
【図15】割り込み要求の保留キューへの追加処理を説明するフローチャートである。
【図16】強制割り込み処理を説明するフローチャートである。
【図17】パーティション切り替え処理を説明するフローチャートである。
【図18】本発明を適用可能な情報処理装置の構成例を示す図である。
【符号の説明】
101 ハードウェア
102 レベル0OS
103 レベル1OS
104 アプリケーション
201 割り込み要求
202 割り込み処理パーティション
211 割り込み要求
212 割り込み処理パーティション
221,222 パーティション
301 割り込み要求
302 割り込み処理パーティション
311 割り込み要求
312 割り込み処理パーティション
322 パーティション
401,402 割り込み要求
421,422 割り込み処理パーティション
501 割り込み要求
502 割り込み処理パーティション
601 割り込み要求
602 割り込み処理パーティション
611 パーティション
710 共有メモリ
711 割り込み要求発生源情報
712,713 保留キュー
714 通知済み割り込み要求情報
720 プロセッサ対応モジュール
721 タイマ
722 パーティション切り替えモジュール
723 局所メモリ
731,732,733 プロセッサ
902 ROM
903 RAM
904 HDD
905 バス
906 入出力インタフェース
907 入力部
908 出力部
909 通信部
910 ドライブ
911 リムーバブル記録媒体
951,952,953 CPU
961,962,963 タイマ

Claims (17)

  1. 複数のオペレーティングシステム(OS)を格納した記憶部と、
    前記複数のOSに基づく処理を実行するプロセッサと、
    前記複数のOS各々の処理として規定されるパーティションを時間軸に沿ってスケジューリングし、スケジューリングに沿ったパーティション切り替え制御に基づいて前記複数OSの切り換え制御を実行するプロセス管理手段とを有する情報処理装置であり、
    前記プロセス管理手段は、
    最大許容遅延時間の設定された割り込み処理要求の発生から前記最大許容遅延時間以内に、予め設定されたパーティション切り替えタイミングがあるか否かを判断し、
    前記最大許容遅延時間以内に、予め設定されたパーティション切り替えタイミングがあると判断した場合には、割り込み処理要求に対応する割り込み処理実行期間としての割り込み処理パーティションを、予め設定されたパーティション切り替えタイミングに一致させて設定し、パーティションスケジュールにおいて予定された1つのパーティションの終了に続く処理として前記OSのいずれかにおいて割り込み処理を実行させるプロセス制御を行う構成を有することを特徴とする情報処理装置。
  2. 前記プロセス管理手段は、
    前記割り込み処理パーティションを、割り込み要求発生後の最も早いタイミングのパーティション切り替えタイミングに一致させて設定する処理を実行する構成であることを特徴とする請求項1に記載の情報処理装置。
  3. 前記プロセス管理手段は、
    り込み処理要求の発生から前記最大許容遅延時間以内に、予め設定されたパーティション切り替えタイミングがないと判断した場合は、実行中のパーティションを中断し、割り込み処理を実行させるプロセス制御を行う構成を有することを特徴とする請求項1に記載の情報処理装置。
  4. 前記複数のOSに基づく処理を実行するプロセッサは並列に動作可能な複数のプロセッサを有する構成であり、
    前記プロセス管理手段は、
    前記複数のプロセッサの各々について、前記パーティションを時間軸に沿ってスケジューリングし、各プロセッサについてのパーティションスケジュールに沿ったパーティション切り替え制御を実行する構成であり、
    前記割り込み処理パーティションを、前記複数のプロセッサに対応する複数のパーティションスケジュールの1つを選択し、該選択したパーティションスケジュール中のパーティション切り替えタイミングに一致させて設定する処理を実行する構成であることを特徴とする請求項1に記載の情報処理装置。
  5. 前記プロセス管理手段は、
    複数のパーティションスケジュール中、割り込み要求発生後、最も早いタイミングのパーティション切り替えタイミングを持つパーティションスケジュールを選択し、最も早いタイミングのパーティション切り替えタイミングに一致させて前記割り込み処理パーティションを設定する処理を実行する構成であることを特徴とする請求項4に記載の情報処理装置。
  6. 前記プロセス管理手段は、
    割り込み処理要求が最小許容遅延時間の設定された要求である場合において、割り込み処理要求の発生から最小許容遅延時間以後に発生する予め設定されたパーティション切り替えタイミングに一致させて前記割り込み処理パーティションを設定する処理を実行する構成であることを特徴とする請求項1に記載の情報処理装置。
  7. 前記プロセス管理手段は、
    割り込み処理要求に対応する割り込み処理が予め設定されたパーティションスケジュールに規定されたスケジュール済みパーティションにおいて実行可能である場合において、該割り込み処理を前記スケジュール済みパーティションにおいて実行させる処理を行う構成であることを特徴とする請求項1に記載の情報処理装置。
  8. 前記複数のOSに基づく処理を実行するプロセッサは並列に動作可能な複数のプロセッサを有する構成であり、
    前記プロセス管理手段は、
    各プロセッサに対応するプロセス制御を実行するプロセッサ対応のパーティション切り替えモジュールを有する構成であることを特徴とする請求項1に記載の情報処理装置。
  9. 前記パーティション切り替えモジュールは、
    パーティション切り替えモジュールの対応付けられたプロセッサの処理可能な割り込み要求発生源情報としての割り込みグループ情報を有するとともに、割り込みグループ毎に設定された割り込み要求待ち行列として設定される複数の割り込みグループ別保留キューから前記割り込みグループ情報によって判別されるプロセッサによって処理可能なグループに対応する保留キューに格納された割り込み要求のエントリに関する処理を実行する構成であることを特徴とする請求項8に記載の情報処理装置。
  10. 複数のオペレーティングシステム(OS)に基づく処理を切り替え制御するプロセス制御方法であり、
    割り込み処理要求の発生を検出するステップと、
    割り込み処理要求が最大許容遅延時間の設定された割り込み処理要求であるか否かを判断する割り込み処理要求態様判断ステップと、
    最大許容遅延時間の設定された割り込み処理要求の発生から前記最大許容遅延時間以内に、予め設定されたパーティション切り替えタイミングがあるか否かを判断するタイミング判断ステップと、
    前記最大許容遅延時間以内に、予め設定されたパーティション切り替えタイミングがあると判断した場合には、割り込み処理要求に対応する割り込み処理実行期間としての割り込み処理パーティションを、予め設定されたパーティション切り替えタイミングに一致させて設定する割り込み処理パーティション設定ステップと、
    前記割り込み処理パーティション設定ステップにおいて設定された情報に従って、パーティションスケジュールにおいて予定された1つのパーティションの終了に続く処理として前記OSのいずれかにおいて割り込み処理を実行する割り込み処理実行ステップと、
    を有することを特徴とするプロセス制御方法。
  11. 前記割り込み処理パーティション設定ステップは、
    前記割り込み処理パーティションを、割り込み要求発生後の最も早いタイミングのパーティション切り替えタイミングに一致させて設定する処理を実行することを特徴とする請求項10に記載のプロセス制御方法。
  12. 前記割り込み処理パーティション設定ステップは、
    前記割り込み処理要求態様判断ステップにおいて、割り込み処理要求が最大許容遅延時間の設定された割り込み処理要求であると判断され、かつ、前記タイミング判断ステップにおいて、前記最大許容遅延時間以内に、予め設定されたパーティション切り替えタイミングがないと判断された場合、
    実行中のパーティションを中断し、中断部に割り込み処理パーティションを設定することを特徴とする請求項10に記載のプロセス制御方法。
  13. 前記プロセス制御方法は、さらに、
    前記複数のOSに基づく処理を実行する複数のプロセッサの各々について、前記パーティションを時間軸に沿ってスケジューリングし、各プロセッサについてのパーティションスケジュールに沿ったパーティション切り替え制御を実行するステップを有し、
    前記割り込み処理パーティション設定ステップは、
    前記複数のプロセッサに対応する複数のパーティションスケジュールの1つを選択し、該選択したパーティションスケジュール中のパーティション切り替えタイミングに一致させて割り込み処理パーティションを設定することを特徴とする請求項10に記載のプロセス制御方法。
  14. 前記割り込み処理パーティション設定ステップは、
    複数のパーティションスケジュール中、割り込み要求発生後、最も早いタイミングのパーティション切り替えタイミングを持つパーティションスケジュールを選択し、最も早いタイミングのパーティション切り替えタイミングに一致させて前記割り込み処理パーティションを設定する処理を実行することを特徴とする請求項13に記載のプロセス制御方法。
  15. 前記割り込み処理パーティション設定ステップは、
    割り込み処理要求が最小許容遅延時間の設定された要求である場合において、割り込み処理要求の発生から最小許容遅延時間以後に発生する予め設定されたパーティション切り替えタイミングに一致させて前記割り込み処理パーティションを設定する処理を実行する構成であることを特徴とする請求項10に記載のプロセス制御方法。
  16. 前記プロセス制御方法は、さらに、
    割り込み処理要求に対応する割り込み処理が予め設定されたパーティションスケジュールに規定されたスケジュール済みパーティションにおいて実行可能である場合において、該割り込み処理を前記スケジュール済みパーティションにおいて実行させるステップを有することを特徴とする請求項10に記載のプロセス制御方法。
  17. 複数のオペレーティングシステム(OS)に基づく処理を切り替え制御するプロセス制御を実行するコンピュータ・プログラムであり、
    割り込み処理要求の発生を検出するステップと、
    割り込み処理要求が最大許容遅延時間の設定された割り込み処理要求であるか否かを判断する割り込み処理要求態様判断ステップと、
    最大許容遅延時間の設定された割り込み処理要求の発生から前記最大許容遅延時間以内に、予め設定されたパーティション切り替えタイミングがあるか否かを判断するタイミング判断ステップと、
    前記最大許容遅延時間以内に、予め設定されたパーティション切り替えタイミングがあると判断した場合には、割り込み処理要求に対応する割り込み処理実行期間としての割り込み処理パーティションを、予め設定されたパーティション切り替えタイミングに一致させて設定する割り込み処理パーティション設定ステップと、
    前記割り込み処理パーティション設定ステップにおいて設定された情報に従って、パーティションスケジュールにおいて予定された1つのパーティションの終了に続く処理として前記OSのいずれかにおいて割り込み処理を実行する割り込み処理実行ステップと、
    を有することを特徴とするコンピュータ・プログラム。
JP2003157565A 2003-06-03 2003-06-03 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム Expired - Fee Related JP3952992B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2003157565A JP3952992B2 (ja) 2003-06-03 2003-06-03 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
PCT/JP2004/006608 WO2004109512A1 (ja) 2003-06-03 2004-05-11 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
US10/523,094 US7818751B2 (en) 2003-06-03 2004-05-11 Methods and systems for scheduling execution of interrupt requests
CNB2004800006820A CN100483351C (zh) 2003-06-03 2004-05-11 信息处理装置、进程控制方法、以及计算机程序
EP04732211.0A EP1548592B1 (en) 2003-06-03 2004-05-11 Information processing device, process control method, and computer program
KR1020057001912A KR20060023514A (ko) 2003-06-03 2004-05-11 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003157565A JP3952992B2 (ja) 2003-06-03 2003-06-03 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム

Publications (3)

Publication Number Publication Date
JP2004362100A JP2004362100A (ja) 2004-12-24
JP2004362100A5 JP2004362100A5 (ja) 2005-11-24
JP3952992B2 true JP3952992B2 (ja) 2007-08-01

Family

ID=33508394

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003157565A Expired - Fee Related JP3952992B2 (ja) 2003-06-03 2003-06-03 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム

Country Status (6)

Country Link
US (1) US7818751B2 (ja)
EP (1) EP1548592B1 (ja)
JP (1) JP3952992B2 (ja)
KR (1) KR20060023514A (ja)
CN (1) CN100483351C (ja)
WO (1) WO2004109512A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4009602B2 (ja) * 2004-03-02 2007-11-21 日本電気通信システム株式会社 リアルタイムosを用いたタスク処理方法、装置、及びプログラム
US8156493B2 (en) * 2006-04-12 2012-04-10 The Mathworks, Inc. Exception handling in a concurrent computing process
US8694999B2 (en) * 2006-12-07 2014-04-08 Wind River Systems, Inc. Cooperative scheduling of multiple partitions in a single time window
US7913009B2 (en) * 2007-06-20 2011-03-22 Microsoft Corporation Monitored notification facility for reducing inter-process/inter-partition interrupts
CN101546365B (zh) * 2008-03-25 2011-01-26 联想(北京)有限公司 硬件安全单元逻辑切换方法、系统及硬件安全单元
US8127086B2 (en) * 2008-06-06 2012-02-28 International Business Machines Corporation Transparent hypervisor pinning of critical memory areas in a shared memory partition data processing system
US8090911B2 (en) * 2009-04-16 2012-01-03 International Business Machines Corporation Selecting a target number of pages for allocation to a partition
US20120198464A1 (en) * 2011-01-31 2012-08-02 Toyota Jidosha Kabushiki Kaisha Safety controller and safety control method
JP5267737B2 (ja) * 2011-01-31 2013-08-21 トヨタ自動車株式会社 安全制御装置および安全制御方法
KR101773166B1 (ko) * 2011-02-21 2017-08-30 삼성전자주식회사 가상 머신 스케줄 시점 조절 장치 및 방법
JP5829890B2 (ja) * 2011-11-02 2015-12-09 ルネサスエレクトロニクス株式会社 半導体データ処理装置、タイムトリガ通信システム及び通信システム
US9110878B2 (en) * 2012-01-18 2015-08-18 International Business Machines Corporation Use of a warning track interruption facility by a program
US8850450B2 (en) * 2012-01-18 2014-09-30 International Business Machines Corporation Warning track interruption facility
US9104508B2 (en) * 2012-01-18 2015-08-11 International Business Machines Corporation Providing by one program to another program access to a warning track facility
US9229884B2 (en) 2012-04-30 2016-01-05 Freescale Semiconductor, Inc. Virtualized instruction extensions for system partitioning
US9152587B2 (en) * 2012-05-31 2015-10-06 Freescale Semiconductor, Inc. Virtualized interrupt delay mechanism
US9436626B2 (en) 2012-08-09 2016-09-06 Freescale Semiconductor, Inc. Processor interrupt interface with interrupt partitioning and virtualization enhancements
US9442870B2 (en) 2012-08-09 2016-09-13 Freescale Semiconductor, Inc. Interrupt priority management using partition-based priority blocking processor registers
US9311137B2 (en) * 2012-09-28 2016-04-12 International Business Machines Corporation Delaying interrupts for a transactional-execution facility
WO2016207937A1 (ja) * 2015-06-22 2016-12-29 三菱電機株式会社 プログラマブルコントローラおよびプログラマブルコントローラの制御方法
CN109076570B (zh) 2016-05-13 2021-01-29 华为技术有限公司 一种业务数据传输方法、用户设备及网络设备
DE102016212808A1 (de) * 2016-07-13 2018-01-18 Robert Bosch Gmbh Unterbrechungsanforderungs-Verteilereinrichtung und Betriebsverfahren hierfür
CN106776056B (zh) * 2016-11-10 2020-12-29 北京像素软件科技股份有限公司 游戏数据处理方法、装置及服务器
DE112018002331T5 (de) * 2017-05-05 2020-01-16 Microchip Technology Inc. Vorrichtungen und verfahren zur priorisierung der übertragung von ereignissen auf seriellen kommunikationsverbindungen
CN109032029B (zh) * 2018-08-14 2020-12-08 北京东土科技股份有限公司 工业服务器对外通信方法、系统、装置及工业服务器

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912628A (en) * 1988-03-15 1990-03-27 International Business Machines Corp. Suspending and resuming processing of tasks running in a virtual machine data processing system
US4965718A (en) * 1988-09-29 1990-10-23 International Business Machines Corporation Data processing system incorporating a memory resident directive for synchronizing multiple tasks among plurality of processing elements by monitoring alternation of semaphore data
JPH0659906A (ja) * 1992-08-10 1994-03-04 Hitachi Ltd 並列計算機の実行制御方法
JPH06250850A (ja) * 1993-02-26 1994-09-09 Hitachi Ltd 入出力割込み要因の処理方法
US6466962B2 (en) * 1995-06-07 2002-10-15 International Business Machines Corporation System and method for supporting real-time computing within general purpose operating systems
US5812844A (en) * 1995-12-07 1998-09-22 Microsoft Corporation Method and system for scheduling the execution of threads using optional time-specific scheduling constraints
US6772419B1 (en) * 1997-09-12 2004-08-03 Hitachi, Ltd. Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
US6105051A (en) * 1997-10-23 2000-08-15 International Business Machines Corporation Apparatus and method to guarantee forward progress in execution of threads in a multithreaded processor
JP3659062B2 (ja) * 1999-05-21 2005-06-15 株式会社日立製作所 計算機システム
JP2000347883A (ja) * 1999-06-03 2000-12-15 Matsushita Electric Ind Co Ltd 仮想計算機装置
US6757897B1 (en) * 2000-02-29 2004-06-29 Cisco Technology, Inc. Apparatus and methods for scheduling and performing tasks
JP2001282558A (ja) 2000-03-30 2001-10-12 Hitachi Ltd マルチオペレーティング計算機システム
US20020019843A1 (en) * 2000-04-26 2002-02-14 Killian Robert T. Multiprocessor object control
US6715016B1 (en) * 2000-06-01 2004-03-30 Hitachi, Ltd. Multiple operating system control method
EP1162536A1 (en) * 2000-06-09 2001-12-12 Hitachi, Ltd. Multiple operating system control method
EP1176795A3 (en) * 2000-07-25 2008-06-11 Canon Kabushiki Kaisha Information processing apparatus issuing job to peripheral device and method for issuing job to peripheral device
US20020161961A1 (en) * 2001-01-17 2002-10-31 Ajile Systems, Inc. Multiple virtual machine environment management system
JP2002259155A (ja) * 2001-02-26 2002-09-13 Hitachi Ltd 多重系計算機システム
US6944736B2 (en) * 2001-06-28 2005-09-13 Hewlett-Packard Development Company, L.P. Managing latencies in accessing memory of computer systems
JP2003036176A (ja) * 2001-07-24 2003-02-07 Sony Corp 割り込み処理システム
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
EP1467282B1 (en) * 2003-04-09 2008-10-01 Jaluna SA Operating systems
US7281075B2 (en) * 2003-04-24 2007-10-09 International Business Machines Corporation Virtualization of a global interrupt queue
US7177967B2 (en) * 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US20050132121A1 (en) * 2003-12-16 2005-06-16 Wind River Systems, Inc. Partitioned operating system tool

Also Published As

Publication number Publication date
EP1548592B1 (en) 2015-07-01
WO2004109512A1 (ja) 2004-12-16
KR20060023514A (ko) 2006-03-14
US20050278719A1 (en) 2005-12-15
CN100483351C (zh) 2009-04-29
CN1698034A (zh) 2005-11-16
US7818751B2 (en) 2010-10-19
JP2004362100A (ja) 2004-12-24
EP1548592A4 (en) 2008-04-30
EP1548592A1 (en) 2005-06-29

Similar Documents

Publication Publication Date Title
JP3952992B2 (ja) 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
JP4580845B2 (ja) タスク実行装置
US7739685B2 (en) Decoupling a central processing unit from its tasks
EP3089033B1 (en) Realtime hypervisor with priority interrupt support
JP2006099331A (ja) 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム
JP2010128664A (ja) マルチプロセッサシステム、競合回避プログラム及び競合回避方法
US10545890B2 (en) Information processing device, information processing method, and program
JP2022509170A (ja) プロセッサにおける余裕認識(laxity-aware)型動的優先度変更
JP2006099332A (ja) 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
JP4523910B2 (ja) 並列処理装置及び並列処理方法及び並列処理プログラム
JP4168281B2 (ja) 並列処理システム、インタコネクションネットワーク、ノード及びネットワーク制御プログラム
WO2023241307A1 (zh) 管理线程的方法及装置
JP2006146758A (ja) コンピュータシステム
WO2010137092A1 (ja) マルチオペレーティングシステム制御方法及びプロセッサシステム
JP2005149312A (ja) タスク管理システム
JP2001236236A (ja) タスク制御装置およびそのタスクスケジューリング方法
US20120204184A1 (en) Simulation apparatus, method, and computer-readable recording medium
JP5332716B2 (ja) 起動制御方法、情報処理装置及びプログラム
JP6540294B2 (ja) 制御装置、制御方法及びプログラム
JP2005173643A (ja) コンピュータシステム及びそのオペレーティング方法
JP6547363B2 (ja) 管理装置、管理装置の制御方法、及びプログラム
Lee et al. Interrupt handler migration and direct interrupt scheduling for rapid scheduling of interrupt-driven tasks
US11461134B2 (en) Apparatus and method for deferral scheduling of tasks for operating system on multi-core processor
JP7188472B2 (ja) コンピュータ、スケジューリング方法、及び、プログラム
JP2007323256A (ja) 割込制御方法および情報処理装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050929

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050929

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: 20070410

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070423

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

Free format text: PAYMENT UNTIL: 20100511

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110511

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130511

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130511

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees