[go: up one dir, main page]

JP2008108075A - タスク切替え制御方法及びコンピュータシステム - Google Patents

タスク切替え制御方法及びコンピュータシステム Download PDF

Info

Publication number
JP2008108075A
JP2008108075A JP2006290466A JP2006290466A JP2008108075A JP 2008108075 A JP2008108075 A JP 2008108075A JP 2006290466 A JP2006290466 A JP 2006290466A JP 2006290466 A JP2006290466 A JP 2006290466A JP 2008108075 A JP2008108075 A JP 2008108075A
Authority
JP
Japan
Prior art keywords
task
resource
switching
request
guest
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.)
Pending
Application number
JP2006290466A
Other languages
English (en)
Inventor
Akira Takeuchi
彰 竹内
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 JP2006290466A priority Critical patent/JP2008108075A/ja
Priority to US11/868,089 priority patent/US20080104602A1/en
Priority to CNA2007101812209A priority patent/CN101169737A/zh
Publication of JP2008108075A publication Critical patent/JP2008108075A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4825Interrupt from clock, e.g. time of day
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/485Resource constraint

Landscapes

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

Abstract

【課題】タスク応答性能が高いタスク切替え制御方法、及びコンピュータシステムを提供する。
【解決手段】本発明に係るタスク切替え制御方法は、複数のタスクが動作するコンピュータシステムにおけるタスク切替え制御方法あって、タスクの起床要求を検知する検知ステップS101と、コンピュータシステムのコンピュータ資源のうち、使用中のコンピュータ資源の情報である第1資源情報を取得する第1資源取得ステップS102と、起床要求が検知されたタスクの実行に必要なコンピュータ資源の情報である第2資源情報を取得する第2資源取得ステップS103と、第1資源情報と、第2資源情報とに基づき、起床要求が検知されたタスクに切替え可能であるか否かを判定する第1判定ステップS104と、第1判定ステップS104において切替え可能であると判定された場合に、起床要求が検知されたタスクに切替える第1切替えステップS105とを含む。
【選択図】図2

Description

本発明は、タスク切替え制御方法及びコンピュータシステムに関し、特に、複数のタスクが動作するコンピュータシステムにおけるタスク切替え制御方法に関する。
ハードウェアの高性能化とソフトウェアの規模増大とに伴い、従来、シンプルで軽量なリアルタイムOS(Operating System)が使用されてきた組込み市場においても、より高機能な汎用OSへの移行が進んでいる。一般にリアルタイムOSと汎用OSとはAPI(Application Program Interface)が異なるため、リアルタイムOS上に構築されたソフトウェアをそのまま汎用OS上で動作させることはできない。さらに、APIの置換えをした場合においても、汎用OSは相対的にリアルタイム性能が低い。よって、対象システムにリアルタイム動作が求められる場合においては、資産ソフトウェアの設計の見直しが必要になる可能性が高い。その結果、リアルタイムOSから汎用OSへの移行には、多大な開発コストが必要となる。
そこで、リアルタイムOSと汎用OSとを組み合わせたハイブリッドOSが考案されている。ハイブリッドOSでは、資産ソフトウェアを流用し、且つ、汎用OSの機能を利用することにより、高付加価値な大規模システムを少ない開発コストで構築することが可能となる。
ハイブリッドOSの形態は、大きく分類して、異なるCPU上でそれぞれ汎用OSとリアルタイムOSとを動作させる形態のハイブリッドOSと、1つ以上のCPU上で動作するOS(ホストOS)上で1つ以上のタスクとして別のOS(ゲストOS)が動作する形態のハイブリッドOSが存在する。後者のハイブリッドOSでは、例えば、ホストOSとして汎用OSが動作し、ゲストOSとしてリアルタイムOSが動作する。
前者のハイブリッドOSは、汎用OSとリアルタイムOSとの結合度が低く、かつ汎用OSとリアルタイムOSとにCPU等のハードウェア資源が独立に割当てられるため、OS及びアプリケーションソフトをそのまま動作させることができる。これにより、前者のハイブリッドOSは、システムのリアルタイム性の保証が容易である。一方で、前者のハイブリッドOSは、ハードウェアのコストが増加する短所が存在する。
後者のハイブリッドOSは、少なくともゲストOSの改造が必要であるが、アプリケーションソフトは基本的に変更せずに動作させることが可能である。後者のハイブリッドOSは、ホストOSとゲストOSとがハードウェア資源を排他制御しながら協調動作するため、ハードウェアのコストを低減できる。一方で、後者のハイブリッドOSは、ホストOS又はゲストOSのそれぞれがCPU等のハードウェア資源を占有できないため、実時間処理システムを構築するための工夫が必要になる。
ゲストOSがホストOS上の1つ以上のタスクとして動作する構成のハイブリッドOSでは、ホストOSとゲストOSとの切替え処理にホストOSのスケジューラが介在するため、一般にゲストOSの割込み性能及びタスク切替え性能はホストOSの性能に依存する。具体的には、ホストOSが動作中に、割込みによってゲストOSタスクを起床する要求が発生した場合、ホストOSのスケジューラが動作可能なタイミングでのみ、ゲストOSタスクへタスク切替えが可能である。例えば、ホストOSがカーネルプリエンプト不可能なOSであり、カーネル処理中に割込みによって高優先度タスクへ起床要求を受付けた場合、現在のカーネル処理が完了するまでは、高優先度タスクへタスク切替えは行えない。よって、高優先度タスクへのタスク切替えが遅延する。ホストOSがカーネルプリエンプトを許すOSの場合でも、各種資源の排他制御のためにプリエンプト禁止区間が存在する。これにより、プリエンプト禁止区間内においては高優先度タスクへのタスク切替えが遅延する。そのため、ゲストOSの割込み性能やタスク切替え性能の低下を防ぐために、スケジューリング及び割込み制御等の最小限の機能のみを持たせたマイクロカーネル(マイクロカーネル方式)、又は割込み性能やタスク切替え性能の優れたリアルタイムOSをホストOSとして利用(ハイブリッド方式)することが多い。
このように、汎用OSをホストOSに利用するハイブリッドOSは、割込み性能及びタスク切替え性能が汎用OSの性能に依存する。このため、汎用OSをホストOSに利用するハイブリッドOSは、厳密な実時間動作を必要としないシステム、又は、論理的デバッグ用途のシミュレータに利用されてきた。
一方、汎用OS上でリアルタイムOSが動作する構成のハイブリッドOSにおいて、汎用OSに影響されない割込み性能を実現する方法が知られている(例えば、特許文献1参照)。汎用OS上にリアルタイムOSを構築することの利点としては、例えば、リアルタイムOSから汎用OSの高度なメモリ保護機構を利用可能なことが挙げられる。
以下、従来の汎用OS上でリアルタイムOSが動作する構成のハイブリッドOSにおけるタスク切替え制御を説明する。
図13は、従来の汎用OS上でリアルタイムOSが動作する構成のハイブリッドOSにおけるタスク切替え処理の流れを示すフローチャートである。
図13示すように、まず、タスクの起床要求が検知される(S1001)。タスクの起床要求が検知された場合には(S1001でYes)、タスク切替えが可能であるか否かが判定される(S1002)。例えば、使用中の資源に応じて、OS上で切替え可能状態であるか否かが規定されており、切替え可能状態の場合に、タスク切替え可能と判定される。具体的には、特定のタスク(例えば、汎用OS上で動作するリアルタイムOSのタスク)の全てに安定して切替えを行うために複数の資源が指定されており、指定されている全ての資源が使用中でない場合には切替え可能と判定される。また、割込み処理を実行中には、切替え不可と判定される。タスク切替え可能と判定された場合は(S1002でYes)、タスク切替えが行われる(S1003)。タスク切替え不可と判定された場合は(S1002でNo)、タスク切替えは行われない。
なお、図13を用いて汎用OS上でリアルタイムOSが動作する構成のハイブリッドOSにおけるタスク切替え処理について説明したが、図13に示す処理の流れは、単一のOS上の優先度の高い特定のタスクに対する切替え処理においても同様である。
特開2006−146758号公報
しかしながら、タスク切替え処理においては、より高いタスク応答性能が要求されている。上述した従来のタスク切替え方法では、特定のタスクへのタスク切替えは、コンピュータシステム(OS)が安定して切替えを行える全ての資源が使用中でない場合に行われる。よって、コンピュータシステム(OS)が安定して切替えを行える資源のうち一部が使用中の場合には、タスク切替えは行われずタスク応答性能は、十分でない。
そこで、本発明は、タスク応答性能が高いタスク切替え制御方法、及びコンピュータシステムを提供することを目的とする。
上記目的を達成するために、本発明に係るタスク切替え制御方法は、複数のタスクが動作するコンピュータシステムにおけるタスク切替え制御方法あって、タスクの起床要求を検知する検知ステップと、前記コンピュータシステムのコンピュータ資源のうち、使用中のコンピュータ資源の情報である第1資源情報を取得する第1資源取得ステップと、前記検知ステップにおいて起床要求が検知されたタスクの実行に必要なコンピュータ資源の情報である第2資源情報を取得する第2資源取得ステップと、前記第1資源取得ステップにおいて取得された前記第1資源情報と、前記第2資源取得ステップにおいて取得された前記第2資源情報とに基づき、前記検知ステップにおいて起床要求が検知されたタスクに切替え可能であるか否かを判定する第1判定ステップと、前記第1判定ステップにおいて切替え可能であると判定された場合に、前記検知ステップにおいて起床要求が検知されたタスクに切替える第1切替えステップとを含む。
これによれば、現在使用中のコンピュータ資源と、起床要求が検知されたタスクの実行に必要なコンピュータ資源の情報とに基づき、タスクの切替えが可能であるか否かを判定する。よって、実行されるタスクに最小限必要なコンピュータ資源が使用中でない場合に、タスク切替えを行うことができる。これにより、コンピュータシステムが安定して切替えを行える全ての資源が使用中でない場合にのみタスク切替えを行う従来のコンピュータシステムに比べて、より多くの状況でタスク切替えを行うことができる。よって、本発明は、タスク応答性能が高いタスク切替え制御方法を実現することができる。
また、前記コンピュータシステムは、OS(Operating System)の制御の下で前記複数のタスクを実行し、前記複数のタスクは、前記OS上で動作し、前記OSのコンピュータ資源の全てを使用する通常タスクと、前記OS上で動作し、前記OSのコンピュータ資源のうち一部のみを使用する制限タスクとを含み、前記検知ステップでは、前記制限タスクの起床要求を検知し、前記第1資源取得ステップでは、前記OSのコンピュータ資源のうち、使用中のコンピュータ資源の情報である第1資源情報を取得し、前記第2資源取得ステップでは、前記検知ステップにおいて起床要求が検知された制限タスクの実行に必要な前記OSのコンピュータ資源の情報である第2資源情報を取得し、前記第1判定ステップでは、前記第1資源取得ステップにおいて取得された前記第1資源情報と、前記第2資源取得ステップにおいて取得された前記第2資源情報とに基づき、前記検知ステップにおいて起床要求が検知された制限タスクに切替え可能であるか否かを判定し、前記第1切替えステップでは、前記第1判定ステップにおいて切替え可能であると判定された場合に、前記検知ステップにおいて起床要求が検知された制限タスクに切替えてもよい。
これによれば、現在使用中のOSのコンピュータ資源と、起床要求が検知された制限タスクの実行に必要なOSのコンピュータ資源の情報とに基づき、タスクの切替えが可能であるか否かを判定する。よって、実行される制限タスクに最小限必要なOSのコンピュータ資源が使用中でない場合に、タスク切替えを行うことができる。これにより、コンピュータシステムが安定して切替えを行える全ての資源が使用中でない場合にのみタスク切替えを行う従来のコンピュータシステムに比べて、より多くの状況でタスク切替えを行うことができる。よって、本発明は、タスク応答性能が高いタスク切替え制御方法を実現することができる。
また、前記コンピュータシステムは、第1のOSと、前記第1のOS上の1以上のタスクとして動作する第2のOSとの制御の下で前記複数のタスクを実行し、前記複数のタスクは、前記第1のOS上で動作するタスクであるホストOSタスクと、前記第1のOSをホストOSとして、前記第1のOS上のタスクとして動作する第2のOS上のタスクであるゲストOSタスクとを含み、前記検知ステップでは、前記ゲストOSタスクの起床要求を検知し、前記第1資源取得ステップでは、前記第1のOSのコンピュータ資源のうち、使用中のコンピュータ資源の情報である第1資源情報を取得し、前記第2資源取得ステップでは、前記検知ステップにおいて起床要求が検知されたゲストOSタスクの実行に必要な前記第1のOSのコンピュータ資源の情報である第2資源情報を取得し、前記第1判定ステップでは、前記第1資源取得ステップにおいて取得された前記第1資源情報と、前記第2資源取得ステップにおいて取得された前記第2資源情報とに基づき、前記検知ステップにおいて起床要求が検知されたゲストOSタスクに切替え可能であるか否かを判定し、前記第1切替えステップでは、前記第1判定ステップにおいて切替え可能であると判定された場合に、前記検知ステップにおいて起床要求が検知されたゲストOSタスクに切替えてもよい。
これによれば、現在使用中の第1のOSのコンピュータ資源と、起床要求が検知されたゲストOSタスクの実行に必要な第1のOSのコンピュータ資源の情報とに基づき、タスクの切替えが可能であるか否かを判定する。よって、実行されるゲストOSタスクに最小限必要な第1のOSのコンピュータ資源が使用中でない場合に、タスク切替えを行うことができる。これにより、コンピュータシステムが安定して切替えを行える全ての資源が使用中でない場合にのみタスク切替えを行う従来のコンピュータシステムに比べて、より多くの状況でタスク切替えを行うことができる。これにより、ホストOSのタスク応答時間への依存度を最小化し、タスク応答性の低いホストOS上にタスク応答性の高いゲストOSを構築することができる。よって、本発明は、タスク応答性能が高いタスク切替え制御方法を実現することができる。
また、前記第1判定ステップでは、前記検知ステップにおいて起床要求が検知されたゲストOSタスクが使用するコンピュータ資源の全てが、使用中でない場合に、該ゲストOSタスクに切替え可能であると判定してもよい。
これによれば、実行されるゲストOSタスクに最小限必要な第1のOSのコンピュータ資源が使用中でない場合に、タスク切替えを行う。これにより、タスク応答性を向上させることができる。
また、前記タスク切替え制御方法は、さらに、前記第1判定ステップにおいて、前記検知ステップにおいて起床要求が検知されたゲストOSタスクに切替え不可であると判定された場合に、使用中の前記第1のOSのコンピュータ資源が解放されたことを検出する第1検出ステップと、前記第1検出ステップにおいて、使用中の前記第1のOSのコンピュータ資源が解放されたと検出された場合に、前記第1のOSのコンピュータ資源のうち、使用中の前記第1のOSのコンピュータ資源の情報である第1資源情報を再度取得する第1資源再取得ステップと、前記第1資源再取得ステップにおいて取得した前記第1資源情報と、前記第2資源取得ステップにおいて取得した前記第2資源情報とに基づき、前記検知ステップにおいて起床要求が検知されたゲストOSタスクに切替え可能であるか否かを判定する再判定ステップとを含んでもよい。
これによれば、ゲストOSタスクの実行に必要な第1のOSのコンピュータ資源が使用中であり、タスク切替えが不可の場合には、第1のOSのコンピュータ資源の使用状況を監視し、ゲストOSタスクの実行に必要な第1のOSのコンピュータ資源が解放された時点で、タスク切替えを行うことができる。よって、ゲストOSタスクの実行に必要なコンピュータ資源が使用中であり、タスク切替えが不可の場合のタスク応答性を向上させることができる。
また、前記タスク切替え制御方法は、さらに、割込み処理の実行に必要な前記第1のOSのコンピュータ資源の情報である第3資源情報を取得する第3資源取得ステップと、前記第1資源取得ステップにおいて取得された前記第1資源情報と、前記第3資源取得ステップにおいて取得された前記第3資源情報とから、前記割込み処理の実行に必要なコンピュータ資源の少なくとも一部が使用中であるか否かを判定する第2判定ステップと、前記第2判定ステップにおいて使用中であると判定された場合に、割込み処理を禁止する割込み禁止ステップとを含んでもよい。
これによれば、割込み処理の実行に必要な第1のOSのコンピュータ資源が使用中の場合には、ゲストOSタスクの実行中の割込みを禁止する。これにより、ゲストOSタスクの実行中に割込みが発生した場合の、割込みによる誤動作の発生等を防止することができる。
また、前記タスク切替え制御方法は、さらに、割込み処理の実行に必要な前記第1のOSのコンピュータ資源の情報である第3資源情報を取得する第3資源取得ステップと、前記第1資源取得ステップにおいて取得された前記第1資源情報と、前記第3資源取得ステップにおいて取得された前記第3資源情報とから、前記割込み処理の実行に必要なコンピュータ資源の少なくとも一部が使用中であるか否かを判定する第2判定ステップと、前記第2判定ステップにおいて使用中であると判定された場合に、使用中のコンピュータ資源が解放されたことを検出する第2検出ステップと、前記第2検出ステップにおいて、使用中の前記第1のOSのコンピュータ資源が解放されたと検出された場合に、前記割込み処理の実行に必要な前記第1のOSのコンピュータ資源の少なくとも一部が使用中であるか否かを再度判定する第2再判定ステップとを含み、前記第1切替えステップでは、前記第1判定ステップにおいて切替え可能であると判定され、かつ前記第2再判定ステップにおいて使用中でないと判定された場合に、前記検知ステップにおいて起床要求が検知されたゲストOSタスクに切替えてもよい。
これによれば、割込み処理の実行に必要な第1のOSのコンピュータ資源が使用中であり、ゲストOSタスク実行中に、割込み処理の実行が不可の場合には、第1のOSのコンピュータ資源の使用状況を監視し、割込み処理の実行に必要な第1のOSのコンピュータ資源が解放された時点で、タスク切替えを行うことができる。よって、割込み処理の実行に必要なコンピュータ資源が使用中であり、タスク切替えが不可の場合のタスク応答性を向上させることができる。また、ゲストOSタスクの実行中に割込みが発生した場合の、割込みによる誤動作の発生等を防止することができる。
また、前記タスク切替え制御方法は、さらに、前記第1判定ステップにおいて、前記検知ステップにおいて起床要求が検知されたゲストOSタスクに切替え可能であると判定された場合に、前記第1のOSの環境を保持する環境保持ステップと、該ゲストOSタスクの終了時に、前記環境保持ステップにおいて保持された環境を復帰する環境復帰ステップとを含んでもよい。
これによれば、ホストOSタスクの実行中にゲストOSタスクに切替え、ゲストOSタスク終了後にホストOSタスクを復帰させた場合に、ゲストOSタスクに切替える前のOSの環境を復帰させることができる。よって、ゲストOSタスクの実行の前後におけるOS環境の整合性を確保することができる。
また、前記タスク切替え制御方法は、さらに、前記第1切替えステップにおいて切替えられた前記ゲストOSタスクの実行中に、前記第1切替えステップにおいてタスクを切替える前に実行されていたホストOSタスクの状態の変更要求を取得する変更要求取得ステップと、前記変更要求取得ステップにおいて取得した変更要求に基づき、前記環境保持ステップにおいて保持された環境を変更するタスク状態変更ステップとを含み、前記環境復帰ステップでは、前記タスク状態変更ステップにおいて変更された環境を復帰してもよい。
これによれば、ゲストOSタスクの実行中に、タスク切替え前に実行されていたホストOSタスクに対する状態(優先度及び実行状態)の変更要求が発生した場合に、環境保持ステップにおいて保持したOSの環境を変更する。これにより、復帰後のホストOSタスクの状態を変更することができ、コンピュータシステムの整合性を維持することができる。
また、前記タスク切替え制御方法は、さらに、前記第1切替えステップにおいて切替えられた前記ゲストOSタスクの実行終了の後に、前記ホストOSタスクのうちで最後に実行されていたホストOSタスクに切替える第2切替えステップを含んでもよい。
これによれば、ゲストOSタスクの終了後に、ゲストOSタスクに切替える前に実行されていたホストOSタスクを復帰させることができる。よって、ゲストOSタスクの終了後に、ゲストOSタスクに切替える前に実行されていたホストOSタスクを引き続き実行することができる。
また、前記タスク切替え制御方法は、さらに、前記複数のゲストOSタスクのうち1以上が実行可能状態であるか否かを判定するタスク判定ステップと、前記タスク判定ステップにおいて実行可能な状態でないと判定された場合に、前記ゲストOSタスクの実行終了の後に、前記ホストOSタスクのうちで最後に動作していたホストOSタスクに切替える第2切替えステップとを含んでもよい。
これによれば、実行可能なゲストOSタスクを全て実行した後に、ゲストOSタスクにタスクを切替える前に実行していたホストOSタスクを復帰させることができる。よって、実行可能な全てのゲストOSタスクの終了後に、ゲストOSタスクに切替える前に実行されていたホストOSタスクを引き続き実行することができる。
また、前記ホストOSタスク及び前記ゲストOSタスクは、それぞれタスクの実行順序を決定する優先度を有し、前記タスク切替え制御方法は、さらに、前記第1判定ステップにおいて、ゲストOS上のタスクに切替え可能であると判定された場合に、前記第1切替えステップにおいてタスクを切替える前に実行されていたホストOSタスクの優先度を、前記ホストOSタスクのうちの最も高い優先度に変更する優先度変更ステップを含んでもよい。
これによれば、ゲストOSタスクにタスクを切替える前に実行していたホストOSタスクの優先度を、ホストOSタスクの優先度のうちの最高の優先度とすることで、実行可能なゲストOSタスクを全て実行した後に、ゲストOSタスクにタスクを切替える前に実行していたホストOSタスクを復帰させることができる。よって、実行可能な全てのゲストOSタスクの終了後に、ゲストOSタスクに切替える前に実行されていたホストOSタスクを引き続き実行することができる。さらに、既存のOSの機能を改良(例えば、スケジューラの改良)することなく、自動的にタスク切替え前に実行されていたホストOSタスクを実行することができる。
また、前記複数のタスクは、複数の前記ゲストOSタスクを含み、前記タスク切替え制御方法は、さらに、前記第1のOSが、前記ホストOSタスク及び前記複数のゲストOSタスクの全てにタスクを切替え可能な状態であるか否かを判定する第3判定ステップを含み、前記第1切替えステップでは、前記第3判定ステップにおいて切替え可能な状態であると判定された場合に、前記検知ステップにおいて起床要求が検知されたゲストOSタスクに切替え、前記第1判定ステップでは、前記第3判定ステップにおいて切替え不可な状態と判定された場合に、前記第1資源取得ステップにおいて取得した前記第1資源情報と、前記第2資源取得ステップにおいて取得した前記第2資源情報とに基づき、前記検知ステップにおいて起床要求が検知されたゲストOSタスクに切替え可能であるか否かを判定してもよい。
これによれば、第1のOSがタスク切替え可能な状態にある場合には、第1資源取得ステップ、第2資源取得ステップ及び第1判定ステップを実施せずに、タスクの切替えを行う。よって、第1のOSがタスク切替え可能な状態の場合の、処理量を低減することができる。
また、本発明に係るコンピュータシステムは、複数のタスクが動作するコンピュータシステムであって、タスクの起床要求を検知する検知手段と、前記コンピュータシステムのコンピュータ資源のうち、使用中のコンピュータ資源の情報である第1資源情報を取得する第1資源取得手段と、前記検知手段により起床要求が検知されたタスクの実行に必要なコンピュータ資源の情報である前記第2資源情報を取得する第2資源取得手段と、前記第1資源取得手段が取得した前記第1資源情報と、前記第2資源取得手段が取得した第2資源情報とに基づき、前記検知手段により起床要求が検知されたタスクに切替え可能であるか否かを判定する第1判定手段と、前記第1判定手段が、切替え可能であると判定した場合に、前記検知手段により起床要求が検知されたタスクに切替える切替え手段とを備える。
この構成によれば、現在使用中のコンピュータ資源と、起床要求が検知されたタスクの実行に必要なコンピュータ資源の情報とに基づき、タスクの切替えが可能であるか否かを判定する。よって、実行されるタスクに最小限必要なコンピュータ資源が使用中でない場合に、タスク切替えを行うことができる。これにより、コンピュータシステムが安定して切替えを行える全ての資源が使用中でない場合にのみタスク切替えを行う従来のコンピュータシステムに比べて、より多くの状況でタスク切替えを行うことができる。よって、本発明は、タスク応答性能が高いコンピュータシステムを実現することができる。
なお、本発明は、このようなタスク切替え制御方法として実現することができるだけでなく、タスク切替え制御方法に含まれる特徴的なステップを手段とするコンピュータシステムとして実現したり、タスク切替え制御方法に含まれる特徴的なステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD−ROM等の記録媒体やインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
本発明は、タスク応答性能が高いタスク切替え制御方法、及びコンピュータシステムを提供することができる。
以下、本発明に係るタスク切替え制御方法を用いたコンピュータシステムの実施の形態について、図面を参照しながら詳細に説明する。
(実施の形態1)
本発明の実施の形態1に係るコンピュータシステムは、使用中のコンピュータ資源と、起床要求が検知されたタスクの実行に必要なコンピュータ資源の情報とに基づき、タスクの切替えが可能であるか否かを判定する。これにより、タスク応答性能が高いコンピュータシステムを実現することができる。
まず、本発明の実施の形態1に係るコンピュータシステムの構成を説明する。
図1は、本発明の実施の形態1に係るコンピュータシステムの構成を示す図である。図1に示すコンピュータシステム100は、複数のタスク140、141及び142が動作するコンピュータシステムである。コンピュータシステム100は、ハードウェア資源であるCPU110と、CPU110上で動作するソフトウェア資源であるタスク切替え部120とを備える。ここでタスクとは、CPU上での処理の実行単位を表す。また、仮想メモリ管理機能を備えたOSでは、複数のタスクがアドレス空間を共有することが可能であり、これらのタスクの集まりをタスク群と呼ぶ。
タスク切替え部120は、複数のタスク140、141及び142の切替えを行う。タスク切替え部120は、第1コンピュータ資源取得部121と、第2コンピュータ資源取得部122と、タスク切替え判定部123と、ディスパッチャ124と、タスク起床要求検知部125とを備える。
タスク起床要求検知部125は、タスク140、141及び142の起床要求を検知する。
第1コンピュータ資源取得部121は、コンピュータシステム100のコンピュータ資源のうち、使用中のコンピュータ資源の情報を取得する。第2コンピュータ資源取得部122は、タスク起床要求検知部125により起床要求が検知されたタスクの実行に必要なコンピュータ資源の情報を取得する。ここで、コンピュータ資源とは、メモリ管理構造体及びランキュー等である。
タスク切替え判定部123は、第1コンピュータ資源取得部121が取得した使用中のコンピュータ資源の情報と、第2コンピュータ資源取得部122が取得した起床要求が検知されたタスクの実行に必要なコンピュータ資源の情報とに基づき、起床要求が検知されたタスクへのタスク切替えが可能であるか否かを判定する。
ディスパッチャ124は、タスク切替え判定部123がタスク切替え可能と判定した場合に、タスク起床要求検知部125により起床要求が検知されたタスクへのタスク切替えを行う。
次に、コンピュータシステム100の動作を説明する。
図2は、コンピュータシステム100のタスク切替え処理の流れを示すフローチャートである。
図2に示すように、まず、タスク起床要求検知部125は、タスクの起床要求を検知する(S101)。以下、タスク140の起床要求が検知された場合を例に説明する。タスク起床要求検知部125がタスク140の起床要求を検知した場合(S101でYes)、第1コンピュータ資源取得部121は、コンピュータシステム100が現在、使用中のコンピュータ資源の情報を取得する(S102)。次に、第2コンピュータ資源取得部122は、タスク140の実行に必要なコンピュータ資源の情報を取得する(S103)。
次に、タスク切替え判定部123は、第1コンピュータ資源取得部121が取得した使用中のコンピュータ資源の情報と、第2コンピュータ資源取得部122が取得したタスク140の実行に必要なコンピュータ資源の情報とに基づき、起床要求が検知されたタスク140へのタスク切替えが可能であるか否かを判定する(S104)。タスク切替え判定部123は、起床要求が検知されたタスク140の実行に必要なコンピュータ資源の全てが使用中でない場合に、起床要求が検知されたタスク140へのタスク切替えが可能であると判定する(S104でYes)。また、タスク切替え判定部123は、起床要求が検知されたタスク140の実行に必要なコンピュータ資源のうちいずれか1以上が使用中の場合、タスク切替えが不可であると判定する(S104でNo)。タスク切替えが可能であると判定された場合(S104でYes)、ディスパッチャ124は、ステップS101で起床要求が検知されたタスク140にタスクを切替える(S105)。一方、タスク切替え判定部123によりタスク切替えが不可であると判定された場合(S104でNo)、ディスパッチャ124は、タスク切替えを行わない。
以上より、本発明の実施の形態1に係るコンピュータシステム100は、現在使用中のコンピュータ資源と、起床要求が検知されたタスクの実行に必要なコンピュータ資源の情報とに基づき、タスクの切替えが可能であるか否かを判定する。よって、実行されるタスクに最小限必要なコンピュータ資源が使用中でない場合に、タスク切替えを行うことができる。これにより、コンピュータシステムが安定して切替えを行える全ての資源が使用中でない場合にのみタスク切替えを行う従来のコンピュータシステムに比べて、より多くの状況でタスク切替えを行うことができる。よって、本発明の実施の形態1に係るコンピュータシステム100は、タスク応答性能が高いコンピュータシステムを実現することができる。
なお、上記説明において、使用中の資源の取得(S102)の後に、タスクに必要な資源の取得(S103)が行われているが、タスクに必要な資源の取得(S103)の後に、使用中の資源の取得(S102)を行ってもよい。また、使用中の資源の取得(S102)とタスクに必要な資源の取得(S103)とに含まれる全ての処理又は一部の処理を同時に行ってもよい。
(実施の形態2)
本発明の実施の形態2は、本発明を単一のOS上で動作する制限タスクのタスク切替えに適用した実施例について説明する。
まず、本発明の実施の形態2に係るコンピュータシステムの構成を説明する。
図3は、本発明の実施の形態2に係るコンピュータシステムの構成を示す図である。
図3に示すコンピュータシステム200は、通常タスク群240と、制限タスク群250とが動作するコンピュータシステムである。コンピュータシステム200は、ハードウェア資源であるCPU210と、CPU210上で動作するソフトウェア資源であるOS220及びOS拡張部230とを備える。コンピュータシステム200は、OS220の制御の下で通常タスク群240及び制限タスク群250に含まれる複数のタスクを実行する。
通常タスク群240は、複数の通常タスク241及び242を含む。制限タスク群250は、複数の制限タスク251及び252を含む。通常タスク241及び242は、OS220上で動作し、OS220のコンピュータ資源(以下、「OS資源」と記す。)の全てを使用するタスクである。制限タスク251及び252は、OS220上で動作し、OS220の資源のうち一部のみを使用するタスクである。
OS220は、ディスパッチャ221と、タスク起床要求検知部222とを備える。OS拡張部230は、第1OS資源取得部231と、第2OS資源取得部232と、タスク切替え判定部233と、複数の制限タスク資源表234とを備える。
複数の制限タスク資源表234は、複数の制限タスク251及び252に一対一に対応する。制限タスク資源表234は、対応する制限タスク251及び252の実行に必要なOS資源の情報が記載されている。
タスク起床要求検知部222は、制限タスク251及び252の起床要求を検知する。
第1OS資源取得部231は、OS220のコンピュータ資源のうち、使用中のOS資源の情報を取得する。第2OS資源取得部232は、タスク起床要求検知部222により起床要求が検知された制限タスクに対応する制限タスク資源表234を参照し、起床要求が検知された制限タスクの実行に必要なOS資源の情報を取得する。ここで、OS資源とは、メモリ管理構造体及びランキュー等である。
タスク切替え判定部233は、第1OS資源取得部231が取得した使用中のOS資源の情報と、第2OS資源取得部232が取得した起床要求が検知された制限タスクの実行に必要なOS資源の情報とに基づき、起床要求が検知された制限タスクへのタスク切替えが可能であるか否かを判定する。
ディスパッチャ221は、タスク切替え判定部233がタスク切替え可能と判定した場合に、タスク起床要求検知部222により起床要求が検知された制限タスクへのタスク切替えを行う。
次に、コンピュータシステム200の動作を説明する。
図4は、コンピュータシステム200のタスク切替え処理の流れを示すフローチャートである。
図4に示すように、まず、タスク起床要求検知部222は、制限タスクの起床要求を検知する(S201)。以下、制限タスク251の起床要求が検知された場合を例に説明する。タスク起床要求検知部222が制限タスク251の起床要求を検知した場合(S201でYes)、タスク起床要求検知部222は、検知したタスクが制限タスクであるか否かを判定する(S202)。検知したタスクは、制限タスクなので(S202でYes)、次に、第1OS資源取得部231は、OS220が現在、使用中のOS資源の情報を取得する(S203)。次に、第2OS資源取得部232は、制限タスク251に対応する制限タスク資源表234を参照し、制限タスク251の実行に必要なOS資源の情報を取得する(S204)。
次に、タスク切替え判定部233は、第1OS資源取得部231が取得した使用中のOS資源の情報と、第2OS資源取得部232が取得した制限タスク251の実行に必要なOS資源の情報とに基づき、起床要求が検知された制限タスク251へのタスク切替えが可能であるか否かを判定する(S205)。タスク切替え判定部233は、起床要求が検知された制限タスク251の実行に必要なOS資源の全てが使用中でない場合に、起床要求が検知された制限タスク251へのタスク切替えが可能であると判定する(S205でYes)。また、タスク切替え判定部233は、起床要求が検知された制限タスク251の実行に必要なOS資源のうちいずれか1以上が使用中の場合、タスク切替えが不可であると判定する(S205でNo)。タスク切替えが可能であると判定された場合(S205でYes)、ディスパッチャ221は、ステップS201で起床要求が検知された制限タスク251にタスクを切替える(S206)。一方、タスク切替え判定部233によりタスク切替えが不可であると判定された場合(S205でNo)、ディスパッチャ221は、タスク切替えを行わない。
次に、通常タスク241の起床要求が検知された場合を例に説明する。
タスク起床要求検知部222が通常タスク241の起床要求を検知した場合(S201でYes)、検知したタスクは、通常タスクなので(S202でNo)、次に、タスク切替え判定部233は、通常タスク241に切替え可能であるか否かを判定する(S207)。例えば、使用中の資源に応じて、OS上で切替え可能状態であるか否かが規定されており、切替え可能状態の場合に、タスク切替え判定部233は、タスク切替え可能と判定する。具体的には、タスクの全てに安定して切替えを行うために複数の資源が指定されており、指定されている全ての資源が使用中でない場合には切替え可能と判定される。また、割込み処理を実行中には、切替え不可と判定される。
タスク切替え判定部233がタスク切替え可能と判定した場合には(S207でYes)、通常タスク241にタスクが切替えられる(S208)。また、タスク切替え判定部233がタスク切替え不可と判定した場合には(S207でNo)、タスク切替えは行われない。
以上より、本発明の実施の形態2に係るコンピュータシステム200は、現在使用中のOS資源と、起床要求が検知された制限タスクの実行に必要なOS資源の情報とに基づき、制限タスクへのタスクの切替えが可能であるか否かを判定する。よって、実行される制限タスクに最小限必要なOS資源が使用中でない場合に、タスク切替えを行うことができる。よって、コンピュータシステムが安定して切替えを行える全ての資源が使用中でない場合にのみタスク切替えを行う従来のコンピュータシステムに比べて、より多くの状況でタスク切替えを行うことができる。よって、本発明の実施の形態2に係るコンピュータシステム200は、タスク応答性能が高いコンピュータシステムを実現することができる。
なお、上記説明において、使用中の資源の取得(S203)の後に、タスクに必要な資源の取得(S204)が行われているが、タスクに必要な資源の取得(S204)の後に、使用中の資源の取得(S203)を行ってもよい。また、使用中の資源の取得(S203)に含まれる全て又は一部の処理と、タスクに必要な資源の取得(S204)に含まれる全ての処理又は一部の処理とを同時に行ってもよい。
また、起床要求が検知されたタスクが制限タスクの場合(S202でYes)に、ステップS207と同様の切替え可能判定を行ってもよい。この場合、切替え可能と判定された場合には、ステップS203、S204及びS205の処理を行わずタスク切替え(S206)を実行し、切替え不可と判定された場合に、ステップS203以降の処理を行えばよい。これにより、ステップS207と同様の切替え判定で切替え可能と判定された場合の処理量を低減することができる。さらに、ステップS207と同様の切替え判定は、制限タスクであるか否かの判定(S202)の前に行ってもよい。
(実施の形態3)
本発明の実施の形態3では、本発明をホストOS上で動作するゲストOSタスクのタスク切替えに適用した実施例について説明する。
まず、本発明の実施の形態3に係るコンピュータシステムの構成を説明する。
図5は、本発明の実施の形態3に係るコンピュータシステムの構成を示す図である。
図5に示すコンピュータシステム300は、ホストOSタスク群360と、ゲストOSタスク群370とが動作するコンピュータシステムである。コンピュータシステム300は、ハードウェア資源であるCPU310と、CPU310上で動作するソフトウェア資源であるホストOS320、ホストOS拡張部330及びゲストOS350とを備える。ホストOSは、例えば、汎用OSである。ゲストOS350は、ホストOS320上の1以上のタスクとして動作するOSであり、例えば、リアルタイムOSである。コンピュータシステム300は、ホストOS320とゲストOS350との制御の下でホストOSタスク群360及びゲストOSタスク群370に含まれる複数のタスクを実行する。
ホストOSタスク群360は、複数のホストOSタスク361、362及び363を含む。ホストOSタスク361、362及び363は、ホストOS320上で動作するタスクである。ゲストOSタスク群370は、複数の特権ゲストOSタスク371と、複数の非特権ゲストOSタスク372とを含む。特権ゲストOSタスク371及び非特権ゲストOSタスク372は、ホストOS320上のタスクとして動作するゲストOS350上のタスクである。また、特権ゲストOSタスク371は、非特権ゲストOSタスク372より高い優先度で実行されるタスクである。
ホストOS320は、ディスパッチャ321と、タスク起床要求検知部322と、ホストOS環境323と、割込み資源表324とを備える。ホストOS拡張部330は、第1ホストOS資源取得部331と、第2ホストOS資源取得部332と、タスク切替え判定部333と、ホストOS環境退避部334と、ホストOS環境保持部335と、ホストOS環境復帰部336と、変更要求取得部337と、ホストOS環境変更部338と、第3ホストOS資源取得部339と、割込み禁止部340と、優先度制御部341とを備える。ゲストOS350は、複数のゲストOSタスク資源表351を備える。
複数のゲストOSタスク資源表351は、複数の特権ゲストOSタスク371に一対一に対応する。ゲストOSタスク資源表351は、対応する特権ゲストOSタスク371の実行に必要なOS資源の情報が記載されている。
割込み資源表324は、ホストOS320の割込みハンドラ(割込み処理)の実行に必要なOS資源の情報が記載されている。
タスク起床要求検知部322は、特権ゲストOSタスク371の起床要求を検知する。
第1ホストOS資源取得部331は、ホストOS320のコンピュータ資源のうち、使用中のOS資源の情報を取得する。また、第1ホストOS資源取得部331は、後述するタスク切替え判定部333により、起床要求が検知された特権ゲストOSタスクに切替え不可であると判定された場合に、使用中のOS資源が解放されたことを検出する。さらに、第1ホストOS資源取得部331は、使用中のOS資源が解放されたと検出された場合に、OSのコンピュータ資源のうち、ホストOS320のコンピュータ資源のうち、使用中のOS資源の情報を再度取得する。
第2ホストOS資源取得部332は、タスク起床要求検知部322により起床要求が検知された特権ゲストOSタスクに対応するゲストOSタスク資源表351を参照し、起床要求が検知された特権ゲストOSタスクの実行に必要なOS資源の情報を取得する。
第3ホストOS資源取得部339は、割込み資源表324を参照し、ホストOS320の割込みハンドラの実行に必要なOS資源の情報を取得する。ここで、OS資源とは、メモリ管理構造体及びランキュー等である。
タスク切替え判定部333は、第1ホストOS資源取得部331が取得した使用中のOS資源の情報と、第2ホストOS資源取得部332が取得した起床要求が検知された特権ゲストOSタスクの実行に必要なOS資源の情報とに基づき、起床要求が検知された特権ゲストOSタスクへのタスク切替えが可能であるか否かを判定する。具体的には、タスク切替え判定部333は、タスク起床要求検知部322により起床要求を検知された特権ゲストOSタスクが使用するOS資源の全てが、使用中でない場合に、特権ゲストOSタスクに切替え可能であると判定する。
また、タスク切替え判定部333は、第1ホストOS資源取得部331が取得した使用中のOS資源の情報と、第3ホストOS資源取得部339が取得した割込みハンドラの実行に必要なOS資源の情報とから、起床要求が検知された特権ゲストOSタスクの実行中に、割込みハンドラの実行が可能であるか否かを判定する。具体的には、タスク切替え判定部333は、第1ホストOS資源取得部331が取得した使用中のOS資源の情報と、第3ホストOS資源取得部339が取得した割込みハンドラの実行に必要なOS資源の情報とから、割込みハンドラの実行に必要なOS資源の少なくとも一部が使用中であるか否かを判定する。タスク切替え判定部333は、割込みハンドラの実行に必要なOS資源の少なくとも一部が使用中である場合に、特権ゲストOSタスクの実行中の割込みハンドラの実行が不可であると判定する。タスク切替え判定部333は、割込みハンドラの実行に必要なOS資源の全てが使用中でない場合に、特権ゲストOSタスクの実行中の割込みハンドラの実行が可能であると判定する。
ディスパッチャ321は、タスク切替え判定部333がタスク切替え可能と判定した場合に、起床要求が検知された特権ゲストOSタスクへのタスク切替えを行う。
ホストOS環境323は、ホストOSの環境の情報であり、例えば、ディスパッチャ321が特権ゲストOSタスクにタスクを切替える前に実行されていたホストOSタスクの優先度、実行されていたホストOSタスクの実行状態(Running又はWait)、及びスケジューリングポリシー等である。ここで、スケジューリングポリシーとは、タスクの実行順序を決定するルールであり、例えば、優先度の高いタスクから実行する、又は、所定の時間毎に決められた順序でタスクを実行する等である。
ホストOS環境退避部334は、タスク切替え判定部333が、起床要求が検知された特権ゲストOSタスクに切替え可能であると判定し、ディスパッチャ321が特権ゲストOSタスクにタスク切替える際に、ホストOS環境323を取得する。ホストOS環境保持部335は、ホストOS環境退避部334が取得したホストOS環境323を保持する。
ホストOS環境復帰部336は、特権ゲストOSタスクが終了後の、特権ゲストOSタスクにタスクを切替える前に実行されていたホストOSタスクに復帰する際に、ホストOS環境保持部335が保持するホストOS環境をホストOS320に復帰させる。
変更要求取得部337は、特権ゲストOSタスクの実行中に、特権ゲストOSタスクにタスクを切替える前に実行されていたホストOSタスクの状態(優先度及び実行状態)を変更する要求を取得する。ホストOS環境変更部338は、変更要求取得部337が取得した変更要求に基づき、ホストOS環境保持部335が保持するホストOS環境(ホストOSタスクの状態)を変更する。
割込み禁止部340は、タスク切替え判定部333により、起床要求が検知された特権ゲストOSタスクの実行中に、割込みハンドラの実行が不可と判定された場合に、割込みを禁止する。
優先度制御部341は、ディスパッチャ321が特権ゲストOSタスクにタスク切替えする際に、タスクを切替える前に実行されていたホストOSタスクの優先度を、複数のホストOSタスクのうちの最も高い優先度に変更する。ここで、優先度とは、タスクの実行順序を決定する値である。
次に、コンピュータシステム300の動作を説明する。
図6は、コンピュータシステム300のタスク切替え処理の流れを示すフローチャートである。
図6に示すように、まず、タスク起床要求検知部322は、特権ゲストOSタスクの起床要求を検知する(S301)。以下、特権ゲストOSタスク371の起床要求が検知された場合を例に説明する。また、特権ゲストOSタスク371の起床要求が検知された際に、ホストOSタスク361が実行されているとする。タスク起床要求検知部322が特権ゲストOSタスク371の起床要求を検知した場合(S301でYes)、タスク起床要求検知部322は、検知したタスクが特権ゲストOSタスクであるか否かを判定する(S302)。検知したタスクは、特権ゲストOSタスクなので(S302でYes)、次に、タスク切替え判定部333は、タスク切替え可能であるか否かを判定する(S303)。例えば、使用中の資源に応じて、OS上で切替え可能状態であるか否かが規定されており、切替え可能状態の場合に、タスク切替え判定部333は、タスク切替え可能と判定する。具体的には、タスクの全てに安定して切替えを行うために複数の資源が指定されており、指定されている全ての資源が使用中でない場合には切替え可能と判定される。また、割込み処理を実行中には、切替え不可と判定される。
タスク切替え判定部333がタスク切替え不可と判定した場合には(S303でNo)、次に、第1ホストOS資源取得部331は、ホストOS320が現在、使用中のOS資源の情報を取得する(S304)。次に、第2ホストOS資源取得部332は、特権ゲストOSタスク371に対応するゲストOSタスク資源表351を参照し、特権ゲストOSタスク371の実行に必要なOS資源の情報を取得する(S305)。
次に、タスク切替え判定部333は、第1ホストOS資源取得部331が取得した使用中のOS資源の情報と、第2ホストOS資源取得部332が取得した特権ゲストOSタスク371の実行に必要なOS資源の情報とに基づき、起床要求が検知された特権ゲストOSタスク371へのタスク切替えが可能であるか否かを判定する(S306)。タスク切替え判定部333は、起床要求が検知された特権ゲストOSタスク371の実行に必要なOS資源の全てが使用中でない場合に、起床要求が検知された特権ゲストOSタスク371へのタスク切替えが可能であると判定する(S306でYes)。また、タスク切替え判定部333は、起床要求が検知された特権ゲストOSタスク371の実行に必要なOS資源のうちいずれか1以上が使用中の場合、タスク切替えが不可であると判定する(S306でNo)。
ステップS306においてタスク切替えが不可であると判定された場合(S306でNo)、第1ホストOS資源取得部331は、使用されているOS資源が変更されたか否かを監視する(S307)。使用されているOS資源が変更された場合(S307でYes)、第1ホストOS資源取得部331は、変更後の使用されているOS資源の情報を取得する(S308)。タスク切替え判定部333は、ステップS308で第1ホストOS資源取得部331が取得した使用中のOS資源の情報と、ステップS305で第2ホストOS資源取得部332が取得した特権ゲストOSタスク371の実行に必要なOS資源の情報とに基づき、特権ゲストOSタスク371へのタスク切替えが可能であるか否かを判定する(S306)。タスク切替えが不可であると判定された場合(S306でNo)、再度、ステップS307、S308及びS306が行われ、ステップS306でタスク切替えが可能であると判定されるまで、ステップS307、S308及びS306の処理が繰り返される。すなわち、第1ホストOS資源取得部331は、ステップS306において特権ゲストOSタスクに切替え不可であると判定された場合(S306でNo)に、使用中のOS資源が解放されたことを検出し、使用中のOS資源が解放されたと検出された場合に、使用中のOS資源の情報を再度取得する。タスク切替え判定部333は、ステップS308において取得した使用中のOS資源の情報と、ステップS305において第2ホストOS資源取得部332が取得した特権ゲストOSタスク371の実行に必要なOS資源の情報とに基づき、特権ゲストOSタスク371へのタスク切替えが可能であるか否かを再度判定する。
このように、本発明の実施の形態3に係るコンピュータシステムは、特権ゲストOSタスクの実行に必要なOS資源が使用中であり、タスク切替えが不可の場合には、OS資源の使用状況を監視し、特権ゲストOSタスクの実行に必要なOS資源が解放された時点で、タスク切替えを行う。よって、特権ゲストOSタスクの実行に必要なOS資源が使用中であり、タスク切替えが不可の場合のタスク応答性を向上させることができる。
ステップS306においてタスク切替えが可能であると判定された場合(S306でYes)、第3ホストOS資源取得部339は、割込み資源表324を参照し、ホストOSの割込みハンドラが使用するOS資源の情報を取得する(S309)。次に、タスク切替え判定部333は、第3ホストOS資源取得部339が取得した割込みハンドラが使用するOS資源の情報と、第1ホストOS資源取得部331が取得した使用中のOS資源の情報とから、特権ゲストOSタスク実行中に、割込みハンドラの実行が可能であるか否かを判定する(S310)。具体的には、タスク切替え判定部333は、割込みハンドラの実行に必要なOS資源の全てが使用中でない場合に、割込みハンドラの実行が可能であると判定する(S310でYes)。また、タスク切替え判定部333は、割込みハンドラの実行に必要なOS資源のうちいずれか1以上が使用中の場合、割込みハンドラの実行が不可であると判定する(S310でNo)。割込みハンドラの実行が不可の場合(S310でNo)、割込み禁止部340は、特権ゲストOSタスク371の実行中の割込みを禁止する(S311)。例えば、割込み禁止部340は、ホストOSの割込みマスクのレベルを引き上げることで、特権ゲストOSタスク371の実行中の割込みを禁止する。
このように、本発明の実施の形態3に係るコンピュータシステム300は、割込みハンドラに使用されるOS資源が使用中の場合には、特権ゲストOSタスク371の実行中の割込みを禁止する。これにより、特権ゲストOSタスク371の実行中に割込みが発生した場合の、割込みによる誤動作の発生等を防止することができる。
ステップS310において割込みハンドラの実行が可能と判定された場合(S310でYes)、及び割込み禁止処理(S311)の後、ホストOS環境退避部334は、現在のホストOS320のホストOS環境323を取得し、ホストOS環境保持部335に保持する(S312)。
次に、ディスパッチャ321は、ステップS301で起床要求が検知された特権ゲストOSタスク371にタスクを切替える(S313)。次に、優先度制御部341は、実行されていたタスクであるホストOSタスク361の優先度を変更する(S314)。
図7は、ホストOSタスク361、362、363、特権ゲストOSタスク371及び非特権ゲストOSタスク372の優先度の関係を模式的に示す図である。
図7に示すように、複数の特権ゲストOSタスク371の優先度が最も高く、次に、複数の非特権ゲストOSタスク372の優先度が高く、複数のホストOSタスク361、362及び363の優先度が最も低い。また、複数の特権ゲストOSタスク371の優先度と、複数の非特権ゲストOSタスク372の優先度との間に、予約優先度380が設けられる。
図8は、優先度制御部341によるタスク切替え前に実行されていたホストOSタスクの優先度の変更例を示す図である。図8に示すように、優先度制御部341は、ステップS314において、ホストOSタスク361の優先度を、予約優先度380に引き上げる。
このように、本発明の実施の形態3に係るコンピュータシステム300は、特権ゲストOSタスク371へのタスク切替えの際に、タスク切替え前に実行されていたホストOSタスク361(又は、非特権ゲストOSタスク)の優先度を、特権ゲストOSタスク以外のタスク(ホストOSタスク及び非特権ゲストOSタスク)の中で最も高い優先度に変更する。これにより、特権ゲストOSタスク371の終了後には、特権ゲストOSタスク以外のタスク(ホストOSタスク及び非特権ゲストOSタスク)の中で最後に実行されていたタスクに自動的にタスクが切替えられる。すなわち、優先度を変更することで、既存のホストOSの機能を改良(例えば、スケジューラの改良)することなく、自動的にタスク切替え前に実行されていたホストOSタスク361を実行することができる。また、ホストOS環境退避部334が、ホストOS320のホストOS環境323を退避後、ホスト優先度制御部341は、タスク切替え前に実行されていたホストOSタスク361の実行状態が待機中(Wait)の場合には、実行状態を実行中(Running)に変更する。これにより、特権ゲストOSタスク371へのタスク切替え時のホストOSタスク361の実行状態が待機中の場合の、特権ゲストOSタスク371のタスク実行完了後にホストOSタスク361の実行が再開されないという誤動作の発生を防止することができる。
優先度制御部341による優先度変更(S314)の後、特権ゲストOSタスク371が実行される(S315)。特権ゲストOSタスク371の終了後、ディスパッチャ321は、タスク切替え前に実行されていたホストOSタスク361にタスクを切替える。次に、ホストOS環境復帰部336は、ホストOS環境保持部335が保持しているホストOS環境を復帰させる(S316)。このように、ホストOSタスク361の実行中に特権ゲストOSタスク371に切替え、ゲストOSタスク終了後にホストOSタスクを復帰させる場合に、特権ゲストOSタスク371に切替える前のホストOS環境を復帰させる。よって、特権ゲストOSタスク371の実行の前後におけるホストOS環境の整合性を確保することができる。
また、図8に示すように、優先度制御部341は、ホストOSタスク361にタスク切替えが行われる際に、ホストOS環境保持部335に保持されているホストOSタスク361の元の優先度を参照し、ホストOSタスク361の優先度を予約優先度380から元の優先度に変更する。
一方、ステップS303において、タスク切替えが可能であると判定された場合(S303でYes)、上述したS304〜S316の処理は行われず、特権ゲストOSタスク371にタスク切替えが行われる(S318)。このように、ホストOS320がタスク切替え可能な状態にある場合には、上述したS304〜S316の処理を行わないことで、ホストOS320がタスク切替え可能な状態の場合の、処理量を低減することができる。
次に、ホストOSタスク363の起床要求が検知された場合を例に説明する。
タスク起床要求検知部322がホストOSタスク363の起床要求を検知した場合(S301でYes)、検知したタスクは、通常タスクなので(S302でNo)、次に、タスク切替え判定部333は、ホストOSタスク363に切替え可能であるか否かを判定する(S317)。例えば、使用中の資源に応じて、OS上で切替え可能状態であるか否かが規定されており、切替え可能状態の場合に、タスク切替え判定部333は、タスク切替え可能と判定する。具体的には、タスクの全てに安定して切替えを行うために複数の資源が指定されており、指定されている全ての資源が使用中でない場合には切替え可能と判定される。また、割込み処理を実行中には、切替え不可と判定される。
タスク切替え判定部333がタスク切替え可能と判定した場合には(S317でYes)、ホストOSタスク363にタスクが切替えられる(S318)。また、タスク切替え判定部333がタスク切替え不可と判定した場合には(S317でNo)、タスク切替は行われない。なお、非特権ゲストOSタスク372の起床要求が検知された場合の処理は、ホストOSタスク363の起床要求が検知された場合の処理と同様である。
次に、図6のステップS315中に、特権ゲストOSタスク371にタスク切替え前に実行されていたホストOSタスク361の状態変更を行う動作を説明する。
図9は、特権ゲストOSタスク371の実行中における、コンピュータシステム300のホストOSタスク361の状態変更の処理の流れを示すフローチャートである。図9に示すように、変更要求取得部337は、ステップS313において切替えられた特権ゲストOSタスク371の実行中に、タスク切替え前に実行されていたホストOSタスク361の状態変更の要求を監視する(S401)。変更要求取得部337が変更要求を取得した場合(S401でYes)、ホストOS環境変更部338は、変更要求取得部337が取得した変更要求に基づき、ホストOS環境保持部335が保持しているホストOS環境を変更する(S402)。変更したホストOS環境は、上述したステップS316において、ホストOS環境復帰部336により復帰される。ここで、変更要求取得部337が取得する変更要求は、特権ゲストOSタスク371から発生するホストOSタスク361の実行状態変更要求及び優先度変更要求、又は、特権ゲストOSタスク371の動作中の割込みにより発生するホストOSタスク361の実行状態変更要求及び優先度変更要求等である。
このように、本発明の実施の形態3に係るコンピュータシステム300は、特権ゲストOSタスク371の実行中に、タスク切替え前に実行されていたホストOSタスク361に対する状態(優先度及び実行状態等)の変更要求が発生した場合に、ホストOS環境保持部335が保持しているホストOS環境を変更する。これにより、復帰後のホストOSタスク361の状態を変更することができ、コンピュータシステム300の整合性を維持することができる。
以上より、本発明の実施の形態3に係るコンピュータシステム300は、現在使用中のOS資源と、起床要求が検知された特権ゲストOSタスクの実行に必要なOS資源の情報とに基づき、特権ゲストOSタスクの切替えが可能であるか否かを判定する。よって、実行される特権ゲストOSタスクに最小限必要なOS資源が使用中でない場合に、タスク切替えを行うことができる。これにより、コンピュータシステムが安定して切替えを行える全ての資源が使用中でない場合にのみタスク切替えを行う従来のコンピュータシステムに比べて、より多くの状況でタスク切替えを行うことができる。よって、本発明の実施の形態3に係るコンピュータシステム300は、タスク応答性能が高いコンピュータシステムを実現することができる。
なお、上記説明において、ステップS310で割込みハンドラの実行が不可の場合(S310でNo)、割込み禁止部340は、特権ゲストOSタスク371の実行中の割込みを禁止する(S311)としたが、割込みハンドラの実行が不可の場合(S310でNo)に、割込みハンドラに必要なOS資源が解放された時点で、タスク切替え判定部333は、タスク切替え可能と判定してもよい。以下、本発明の実施の形態3に係るコンピュータシステム300の変形例であり、割込みハンドラに必要なOS資源が解放された時点でタスク切替え可能と判定するコンピュータシステムの動作について説明する。
図10は、本発明の実施の形態3に係るコンピュータシステム300のタスク切替え処理の変形例の流れを示すフローチャートである。図10に示すように、割込みハンドラの実行が不可と判定された場合(S310でNo)、第1ホストOS資源取得部331は、使用されているOS資源が変更されたか否かを監視する(S319)。使用されているOS資源が変更された場合(S319でYes)、第1ホストOS資源取得部331は、変更後の使用されているOS資源の情報を取得する(S320)。タスク切替え判定部333は、ステップS320で第1ホストOS資源取得部331が取得した使用中のOS資源の情報と、ステップS309で第3ホストOS資源取得部339が取得した割込みハンドラの実行に必要なOS資源の情報とに基づき、特権ゲストOSタスク実行中に、割込みハンドラの実行が可能であるか否かを判定する(S310)。割込みハンドラの実行が不可である判定された場合(S310でNo)、再度、ステップS319、S320及びS310が行われ、ステップS310で割込みハンドラの実行が可能であると判定されるまで、ステップS319、S320及びS310の処理が繰り返される。すなわち、第1ホストOS資源取得部331は、ステップS310において割込みハンドラの実行が不可であると判定された場合(S310でNo)に、使用中のOS資源が解放されたことを検出し、使用中のOS資源が解放されたと検出された場合に、使用中のOS資源の情報を再度取得する。タスク切替え判定部333は、ステップS320において取得した使用中のOS資源の情報と、ステップS309において第3ホストOS資源取得部339が取得した割込みハンドラの実行に必要なOS資源の情報とに基づき、特権ゲストOSタスク371の実行中の割込みハンドラの実行が可能であるか否かを再度判定する。ディスパッチャ321は、ステップS303において切替え可能であると判定され、かつステップS310において割込みハンドラの実行が可能であると判定された場合に、特権ゲストOSタスク371にタスクを切替える。
ここで、図6に示すように、特権ゲストOSタスクの実行中に割込みハンドラの実行が不可の場合に、割込みを禁止することで、特権ゲストOSタスクに対するタスク応答性を向上させることができる。一方、図10に示すように、特権ゲストOSタスクの実行中に割込みハンドラの実行が不可の場合に、割込みハンドラの実行に必要なOS資源が解放された時点で、特権ゲストOSタスクへの切替えを行うことで、割込みに対する応答性を向上させることができる。
また、上記説明において、ステップS314で、実行されていたタスクであるホストOSタスク361の優先度を変更することで、特権ゲストOSタスクの終了後に、自動的にホストOSタスク361を実行するとしたが、以下の処理を行ってもよい。
図11は、本発明の実施の形態3に係るコンピュータシステムの変形例の構成を示す図である。図11に示すコンピュータシステム400は、図5に示すコンピュータシステム300に対して、ホストOS拡張部330が優先度制御部341の代わりに、タスク検知部401を備える点が異なる。なお、図5と同様の要素には同一の符号を付しており、詳細な説明は省略する。タスク検知部401は、特権ゲストOSタスクの終了時に、実行可能な特権ゲストOSタスクが存在するか否かを検知する。すなわち、タスク検知部401は、複数の特権ゲストOSタスク371のうち1以上が実行可能状態であるか否かを判定する。
図12は、コンピュータシステム400のタスク切替え処理の流れを示すフローチャートである。図12に示すように、特権ゲストOSタスク371へのタスク切替え(S313)の後、優先度変更(S314)を行わず特権ゲストOSタスクが実行される(S315)。特権ゲストOSタスク371の終了後(ステップS315の後)、タスク検知部401は、実行可能な特権ゲストOSタスクが存在するか否かを検知する(S410)。実行可能な特権ゲストOSタスクが検知された場合(S410でYes)、ディスパッチャ321は、検知された特権ゲストOSタスクにタスクを切替え、検知された特権ゲストOSタスクが実行される(S411)。検知された特権ゲストOSタスクの終了後、タスク検知部401は、実行可能な特権ゲストOSタスクが存在するか否かを検知する(S410)。実行可能な特権ゲストOSタスクが検知されなかった場合(S410でNo)、ホストOS環境復帰部336は、ホストOS環境保持部335に保持されているホストOS環境を復帰させる(S316)。ホストOS環境の復帰後、ディスパッチャ321は、強制的にタスク切替え前に実行されていたホストOSタスク361にタスクを切替える。以上の処理により、特権ゲストOSタスクの終了後に、タスク切替え前に実行されていたホストOSタスク361を実行することができる。なお、図12に示す処理を行うためには、タスク検知部401を設ける必要がある。タスク検知部401による処理は、例えば、スケジューラを改良することで行うことができる。よって、上述した図6に示す優先度変更処理を行う場合には、スケジューラ等の改良を行わずに実施することができ、実施が容易であるという利点がある。一方、図12に示す処理では、スケジューラ等の改良は必要であるが、処理を単純化でき制御が容易になるという利点がある。
また、上記説明において、使用中の資源の取得(S304)の後に、タスクに必要な資源の取得(S305)が行われているが、タスクに必要な資源の取得(S305)の後に、使用中の資源の取得(S304)を行ってもよい。また、使用中の資源の取得(S304)に含まれる全て又は一部の処理と、タスクに必要な資源の取得(S305)に含まれる全ての処理又は一部の処理とを同時に行ってもよい。
また、ステップS303及びS317の切替え判定は、特権ゲストOSタスクであるか否かの判定(S302)の前に行ってもよい。
また、上記説明において、ステップS305〜S308の処理(特権ゲストOSタスクに必要なOS資源が使用中であるか否かの判定処理)の後に、ステップS309〜S311の処理(割込みハンドラの実行に必要なOS資源が使用中であるか否かの判定処理)を行っているが、ステップS309〜S311の処理の後に、ステップS305〜S308の処理を行ってもよい。また、ステップS305〜S308の処理に含まれる全て又は一部の処理と、ステップS309〜311の処理に含まれる全て又は一部の処理とを同時に行ってもよい。
本発明は、複数のタスクが動作するコンピュータシステム、及びコンピュータシステムにおけるタスク切替え制御方法に適用でき、特に汎用OS上で1つ以上のタスクとしてリアルタイムOSが動作するハイブリッドOS等、及びハイブリッドOSにおけるタスク切替え制御方法に適用できる。
本発明の実施の形態1に係るコンピュータシステムの構成を示す図である。 本発明の実施の形態1に係るコンピュータシステムのタスク切替え処理の流れを示すフローチャートである。 本発明の実施の形態2に係るコンピュータシステムの構成を示す図である。 本発明の実施の形態2に係るコンピュータシステムのタスク切替え処理の流れを示すフローチャートである。 本発明の実施の形態3に係るコンピュータシステムの構成を示す図である。 本発明の実施の形態3に係るコンピュータシステムのタスク切替え処理の流れを示すフローチャートである。 本発明の実施の形態3に係るコンピュータシステムのタスクの優先度の構成を示す図である。 本発明の実施の形態3に係るコンピュータシステムのタスクの優先度変更の一例を示す図である。 本発明の実施の形態3に係るコンピュータシステムの特権ゲストOSタスクの実行中における、ホストOSタスクの状態変更の処理の流れを示すフローチャートである。 本発明の実施の形態3に係るコンピュータシステムのタスク切替え処理の変形例の流れを示すフローチャートである。 本発明の実施の形態3に係るコンピュータシステムの変形例の構成を示す図である。 本発明の実施の形態3に係るコンピュータシステムのタスク切替え処理の変形例の流れを示すフローチャートである。 従来のコンピュータシステムのタスク切替え処理の流れを示すフローチャートである。
符号の説明
100、200、300、400 コンピュータシステム
110、210、310 CPU
120 タスク切替え部
121 第1コンピュータ資源取得部
122 第2コンピュータ資源取得部
123、233、333 タスク切替え判定部
124、221、321 ディスパッチャ
125、222、322 タスク起床要求検知部
140、141、142 タスク
220 OS
230 OS拡張部
231 第1OS資源取得部
232 第2OS資源取得部
234 制限タスク資源表
240 通常タスク群
241、242 通常タスク
250 制限タスク群
251、252 制限タスク
320 ホストOS
323 ホストOS環境
324 割込み資源表
330 ホストOS拡張部
331 第1ホストOS資源取得部
332 第2ホストOS資源取得部
334 ホストOS環境退避部
335 ホストOS環境保持部
336 ホストOS環境復帰部
337 変更要求取得部
338 ホストOS環境変更部
339 第3ホストOS資源取得部
340 割込み禁止部
341 優先度制御部
350 ゲストOS
351 ゲストOSタスク資源表
360 ホストOSタスク群
361、362、363 ホストOSタスク
370 ゲストOSタスク群
371 特権ゲストOSタスク
372 非特権ゲストOSタスク
380 予約優先度
401 タスク検知部

Claims (16)

  1. 複数のタスクが動作するコンピュータシステムにおけるタスク切替え制御方法であって、
    タスクの起床要求を検知する検知ステップと、
    前記コンピュータシステムのコンピュータ資源のうち、使用中のコンピュータ資源の情報である第1資源情報を取得する第1資源取得ステップと、
    前記検知ステップにおいて起床要求が検知されたタスクの実行に必要なコンピュータ資源の情報である第2資源情報を取得する第2資源取得ステップと、
    前記第1資源取得ステップにおいて取得された前記第1資源情報と、前記第2資源取得ステップにおいて取得された前記第2資源情報とに基づき、前記検知ステップにおいて起床要求が検知されたタスクに切替え可能であるか否かを判定する第1判定ステップと、
    前記第1判定ステップにおいて切替え可能であると判定された場合に、前記検知ステップにおいて起床要求が検知されたタスクに切替える第1切替えステップとを含む
    ことを特徴とするタスク切替え制御方法。
  2. 前記コンピュータシステムは、OS(Operating System)の制御の下で前記複数のタスクを実行し、
    前記複数のタスクは、
    前記OS上で動作し、前記OSのコンピュータ資源の全てを使用する通常タスクと、
    前記OS上で動作し、前記OSのコンピュータ資源のうち一部のみを使用する制限タスクとを含み、
    前記検知ステップでは、前記制限タスクの起床要求を検知し、
    前記第1資源取得ステップでは、前記OSのコンピュータ資源のうち、使用中のコンピュータ資源の情報である第1資源情報を取得し、
    前記第2資源取得ステップでは、前記検知ステップにおいて起床要求が検知された制限タスクの実行に必要な前記OSのコンピュータ資源の情報である第2資源情報を取得し、
    前記第1判定ステップでは、前記第1資源取得ステップにおいて取得された前記第1資源情報と、前記第2資源取得ステップにおいて取得された前記第2資源情報とに基づき、前記検知ステップにおいて起床要求が検知された制限タスクに切替え可能であるか否かを判定し、
    前記第1切替えステップでは、前記第1判定ステップにおいて切替え可能であると判定された場合に、前記検知ステップにおいて起床要求が検知された制限タスクに切替える
    ことを特徴とする請求項1記載のタスク切替え制御方法。
  3. 前記コンピュータシステムは、第1のOSと、前記第1のOS上の1以上のタスクとして動作する第2のOSとの制御の下で前記複数のタスクを実行し、
    前記複数のタスクは、
    前記第1のOS上で動作するタスクであるホストOSタスクと、
    前記第1のOSをホストOSとして、前記第1のOS上のタスクとして動作する第2のOS上のタスクであるゲストOSタスクとを含み、
    前記検知ステップでは、前記ゲストOSタスクの起床要求を検知し、
    前記第1資源取得ステップでは、前記第1のOSのコンピュータ資源のうち、使用中のコンピュータ資源の情報である第1資源情報を取得し、
    前記第2資源取得ステップでは、前記検知ステップにおいて起床要求が検知されたゲストOSタスクの実行に必要な前記第1のOSのコンピュータ資源の情報である第2資源情報を取得し、
    前記第1判定ステップでは、前記第1資源取得ステップにおいて取得された前記第1資源情報と、前記第2資源取得ステップにおいて取得された前記第2資源情報とに基づき、前記検知ステップにおいて起床要求が検知されたゲストOSタスクに切替え可能であるか否かを判定し、
    前記第1切替えステップでは、前記第1判定ステップにおいて切替え可能であると判定された場合に、前記検知ステップにおいて起床要求が検知されたゲストOSタスクに切替える
    ことを特徴とする請求項1記載のタスク切替え制御方法。
  4. 前記第1判定ステップでは、前記検知ステップにおいて起床要求が検知されたゲストOSタスクが使用するコンピュータ資源の全てが、使用中でない場合に、該ゲストOSタスクに切替え可能であると判定する
    ことを特徴とする請求項3記載のタスク切替え制御方法。
  5. 前記タスク切替え制御方法は、さらに、
    前記第1判定ステップにおいて、前記検知ステップにおいて起床要求が検知されたゲストOSタスクに切替え不可であると判定された場合に、使用中の前記第1のOSのコンピュータ資源が解放されたことを検出する第1検出ステップと、
    前記第1検出ステップにおいて、使用中の前記第1のOSのコンピュータ資源が解放されたと検出された場合に、前記第1のOSのコンピュータ資源のうち、使用中の前記第1のOSのコンピュータ資源の情報である第1資源情報を再度取得する第1資源再取得ステップと、
    前記第1資源再取得ステップにおいて取得した前記第1資源情報と、前記第2資源取得ステップにおいて取得した前記第2資源情報とに基づき、前記検知ステップにおいて起床要求が検知されたゲストOSタスクに切替え可能であるか否かを判定する再判定ステップとを含む
    ことを特徴とする請求項3又は4記載のタスク切替え制御方法。
  6. 前記タスク切替え制御方法は、さらに、
    割込み処理の実行に必要な前記第1のOSのコンピュータ資源の情報である第3資源情報を取得する第3資源取得ステップと、
    前記第1資源取得ステップにおいて取得された前記第1資源情報と、前記第3資源取得ステップにおいて取得された前記第3資源情報とから、前記割込み処理の実行に必要なコンピュータ資源の少なくとも一部が使用中であるか否かを判定する第2判定ステップと、
    前記第2判定ステップにおいて使用中であると判定された場合に、割込み処理を禁止する割込み禁止ステップとを含む
    ことを特徴とする請求項3、4又は5記載のタスク切替え制御方法。
  7. 前記タスク切替え制御方法は、さらに、
    割込み処理の実行に必要な前記第1のOSのコンピュータ資源の情報である第3資源情報を取得する第3資源取得ステップと、
    前記第1資源取得ステップにおいて取得された前記第1資源情報と、前記第3資源取得ステップにおいて取得された前記第3資源情報とから、前記割込み処理の実行に必要なコンピュータ資源の少なくとも一部が使用中であるか否かを判定する第2判定ステップと、
    前記第2判定ステップにおいて使用中であると判定された場合に、使用中のコンピュータ資源が解放されたことを検出する第2検出ステップと、
    前記第2検出ステップにおいて、使用中の前記第1のOSのコンピュータ資源が解放されたと検出された場合に、前記割込み処理の実行に必要な前記第1のOSのコンピュータ資源の少なくとも一部が使用中であるか否かを再度判定する第2再判定ステップとを含み、
    前記第1切替えステップでは、前記第1判定ステップにおいて切替え可能であると判定され、かつ前記第2再判定ステップにおいて使用中でないと判定された場合に、前記検知ステップにおいて起床要求が検知されたゲストOSタスクに切替える
    ことを特徴とする請求項3、4又は5記載のタスク切替え制御方法。
  8. 前記タスク切替え制御方法は、さらに、
    前記第1判定ステップにおいて、前記検知ステップにおいて起床要求が検知されたゲストOSタスクに切替え可能であると判定された場合に、前記第1のOSの環境を保持する環境保持ステップと、
    該ゲストOSタスクの終了時に、前記環境保持ステップにおいて保持された環境を復帰する環境復帰ステップとを含む
    ことを特徴とする請求項3〜7のいずれか1項に記載のタスク切替え制御方法。
  9. 前記タスク切替え制御方法は、さらに、
    前記第1切替えステップにおいて切替えられた前記ゲストOSタスクの実行中に、前記第1切替えステップにおいてタスクを切替える前に実行されていたホストOSタスクの状態の変更要求を取得する変更要求取得ステップと、
    前記変更要求取得ステップにおいて取得した変更要求に基づき、前記環境保持ステップにおいて保持された環境を変更するタスク状態変更ステップとを含み、
    前記環境復帰ステップでは、前記タスク状態変更ステップにおいて変更された環境を復帰する
    ことを特徴とする請求項8記載のタスク切替え制御方法。
  10. 前記タスク切替え制御方法は、さらに、
    前記第1切替えステップにおいて切替えられた前記ゲストOSタスクの実行終了の後に、前記ホストOSタスクのうちで最後に実行されていたホストOSタスクに切替える第2切替えステップを含む
    ことを特徴とする請求項3〜9のいずれか1項に記載のタスク切替え制御方法。
  11. 前記タスク切替え制御方法は、さらに、
    前記複数のゲストOSタスクのうち1以上が実行可能状態であるか否かを判定するタスク判定ステップと、
    前記タスク判定ステップにおいて実行可能な状態でないと判定された場合に、前記ゲストOSタスクの実行終了の後に、前記ホストOSタスクのうちで最後に動作していたホストOSタスクに切替える第2切替えステップとを含む
    ことを特徴とする請求項3〜9のいずれか1項に記載のタスク切替え制御方法。
  12. 前記ホストOSタスク及び前記ゲストOSタスクは、それぞれタスクの実行順序を決定する優先度を有し、
    前記タスク切替え制御方法は、さらに、
    前記第1判定ステップにおいて、ゲストOS上のタスクに切替え可能であると判定された場合に、前記第1切替えステップにおいてタスクを切替える前に実行されていたホストOSタスクの優先度を、前記ホストOSタスクのうちの最も高い優先度に変更する優先度変更ステップを含む
    ことを特徴とする請求項3〜9のいずれか1項に記載のタスク切替え制御方法。
  13. 前記複数のタスクは、複数の前記ゲストOSタスクを含み、
    前記タスク切替え制御方法は、さらに、
    前記第1のOSが、前記ホストOSタスク及び前記複数のゲストOSタスクの全てにタスクを切替え可能な状態であるか否かを判定する第3判定ステップを含み、
    前記第1切替えステップでは、前記第3判定ステップにおいて切替え可能な状態であると判定された場合に、前記検知ステップにおいて起床要求が検知されたゲストOSタスクに切替え、
    前記第1判定ステップでは、前記第3判定ステップにおいて切替え不可な状態と判定された場合に、前記第1資源取得ステップにおいて取得した前記第1資源情報と、前記第2資源取得ステップにおいて取得した前記第2資源情報とに基づき、前記検知ステップにおいて起床要求が検知されたゲストOSタスクに切替え可能であるか否かを判定する
    ことを特徴とする請求項3〜12のいずれか1項に記載のタスク切替え制御方法。
  14. 複数のタスクが動作するコンピュータシステムであって、
    タスクの起床要求を検知する検知手段と、
    前記コンピュータシステムのコンピュータ資源のうち、使用中のコンピュータ資源の情報である第1資源情報を取得する第1資源取得手段と、
    前記検知手段により起床要求が検知されたタスクの実行に必要なコンピュータ資源の情報である前記第2資源情報を取得する第2資源取得手段と、
    前記第1資源取得手段が取得した前記第1資源情報と、前記第2資源取得手段が取得した第2資源情報とに基づき、前記検知手段により起床要求が検知されたタスクに切替え可能であるか否かを判定する第1判定手段と、
    前記第1判定手段が、切替え可能であると判定した場合に、前記検知手段により起床要求が検知されたタスクに切替える切替え手段とを備える
    ことを特徴とするコンピュータシステム。
  15. 複数のタスクが動作するコンピュータシステムにおけるタスク切替え制御方法のプログラムであって、
    タスクの起床要求を検知する検知ステップと、
    前記コンピュータシステムのコンピュータ資源のうち、使用中のコンピュータ資源の情報である第1資源情報を取得する第1資源取得ステップと、
    前記検知ステップにおいて起床要求が検知されたタスクの実行に必要なコンピュータ資源の情報である第2資源情報を取得する第2資源取得ステップと、
    前記第1資源取得ステップにおいて取得された前記第1資源情報と、前記第2資源取得ステップにおいて取得された前記第2資源情報とに基づき、前記検知ステップにおいて起床要求が検知されたタスクに切替え可能であるか否かを判定する第1判定ステップと、
    前記第1判定ステップにおいて切替え可能であると判定された場合に、前記検知ステップにおいて起床要求が検知されたタスクに切替える切替えステップとをコンピュータに実行させる
    ことを特徴とするプログラム。
  16. 複数のタスクが動作するコンピュータシステムにおけるタスク切替え制御方法のプログラムが記録された記録媒体であって、
    タスクの起床要求を検知する検知ステップと、
    前記コンピュータシステムのコンピュータ資源のうち、使用中のコンピュータ資源の情報である第1資源情報を取得する第1資源取得ステップと、
    前記検知ステップにおいて起床要求が検知されたタスクの実行に必要なコンピュータ資源の情報である第2資源情報を取得する第2資源取得ステップと、
    前記第1資源取得ステップにおいて取得された前記第1資源情報と、前記第2資源取得ステップにおいて取得された前記第2資源情報とに基づき、前記検知ステップにおいて起床要求が検知されたタスクに切替え可能であるか否かを判定する第1判定ステップと、
    前記第1判定ステップにおいて切替え可能であると判定された場合に、前記検知ステップにおいて起床要求が検知されたタスクに切替える切替えステップとをコンピュータに実行させる
    プログラムが記録された記録媒体。
JP2006290466A 2006-10-25 2006-10-25 タスク切替え制御方法及びコンピュータシステム Pending JP2008108075A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006290466A JP2008108075A (ja) 2006-10-25 2006-10-25 タスク切替え制御方法及びコンピュータシステム
US11/868,089 US20080104602A1 (en) 2006-10-25 2007-10-05 Task switching control method and computer system
CNA2007101812209A CN101169737A (zh) 2006-10-25 2007-10-25 任务切换控制方法以及计算机系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006290466A JP2008108075A (ja) 2006-10-25 2006-10-25 タスク切替え制御方法及びコンピュータシステム

Publications (1)

Publication Number Publication Date
JP2008108075A true JP2008108075A (ja) 2008-05-08

Family

ID=39331933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006290466A Pending JP2008108075A (ja) 2006-10-25 2006-10-25 タスク切替え制御方法及びコンピュータシステム

Country Status (3)

Country Link
US (1) US20080104602A1 (ja)
JP (1) JP2008108075A (ja)
CN (1) CN101169737A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012001787A1 (ja) * 2010-06-30 2012-01-05 富士通株式会社 情報処理装置、情報処理方法、および情報処理プログラム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4940033B2 (ja) * 2007-06-29 2012-05-30 パナソニック株式会社 計算機システム、計算機システムの制御方法および携帯電話機
JP5125659B2 (ja) * 2008-03-24 2013-01-23 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
CN101256608B (zh) * 2008-03-25 2010-04-07 北京飞天诚信科技有限公司 安全操作方法和系统
CN101673219B (zh) 2008-09-12 2013-04-24 财团法人工业技术研究院 多任务处理器及其任务切换方法
JP5414305B2 (ja) * 2009-02-25 2014-02-12 キヤノン株式会社 情報処理装置、仮想記憶管理方法及びプログラム
JP5875193B2 (ja) * 2010-01-13 2016-03-02 マーベル・イスラエル・(エム・アイ・エス・エル)・リミテッドMarvell Israel (M.I.S.L.) Ltd. メディア処理のためのハードウェア仮想化
KR20130063825A (ko) * 2011-12-07 2013-06-17 삼성전자주식회사 운영체제에서 동적으로 선점 구간을 조정하는 장치 및 방법
JP6079805B2 (ja) * 2015-03-23 2017-02-15 日本電気株式会社 並列計算装置
CN106295259B (zh) * 2016-08-03 2019-02-12 杭州晟元数据安全技术股份有限公司 一种利用不可屏蔽中断提高物联网产品安全性的方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59127156A (ja) * 1983-01-11 1984-07-21 Nec Corp 仮想計算機システム
JPH0512224A (ja) * 1991-07-08 1993-01-22 Nec Corp ホスト間資源待ちジヨブ起動方式
JPH064322A (ja) * 1992-03-31 1994-01-14 Internatl Business Mach Corp <Ibm> プロセスレベルプログラミングのための割込み処理の直列化方法
JPH08314740A (ja) * 1995-05-16 1996-11-29 Fuji Xerox Co Ltd プロセスディスパッチ方法
JPH11353191A (ja) * 1998-06-08 1999-12-24 Nec Corp ジョブスケジュール方法
JP2001303191A (ja) * 2000-04-19 2001-10-31 Nippon Steel Corp 溶接部haz靱性に優れた超高強度ラインパイプ鋼管とその製造方法
JP2001306341A (ja) * 2000-04-26 2001-11-02 Mitsubishi Electric Corp コンピュータシステムおよびコンピュータ読み取り可能な記録媒体
JP2002304304A (ja) * 2001-04-04 2002-10-18 Denso Corp 処理実行装置、当該処理実行装置に搭載される処理プログラム、及び記録媒体
WO2006011343A1 (ja) * 2004-07-28 2006-02-02 Matsushita Electric Industrial Co., Ltd. 競合解決装置
JP2006099333A (ja) * 2004-09-29 2006-04-13 Sony Corp 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
JP2006146758A (ja) * 2004-11-24 2006-06-08 Matsushita Electric Ind Co Ltd コンピュータシステム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3037182B2 (ja) * 1997-02-17 2000-04-24 日本電気株式会社 タスク管理方式
US7433951B1 (en) * 2000-09-22 2008-10-07 Vmware, Inc. System and method for controlling resource revocation in a multi-guest computer system
US20050132363A1 (en) * 2003-12-16 2005-06-16 Vijay Tewari Method, apparatus and system for optimizing context switching between virtual machines
KR100673681B1 (ko) * 2004-03-25 2007-01-24 엘지전자 주식회사 개인용 컴퓨터에서의 인스턴트 온 기능 실행방법
US20060010446A1 (en) * 2004-07-06 2006-01-12 Desai Rajiv S Method and system for concurrent execution of multiple kernels
US20060143617A1 (en) * 2004-12-29 2006-06-29 Knauerhase Robert C Method, apparatus and system for dynamic allocation of virtual platform resources
US8001549B2 (en) * 2006-04-27 2011-08-16 Panasonic Corporation Multithreaded computer system and multithread execution control method
US20080281229A1 (en) * 2007-04-23 2008-11-13 Juan Carlos Parodi Guidewire with adjustable stiffness

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59127156A (ja) * 1983-01-11 1984-07-21 Nec Corp 仮想計算機システム
JPH0512224A (ja) * 1991-07-08 1993-01-22 Nec Corp ホスト間資源待ちジヨブ起動方式
JPH064322A (ja) * 1992-03-31 1994-01-14 Internatl Business Mach Corp <Ibm> プロセスレベルプログラミングのための割込み処理の直列化方法
JPH08314740A (ja) * 1995-05-16 1996-11-29 Fuji Xerox Co Ltd プロセスディスパッチ方法
JPH11353191A (ja) * 1998-06-08 1999-12-24 Nec Corp ジョブスケジュール方法
JP2001303191A (ja) * 2000-04-19 2001-10-31 Nippon Steel Corp 溶接部haz靱性に優れた超高強度ラインパイプ鋼管とその製造方法
JP2001306341A (ja) * 2000-04-26 2001-11-02 Mitsubishi Electric Corp コンピュータシステムおよびコンピュータ読み取り可能な記録媒体
JP2002304304A (ja) * 2001-04-04 2002-10-18 Denso Corp 処理実行装置、当該処理実行装置に搭載される処理プログラム、及び記録媒体
WO2006011343A1 (ja) * 2004-07-28 2006-02-02 Matsushita Electric Industrial Co., Ltd. 競合解決装置
JP2006099333A (ja) * 2004-09-29 2006-04-13 Sony Corp 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
JP2006146758A (ja) * 2004-11-24 2006-06-08 Matsushita Electric Ind Co Ltd コンピュータシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012001787A1 (ja) * 2010-06-30 2012-01-05 富士通株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JPWO2012001787A1 (ja) * 2010-06-30 2013-08-22 富士通株式会社 情報処理装置、情報処理方法、および情報処理プログラム

Also Published As

Publication number Publication date
US20080104602A1 (en) 2008-05-01
CN101169737A (zh) 2008-04-30

Similar Documents

Publication Publication Date Title
CN101796487B (zh) 虚拟队列处理电路以及任务处理器
US9798595B2 (en) Transparent user mode scheduling on traditional threading systems
US9274832B2 (en) Method and electronic device for thread scheduling
CN101169737A (zh) 任务切换控制方法以及计算机系统
US20080184233A1 (en) Abstracting a multithreaded processor core to a single threaded processor core
JPH11149385A (ja) マルチos構成方法
JP5200085B2 (ja) コンピュータを短時間で起動する方法およびコンピュータ
JP4873423B2 (ja) 仮想化プログラム、シミュレーション装置、仮想化方法
US20250013494A1 (en) Thread management methods and apparatuses
US9122521B2 (en) Enabling multiple operating systems to run concurrently using barrier task priority
US9910677B2 (en) Operating environment switching between a primary and a secondary operating system
WO2011104812A1 (ja) マルチコアプロセッサシステム、割込プログラム、および割込方法
GB2392515A (en) Stack usage in computer operating systems
JP4026667B2 (ja) マルチos構成方法
JP2009175960A (ja) 仮想マルチプロセッサシステム
JP2001216172A (ja) マルチos構成方法
EP1693743A2 (en) System, method and medium for using and/or providing operating system information to acquire a hybrid user/operating system lock
JP2013522710A (ja) Itシステムの構成方法、そのコンピュータプログラムおよびitシステム
JP5867630B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
CN117573318A (zh) 中断控制方法、处理器系统、芯片及电子设备
CN119604852A (zh) 计算机系统、任务调度装置、等待进程唤醒方法以及程序
JPH10312296A (ja) プロセス切替え制御方式
JP2022055002A (ja) 情報処理装置、情報処理方法および情報処理プログラム
CN120909780A (zh) 内存申请方法、装置、电子设备和存储介质
WO2004021187A2 (en) Improvements relating to stack usage in computer­related operating systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090902

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110524