[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2006146758A - コンピュータシステム - Google Patents

コンピュータシステム Download PDF

Info

Publication number
JP2006146758A
JP2006146758A JP2004338542A JP2004338542A JP2006146758A JP 2006146758 A JP2006146758 A JP 2006146758A JP 2004338542 A JP2004338542 A JP 2004338542A JP 2004338542 A JP2004338542 A JP 2004338542A JP 2006146758 A JP2006146758 A JP 2006146758A
Authority
JP
Japan
Prior art keywords
instruction
guest
api
host
task
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.)
Ceased
Application number
JP2004338542A
Other languages
English (en)
Inventor
Noboru Asai
登 浅井
Hiroshi Kitamura
啓 喜多村
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004338542A priority Critical patent/JP2006146758A/ja
Priority to US11/250,503 priority patent/US7590990B2/en
Priority to CNB2005101241824A priority patent/CN100382033C/zh
Publication of JP2006146758A publication Critical patent/JP2006146758A/ja
Ceased 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/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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)

Abstract

【課題】OSの動作状態に影響を受けずにソフトウェアコンポーネントからAPIの発行を可能にする。
【解決手段】汎用OSをホストOS20とし、この上の1つ以上のタスクとして動作するリアルタイムOSをホストOS40とする。ホストOS20上の割込みハンドラ31及びタスク32と、ゲストOS40上の割込みハンドラ51及びタスク52とは、タスクの起動、停止などへのタスク状態の変更を要求するAPI(Application Program Interface)を発行する。各OSのAPI処理部21,41は、タスク状態を変更する命令を出力する。ゲストOSのAPI処理部41が出力した命令を順次蓄積して出力する命令蓄積部62を設け、両割込みハンドラ31,51がともに実行中でないタイミングに、ホストOSのAPI処理部21の出力命令と命令蓄積部62の出力命令とのうち後者を命令同期タイミング制御部63が優先的にスケジューラ部22へ渡す。
【選択図】 図4

Description

本発明は、コンピュータシステムにおけるOS(Operating System)の制御に関するものである。
ある従来技術によれば、あるOSに対して別のOSが処理要求の通信を行う場合には、処理要求を一時的に遅延要求キューに格納する。処理要求を受けたOSは、割込み処理によって遅延要求キューから要求を取り出し、要求の処理を行う。この方式によって、あるOSが資源をロックしていても別のOSの割込みハンドラの実行が可能となるため、別のOSの割込み処理は遅延しない(特許文献1参照)。
特開2001−281558号公報
上記従来技術では、あるOSと別のOSとの間で処理要求の通信を行う場合に割込み処理によって要求を処理するが、一般に割込み処理を行う場合には、CPU(Central Processing Unit)が持っているレジスタを全て保存する必要があり、このレジスタの保存には時間がかかる。また、命令のプリフェッチ機構がCPUに搭載されている場合には、この機構が機能しないため、命令の実行が遅くなる。
さて、あるOS(ホストOS)上のタスクとして別のOS(ゲストOS)やアプリケーションプログラムを動作させる方式も考えられる。この方式では、ゲストOS上で動作する割込みハンドラ及びタスクは、ホストOSに定められた規則に則って動作する。ただし、ホストOSが何らかの資源を排他制御している状態では、資源の競合を避けるため、ゲストOS割込みもあわせて禁止される。
ホストOS上で動作するタスクがAPI(Application Program Interface)、具体的にはOSサービスコールを発行し、その結果、タスクの起動や停止を行う必要が生じた場合、ホストOSのAPI処理部がタスクの起動や停止の要求を処理するスケジューラ部に要求を行う。スケジューラ部は、自らが動作するにあたって、スケジューラ部が動作していることを表すように資源をロックする。この際、資源の競合を避けるために割込みが禁止されるので、ゲストOSへの割込みが発生してもロックが解除された後にゲストOSの割込み処理が動作することになる。また、ゲストOS割込みを禁止しない場合においても、ゲストOSの割込みハンドラ内では、資源の競合が発生する可能性のあるAPIの発行を禁止しておく必要がある。同様に、アプリケーションプログラムからのAPI発行も制約を受ける。したがって、このようなコンピュータシステムでは、ホストOSの動作状態の影響を受けてゲストOSやアプリケーションプログラムの動作が遅延するという課題がある。
本発明の目的は、1つのOSと、当該OS上の1つ以上のタスクとして動作するソフトウェアコンポーネントとを備えたコンピュータシステムにおいて、当該OSの動作状態に影響を受けずに当該ソフトウェアコンポーネントからAPIの発行を可能にすることにある。
上記目的を達成するため、本発明は、1つのOSと、当該OS上の1つ以上のタスクとして動作するソフトウェアコンポーネントとを備えたコンピュータシステムにおいて、各々前記OS上で動作してAPIを発行する機能を有するOS割込みハンドラ及びOSタスクと、前記OS割込みハンドラ及び前記OSタスクのうちのいずれかから発行されたAPIに基づいて前記OSのタスク状態を変更する命令を出力する機能を有する第1のAPI処理部と、前記ソフトウェアコンポーネントに係るAPIに基づいて前記OSのタスク状態を変更する命令を出力する機能を有する第2のAPI処理部と、前記第2のAPI処理部が出力した命令を順次蓄積し、当該命令を蓄積した順に出力する命令蓄積部と、前記第1のAPI処理部の出力と前記命令蓄積部の出力とを入力とし、これらの入力のうち前記命令蓄積部から出力された命令を優先的に選択し、該選択した命令を出力する命令同期タイミング制御部と、前記命令同期タイミング制御部から出力された命令を処理することにより、起動すべきタスクの選択を行うスケジューラ部と、前記スケジューラ部の選択に従って前記OSのタスク切り替えを実行するコンテキストスイッチ部とを更に備えた構成を採用することとしたものである。
前記ソフトウェアコンポーネントは、前記OSをホストOSとして、当該ホストOS上の1つ以上のタスクとして動作するゲストOSであっても、あるいは前記OS上の1つ以上のタスクとして動作するアプリケーションプログラムであってもよい。
本発明によれば、ホストOSの動作状態に影響を受けずにゲストOSの割込みハンドラ及びタスクからのAPIの発行が可能となり、またホストOSの動作状態に影響を受けずに当該ホストOS上で動作するアプリケーションプログラムからのAPIの発行が可能となる。
以下、本発明のコンピュータシステムの実施形態について、図面を参照しながら説明する。
《第1の実施形態》
図1は、本発明の第1の実施形態に係るコンピュータシステムの構成を示している。図1のコンピュータシステムは、ハードウェア資源であるCPU10と、このCPU10上で動作するソフトウェア資源であるホストOS20及びゲストOS40とを備えている。ホストOS20は、例えばリアルタイム性が要求されない汎用OSであって、CPU10上で動作する。ゲストOS40は、例えばリアルタイムOSであって、ホストOS20上の1つ以上のタスクとして動作する。ここでタスクとはプロセッサ上での処理の実行単位のことを表す。また、仮想メモリ管理機能を備えたOSでは、複数のタスクがアドレス空間を共有することが可能であり、これらのタスクの集まりをタスク群と呼ぶ。ゲストOSは、1つ以上のタスク群から構成されることも可能である。
ホストOS20上では、ホストOS割込みハンドラ31及びホストOSタスク32が動作する。ホストOS割込みハンドラ31は、ハードウェア割込みによって起動し、ホストOS20で定められたAPIを発行することが可能である。また、ホストOSタスク32もホストOS20のAPIを発行することが可能である。これらのAPIによって、ホストOSタスク32の起動や停止などへのタスク状態の変更が行われる。
ゲストOS40上では、ゲストOS割込みハンドラ51及びゲストOSタスク52が動作する。ゲストOS割込みハンドラ51は、ハードウェア割込みによって起動し、ゲストOS40で定められたAPIを発行することが可能である。また、ゲストOSタスク52もゲストOS40のAPIを発行することが可能である。これらのAPIによって、ゲストOSタスク52の起動や停止などへのタスク状態の変更が行われる。ただし、各々のゲストOSタスク52はホストOSタスクとしての識別情報を持つ。
ホストOS20は、API処理部21と、スケジューラ部22と、コンテキストスイッチ部23とを有している。ゲストOS40は、独自のAPI処理部41を有している。ホストOS20のAPIは、ホストOS20の内部のAPI処理部21によって処理される。この処理によってタスクの起動や停止などへのタスク状態の変更を行うことになると、スケジューラ部22にて処理可能なタスク状態変更命令をAPI処理部21が出力する。ゲストOS40のAPIは、ゲストOS40の内部のAPI処理部41によって処理される。この処理によってタスクの起動や停止などへのタスク状態の変更を行うことになると、スケジューラ部22にて処理可能なタスク状態変更命令をAPI処理部41が出力する。これらタスク状態変更命令に含まれる情報の例としては、対象タスクの識別情報と、起動や停止などのタスク状態の変更を表す情報とが挙げられる。
図1のコンピュータシステムは、第1及び第2の命令蓄積部61,62と、命令同期タイミング制御部63とを更に備えている。第1及び第2の命令蓄積部61,62はいずれも、複数の命令を蓄積することが可能なバッファと、当該バッファへ命令を蓄積するための手段と、当該バッファから命令を取り出すための手段とを備えている。第1の命令蓄積部61は、ホストOSのAPI処理部21が出力した命令を順次蓄積し、当該命令を蓄積した順に出力する。第2の命令蓄積部62は、ゲストOSのAPI処理部41が出力した命令を順次蓄積し、当該命令を蓄積した順に出力する。図1では、第1の命令蓄積部61の出力命令をQaとし、第2の命令蓄積部62の出力命令をQbとしている。命令同期タイミング制御部63は、第1の命令蓄積部61の出力命令Qaと第2の命令蓄積部62の出力命令Qbとを入力命令とし、これらの入力命令のうち第2の命令蓄積部62から出力された命令を優先的に選択し、該選択した命令をスケジューラ部22へ出力する。図1では、このようにして命令同期タイミング制御部63からスケジューラ部22へ出力される命令をQsとしている。
スケジューラ部22は、命令同期タイミング制御部63から入力された命令Qsに基づいて、ホストOSタスク32やゲストOSタスク52の起動、停止などの操作を行うものであり、動作させるべきタスクを決定する。動作させるべきタスクが変化した場合は、スケジューラ部22がタスク切替情報をコンテキストスイッチ部23へ出力する。
コンテキストスイッチ部23は、タスク切替情報に基づいてコンテキスト情報のスイッチを行う。コンテキスト情報に含まれる情報としては、CPU10のレジスタ情報、タスク32,52の各々に固有のメモリ空間を表す情報などが挙げられる。
図2は、図1中の第1及び第2の命令蓄積部61,62の各々の動作を示している。ここでは、図2を用いて第1の命令蓄積部61の動作を説明する。まず、ステップS11において命令の入力があるかどうかを判定する。入力がある場合は、ステップS12において第1の命令蓄積部61内にあるバッファに命令を蓄積し、入力がない場合はステップS13に進む。次に、ステップS13においてバッファに蓄積された命令の有無を判断し、命令がない場合は終了し、命令がある場合はステップS14に進む。ステップS14では、第1の命令蓄積部61から前に出力された命令が命令同期タイミング制御部63に受け付けられたかどうかを判定する。前に出力された命令が未だ受け付けられていない場合には、一旦処理を終了して再度ステップS11から処理を開始する。前に出力された命令が既に受け付けられていた場合には、バッファに最も早く蓄積された命令をステップS15で取り出し、命令同期タイミング制御部63に出力し、ステップS13に戻って処理を継続する。なお、第2の命令蓄積部62の動作も図2と同様であるので、説明を省略する。
図3は、図1中の命令同期タイミング制御部63が命令Qsを出力するに際し、第2の命令蓄積部62の出力命令Qbが優先されることを示している。第1及び第2の命令蓄積部61,62のいずれからも命令の入力がない場合には、命令Qsの出力もない。第1の命令蓄積部61の出力命令Qaのみが命令同期タイミング制御部63に入力された場合には、命令Qsの前出力にかかわりなく、Qs=Qaとされる。また、第2の命令蓄積部62の出力命令Qbが命令同期タイミング制御部63に入力された場合には、第1の命令蓄積部61の出力命令Qaの有無や命令Qsの前出力にかかわりなく、Qs=Qbとされるのである。
以上説明したとおり、本実施形態によれば、ゲストOS40の命令処理において第2の命令蓄積部62を用いることで、ホストOS20の動作状態に影響を受けずにゲストOS割込みハンドラ51及びゲストOSタスク52からAPIの発行が可能となる。しかも、リアルタイム性が要求されるゲストOS40からのAPIが、ホストOS20のAPIよりも優先されるので、好都合である。また、ホストOS20の命令処理において第1の命令蓄積部61を用いることで、ゲストOS40の動作状態に影響を受けずにホストOS割込みハンドラ31及びホストOSタスク32からAPIの発行が可能となる。
《第2の実施形態》
図4は、本発明の第2の実施形態に係るコンピュータシステムの構成を示している。図1の構成と比べて、第1の命令蓄積部61が省略され、ホストOS割り込み状態情報出力部24と、ゲストOS割り込み状態情報出力部42と、第1及び第2の割り込み状態情報制御部64,65とが追加されている点が異なる。
ホストOS割込み状態情報出力部24は、ホストOS割込みハンドラ31が実行中であるか否かをホストOS割込み状態情報として出力する。ゲストOS割込み状態情報出力部42は、ゲストOS割込みハンドラ51が実行中であるか否かをゲストOS割込み状態情報として出力する。
ホストOSのAPI処理部21は、ホストOS割込み状態情報及びゲストOS割込み状態情報の各々を無効とするか否かを指定するAPIが発行された場合に、当該APIに対応する制御情報を第1及び第2の割込み状態情報制御部64,65へ出力する。ゲストOSのAPI処理部41も同様に、ホストOS割込み状態情報及びゲストOS割込み状態情報の各々を無効とするか否かを指定するAPIが発行された場合に、当該APIに対応する制御情報を第1及び第2の割込み状態情報制御部64,65へ出力する。例えば、これらの制御情報は、ホストOS割込み状態情報及びゲストOS割込み状態情報を修正せずに出力するか、ホストOS割込みハンドラ31及びゲストOS割込みハンドラ51が実行中でないことを表す情報に修正するかを示すものとする。
第1の割込み状態情報制御部64はホストOS割込み状態情報の有効性を、第2の割込み状態情報制御部65はゲストOS割込み状態情報の有効性をそれぞれ制御情報に従って制御するものである。具体的には、ホストOS割込み状態情報が無効とされた場合にはホストOS割込みハンドラ31が実行中でないものとされ、ゲストOS割込み状態情報が無効とされた場合にはゲストOS割込みハンドラ51が実行中でないものとされる。命令同期タイミング制御部63は、第1の割り込み状態情報制御部64から与えられたホストOS割込み状態情報と、第2の割り込み状態情報制御部65から与えられたゲストOS割込み状態情報とに基づき、ホストOS割込みハンドラ31及びゲストOS割込みハンドラ51がともに実行中でないタイミングに、図3をもって説明した命令の選択及び出力を実行するようになっている。
図5は、図4中の命令同期タイミング制御部63の動作を示している。命令同期タイミング制御部63は、図5に従って命令同期のタイミングを決定する。そのため、まずステップS21で、ホストOS割込み状態情報が割込みハンドラ31が実行中であることを表す情報であるかどうかを判断し、実行中でない場合はステップS22へ進み、実行中である場合は終了する。次に、ステップS22で、ゲストOS割込み状態情報が割込みハンドラ51が実行中であることを表す情報であるかどうかを判断し、実行中でない場合はステップS23へ進み、実行中である場合は終了する。次に、ステップS23では図3に基づいて、出力する命令の選択と、命令の出力とを行う。ただし、図3中の第1の命令蓄積部(Qa)61はホストOSのAPI処理部(Qa)21と読み替えるものとする。
本実施形態によれば、各OS20,40の状態が割込みハンドラ31,51を実行していない状態である場合に命令同期を行うことで、割込みハンドラ31,51の実行中には命令同期タイミング制御部63の動作を抑止することが可能となる。一般的にOSでは、割込みハンドラの実行中にタスクのコンテキストスイッチは行われないため、割込みハンドラ31,51の実行が終了した時点で命令同期タイミング制御部63を動作させることが可能となり、この命令同期タイミング制御部63の動作回数を減少することが可能となる。
更に、各OS20,40の割込み状態に基づいて命令同期タイミングを取るかどうかをホストOS20又はゲストOS40から制御可能とすることにより、命令同期タイミングの動的な制御が可能となる。特に、ホストOS20がリアルタイム性が要求されない汎用OSであり、ゲストOS40がリアルタイムOSであって、ゲストOS割込みハンドラ51及びゲストOSタスク52によってリアルタイム性を要求される処理が行われている場合、より高速に命令同期タイミングの動的制御が可能となる点で有利である。
《第3の実施形態》
図6は、本発明の第3の実施形態に係るコンピュータシステムの構成を示している。図1の構成と比べて、第1の命令蓄積部61が省略され、他のゲストOS70と、蓄積命令選択部66とが追加されている点が異なる。
追加されたゲストOS70もまた、ホストOS20上の1つ以上のタスクとして動作する。このゲストOS70上では、ゲストOS割込みハンドラ81及びゲストOSタスク82が動作する。ゲストOS割込みハンドラ81は、ハードウェア割込みによって起動し、ゲストOS70で定められたAPIを発行することが可能である。また、ゲストOSタスク82もゲストOS70のAPIを発行することが可能である。これらのAPIによって、ゲストOSタスク82の起動や停止などへのタスク状態の変更が行われる。ただし、各々のゲストOSタスク82はホストOSタスクとしての識別情報を持つ。
ゲストOS70は、独自のAPI処理部71を有している。ゲストOS70のAPIは、ゲストOS70の内部のAPI処理部71によって処理される。この処理によってタスクの起動や停止などへのタスク状態の変更を行うことになると、スケジューラ部22にて処理可能なタスク状態変更命令QcをAPI処理部71が出力する。
図6のコンピュータシステムにおける命令蓄積部62は、ゲストOSのAPI処理部41の出力命令Qbと、他のゲストOSのAPI処理部71の出力命令Qcとを入力命令とし、これらの入力命令のうちの一方に係る命令を優先的に蓄積する機能を有する。蓄積命令選択部66は、命令蓄積部62にてQbとQcとのうちいずれを優先するかを制御するものである。命令同期タイミング制御部63は、ホストOSのAPI処理部21の出力命令Qaと命令蓄積部62の出力命令Qb又はQcとを入力命令とし、これらの入力命令のうち命令蓄積部62から出力された命令Qb又はQcを優先的に選択し、該選択した命令をスケジューラ部22へ出力する。
本実施形態によれば、複数のゲストOS40,70を動作可能とすることにより、従来は各々単体システムとして動作していた複数システムの融合が可能となる。なお、蓄積命令選択部66を省略して、命令蓄積部62にて固定的な優先制御を実行することとしてもよい。また、本実施形態ではゲストOSの個数は2つであるが、3つ以上の場合でも同様に実施することが可能である。また、複数のゲストOSが同一のタスク群として動作する場合も同様に動作可能である。
《第4の実施形態》
図7は、本発明の第4の実施形態に係るコンピュータシステムの構成を示している。図1の構成と比べて、他のゲストOS70と、第3の命令蓄積部67と、同期命令選択部68とが追加されている点が異なる。
追加されたゲストOS70がホストOS20上の1つ以上のタスクとして動作し、このゲストOS70上でゲストOS割込みハンドラ81及びゲストOSタスク82が動作し、ゲストOS70が独自のAPI処理部71を有する点は、図6と同様である。
第1及び第2の命令蓄積部61,62と同様に、第3の命令蓄積部67もまた、複数の命令を蓄積することが可能なバッファと、当該バッファへ命令を蓄積するための手段と、当該バッファから命令を取り出すための手段とを備えている。第3の命令蓄積部67は、ゲストOSのAPI処理部71が出力した命令を順次蓄積し、当該命令を蓄積した順に出力する。図7では、第1の命令蓄積部61の出力命令をQaとし、第2の命令蓄積部62の出力命令をQbとし、第3の命令蓄積部62の出力命令をQcとしている。命令同期タイミング制御部63は、第1の命令蓄積部61の出力命令Qaと第2の命令蓄積部62の出力命令Qbと第3の命令蓄積部67の出力命令Qcとを入力命令とし、これらの入力命令のうち第2又は第3の命令蓄積部62,67から出力された命令を優先的にスケジューラ部22へ出力する。同期命令選択部68は、命令同期タイミング制御部63にてQbとQcとのうちいずれを優先するかを制御するものである。
本実施形態によれば、複数のゲストOS40,70の各々に対して専用の命令蓄積部62,67を用意することで、これらのゲストOS40,70の間に優先度を付けることが可能となる。なお、同期命令選択部68を省略して、命令同期タイミング制御部63にて固定的な優先制御を実行することとしてもよい。また、本実施形態ではゲストOSの個数は2つであるが、3つ以上の場合でも同様に実施することが可能である。また、複数のゲストOSが同一のタスク群として動作する場合も同様に動作可能である。
《第5の実施形態》
図8は、本発明の第5の実施形態に係るコンピュータシステムの構成を示している。図1の構成と比べて、第1の命令蓄積部61が省略され、ゲストOS40に代えてアプリケーションプログラム90を備えている点が異なる。
アプリケーションプログラム90は、OS20上の1つ以上のタスクとして動作するプログラムであって、独自のAPI処理部91を有している。このアプリケーションプログラム90に対してOS割込みハンドラ31やOSタスク32がAPIを発行することも可能である。アプリケーションプログラム90のAPIは、アプリケーションプログラム90の内部のAPI処理部91によって処理される。この処理によってタスクの起動や停止などへのタスク状態の変更を行うことになると、スケジューラ部22にて処理可能なタスク状態変更命令をAPI処理部91が出力する。
図8のコンピュータシステムにおける命令蓄積部62は、アプリケーションプログラムのAPI処理部91が出力した命令を順次蓄積し、当該命令を蓄積した順に出力する。命令同期タイミング制御部63は、OSのAPI処理部21の出力命令Qaと命令蓄積部62の出力命令Qbとを入力命令とし、これらの入力命令のうち命令蓄積部62から出力された命令を優先的に選択し、該選択した命令をスケジューラ部22へ出力する。
本実施形態によれば、OS20の動作状態に影響を受けずにアプリケーションプログラム90からAPIの発行が可能となる。
以上説明してきたとおり、本発明は、複数のOSを切り替えて動作させるコンピュータシステムの制御に特に有用である。
本発明の第1の実施形態に係るコンピュータシステムの構成図である。 図1中の第1及び第2の命令蓄積部の各々の動作を示すフローチャート図である。 図1中の命令同期タイミング制御部の動作を示す図である。 本発明の第2の実施形態に係るコンピュータシステムの構成図である。 図4中の命令同期タイミング制御部の動作を示すフローチャート図である。 本発明の第3の実施形態に係るコンピュータシステムの構成図である。 本発明の第4の実施形態に係るコンピュータシステムの構成図である。 本発明の第5の実施形態に係るコンピュータシステムの構成図である。
符号の説明
10 CPU
20 ホストOS
21 ホストOSのAPI処理部
22 スケジューラ部
23 コンテキストスイッチ部
24 ホストOS割込み状態情報出力部
31 ホストOS割込みハンドラ
32 ホストOSタスク
40 ゲストOS
41 ゲストOSのAPI処理部
42 ゲストOS割込み状態情報出力部
51 ゲストOS割込みハンドラ
52 ゲストOSタスク
61,62,67 命令蓄積部
63 命令同期タイミング制御部
64,65 割込み状態情報制御部
66 蓄積命令選択部
68 同期命令選択部
70 他のゲストOS
71 他のゲストOSのAPI処理部
81 他のゲストOS割込みハンドラ
82 他のゲストOSタスク
90 アプリケーションプログラム
91 アプリケーションプログラムのAPI処理部
Qa,Qb,Qc,Qs 命令

Claims (11)

  1. 1つのOS(Operating System)と、当該OS上の1つ以上のタスクとして動作するソフトウェアコンポーネントとを備えたコンピュータシステムであって、
    各々前記OS上で動作してAPI(Application Program Interface)を発行する機能を有するOS割込みハンドラ及びOSタスクと、
    前記OS割込みハンドラ及び前記OSタスクのうちのいずれかから発行されたAPIに基づいて前記OSのタスク状態を変更する命令を出力する機能を有する第1のAPI処理部と、
    前記ソフトウェアコンポーネントに係るAPIに基づいて前記OSのタスク状態を変更する命令を出力する機能を有する第2のAPI処理部と、
    前記第2のAPI処理部が出力した命令を順次蓄積し、当該命令を蓄積した順に出力する命令蓄積部と、
    前記第1のAPI処理部の出力と前記命令蓄積部の出力とを入力とし、これらの入力のうち前記命令蓄積部から出力された命令を優先的に選択し、該選択した命令を出力する命令同期タイミング制御部と、
    前記命令同期タイミング制御部から出力された命令を処理することにより、起動すべきタスクの選択を行うスケジューラ部と、
    前記スケジューラ部の選択に従って前記OSのタスク切り替えを実行するコンテキストスイッチ部とを更に備えたことを特徴とするコンピュータシステム。
  2. 請求項1記載のコンピュータシステムにおいて、
    前記ソフトウェアコンポーネントは、前記OSをホストOSとして、当該ホストOS上の1つ以上のタスクとして動作するゲストOSであって、
    前記コンピュータシステムは、各々前記ゲストOS上で動作してAPIを発行する機能を有するゲストOS割込みハンドラ及びゲストOSタスクを更に備え、
    前記第2のAPI処理部は、前記ゲストOS割込みハンドラ及び前記ゲストOSタスクのうちのいずれかから発行されたAPIに基づいて前記OSのタスク状態を変更する命令を出力する機能を有することを特徴とするコンピュータシステム。
  3. 請求項1記載のコンピュータシステムにおいて、
    前記ソフトウェアコンポーネントは、前記OS上の1つ以上のタスクとして動作するアプリケーションプログラムであり、
    前記第2のAPI処理部は、前記アプリケーションプログラムから発行されたAPIに基づいて前記OSのタスク状態を変更する命令を出力する機能を有することを特徴とするコンピュータシステム。
  4. 請求項2記載のコンピュータシステムにおいて、
    前記第1のAPI処理部が出力した命令を順次蓄積し、当該命令を蓄積した順に前記命令同期タイミング制御部へ出力する他の命令蓄積部を更に備えたことを特徴とするコンピュータシステム。
  5. 請求項2記載のコンピュータシステムにおいて、
    前記ホストOS割込みハンドラが実行中であるか否かをホストOS割込み状態情報として出力するホストOS割込み状態情報出力部と、
    前記ゲストOS割込みハンドラが実行中であるか否かをゲストOS割込み状態情報として出力するゲストOS割込み状態情報出力部とを更に備え、
    前記命令同期タイミング制御部は、前記ホストOS割込み状態情報及び前記ゲストOS割込み状態情報に基づき、前記ホストOS割込みハンドラ及び前記ゲストOS割込みハンドラがともに実行中でないタイミングに、前記命令の選択及び出力を実行する機能を有することを特徴とするコンピュータシステム。
  6. 請求項5記載のコンピュータシステムにおいて、
    前記ホストOS割込み状態情報及び前記ゲストOS割込み状態情報の各々の有効性を制御する割込み状態情報制御部を更に備え、
    前記第1及び第2のAPI処理部のうちの少なくとも一方は、前記ホストOS割込み状態情報及び前記ゲストOS割込み状態情報の各々を無効とするか否かを指定するAPIが発行された場合に、当該APIに対応する制御情報を前記割込み状態情報制御部へ出力する機能を有し、
    前記ホストOS割込み状態情報が無効とされた場合には前記ホストOS割込みハンドラが実行中でないものとされ、前記ゲストOS割込み状態情報が無効とされた場合には前記ゲストOS割込みハンドラが実行中でないものとされることを特徴とするコンピュータシステム。
  7. 請求項2記載のコンピュータシステムにおいて、
    前記ホストOS上の他の1つ以上のタスクとして動作する他のゲストOSと、
    各々前記他のゲストOS上で動作してAPIを発行する機能を有する他のゲストOS割込みハンドラ及び他のゲストOSタスクと、
    前記他のゲストOS割込みハンドラ及び前記他のゲストOSタスクのうちのいずれかから発行されたAPIに基づいて前記ホストOSのタスク状態を変更する命令を出力する機能を有する第3のAPI処理部とを更に備え、
    前記命令蓄積部は、前記第2のAPI処理部の出力と前記第3のAPI処理部の出力とを入力とし、これらの入力のうちの一方に係る命令を優先的に蓄積する機能を有することを特徴とするコンピュータシステム。
  8. 請求項7記載のコンピュータシステムにおいて、
    前記命令蓄積部にて前記第2のAPI処理部の出力と前記第3のAPI処理部の出力とのうちいずれを優先するかを制御する蓄積命令選択部を更に備えたことを特徴とするコンピュータシステム。
  9. 請求項2記載のコンピュータシステムにおいて、
    前記ホストOS上の他の1つ以上のタスクとして動作する他のゲストOSと、
    各々前記他のゲストOS上で動作してAPIを発行する機能を有する他のゲストOS割込みハンドラ及び他のゲストOSタスクと、
    前記他のゲストOS割込みハンドラ及び前記他のゲストOSタスクのうちのいずれかから発行されたAPIに基づいて前記ホストOSのタスク状態を変更する命令を出力する機能を有する第3のAPI処理部と、
    前記第3のAPI処理部が出力した命令を順次蓄積し、当該命令を蓄積した順に出力する他の命令蓄積部とを更に備え、
    前記命令同期タイミング制御部は、前記第1のAPI処理部の出力と前記命令蓄積部の出力とに加えて前記他の命令蓄積部の出力を入力とし、これらの入力のうち前記命令蓄積部又は前記他の命令蓄積部から出力された命令を優先的に出力する機能を有することを特徴とするコンピュータシステム。
  10. 請求項9記載のコンピュータシステムにおいて、
    前記命令同期タイミング制御部にて前記命令蓄積部の出力と前記他の命令蓄積部の出力とのうちいずれを優先するかを制御する同期命令選択部を更に備えたことを特徴とするコンピュータシステム。
  11. 1つのOS(Operating System)をホストOSとし、当該ホストOS上の1つ以上のタスクとして動作するゲストOSを備えたコンピュータシステムにおける制御方法であって、
    各々前記ホストOS上で動作する割込みハンドラ及びタスクのうちのいずれかから発行されたAPI(Application Program Interface)に基づいて前記ホストOSのタスク状態を変更する命令を第1のAPI処理部が出力するステップと、
    各々前記ゲストOS上で動作する割込みハンドラ及びタスクのうちのいずれかから発行されたAPIに基づいて前記ホストOSのタスク状態を変更する命令を第2のAPI処理部が出力するステップと、
    前記第2のAPI処理部が出力した命令を順次蓄積しつつ当該命令を蓄積した順に命令蓄積部が出力するステップと、
    前記第1のAPI処理部の出力と前記命令蓄積部の出力とを入力とし、これらの入力のうち前記命令蓄積部から出力された命令を優先的に選択しつつ、該選択した命令を命令同期タイミング制御部が出力するステップと、
    前記命令同期タイミング制御部から出力された命令を処理することにより、起動すべきタスクの選択をスケジューラ部が行うステップと、
    前記スケジューラ部の選択に従って前記ホストOSのタスク切り替えをコンテキストスイッチ部が実行するステップとを備えたことを特徴とする制御方法。
JP2004338542A 2004-11-24 2004-11-24 コンピュータシステム Ceased JP2006146758A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004338542A JP2006146758A (ja) 2004-11-24 2004-11-24 コンピュータシステム
US11/250,503 US7590990B2 (en) 2004-11-24 2005-10-17 Computer system
CNB2005101241824A CN100382033C (zh) 2004-11-24 2005-11-21 计算机系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004338542A JP2006146758A (ja) 2004-11-24 2004-11-24 コンピュータシステム

Publications (1)

Publication Number Publication Date
JP2006146758A true JP2006146758A (ja) 2006-06-08

Family

ID=36462337

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004338542A Ceased JP2006146758A (ja) 2004-11-24 2004-11-24 コンピュータシステム

Country Status (3)

Country Link
US (1) US7590990B2 (ja)
JP (1) JP2006146758A (ja)
CN (1) CN100382033C (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008108075A (ja) * 2006-10-25 2008-05-08 Matsushita Electric Ind Co Ltd タスク切替え制御方法及びコンピュータシステム
JP2018535468A (ja) * 2015-09-21 2018-11-29 レインボー ロボティックスRainbow Robotics Gpos連動型リアルタイムロボット制御システム及びこれを用いたリアルタイムデバイス制御システム
JP2019036303A (ja) * 2017-08-10 2019-03-07 インフィニオン テクノロジーズ アクチエンゲゼルシャフトInfineon Technologies AG コンピュータ処理装置(cpu)のための仮想機械モニタ割り込みサポート

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8424013B1 (en) * 2006-09-29 2013-04-16 Emc Corporation Methods and systems for handling interrupts across software instances and context switching between instances having interrupt service routine registered to handle the interrupt
US20090083829A1 (en) * 2007-09-20 2009-03-26 C & S Operations, Inc. Computer system
JP5269067B2 (ja) * 2008-03-14 2013-08-21 パナソニック株式会社 プログラム実行装置およびその制御方法
US8230450B2 (en) * 2009-01-06 2012-07-24 International Business Machines Corporation Method for executing a software routine identified in a task object
US20100175076A1 (en) * 2009-01-06 2010-07-08 International Business Machines Corporation Method for executing a software routine identified in a task object
WO2013147817A1 (en) * 2012-03-29 2013-10-03 Intel Corporation Architecture and method for managing interrupts in a virtualized environment
KR102237373B1 (ko) * 2014-07-02 2021-04-07 삼성전자 주식회사 전자 장치의 태스크 스케줄링 방법 및 이를 사용하는 전자 장치
CA3204341A1 (en) * 2020-12-03 2022-06-09 Syng, Inc. Heterogeneous computing systems and methods for clock synchronization

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2652998B2 (ja) * 1991-04-15 1997-09-10 日本電気株式会社 割込回路
JP3196004B2 (ja) * 1995-03-23 2001-08-06 株式会社日立製作所 障害回復処理方法
US5689713A (en) * 1995-03-31 1997-11-18 Sun Microsystems, Inc. Method and apparatus for interrupt communication in a packet-switched computer system
JP2001282558A (ja) 2000-03-30 2001-10-12 Hitachi Ltd マルチオペレーティング計算機システム
JP2002099435A (ja) * 2000-09-21 2002-04-05 Toshiba Corp マルチタスク制御方法および情報処理装置
EP1387248B1 (en) * 2002-07-31 2017-08-16 Texas Instruments Inc. A processor with a split stack
JP3898650B2 (ja) * 2003-02-20 2007-03-28 株式会社エヌ・ティ・ティ・データ マルチオペレーティングシステム制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにマルチオペレーティングシステム制御装置
DE60323811D1 (de) * 2003-04-09 2008-11-13 Jaluna S A Betriebssysteme

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008108075A (ja) * 2006-10-25 2008-05-08 Matsushita Electric Ind Co Ltd タスク切替え制御方法及びコンピュータシステム
JP2018535468A (ja) * 2015-09-21 2018-11-29 レインボー ロボティックスRainbow Robotics Gpos連動型リアルタイムロボット制御システム及びこれを用いたリアルタイムデバイス制御システム
JP2019036303A (ja) * 2017-08-10 2019-03-07 インフィニオン テクノロジーズ アクチエンゲゼルシャフトInfineon Technologies AG コンピュータ処理装置(cpu)のための仮想機械モニタ割り込みサポート
JP7150512B2 (ja) 2017-08-10 2022-10-11 インフィニオン テクノロジーズ アクチエンゲゼルシャフト コンピュータ処理装置(cpu)のための仮想機械モニタ割り込みサポート

Also Published As

Publication number Publication date
US7590990B2 (en) 2009-09-15
US20060112394A1 (en) 2006-05-25
CN100382033C (zh) 2008-04-16
CN1783016A (zh) 2006-06-07

Similar Documents

Publication Publication Date Title
US6944850B2 (en) Hop method for stepping parallel hardware threads
US8407387B2 (en) Multi-thread processor and the multi-thread processor's interrupt processing method having interrupt processing that is processed by an associated hardware thread
JP4127848B2 (ja) タスク処理装置
JPWO2008023426A1 (ja) タスク処理装置
KR20070083460A (ko) 다중 커널을 동시에 실행하는 방법 및 시스템
US9189293B2 (en) Computer, virtualization mechanism, and scheduling method
JP2004362100A (ja) 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
US9841994B2 (en) Implementation of multi-tasking on a digital signal processor with a hardware stack
CN100419688C (zh) 中断控制装置及控制方法
JP2006146758A (ja) コンピュータシステム
JP2005276097A (ja) 割り込み依頼プログラムおよびマイクロコンピュータ
US20170212852A1 (en) Method and accelerator unit for interrupt handling
JP3893136B2 (ja) 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム
JP2001337822A (ja) 命令バッファ及びバッファキュー制御
JP2007193744A (ja) 情報処理装置、プログラム、およびスケジューリング方法
CN118349283B (zh) 用于分布式集群系统的非阻塞型宏指令多级流水处理器的执行方法和装置
JPH07244588A (ja) データ処理装置
JPH10340197A (ja) キャッシング制御方法及びマイクロコンピュータ
JP2008269597A (ja) タスク処理装置
JP2010026575A (ja) スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム
WO2012026124A1 (ja) スレッド調停システム、プロセッサ、映像記録再生装置、およびスレッド調停方法
JP3362673B2 (ja) チャネルコントロール装置
JP2011008617A (ja) マルチスレッド実行装置、オブジェクトプログラムの生成方法、プログラム
JP2010165209A (ja) マルチスレッドプロセッサ装置
JP2000029850A (ja) オペレーティングシステムのプロセッサ間通信を使用したタスク制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071012

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090728

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090915

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091117

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20100323