JP2004078322A - タスク管理システム、プログラム、記録媒体、及び制御方法 - Google Patents

タスク管理システム、プログラム、記録媒体、及び制御方法 Download PDF

Info

Publication number
JP2004078322A
JP2004078322A JP2002234144A JP2002234144A JP2004078322A JP 2004078322 A JP2004078322 A JP 2004078322A JP 2002234144 A JP2002234144 A JP 2002234144A JP 2002234144 A JP2002234144 A JP 2002234144A JP 2004078322 A JP2004078322 A JP 2004078322A
Authority
JP
Japan
Prior art keywords
task
operating system
tasks
task management
scheduling
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.)
Granted
Application number
JP2002234144A
Other languages
English (en)
Other versions
JP3938343B2 (ja
Inventor
Yoshiaki Funaki
船木 義昭
Masafumi Doi
土居 政史
Kazuhiro Yokomizo
横溝 和宏
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2002234144A priority Critical patent/JP3938343B2/ja
Priority to US10/637,737 priority patent/US20040098722A1/en
Publication of JP2004078322A publication Critical patent/JP2004078322A/ja
Application granted granted Critical
Publication of JP3938343B2 publication Critical patent/JP3938343B2/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
    • 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)
  • Debugging And Monitoring (AREA)

Abstract

【課題】処理の種類に応じてスケジューリングするOSを切り替えることにより、排他処理や入出力処理を効率的に行う。
【解決手段】第1のオペレーティングシステムにおいて、複数のタスクのスケジューリングを管理するタスク管理システム10は、第1のオペレーティングシステムによりスケジューリングされ、複数のタスクをスケジューリングすることにより管理するタスク管理部120と、複数のタスクのうち一のタスクが他のタスクより優先してスケジューリングされると判断した場合に、一のタスクを、第1のオペレーティングシステムによりタスク管理部より高い優先度でスケジューリングさせるタスク実行制御部130とを備える
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、タスク管理システム、プログラム、記録媒体、及び制御方法に関する。特に本発明は、複数のオペレーティングシステムを動作させるタスク管理システム、プログラム、記録媒体、及び制御方法に関する。
【0002】
【従来の技術】
第1のオペレーティングシステム(以下OSと略す)上で、第2のOSを動作させる多重OSシステムが用いられている。このシステムは、どちらか一方のOSのみで動作可能な複数のタスクを同一の計算機上で混在して動作させることができる。したがって、利用者は、様々なアプリケーションを同一の計算機上で実行でき、利便性の高い計算機環境を使用することができる。
【0003】
【発明が解決しようとする課題】
しかしながら、上記システムは、タスクを実行中に、当該タスクをスケジュールするOSを切り替えることができない。
そこで本発明は、上記の課題を解決することのできるタスク管理システム、プログラム、記録媒体、及び制御方法を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【0004】
【課題を解決するための手段】
即ち、本発明の第1の形態によると、第1のオペレーティングシステムにおいて、タスクのスケジューリングを管理するタスク管理システムであって、第1のオペレーティングシステムによりスケジューリングされ、複数のタスクをスケジューリングすることにより管理するタスク管理部と、複数のタスクのうち一の前記タスクが他のタスクより優先してスケジューリングされると判断した場合に、一のタスクを、第1のオペレーティングシステムによりタスク管理部より高い優先度でスケジューリングさせるタスク実行制御部とを備えることを特徴とするタスク管理システム、当該システムを制御する制御方法、当該システムをコンピュータにより実現するプログラム、及びプログラムを記録した記録媒体を提供する。
【0005】
本発明の第2の形態によると、第1のオペレーティングシステムにおいて、タスクのスケジューリングを管理するタスク管理システムであって、第1のオペレーティングシステムとは異なる第2のオペレーティングシステムの機能を用いる複数のタスクを管理し、第1のオペレーティングシステムにより実行されるタスク管理部と、複数のタスクのうち一のタスクが、第1のオペレーティングシステムによってのみ実行可能なモジュールを実行すると判断した場合に、一のタスクを第1オペレーティングシステムにより実行させるタスク実行制御部とを備えることを特徴とするタスク管理システム、当該システムを制御する制御方法、当該システムをコンピュータにより実現するプログラム、及びプログラムを記録した記録媒体を提供する。
なお上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションも又発明となりうる。
【0006】
【発明の実施の形態】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態はクレームにかかる発明を限定するものではなく、又実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0007】
図1は、タスク管理システム10の機能ブロック図である。タスク管理システム10は、複数のオペレーティングシステム(以下OSと略す)を備え、処理の種類に応じてスケジューリングするOSを切り替えることにより、排他処理や入出力処理を効率的に行うことを目的とする。
【0008】
タスク管理システム10は、第1OS150とは異なる第2OS115の機能を用いる複数のタスクの一例であるPOSIXタスク110−1〜Nと、非リアルタイムOSである第2OS115と、POSIXタスク110−1〜Nより優先してスケジューリングされる複数の優先タスクであるITRONタスク140−1〜Mと、リアルタイムOSである第1OS150とを備える。本実施形態において、タスク管理システム10は、例えば、第2OSとして、POSIX規格に準拠したUNIX(登録商標)と、第1OSとして、マイクロITRONとを備える。また、他の例として、タスク管理システム10は、Linux(登録商標)等の非リアルタイムOSと、WINDOWS(登録商標)等の非リアルタイムOSとを備え、第1OS150及び第2OS115の双方が非リアルタイムOSである構成であってもよい。また、タスク管理システム10は、第1OS150及び第2OS115の双方がリアルタイムOSである構成であってもよい。
【0009】
POSIXタスク110−1〜Nは、第2OS115により管理され、POSIX(Portable Operating System Interface for UNIX(登録商標)の略)のタスクであり、POSIXのアプリケーションプログラミングインターフェイス(以下APIと略す)を用いて、第2OS115中の処理を呼出すことにより実行し、利用者の所望の処理を行う。POSIXタスク110−1〜Nは、処理の内容等に応じて、第2OS115又は第1OS150の何れかにより実行をスケジューリングされ、第1OS150により実行(例えば、ディスパッチ)される。
なお、POSIXタスク110−1〜Nは、POSIXのAPIを有するLinux(登録商標)等の計算機環境で開発され、タスク管理システム10上で実行されてもよい。
【0010】
第2OS115は、第1OS150により実行され、POSIXタスク110−1〜Nの指示に応じて、POSIXのAPIの少なくとも一部をPOSIXタスク110−1〜Nに提供する。第2OS115は、タスク管理部120と、タスク実行制御部130とを備える。ここで、第2OS115は、POSIXタスク110−1〜Nを管理する。第2OS115は、また、例えばPOSIX等のOSの全ての機能を実装せず、POSIXタスク110−1〜Nを、タスク管理システム10上で実行させるために必要となる機能を有していればよい。具体的には、第2OS115は、第2OS115のAPIの機能を、第1OS150のAPIの機能に変換することにより、第2OS115のタスクの、第1OS150のタスクへの互換性を保持する。また、第2OS115は、タスク間のスケジューリングの優先度を制御するが、タスクを実際にハードウェアにより実行させるタスクディスパッチを行わなくてもよく、タスクのハードウェアによる実行を切り替えるタスクスイッチを行わなくてもよい。
【0011】
タスク管理部120は、レディキュー122と、ウェイトキュー124と、レディタスクポインタ126−1〜Pと、ウェイトタスクポインタ128−1〜Qとを備え、ITRONタスクの1つとして、ITRONタスク140−1〜Mより低い優先度で第1OS150によりスケジューリングされ実行される。タスク管理部120は、POSIXタスク110−1〜Nをスケジューリングすることにより管理する。例えば、タスク管理部120は、POSIXタスク110を実行するPOSIXスレッドを識別する情報を、レディタスクポインタ126又はウェイトタスクポインタ128として、レディキュー122又はウェイトキュー124にキュー状に接続することにより管理する。
より詳細には、タスク管理部120は、直ちに実行可能であるが、他のスレッドを実行中であるために現在実行していないPOSIXスレッドへのポインタを、レディタスクポインタ126−1〜Pとしてレディキュー122にキュー状に接続して管理する。また、POSIXスレッドが、独占的にのみ使用可能な入出力デバイスが利用可能となるのを待っている等の要因により待ち状態となっている場合に、タスク管理部120は、当該POSIXスレッドへのポインタを、ウェイトタスクポインタ128−1〜Qとしてウェイトキュー124にキュー状に接続して管理する。
【0012】
そして、タスク管理部120は、レディタスクポインタ126−1〜Pの中から1つのレディタスクポインタ126を選択し、第1OS150により実行させることにより、レディタスクポインタ126−1〜Pを順次スケジューリングする。
さらに、タスク管理部120は、タスク実行制御部130からの指示に応じて、レディキュー122又はウェイトキュー124に接続されているレディタスクポインタ126又はウェイトタスクポインタ128の一部を、レディキュー122又はウェイトキュー124から取り除く。また、タスク管理部120は、タスク実行制御部130からの指示に応じて、レディキュー122又はウェイトキュー124に新たにレディタスクポインタ126又はウェイトタスクポインタ128を接続する。
【0013】
タスク実行制御部130は、POSIXタスク110−1〜Nからの指示に応じて、POSIXのAPIの一部等を提供する。また、タスク実行制御部130は、POSIXタスク110−1〜Nからの指示に応じて、POSIXタスク110−1〜Nを実行するスレッドのスケジューリングを停止する旨の指示や、当該停止後に再開する旨の指示を、タスク管理部120に送る。また、タスク実行制御部130は、POSIXタスク110−1〜Nからの指示に応じて、POSIXタスク110−1〜Nのスケジューリング優先度を変更する旨の指示を第1OS150に送る。
【0014】
ITRONタスク140−1〜Mは、ITRON等のリアルタイムOSである第1OS150が提供するAPIを用いて記載されたプログラム又はモジュールであり、第1OS150によりスケジューリングされ、実行される。ITRONタスク140−1〜Mは、第1OS150により、所定時間内に実行が完了することが保証され、POSIXタスク110及び第2OS115等の動作による影響を受けることなく、利用者の所望する時間内に処理を終了することができる。
【0015】
第1OS150は、レディキュー152と、ウェイトキュー154と、レディタスクポインタ156−1〜Rと、ウェイトタスクポインタ158−1〜Sとを備える。第1OS150は、第2OS150、POSIXタスク110−1〜N、及びITRONタスク140−1〜Mをスケジューリングすることにより管理する。例えば、第1OS150は、ITRONタスク140−1〜Mを実行するスレッドと、POSIXタスク110−1〜Nを実行するスレッドとを識別する情報を、レディタスクポインタ156又はウェイトタスクポインタ158として、レディキュー152又はウェイトキュー154にキュー状に接続することにより管理する。より詳細には、第1OS150が、レディキュー152及びウェイトキュー154を用いてレディタスクポインタ156及びウェイトタスクポインタ158を管理する方法は、それぞれタスク管理部120が、レディキュー122及びウェイトキュー124を用いてレディタスクポインタ126及びウェイトタスクポインタ128を管理する方法と略同一であるので説明を省略する。
【0016】
また、第1OS150は、タスク管理部120からの指示に従い、レディキュー122の先頭にあるレディタスクポインタ126に相当する第1OS150のタスクポインタを、レディキュー152に接続することにより、POSIXタスク110を実行する。また、第1OS150は、タスク管理部120からの指示に従い、POSIXタスク110を実行していたスレッドへのタスクポインタをレディキュー152から除き、ウェイトキュー154に接続することにより、POSIXタスク110の実行を停止する。
【0017】
また、第1OS150は、タスク実行制御部130からの指示に従い、POSIXタスク110を実行しているITRONタスクのスケジューリング優先度を変更する。
【0018】
本実施形態のタスク管理システム10は、以下に示す2つの機能を有する。
(1)POSIXタスク110の排他処理
(2)POSIXタスク110によるITRONのAPI実行
以下、これらの機能を順に説明する。
【0019】
(1)POSIXタスク110の排他処理
タスク実行制御部130は、POSIXタスク110−1〜Nからの指示に応じて、POSIXタスク110−1〜N間における排他処理を管理する。例えば、タスク実行制御部130は、1つのスレッドのみが独占排他的に実行しなければならないプログラム中の実行領域であるクリティカルセクションを実行する排他処理を行う旨の指示を、POSIXタスク110−Nから受取る。この場合、タスク実行制御部130は、POSIXタスク110−Nが、第2OS115及び他のPOSIXタスク110より優先して実行させるように、スケジューリング優先度変更指示を第1OS150に送る。
これを受けて、第1OS150は、POSIXタスク110−Nを、他のPOSIXタスク110より優先して実行させる。従って、タスク実行制御部130は、他のPOSIXタスク110やタスク管理部120により中断されることなく、POSIXタスク110−Nによりクリティカルセクションを実行させることができる。
【0020】
一方、タスク実行制御部130は、POSIXタスク110−Nによるクリティカルセクションの実行が終わった場合に、POSIXタスク110−Nを、他のPOSIXタスク110と同一の優先度で実行させるように、スケジューリング優先度変更指示を第1OS150に送る。
【0021】
(2)POSIXタスク110によるITRONのAPI実行
タスク実行制御部130は、POSIXタスク110−1〜Nからの指示に応じて、POSIXタスク110−1〜Nを、第1OS150により実行させる。例えば、タスク実行制御部130は、第1OS150によってのみ実行可能な入出力等のモジュールを実行する旨の通知(例えば、IO_STARTと呼ぶ処理)をPOSIXタスク110−Nから受け取った場合に、POSIXタスク110−Nのタスク管理部120によるスケジューリングを停止する旨の指示をタスク管理部120に送る。これを受けて、タスク管理部120は、POSIXタスク110−Nのタスク管理部120によるスケジューリングを停止する。従って、タスク実行制御部130は、POSIXタスク110−Nを第1OS150のみによってスケジューリングさせると伴に、POSIXタスク110−1〜Nから第1OS150のAPIを呼出し可能とすることにより、POSIXタスク110を第1OS150により実行させることができる。
【0022】
一方、タスク実行制御部130は、第1OS150によってのみ実行可能なモジュールを実行終了した旨の通知(例えば、IO_DONEと呼ぶ処理)をPOSIXタスク110から受け取った場合に、タスク管理部120によるスケジューリングを再開する旨の指示をタスク管理部120に送る。
【0023】
以上のように、タスク管理システム10は、異なるAPIを用いて記載されたプログラムであるPOSIXタスク110及びITRONタスク140の双方を実行することができる。そして、タスク管理システム10は、リアルタイム性が要求されるITRONタスク140の実行を妨害することなく、POSIXタスク110及び第2OS115の実行を管理することができる。
【0024】
図2は、タスク管理システム10による機能である、POSIXタスク110の排他処理の動作フローを示す。タスク管理システム10は、POSIXタスク110−1〜Nを、第1OS150上で実行可能なタスクとして生成する(S100)。続いて、タスク管理システム10は、例えば、POSIXタスク110からの呼出しに、応じて以下の処理を行う。
【0025】
タスク実行制御部130が、POSIXタスク110−1〜Nのうちの一のタスク(例えば、POSIXタスク110−Nとする)からの呼出しに応じて、POSIXタスク110−Nのセマフォ管理のための排他処理を実行すると判断した場合に(S110:YES)、第1OS150は、POSIXタスク110−Nのスケジューリング優先度をタスク管理部120より高める(S120)。一方、排他処理を実行しないと判断した場合に(S110:NO)、タスク管理システム10は、通常のスケジューリング動作を行い、POSIXタスク110−1〜Nを順次実行する。そして、タスク実行制御部130は、次の処理(S170)に移る。
【0026】
続いて、タスク実行制御部130は、排他処理を終了したと判断した場合(S130:YES)に、POSIXタスク110−Nの第1OS150によるスケジューリング優先度を元に戻す(S135)。一方、排他処理を終了していないと判断した場合(S130:NO)に、タスク管理システム10は、通常のスケジューリング動作を行う。また、タスク管理システム10は、POSIXタスク110−Nからの呼び出し等に応じて、S130の判断に戻る。
ここで、POSIXタスク110−Nが呼出すセマフォ管理の排他処理とは、例えば、セマフォ管理のWAKEUP処理であってもよいし、WAIT処理であってもよいし、POSIXで規定されたMUTEX処理であってもよいし、COND−VAR処理であってもよい。また、排他処理とは、セマフォ管理にのみ用いられるとは限らず、1つのスレッドのみが独占排他的に実行しなければならないプログラム中の実行領域であるクリティカルセクションを実行する場合に用いられる。
【0027】
タスク管理システム10は、システム全体の処理を中断または停止する指示を外部から受け取ったと判断した場合に(S170:YES)、所定の終了処理を行った後に処理を終了する。当該指示を外部から受け取らなかったと判断した場合に(S170:NO)、タスク管理システム10は、S110の処理に戻る。
【0028】
このように、タスク管理システム10は、POSIXタスク110からの指示に応じ、POSIXタスク110のスケジューリング優先度を高めることができる。例えば、タスク管理システム10は、POSIXタスク110が排他処理を行う場合に、当該POSIXタスク110の第1OS150によるスケジューリング優先度を上げる。従って、タスク管理システム10は、当該POSIXタスク110をタスク管理部120により管理される他のタスクやタスク管理部120より優先して実行することができる。
【0029】
図3は、POSIXタスクが排他処理をする動作の詳細図である。本図の上方向の実線矢印は、スケジューリング優先度を示す。すなわち、タスク管理システム10は、本図の上方向にあるタスクをより優先してスケジューリングする。第1OS150は、スケジューリング優先度の高い順に、ITRONタスク140−1〜M、POSIXランタイムライブラリのうち排他処理等を行う部分であるタスク実行制御部130と、POSIXスケジューラであるタスク管理部120、POSIXタスク110−1〜Nを実行する。POSIXタスク110−1〜Nは、タスク管理部120により順次実行可能状態(レディ状態)にされることによりスケジューリングされる。例えば、本図において、タスク管理部120は、POSIXタスク110−1〜Nのうちの1つであるPOSIXタスク110−1の、第1OS150上で実行可能か否かを示す実行状態を実行可能状態(レディ状態)とすることにより、タスク管理部120より低い優先度で、第1OS150により実行させる。
【0030】
また、第1OS150は、より高いスケジューリング優先度を有するタスクの実行が完了してから、当該タスクより低いスケジューリング優先度を有するタスクを実行する。例えば、第1OS150は、ITRONタスク140−1〜M中に実行可能なタスクがある場合に、タスク管理部120を実行しない。
【0031】
タスク実行制御部130は、POSIXタスク110−1〜Nのうち一のタスクであるPOSIXタスク110−Nから、排他処理のAPIを介して呼出されると、POSIXタスク110−Nが排他処理を実行すると判断し、POSIXタスク110−Nが他のタスクより優先してスケジューリングされると判断する(図2のS110:YES)。
これを受けて、タスク実行制御部130は、POSIXタスク110−Nの第1OS150によるスケジューリング優先度をタスク実行制御部130の値に変更する。
【0032】
一方、タスク実行制御部130は、排他処理を終了したと判断した場合に(図2のS130:YES)、POSIXタスク110−Nが他のPOSIXタスク110より優先してスケジューリングされる状態を終了させたと判断し、POSIXタスク110−Nの第1OS150によるスケジューリング優先度をPOSIXタスク110の位置に戻し、タスク管理部120によりスケジューリングされる状態に戻す。
【0033】
このように、タスク管理システム10は、POSIXタスク110が排他処理を実行する場合に、POSIXタスク110が他のPOSIXタスク110より優先してスケジューリングされると判断する。そして、タスク管理システム10は、POSIXタスク110をタスク管理部120や他のPOSIXタスク110より高い優先度でスケジューリングさせることにより、POSIXタスク110の処理を他のPOSIXタスク110に妨害させないので、適切な排他処理を行わせることができる。更に、この場合、タスク管理システム10は、POSIXタスク110を、ITRONタスク140より低い優先度でスケジューリングさせることにより、ITRONタスク140の処理に悪影響を与えずに、上記処理を行うことができる。
【0034】
図4は、タスク管理システム10による機能である、POSIXタスク110によるITRONのAPI実行の動作フローを示す図である。タスク管理システム10は、POSIXタスク110−1〜Nを、第1OS150上で実行可能なタスクとして生成する(S100)。続いて、タスク管理システム10は、例えば、POSIXタスク110からの呼出しに、応じて以下の処理を行う。
【0035】
タスク実行制御部130は、第1OS150によってのみ実行可能なモジュールをPOSIXタスク110−Nが実行するか否かを判断する(S140)。タスク実行制御部130は、第1OS150によってのみ実行可能なモジュールをPOSIXタスク110−Nが実行すると判断した場合に(S140:YES)、POSIXタスク110−Nのタスク管理部120によるスケジューリングを停止し、第1OS150のみによってスケジューリングさせる(S150)。なお、この場合、タスク実行制御部130は、POSIXタスク110−Nの、第1OS150によるスケジューリング優先度を高めてもよい。
一方、第1OS150によってのみ実行可能なモジュールをPOSIXタスク110−Nが実行しないと判断した場合に(S140:NO)、タスク管理システム10は、次の処理(S170)に移る。
続いて、タスク実行制御部130は、POSIXタスク110−Nが第1OS150によってのみ実行可能なモジュールの実行を終了したと判断した場合に(S160:YES)、POSIXタスク110−Nをタスク管理部120によってスケジューリングされる状態に戻す(S165)。
【0036】
タスク管理システム10は、システム全体の処理を中断または停止する指示を外部から受け取ったと判断した場合に(S170:YES)、所定の終了処理を行った後に処理を終了する。当該指示を外部から受け取らなかったと判断した場合に(S170:NO)、タスク管理システム10は、S140の処理に戻る。
【0037】
このように、タスク管理システム10は、POSIXタスク110からの指示に応じ、POSIXタスク110をスケジューリングするOSを切り替えることができる。例えば、タスク管理システム10は、POSIXタスク110が第1OS150によってのみ実行可能な入出力処理等を行う場合に、当該POSIXタスク110のタスク管理部120によるスケジューリングを停止させることにより、タスク管理部120による他のPOSIXタスク110のスケジューリングを効率的に行うことができる。
【0038】
図5は、POSIXタスクがITRONの入出力機能を用いる動作の詳細図である。本図の上方向の実線矢印は、図3と同様、スケジューリング優先度を示す。スケジューリング優先度の詳細は、図3における同一の符号を持つスレッドと同様であるので、説明を省略する。
【0039】
タスク実行制御部130は、第1OS150によってのみ実行可能なモジュールを実行する旨の通知(例えば、IO_STARTと呼ぶ処理)をPOSIXタスク110−Nから受け取った場合に(図4のS140:YES)、POSIXタスク110−Nのタスク管理部120によるスケジューリングを停止する。
すなわち、POSIXタスク110−Nを実行するスレッドは、タスク実行制御部130のIO_STARTを呼出した場合に、当該スレッドのスケジューリングに用いるレディタスクポインタ126をタスク管理部120から取り除き、ITRON入出力モジュール135を実行する。
【0040】
一方、タスク実行制御部130は、第1OS150によってのみ実行可能なモジュールを実行終了した旨の通知(例えば、IO_DONEと呼ぶ処理)をPOSIXタスク110から受け取った場合に(図4のS160:YES)、タスク管理部120によるスケジューリングを再開する。
すなわち、タスク実行制御部130を実行していたスレッドは、ITRON入出力モジュール135の処理を終了した場合に、当該スレッドのスケジューリングに用いるレディタスクポインタ126を新たにタスク管理部120内に追加し、当該リアルタイムスレッドをタスク管理部120の管理下に戻す。
【0041】
このように、タスク管理システム10は、POSIXタスク110が第1OS150によってのみ実行可能なモジュールを実行すると判断した場合に、POSIXタスク110のタスク管理部120によるスケジューリングを停止し、POSIXタスク110を第1OS150によりスケジューリングさせることにより、タスク管理部120による他のPOSIXタスク110のスケジューリングを効率的に処理できる。
ここで、タスク管理システム10は、POSIXタスク110のタスク管理部120によるスケジューリングを停止せず、当該POSIXタスク110が第1OS150のリソース待ち状態となるとすれば、タスク管理部120による他のPOSIXタスク110のスケジューリングが妨害されてしまう。
なぜなら、タスク管理部120は、POSIXタスク110による第1OS150のAPI実行に起因する待ち状態を検出することができないからである。従って、上記で説明したように、タスク管理システム10は、用いられるAPIの種類に応じてスケジューリングされるOSを切り替えることにより、全体として効率的にスレッドを動作させることができる。
【0042】
図6は、POSIXタスクが第1OS150によってのみ実行可能なモジュールを実行する構成をした場合における動作の例を示す。本例において、タスク管理システム10は、POSIXタスク110−Nと、ITRONタスク140−Nと、コマンド受取に用いられるコマンド用共有メモリ500と、データ受取に用いられるデータ用共有メモリ510とを備える。本図に示した実線矢印は、POSIXタスク110−N及びITRONタスク140−Nの間の、データや指示の書込み及び読出しを示している。また、タスク管理システム10は、POSIXタスク110それぞれに対応付けられたITRONタスク140実行用のスレッドをあらかじめ生成しておく。本図において、POSIXタスク110−Nを実行しているスレッドが、当該POSIXタスク110−Nに対応するITRONタスク140−Nを用いて、第1OS150によってのみ実行可能なモジュールである入出力モジュールを用いた処理を行う動作例を説明する。
【0043】
ITRONタスク140−Nは、初期状態として、POSIXタスク110−Nからの要求を待つ状態に設定されている((0)Block)。ここで、POSIXタスク110−Nは、入出力モジュールからデータを読み出す旨の読出指示を、コマンド用共有メモリ500に書き込む((1)Write Request)。そして、POSIXタスク110−Nは、ITRONタスク140−Nの待ち状態を解消し((2)Unblock Task−R)、ITRONタスク140−Nからの読み出し結果を待つ状態に設定する((3)Block)。
【0044】
ITRONタスク140−Nは、コマンド用共有メモリ500から読出指示を受取り((4)Read Request)、当該読出指示に従い入出力モジュールからデータを読み出す((5)Process I/O)。続いて、ITRONタスク140−Nは、読み出したデータをデータ用共有メモリ510に書込み((6)Write Result)、POSIXタスク110−Nの待ち状態を解消する((7)Unblock Task−A)。これを受けて、POSIXタスク110−Nは、読出指示の結果であるデータ値をデータ用共有メモリ510から読出し((8)Read Data)、このデータ値を用いた動作を継続する。
【0045】
以上で示したような構成において、POSIXタスク110−Nは、第1OS150によってのみ実行可能なモジュールを実行するITRONタスク140−Nを予め生成しておくことにより、ITRONタスク140−Nを用いて所望の処理を行うことができる。しかしながら、本図において、タスク管理システム10は、ITRONタスク140−Nを実行するスレッドを予め生成しておく必要があり、処理の内容に基づく本来必要なスレッド数より多くのスレッドを生成しなければならないので、効率が悪い。また、本図で示したように、POSIXタスク110−Nを実行するスレッドは、ITRONタスク140−Nを実行するスレッドとの間で余計な通信を行う必要があるため、効率が悪い。さらに、POSIXタスク110−Nは、入出力モジュールを用いて単に値を読み出すのみの動作においても、本図で示すような複雑なプログラムが必要であるので、プログラムサイズの増大や、実行効率への悪影響を招くおそれがある。
【0046】
図7は、本実施形態においてPOSIXタスクがITRONの入出力機能を用いる例を示す図である。本図に示した実線矢印は、POSIXタスク110−Nから、ITRON入出力モジュール135への関数呼出しを示している。本図において、POSIXタスク110−Nが、ITRON入出力モジュール135中の関数呼出しにより、第1OS150によってのみ実行可能なモジュールを用いた処理を行う動作例を説明する。
【0047】
POSIXタスク110−Nを実行するITRONのリアルタイムスレッドは、POSIXのAPIによって記述されたPOSIXタスク110−Nを実行している状態において、IO_STARTを呼出す((1)io_start())。これを受けて、タスク実行制御部130は、POSIXタスク110−Nのタスク管理部120によるスケジューリングを停止する。
【0048】
続いて、POSIXタスク110−Nを実行するITRONのリアルタイムスレッドは、第1OS150によってのみ実行可能なモジュールを実行するために、ITRON入出力モジュール135中の関数を呼出し((2)do_read())、入出力を行う((3)call RTOS APIs)。POSIXタスク110−Nを実行するITRONのリアルタイムスレッドは、ITRON入出力モジュール135の実行を終了し、IO_DONEを呼出す((4)io_done())ことにより、POSIXタスク110−Nを実行するITRONのリアルタイムスレッドを、再びタスク管理部120によりスケジューリングさせる状態に戻す。
【0049】
このように、タスク管理システム10は、1つのスレッドに、POSIXのAPI及びITRONのAPIの双方を呼出させることができる。そして、タスク管理システム10は、図6の手法が行っていたスレッド間通信を必要としないので、スレッド間通信の通信コスト、スレッド間通信のための複雑なプログラム、及び入出力専用のスレッド生成を必要としない。
【0050】
図8は、本実施形態に示すタスク管理システム10を有する多重OSシステム300の実装例を示す図である。本図の各矩形領域は、ハードウェア又はソフトウェアにより実現されるモジュールを表す。また、本図において上方に配置されるモジュールは、下方に配置されるモジュールの機能に依存して動作する。
【0051】
多重OSシステム300は、情報家電、携帯電話、及び計測器等のハードウェアプラットフォームと、ハードウェアプラットフォームのメモリを有効に利用するメモリマネージャと、ハードウェアプラットフォームによる入出力等を管理するITRONデバイスドライバを備える。
また、多重OSシステム300は、ITRONデバイスドライバを用いた通信制御を行うTCP/IP管理モジュールと、ITRONデバイスドライバを管理するカーネルであるマイクロITRON150とを備える。
【0052】
また、多重OSシステム300は、マイクロITRON150上で動作しPOSIXタスクをスケジューリングするPOSIXスケジューラと、マイクロITRON150のリソース管理を行うデバイスリソースマネージャと、マイクロITRON150ファイルシステムを管理するファイルシステムモジュールと、モバイル機器向けのデータ同期を管理するSyncML/M準拠システムマネージメントモジュールとを備える。図1で示したタスク管理部120の機能は、本図で示すPOSIXスケジューラにより実現される。
【0053】
また、多重OSシステム300は、上記メモリマネージャ、TCP/IP管理モジュール、POSIXスケジューラ、デバイスリソースマネージャ、及びファイルシステムモジュールを用いて、ユーザレベルアプリケーションにPOSIXAPIを提供するPOSIXランタイムライブラリを備える。図1で示したタスク実行制御部130の機能は、POSIXランタイムライブラリにより実現される。
【0054】
また、多重OSシステム300は、それぞれPOSIXランタイムライブラリ上で動作する、イベントマネージャ/グラフィックコントロールモジュールと、POSIXアプリケーション110と、データストアと、同期エンジンを含む同期エージェントとを備える。
【0055】
図9は、本実施形態に示すタスク管理システム10のハードウェア構成を示す。本実施形態に係るタスク管理システム10は、ホストコントローラ1082により相互に接続されるCPU1000、RAM1020、グラフィックコントローラ1075、及び表示装置1080を有するCPU周辺部と、入出力コントローラ1084によりホストコントローラ1082に接続される通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を有する入出力部と、入出力コントローラ1084に接続されるROM1010、フレキシブルディスクドライブ1050、及び入出力チップ1070を有するレガシー入出力部とを備える。
【0056】
ホストコントローラ1082は、RAM1020と、高い転送レートでRAM1020をアクセスするCPU1000及びグラフィックコントローラ1075とを接続する。CPU1000は、ROM1010及びRAM1020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ1075は、CPU1000等がRAM1020内に設けたフレームバッファ上に生成する画像データを取得し、表示装置1080上に表示させる。これに代えて、グラフィックコントローラ1075は、CPU1000等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【0057】
入出力コントローラ1084は、ホストコントローラ1082と、比較的高速な入出力装置である通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を接続する。通信インターフェイス1030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ1040は、タスク管理システム10が使用するプログラム及びデータを格納する。CD−ROMドライブ1060は、CD−ROM1095からプログラム又はデータを読み取り、RAM1020を介して入出力チップ1070に提供する。
【0058】
また、入出力コントローラ1084には、ROM1010と、比較的低速な入出力装置であるフレキシブルディスクドライブ1050や入出力チップ1070等とが接続される。ROM1010は、タスク管理システム10の起動時にCPU1000が実行するブートプログラムや、パーソナルコンピュータ本体110のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ1050は、フレキシブルディスク1090からプログラム又はデータを読み取り、RAM1020を介して入出力チップ1070に提供する。入出力チップ1070は、フレキシブルディスク1090や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【0059】
タスク管理システム10を実現するプログラムは、タスク管理モジュールと、タスク実行制御モジュールとを備える。これらのモジュールは、タスク管理システム10を、タスク管理部120と、タスク実行制御部130として動作させるプログラムである。
【0060】
タスク管理システム10に提供されるプログラムは、ROM1010、ハードディスク1040、フレキシブルディスク1090、CD−ROM1095、又はICカード等の記録媒体に格納されて利用者によって提供される。このプログラムは、記録媒体から読み出され、入出力チップ1070を介してハードディスク1040にインストールされ、タスク管理システム10において実行される。また、タスク管理システム10に提供されるプログラムは、上記記録媒体から読み出され、ROM1010等に格納されて用いられてもよい。
【0061】
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク1090、CD−ROM1095の他に、DVDやPD等の光学記録媒体、MD等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをタスク管理システム10に提供してもよい。
【0062】
以上の説明から明らかなように、タスク管理システム10は、互いに異なるオペレーティングシステムが提供する標準機能であるAPIで記述された複数のタスクを、効率的に実行させることができる。例えば、タスク管理システム10は、第2OS115の複数のタスクのうち一のタスクが排他処理等を行うと判断した場合に、一のタスクを、第1OS150によりタスク管理部120より高い優先度でスケジューリングさせることにより、排他処理を行うことができる。
また、タスク管理システム10は、複数のオペレーティングシステムが提供する機能を、同一のタスク内で利用させることができる。例えば、タスク管理システム10は、POSIXのAPIを用いて記載されたプログラムを実行中に、ITRON等のリアルタイムOSのAPIを呼出させることができる。したがって、タスク管理システム10は、入出力処理を効率的に行うことができる。
【0063】
以上に説明した実施形態によれば、以下の各項目に示すタスク管理システム、プログラム、記録媒体、及び制御方法が実現される。
【0064】
(項目1) 第1のオペレーティングシステムにおいて、タスクのスケジューリングを管理するタスク管理システムであって、前記第1のオペレーティングシステムによりスケジューリングされ、複数のタスクをスケジューリングすることにより管理するタスク管理部と、前記複数のタスクのうち一の前記タスクが他の前記タスクより優先してスケジューリングされると判断した場合に、前記一のタスクを、前記第1のオペレーティングシステムにより前記タスク管理部より高い優先度でスケジューリングさせるタスク実行制御部とを備えることを特徴とするタスク管理システム。
(項目2) 前記複数のタスクは、前記第1のオペレーティングシステム上で実行される第2のオペレーティングシステムのタスクであり、前記タスク管理部は、前記複数のタスクとして、前記第2のオペレーティングシステムのタスクをスケジューリングすることにより管理することを特徴とする項目1記載のタスク管理システム。
(項目3) 前記第1のオペレーティングシステムは、前記複数のタスクより優先してスケジューリングされる複数の優先タスクを実行することを特徴とする項目1記載のタスク管理システム。
【0065】
(項目4) 前記タスク管理部は、前記複数の優先タスクより低い優先度でスケジューリングされ、前記一のタスクが前記他のタスクより優先してスケジューリングされると判断した場合に、前記タスク実行制御部は、前記一のタスクを、前記タスク管理部より高く、かつ前記複数の優先タスクより低い優先度でスケジューリングさせることを特徴とする項目3記載のタスク管理システム。
(項目5) 前記タスク実行制御部は、前記一のタスクが前記他のタスクに対して排他処理を実行すると判断した場合に、前記一のタスクを前記タスク管理部より高い優先度でスケジューリングさせることを特徴とする項目1記載のタスク管理システム。
(項目6) 前記タスク実行制御部は、前記一のタスクがセマフォ管理のために前記排他処理を行うと判断した場合に、前記一のタスクを前記タスク管理部より高い優先度でスケジューリングさせることを特徴とする項目5記載のタスク管理システム。
(項目7) 前記タスク実行制御部は、前記一のタスクが前記他のタスクより優先してスケジューリングされる状態を終了させた場合に、前記一のタスクを前記タスク管理部によりスケジューリングされる状態に戻すことを特徴とする項目1記載のタスク管理システム。
【0066】
(項目8) 前記複数のタスクは、前記第1のオペレーティングシステムとは異なる第2のオペレーティングシステムの機能を用い、前記第1のオペレーティングシステム上で実行可能なタスクとして生成され、
前記タスク管理部は、前記複数のタスクそれぞれにおいて、前記第1のオペレーティングシステム上で実行可能か否かを示す実行状態を変更することにより、前記第1のオペレーティングシステムにより前記複数のタスクをスケジューリングさせることを特徴とする項目1記載のタスク管理システム。
(項目9) 前記タスク管理部は、前記複数のタスクのうち一のタスクを選択し、前記第1のオペレーティングシステムにより実行させることにより、前記複数のタスクを順次スケジューリングすることを特徴とする項目8記載のタスク管理システム。
(項目10) 前記第1のオペレーティングシステムは、リアルタイムオペレーティングシステムであり、前記複数のタスクは、非リアルタイムオペレーティングシステムのタスクをスケジューリングすることにより管理することを特徴とする項目1記載のタスク管理システム。
【0067】
(項目11) 第1のオペレーティングシステムにおいて、タスクのスケジューリングを管理するタスク管理システムであって、前記第1のオペレーティングシステムとは異なる第2のオペレーティングシステムの機能を用いる複数のタスクを管理し、前記第1のオペレーティングシステムにより実行されるタスク管理部と、前記複数のタスクのうち一の前記タスクが、前記第1のオペレーティングシステムによってのみ実行可能なモジュールを実行すると判断した場合に、前記一のタスクを前記第1のオペレーティングシステムにより実行させるタスク実行制御部とを備えることを特徴とするタスク管理システム。
(項目12) 前記複数のタスクは、前記第1のオペレーティングシステム上で実行可能なタスクとして生成され、前記タスク管理部は、前記複数のタスクそれぞれにおいて、前記第1のオペレーティングシステム上で実行可能か否かを示す実行状態を変更することにより、前記複数のタスクをスケジューリングし、前記タスク実行制御部は、前記一のタスクが前記第1のオペレーティングシステムによってのみ実行可能なモジュールを実行すると判断した場合に、前記一のタスクの前記タスク管理部によるスケジューリングを停止することにより、前記一のタスクを前記第1オペレーティングシステムによりスケジューリングさせ、前記一のタスクを前記第1オペレーティングシステムにより実行させることを特徴とする項目11記載のタスク管理システム。
【0068】
(項目13) 前記タスク実行制御部は、前記第1のオペレーティングシステムによってのみ実行可能なモジュールの実行を終了したと判断した場合に、前記一のタスクを前記タスク管理部によりスケジューリングされる状態に戻すことを特徴とする項目11記載のタスク管理システム。
(項目14) 第1のオペレーティングシステムにおいて、タスクのスケジューリングを管理するタスク管理システムをコンピュータによって制御するプログラムであって、前記コンピュータを、前記第1のオペレーティングシステムによりスケジューリングされ、複数のタスクをスケジューリングすることにより管理するタスク管理部と、前記複数のタスクのうち一の前記タスクが他の前記タスクより優先してスケジューリングされると判断した場合に、前記一のタスクを、前記第1のオペレーティングシステムにより前記タスク管理部より高い優先度でスケジューリングさせるタスク実行制御部として機能させることを特徴とするプログラム。
【0069】
(項目15) 第1のオペレーティングシステムにおいて、タスクのスケジューリングを管理するタスク管理システムをコンピュータによって制御するプログラムであって、前記コンピュータを、前記第1のオペレーティングシステムとは異なる第2のオペレーティングシステムの機能を用いる複数のタスクを管理し、前記第1のオペレーティングシステムにより実行されるタスク管理部と、前記複数のタスクのうち一の前記タスクが、前記第1のオペレーティングシステムによってのみ実行可能なモジュールを実行すると判断した場合に、前記一のタスクを前記第1のオペレーティングシステムにより実行させるタスク実行制御部として機能させることを特徴とするプログラム。
(項目16) 項目14又は項目15何れかに記載のプログラムを記録した記録媒体。
(項目17) 第1のオペレーティングシステムにおいて、タスクのスケジューリングを制御する制御方法であって、前記第1のオペレーティングシステムによりスケジューリングされるタスクとして実現され、複数のタスクを管理するタスク管理段階と、前記複数のタスクのうち一の前記タスクが他の前記タスクより優先してスケジューリングされると判断した場合に、前記一のタスクを、前記第1のオペレーティングシステムにより前記タスク管理段階より高い優先度でスケジューリングさせるタスク実行制御段階とを備えることを特徴とする制御方法。
【0070】
(項目18) 第1のオペレーティングシステムにおいて、タスクのスケジューリングを管理するタスク管理システムをコンピュータによって制御する制御方法であって、前記第1のオペレーティングシステムとは異なる第2のオペレーティングシステムの機能を用いる複数のタスクを管理し、前記第1のオペレーティングシステムにより実行されるタスク管理段階と、前記複数のタスクのうち一の前記タスクが、前記第1のオペレーティングシステムによってのみ実行可能なモジュールを実行すると判断した場合に、前記一のタスクを前記第1のオペレーティングシステムによりスケジューリングさせるタスク実行制御段階とを備えることを特徴とする制御方法。
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更または改良を加えることができる。そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0071】
【発明の効果】
上記説明から明らかなように、本発明によれば処理の種類に応じてスケジューリングするOSを切り替えることにより、排他処理や入出力処理を効率的に行うことができる。
【図面の簡単な説明】
【図1】図1は、タスク管理システム10の機能ブロック図である。
【図2】図2は、タスク管理システム10による機能である、POSIXタスク110の排他処理の動作フローを示す図である。
【図3】図3は、POSIXタスク110が排他処理をする動作の詳細図である。
【図4】図4は、タスク管理システム10による機能である、POSIXタスク110によるITRONのAPI実行の動作フローを示す図である。
【図5】図5は、POSIXタスク110がITRONの入出力機能を用いる動作の詳細図である。
【図6】図6は、POSIXタスクが第1OS150によってのみ実行可能なモジュールを実行する構成をした場合における動作の例を示す。
【図7】図7は、本実施形態においてPOSIXタスクがITRONの入出力機能を用いる例を示す図である。
【図8】図8は、本実施形態に示すタスク管理システム10を有する多重OSシステムの実装例を示す図である。
【図9】図9は、本実施形態に示すタスク管理システム10のハードウェア構成を示す図である。
【符号の説明】
10 タスク管理システム
110 POSIXタスク
115 第2OS
120 タスク管理部
122 レディキュー
124 ウェイトキュー
126 レディタスクポインタ
128 ウェイトタスクポインタ
130 タスク実行制御部
135 ITRON入出力モジュール
140 ITRONタスク
150 第1OS
152 レディキュー
154 ウェイトキュー
156 レディタスクポインタ
158 ウェイトタスクポインタ
300 多重OSシステム
500 コマンド用共有メモリ
510 データ用共有メモリ

Claims (18)

  1. 第1のオペレーティングシステムにおいて、タスクのスケジューリングを管理するタスク管理システムであって、
    前記第1のオペレーティングシステムによりスケジューリングされ、複数のタスクをスケジューリングすることにより管理するタスク管理部と、
    前記複数のタスクのうち一の前記タスクが他の前記タスクより優先してスケジューリングされると判断した場合に、前記一のタスクを、前記第1のオペレーティングシステムにより前記タスク管理部より高い優先度でスケジューリングさせるタスク実行制御部と
    を備えることを特徴とするタスク管理システム。
  2. 前記複数のタスクは、前記第1のオペレーティングシステム上で実行される第2のオペレーティングシステムのタスクであり、
    前記タスク管理部は、前記複数のタスクとして、前記第2のオペレーティングシステムのタスクをスケジューリングすることにより管理することを特徴とする請求項1記載のタスク管理システム。
  3. 前記第1のオペレーティングシステムは、前記複数のタスクより優先してスケジューリングされる複数の優先タスクを実行することを特徴とする請求項1記載のタスク管理システム。
  4. 前記タスク管理部は、前記複数の優先タスクより低い優先度でスケジューリングされ、
    前記一のタスクが前記他のタスクより優先してスケジューリングされると判断した場合に、前記タスク実行制御部は、前記一のタスクを、前記タスク管理部より高く、かつ前記複数の優先タスクより低い優先度でスケジューリングさせることを特徴とする請求項3記載のタスク管理システム。
  5. 前記タスク実行制御部は、前記一のタスクが前記他のタスクに対して排他処理を実行すると判断した場合に、前記一のタスクを前記タスク管理部より高い優先度でスケジューリングさせることを特徴とする請求項1記載のタスク管理システム。
  6. 前記タスク実行制御部は、前記一のタスクがセマフォ管理のために前記排他処理を行うと判断した場合に、前記一のタスクを前記タスク管理部より高い優先度でスケジューリングさせることを特徴とする請求項5記載のタスク管理システム。
  7. 前記タスク実行制御部は、前記一のタスクが前記他のタスクより優先してスケジューリングされる状態を終了させた場合に、前記一のタスクを前記タスク管理部によりスケジューリングされる状態に戻すことを特徴とする請求項1記載のタスク管理システム。
  8. 前記複数のタスクは、前記第1のオペレーティングシステムとは異なる第2のオペレーティングシステムの機能を用い、前記第1のオペレーティングシステム上で実行可能なタスクとして生成され、
    前記タスク管理部は、前記複数のタスクそれぞれにおいて、前記第1のオペレーティングシステム上で実行可能か否かを示す実行状態を変更することにより、前記第1のオペレーティングシステムにより前記複数のタスクをスケジューリングさせることを特徴とする請求項1記載のタスク管理システム。
  9. 前記タスク管理部は、前記複数のタスクのうち一のタスクを選択し、前記第1のオペレーティングシステムにより実行させることにより、前記複数のタスクを順次スケジューリングすることを特徴とする請求項8記載のタスク管理システム。
  10. 前記第1のオペレーティングシステムは、リアルタイムオペレーティングシステムであり、
    前記複数のタスクは、非リアルタイムオペレーティングシステムのタスクをスケジューリングすることにより管理することを特徴とする請求項1記載のタスク管理システム。
  11. 第1のオペレーティングシステムにおいて、タスクのスケジューリングを管理するタスク管理システムであって、
    前記第1のオペレーティングシステムとは異なる第2のオペレーティングシステムの機能を用いる複数のタスクを管理し、前記第1のオペレーティングシステムにより実行されるタスク管理部と、
    前記複数のタスクのうち一の前記タスクが、前記第1のオペレーティングシステムによってのみ実行可能なモジュールを実行すると判断した場合に、前記一のタスクを前記第1のオペレーティングシステムにより実行させるタスク実行制御部と
    を備えることを特徴とするタスク管理システム。
  12. 前記複数のタスクは、前記第1のオペレーティングシステム上で実行可能なタスクとして生成され、
    前記タスク管理部は、前記複数のタスクそれぞれにおいて、前記第1のオペレーティングシステム上で実行可能か否かを示す実行状態を変更することにより、前記複数のタスクをスケジューリングし、
    前記タスク実行制御部は、前記一のタスクが前記第1のオペレーティングシステムによってのみ実行可能なモジュールを実行すると判断した場合に、前記一のタスクの前記タスク管理部によるスケジューリングを停止することにより、前記一のタスクを前記第1オペレーティングシステムによりスケジューリングさせ、前記一のタスクを前記第1オペレーティングシステムにより実行させることを特徴とする請求項11記載のタスク管理システム。
  13. 前記タスク実行制御部は、前記第1のオペレーティングシステムによってのみ実行可能なモジュールの実行を終了したと判断した場合に、前記一のタスクを前記タスク管理部によりスケジューリングされる状態に戻すことを特徴とする請求項11記載のタスク管理システム。
  14. 第1のオペレーティングシステムにおいて、タスクのスケジューリングを管理するタスク管理システムをコンピュータによって制御するプログラムであって、
    前記コンピュータを、
    前記第1のオペレーティングシステムによりスケジューリングされ、複数のタスクをスケジューリングすることにより管理するタスク管理部と、
    前記複数のタスクのうち一の前記タスクが他の前記タスクより優先してスケジューリングされると判断した場合に、前記一のタスクを、前記第1のオペレーティングシステムにより前記タスク管理部より高い優先度でスケジューリングさせるタスク実行制御部と
    して機能させることを特徴とするプログラム。
  15. 第1のオペレーティングシステムにおいて、タスクのスケジューリングを管理するタスク管理システムをコンピュータによって制御するプログラムであって、
    前記コンピュータを、
    前記第1のオペレーティングシステムとは異なる第2のオペレーティングシステムの機能を用いる複数のタスクを管理し、前記第1のオペレーティングシステムにより実行されるタスク管理部と、
    前記複数のタスクのうち一の前記タスクが、前記第1のオペレーティングシステムによってのみ実行可能なモジュールを実行すると判断した場合に、前記一のタスクを前記第1のオペレーティングシステムにより実行させるタスク実行制御部と
    して機能させることを特徴とするプログラム。
  16. 請求項14又は請求項15何れかに記載のプログラムを記録した記録媒体。
  17. 第1のオペレーティングシステムにおいて、タスクのスケジューリングを制御する制御方法であって、
    前記第1のオペレーティングシステムによりスケジューリングされるタスクとして実現され、複数のタスクを管理するタスク管理段階と、
    前記複数のタスクのうち一の前記タスクが他の前記タスクより優先してスケジューリングされると判断した場合に、前記一のタスクを、前記第1のオペレーティングシステムにより前記タスク管理段階より高い優先度でスケジューリングさせるタスク実行制御段階と
    を備えることを特徴とする制御方法。
  18. 第1のオペレーティングシステムにおいて、タスクのスケジューリングを管理するタスク管理システムをコンピュータによって制御する制御方法であって、
    前記第1のオペレーティングシステムとは異なる第2のオペレーティングシステムの機能を用いる複数のタスクを管理し、前記第1のオペレーティングシステムにより実行されるタスク管理段階と、
    前記複数のタスクのうち一の前記タスクが、前記第1のオペレーティングシステムによってのみ実行可能なモジュールを実行すると判断した場合に、前記一のタスクを前記第1のオペレーティングシステムによりスケジューリングさせるタスク実行制御段階と
    を備えることを特徴とする制御方法。
JP2002234144A 2002-08-09 2002-08-09 タスク管理システム、プログラム、及び制御方法 Expired - Fee Related JP3938343B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002234144A JP3938343B2 (ja) 2002-08-09 2002-08-09 タスク管理システム、プログラム、及び制御方法
US10/637,737 US20040098722A1 (en) 2002-08-09 2003-08-08 System, method, and computer program product for operating-system task management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002234144A JP3938343B2 (ja) 2002-08-09 2002-08-09 タスク管理システム、プログラム、及び制御方法

Publications (2)

Publication Number Publication Date
JP2004078322A true JP2004078322A (ja) 2004-03-11
JP3938343B2 JP3938343B2 (ja) 2007-06-27

Family

ID=32019038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002234144A Expired - Fee Related JP3938343B2 (ja) 2002-08-09 2002-08-09 タスク管理システム、プログラム、及び制御方法

Country Status (2)

Country Link
US (1) US20040098722A1 (ja)
JP (1) JP3938343B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006164265A (ja) * 2004-12-03 2006-06-22 Microsoft Corp サブシステム間のリソース共有の可能化
JP2007087365A (ja) * 2005-09-22 2007-04-05 Ours Technology Inc 第一制御装置が第二制御装置に対し命令を伝達する方法
JP2009217388A (ja) * 2008-03-07 2009-09-24 Toshiba Corp 情報処理装置
US7725897B2 (en) 2004-11-24 2010-05-25 Kabushiki Kaisha Toshiba Systems and methods for performing real-time processing using multiple processors

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003345612A (ja) * 2002-05-28 2003-12-05 Sony Corp 演算処理システム、コンピュータ・システム上でのタスク制御方法、並びにコンピュータ・プログラム
DE10257423A1 (de) 2002-12-09 2004-06-24 Europäisches Laboratorium für Molekularbiologie (EMBL) Mikroskop
JP3953449B2 (ja) * 2003-08-26 2007-08-08 富士通株式会社 タスク管理プログラムおよびタスク制御装置
US7165172B1 (en) * 2003-10-01 2007-01-16 Advanced Micro Devices, Inc. Facilitating cold reset and warm reset tasking in a computer system
JP4112511B2 (ja) * 2004-02-17 2008-07-02 富士通株式会社 タスク管理プログラムおよびタスク管理装置
CN100547515C (zh) * 2005-07-15 2009-10-07 联想(北京)有限公司 支持可信计算的虚拟机系统及在其上实现可信计算的方法
TWI337495B (en) * 2006-10-26 2011-02-11 Au Optronics Corp System and method for operation scheduling
JP4088335B1 (ja) * 2007-08-10 2008-05-21 ネットクリアスシステムズ株式会社 仮想キュー処理回路およびタスク処理装置
CN101706788B (zh) * 2009-11-25 2012-11-14 惠州Tcl移动通信有限公司 一种嵌入式文件系统的跨区访问方法
FR2997773B1 (fr) * 2012-11-06 2016-02-05 Centre Nat Rech Scient Procede d'ordonnancement avec contraintes d'echeance, en particulier sous linux, realise en espace utilisateur.
US9413819B1 (en) 2014-03-21 2016-08-09 Amazon Technologies, Inc. Operating system interface implementation using network-accessible services
KR102247742B1 (ko) 2015-04-21 2021-05-04 삼성전자주식회사 애플리케이션 프로세서와 시스템 온 칩
CN105892996A (zh) * 2015-12-14 2016-08-24 乐视网信息技术(北京)股份有限公司 一种批量数据处理的流水线作业方法及装置

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4502116A (en) * 1982-11-17 1985-02-26 At&T Bell Laboratories Multiple processor synchronized halt test arrangement
DE69133025T2 (de) * 1990-08-31 2002-11-21 Texas Instruments Inc Multiprozessorsystem
US5275601A (en) * 1991-09-03 1994-01-04 Synthes (U.S.A) Self-locking resorbable screws and plates for internal fixation of bone fractures and tendon-to-bone attachment
AU672596B2 (en) * 1992-02-14 1996-10-10 Smith & Nephew, Inc. Polymeric screws and coatings for surgical uses
US5831609A (en) * 1994-06-17 1998-11-03 Exodus Technologies, Inc. Method and system for dynamic translation between different graphical user interface systems
US5980252A (en) * 1995-05-08 1999-11-09 Samchukov; Mikhail L. Device and method for enhancing the shape, mass, and strength of alveolar and intramembranous bone
DE19536650A1 (de) * 1995-09-30 1997-04-03 Sel Alcatel Ag Verfahren zum Steuern einer Vermittlungsstelle, Vermittlungsstelle und Kommunikationssystem
JPH1047328A (ja) * 1996-07-29 1998-02-17 Topy Fastener Kogyo Kk プッシュナット
US6319306B1 (en) * 2000-03-23 2001-11-20 Idatech, Llc Hydrogen-selective metal membrane modules and method of forming the same
JP3718306B2 (ja) * 1997-01-06 2005-11-24 経憲 武井 人工臼蓋及び人工股関節
US6001100A (en) * 1997-08-19 1999-12-14 Bionx Implants Oy Bone block fixation implant
US6371977B1 (en) * 1997-10-08 2002-04-16 Aquatex Industries, Inc. Protective multi-layered liquid retaining composite
FI108478B (fi) * 1998-01-21 2002-01-31 Nokia Corp Sulautettu jõrjestelmõ
US6421661B1 (en) * 1998-06-15 2002-07-16 International Business Machines Corporation Hierarchical query syntax for inquiring and selecting among database objects
US6728958B1 (en) * 1998-07-31 2004-04-27 Hewlett-Packard Development Company, L.P. Volatile resource manager with pre-prepare notification
US6214007B1 (en) * 1999-06-01 2001-04-10 David G. Anderson Surgical fastener for fixation of a soft tissue graft to a bone tunnel
DE59901090D1 (de) * 1999-12-23 2002-05-02 Storz Karl Gmbh & Co Kg Schraube mit dezentralem Antrieb
US6757904B1 (en) * 2000-03-10 2004-06-29 Microsoft Corporation Flexible interface for communicating between operating systems
AU2001255611A1 (en) * 2000-04-25 2001-11-07 Icplanet Acquisition Corporation System and method for scheduling execution of cross-platform computer processes
CN100362968C (zh) * 2000-05-11 2008-01-23 斯恩蒂斯有限公司 用于两个物体、特别是茎梗螺钉和螺钉旋拧器可拆卸连接的插接机构
US9387094B2 (en) * 2000-07-19 2016-07-12 Warsaw Orthopedic, Inc. Osteoimplant and method of making same
US20020073129A1 (en) * 2000-12-04 2002-06-13 Yu-Chung Wang Integrated multi-component scheduler for operating systems
US6565573B1 (en) * 2001-04-16 2003-05-20 Smith & Nephew, Inc. Orthopedic screw and method of use
US6471707B1 (en) * 2001-05-11 2002-10-29 Biomet Bone screw having bioresorbable proximal shaft portion
JP2003067201A (ja) * 2001-08-30 2003-03-07 Hitachi Ltd コントローラとオペレーティングシステム
US6916321B2 (en) * 2001-09-28 2005-07-12 Ethicon, Inc. Self-tapping resorbable two-piece bone screw
US6953463B2 (en) * 2001-10-12 2005-10-11 Hs West Investments, Llc Interference screws having increased proximal diameter
US6689137B2 (en) * 2001-10-15 2004-02-10 Gary Jack Reed Orthopedic fastener and method
US6921402B2 (en) * 2001-12-27 2005-07-26 Ethicon, Inc. Polymer-based orthopedic screw and driver system with increased insertion torque tolerance and associated method for making and using same
US20030125749A1 (en) * 2001-12-27 2003-07-03 Ethicon, Inc. Cannulated screw and associated driver system
US20040172385A1 (en) * 2003-02-27 2004-09-02 Vikram Dayal Database query and content transmission governor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725897B2 (en) 2004-11-24 2010-05-25 Kabushiki Kaisha Toshiba Systems and methods for performing real-time processing using multiple processors
JP2006164265A (ja) * 2004-12-03 2006-06-22 Microsoft Corp サブシステム間のリソース共有の可能化
JP2007087365A (ja) * 2005-09-22 2007-04-05 Ours Technology Inc 第一制御装置が第二制御装置に対し命令を伝達する方法
JP2009217388A (ja) * 2008-03-07 2009-09-24 Toshiba Corp 情報処理装置

Also Published As

Publication number Publication date
US20040098722A1 (en) 2004-05-20
JP3938343B2 (ja) 2007-06-27

Similar Documents

Publication Publication Date Title
US5721922A (en) Embedding a real-time multi-tasking kernel in a non-real-time operating system
US8161453B2 (en) Method and apparatus for implementing task management of computer operations
JP3938343B2 (ja) タスク管理システム、プログラム、及び制御方法
US6021425A (en) System and method for optimizing dispatch latency of tasks in a data processing system
US5903752A (en) Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system
US6560626B1 (en) Thread interruption with minimal resource usage using an asynchronous procedure call
US6006247A (en) Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system
US5469571A (en) Operating system architecture using multiple priority light weight kernel task based interrupt handling
US5799188A (en) System and method for managing variable weight thread contexts in a multithreaded computer system
KR20040068600A (ko) 운영 시스템 기능 실행 방법 및 시스템, 전자 기기
US7971205B2 (en) Handling of user mode thread using no context switch attribute to designate near interrupt disabled priority status
EP1031924A2 (en) Computer executing multiple operating system
US20020161957A1 (en) Methods and systems for handling interrupts
JP2003345612A (ja) 演算処理システム、コンピュータ・システム上でのタスク制御方法、並びにコンピュータ・プログラム
JPH08212086A (ja) オフィスマシンのオペレーティングシステム及び方法
JP2004326774A (ja) 論理的に区画化されたコンピュータにおける区画管理操作に関する非同期通知の選択的生成
US9122521B2 (en) Enabling multiple operating systems to run concurrently using barrier task priority
EP1693743A2 (en) System, method and medium for using and/or providing operating system information to acquire a hybrid user/operating system lock
EP0287295A2 (en) Multiple I/O bus virtual broadcast of programmed I/O instructions
AU2009255464A1 (en) Regaining control of a processing resource that executes an external execution context
CN111831436A (zh) Io请求的调度方法、装置、存储介质及电子设备
US8806180B2 (en) Task execution and context switching in a scheduler
US8424013B1 (en) Methods and systems for handling interrupts across software instances and context switching between instances having interrupt service routine registered to handle the interrupt
Ngolah et al. The real-time task scheduling algorithm of RTOS+
EP2280345A1 (en) A device for and a method of managing computer tasks

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060228

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070207

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20070307

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070320

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110406

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees