(57)【要約】【目的】タスクの終了や強制終了により発した利用最中のミドルウェアの資源の解放と削除処理をカーネルの介入を最小限に抑えたリアルタイムマルチタスクＯＳを提供すること。【構成】組み込み用マルチタスクＯＳ等、軽量なカーネルとファイルシステムやネットワーク等ミドルウェアから構成されるシステムにおいて、ミドルウェアの資源の存在があるタスクに依存する場合に、その依存情報をカーネルに通知する通知手段と、前記依存情報をカーネルが管理するための管理手段と、前記管理手段で管理している情報を検索する検索手段と、タスクの終了や強制終了を受けてミドルウェアの資源を解放・削除する解放削除手段とを有する。【選択図】      図１
2004246581.tif 000002
【特許請求の範囲】
【請求項１】
組み込み用マルチタスクＯＳ等、軽量なカーネルとファイルシステムやネットワーク等ミドルウェアから構成されるシステムにおいて、
ミドルウェアの資源の存在があるタスクに依存する場合に、その依存情報をカーネルに通知する通知手段と、前記依存情報をカーネルが管理するための管理手段と、前記管理手段で管理している情報を検索する検索手段と、タスクの終了や強制終了を受けてミドルウェアの資源を解放・削除する解放削除手段とを有することを特徴とする組み込み用マルチタスクＯＳ。
【請求項２】
前記通知手段はシステムコールであることを特徴とする請求項１記載の組み込み用マルチタスクＯＳ。
【請求項３】
前記管理手段は、前記通知手段を受けて情報生成され、前記通知手段やタスクの終了、強制終了により削除されることを特徴とする請求項１又は２記載の組み込み用マルチタスクＯＳ。
【請求項４】
前記検索手段は、前記通知手段を受けて生成・管理された情報をカーネルを介してタスクが処理を行うことを特徴とする請求項１〜３の何れかに記載の組み込み用マルチタスクＯＳ。
【請求項５】
前記解放削除手段は、カーネルがタスク終了や強制終了のシステムコールを受けてそのタスク終了を発したタスクや強制終了を発したタスク処理内でミドルウェアの資源を解放・削除するように機能することを特徴とする請求項１〜４の何れかに記載の組み込み用マルチタスクＯＳ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、機器組み込み用マルチタスクＯＳ等、機器に組み込むのに適した組み込み用マルチタスクＯＳに関する。
【０００２】
【従来の技術】
従来、組み込み用マルチタスクＯＳでは、その軽量性を維持するためにミドルウェアの資源（ネットワークソケットやファイルディスクリプタ）に対してカーネルは具体的な管理機能の提供を行っていなかった。
【０００３】
このために、タスクがミドルウェアの資源を利用する際には、少なくともタスク終了時には正しくミドルウェアの資源が解放・削除されるよう配慮して実装する必要があった。
【０００４】
しかし、タスクがカーネルの機能である強制終了のシステムコール等で、予期せぬタイミングでタスクが終了してしまうと、そのタスクが利用していたミドルウェアの資源を正しく解放・削除できないためにシステムに永久に存在してしまっていた。
【０００５】
資源管理の問題を解決するため、特開平６−１７５８６５号の「リアルタイムオペレーティングシステム」ではカーネルが各タスクが保有している資源の利用をカウントすることで資源の解放を行い、他者タスクがその資源を利用できるようにする技術を提案している。
【０００６】
【発明が解決しようとする課題】
しかしながら、前記した従来例にあっては、カーネルが管理する資源のみにしか対応できず、ミドルウェアの資源に対しては問題を解決することができない。
【０００７】
更に、資源の解放は行えるが、システム上から削除する方法については提案されていない。
【０００８】
本発明は前記した従来の技術の有するこのような問題に鑑みてなされたものであり、その目的とする処は、タスクの終了や強制終了により発した利用最中のミドルウェアの資源の解放と削除処理をカーネルの介入を最小限に抑えたリアルタイムマルチタスクＯＳを提供することである。
【０００９】
【課題を解決するための手段】
上記目的を達成するため、請求項１記載の組み込み用マルチタスクＯＳは、組み込み用マルチタスクＯＳ等、軽量なカーネルとファイルシステムやネットワーク等ミドルウェアから構成されるシステムにおいて、ミドルウェアの資源の存在があるタスクに依存する場合に、その依存情報をカーネルに通知する通知手段と、前記依存情報をカーネルが管理するための管理手段と、前記管理手段で管理している情報を検索する検索手段と、タスクの終了や強制終了を受けてミドルウェアの資源を解放・削除する解放削除手段とを有することを特徴とする。
【００１０】
又、請求項２記載の組み込み用マルチタスクＯＳは、請求項１の組み込み用マルチタスクＯＳにおいて、前記通知手段はシステムコールであることを特徴とする。
【００１１】
請求項３記載の組み込み用マルチタスクＯＳは、請求項１又は２記載の組み込み用マルチタスクＯＳにおいて、前記管理手段は、前記通知手段を受けて情報生成され、前記通知手段やタスクタスクの終了、強制終了により削除されることを特徴とする。
【００１２】
請求項４記載の組み込み用マルチタスクＯＳは、請求項１〜３の何れかに記載の組み込み用マルチタスクＯＳにおいて、前記検索手段は、前記通知手段を受けて生成・管理された情報をカーネルを介してタスクが処理を行うことを特徴とする。
【００１３】
請求項５記載の組み込み用マルチタスクＯＳは、請求項１〜４の何れかに記載の組み込み用マルチタスクＯＳにおいて、前記解放削除手段は、カーネルがタスク終了や強制終了のシステムコールを受けてそのタスク終了を発したタスクや強制終了を発したタスク処理内でミドルウェアの資源を解放・削除するように機能することを特徴とする。
【００１４】
【発明の実施の形態】
以下、本発明の各実施の形態を図面に基づき説明する。
【００１５】
＜実施の形態１＞
先ず、本発明の実施の形態１を図１〜図７に基づき説明する。
【００１６】
図１は本実施の形態に係る組み込み用マルチタスクＯＳの構成において、自タスクが終了する場合の構成を示す概念図である。同図において、１０１はカーネル、１０２はミドルウェア、１０３は一般的なユーザタスク、１０４はミドルウェアの資源、１０５はミドルウェアの資源をユーザタスクが利用可能にするための一般的なインタフェース、１１１は通知手段、１１２は管理手段、１１３はユーザタスクを終了させる一般的な手段、１１４は検索手段、１１５は解放削除手段を示している。
【００１７】
カーネル１０１は、ユーザタスク１０３から通知手段１１１によって通知された依存情報を受け取る。受け取った依存情報を管理手段１１２に保持する。タスクの終了１１３を受けてタスク終了処理を行う前に該タスクのコンテキスト上で、検索手段１１４によってタスクの利用しているミドルウェア資源を検索し、解放削除手段１１５を用いてミドルウェアの資源を解放・削除する。その後、一般的なタスク終了処理を行う。
【００１８】
図２は本実施の形態に係る組み込み用マルチタスクＯＳの構成において、他タスクにより自タスクが強制終了される場合の構成を示す概念図である。同図において、２０１はカーネル、２０２はミドルウェア、２０３は強制終了させられるユーザタスク、２０４はユーザタスク２０３を強制終了するタスク、２０５はミドルウェアの資源、２０６はミドルウェアの資源をユーザタスクが利用可能にするための一般的なインタフェース、２１１は通知手段、２１２は管理手段、２１３はユーザタスクを強制終了させる一般的な手段、２１４は検索手段、２１５は解放削除手段を示している。
【００１９】
カーネル２０１は、ユーザタスク２０３から通知手段２１１によって通知された依存情報を受け取る。受け取った依存情報を、管理手段２１２に保持する。ユーザタスク２０４からユーザタスク２０３のタスク強制終了を受けて、ユーザタスク２０４のコンテキスト上で、検索手段２１４によってタスクの利用しているミドルウェアの資源を検索し、解放削除手段２１５を用いてミドルウェアの資源を解放・削除する。その後、一般的なタスク強制終了処理を行う。
【００２０】
図３は本実施の形態に係る組み込み用マルチタスクＯＳの構成を具備した情報処理装置のハードウェア構成を示すブロック図である。
【００２１】
図３において、３０１はＣＰＵ（中央演算処理装置）、３０２はＲＡＭ（ランダムアクセスメモリ）、３０３はＲＯＭ（リードオンリメモリ）、３０４はＩ／Ｏコントローラ、３０５はバスを示している。
【００２２】
本発明は図３の３０１及び３０２，３０３，３０５により構成されるハードウェアで構成される。又、組み込み用マルチタスクＯＳを利用するユーザは必要なモジュールを組み合わせることができ、例えば、３０４の機構等を付加して利用することができる。
【００２３】
このようなハードウェアを構成することによって、本発明の組み込み用マルチタスクＯＳを実施する。
【００２４】
次に、上記構成から成る本実施の形態に係る組み込み用マルチタスクＯＳにおけるシステム起動からミドルウェア資源解放・削除に至るまでの実施の形態を図１の構成に基づいて説明する。
【００２５】
図４はシステム起動によるカーネル１０１又は２０１の初期化処理を示している。
【００２６】
機器への電源投入等のシステム起動によりカーネル１０１が起動する。ステップＳ４０１においてカーネルの初期化が行われる。
【００２７】
ステップＳ４０２において、管理手段１１２のメモリ確保等の初期化処理を行う。
【００２８】
図５はユーザタスク１０３がミドルウェア資源の利用を開始する際の処理を示している。ユーザタスクがミドルウェアの資源を利用開始する処理を行った場合、ステップＳ５０１において、ユーザタスクはミドルウェア資源を利用開始する処理をミドルウェアに対して発行する。
【００２９】
ステップＳ５０２において、ユーザタスクはステップＳ５０１で利用を開始した資源に対して、その一意となるＩＤと資源の利用を終了するための処理（関数ポインタと必要ならばそのパラメタ）を通知手段１１１のシステムコールを用いてカーネルに渡す。受け取ったカーネルは、そのタスクコンテキスト上で管理手段１１２に受け取った情報をリストとして登録する。
【００３０】
図６はユーザタスクが図５で利用開始したミドルウェアを自発的に利用終了する処理を示している。
【００３１】
ユーザタスクが自発的にミドルウェアの資源利用を終了する処理を行った場合、ステップＳ６０１でユーザタスクは、ミドルウェアの資源利用を終了する処理をミドルウェアに対して発行する。
【００３２】
ステップＳ６０２において、ユーザタスクは図５で利用開始を通知した際の情報に基づいて通知手段１１１を利用して利用終了をカーネルに伝える。受け取ったカーネルでは、そのタスクコンテキスト上で管理手段１１２から該当するリストを探索し、削除する。
【００３３】
図７はユーザタスクがタスク終了若しくはタスク強制終了する処理を示している。
【００３４】
ユーザタスクが終了又は強制終了される処理を行った場合、ステップＳ７０１で管理手段１１２を用いて終了するタスクが利用途中のミドルウェア資源が存在するかを検索する。タスクがミドルウェアの資源を利用している場合、ステップＳ７０２に進み、タスクがミドルウェアの資源を利用していない場合、ステップＳ７０４に進む。
【００３５】
ステップＳ７０２では管理手段に保持されている情報からその資源を解放削除する関数をコールし削除する。
【００３６】
ステップＳ７０３では管理手段に保持されている情報を削除し、ステップＳ７０１に進む。
【００３７】
これらステップＳ７０１及びＳ７０２，Ｓ７０３は、タスク終了の場合はそのタスクコンテキスト上で、タスク強制終了の場合は、その強制終了システムコールを呼んだタスクコンテキスト上で処理が行われる。
【００３８】
ステップＳ７０４では、これまでタスクコンテキスト上での処理であったのをカーネル内部処理を行う状態（割り込み禁止等）へと遷移させる。
【００３９】
ステップＳ７０５では、一般的なタスク終了又はタスク強制終了のカーネル内部処理を行う。
【００４０】
以上のように実装することで、タスクの終了／強制終了により発した所有済のミドルウェア資源の解放削除が行えるため、システム上に永久に存在したままの状態を回避できる。尚、本実施の形態では、管理手段をリスト状で保持するが、テーブル等その他の情報保持方式で行うことも可能である。
【００４１】
又、図４において、ステップＳ４０１とステップＳ４０２は逆順で行うことも可能である。これは、図５においてステップＳ５０１とステップＳ５０２、図６においてステップＳ６０１とステップＳ６０２、図７においてステップＳ７０２とステップＳ７０３においても同様に逆順で行うことも可能である。
【００４２】
又、本発明の組み込み用マルチタスクＯＳを格納する記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｄｉｓｋ）  、ＣＤ−Ｒ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅｃｏｒｄａｂｌｅ）  、磁気テープ、不揮発性メモリカード、ＲＯＭチップ等を用いることができる。
【００４３】
＜実施の形態２＞
又、本発明の実施の形態２として、上述した実施の形態１において、単一タスクがミドルウェアの資源を利用する場合について述べているが、複数タスクで資源を共有する場合についても対象とすることが出来る。
【００４４】
本発明の実施の形態２を図８〜図９に基づき説明する。
【００４５】
図８は本実施の形態に係る組み込み用マルチタスクＯＳの構成において、複数のユーザタスクがミドルウェアの資源を共有する場合の構成を示す概念図である。同図において、８０１はカーネル、８０２はミドルウェア、８０３，８０４はユーザタスク、特に８０４は資源共有時にタスク終了若しくは強制終了するタスク、８０５はミドルウェアの資源、８０６，８０７はミドルウェアの資源をユーザタスクが利用可能にするための一般的なインタフェース、８１１は通知手段、８１２は管理手段、８１３はユーザタスクを終了させる一般的な手段、８１４は検索手段を示している。
【００４６】
カーネル８０１は、ユーザタスク８０３，８０４からそれぞれ通知手段８１１によって通知された依存情報を受け取る。受け取った依存情報は、それぞれ管理手段８１２に保持する。タスクの終了８１３を受けてタスク終了処理を行う際にタスクコンテキスト上で検索手段８１４を用いてミドルウェア資源の利用状況と他タスクとの共有について検索する。検索の結果、ミドルウェアの資源を解放削除する必要がある場合には該当処理を行い、その後、一般的なタスク終了処理を行う。
【００４７】
図９は本実施の形態に係る組み込み用マルチタスクＯＳの構成において、タスク終了又は強制終了する際の処理を示している。
【００４８】
ユーザタスクが終了または強制終了される際に、ステップＳ９０１で管理手段８１２を用いて利用中のミドルウェア資源があるかを検索する。利用中のミドルウェア資源がある場合はステップＳ９０２に進み、利用中のミドルウェア資源が無い場合はステップＳ９０５に進む。
【００４９】
ステップＳ９０２では、ステップＳ９０１で該当した情報を管理手段から削除する。
【００５０】
ステップＳ９０３では、該当するミドルウェアの資源を他者タスクが利用しているかを検索する。利用している場合はステップＳ９０１に進み、利用していない場合はステップＳ９０４に進む。
【００５１】
ステップＳ９０４では、管理手段に保持していた情報から、その資源を削除解放する関数をコールし削除する。
【００５２】
これらステップＳ９０１，Ｓ９０２，Ｓ９０３，Ｓ９０４は、タスク終了の場合は終了するタスクのコンテキスト上で、タスク強制終了の場合は強制終了システムコールを発行したタスクコンテキスト上で処理が行われる。
【００５３】
ステップＳ９０５では、これまでタスクコンテキスト上での処理であったのをカーネル内部処理を行う状態（割り込み禁止等）へと遷移させる。
【００５４】
ステップＳ９０６では、一般的なタスク終了又はタスク強制終了のカーネル内部処理を行う。
【００５５】
以上のように実装することで、タスクの終了／強制終了により発した所有済のミドルウェア資源の解放削除が、たとえ複数タスクに共有されていても行えるため、システム上に永久に存在したままの状態を回避できる。
【００５６】
尚、本実施の形態に係るその他の構成及び動作は、上述した実施の形態１と同一であることから、その説明は省略する。
【００５７】
【発明の効果】
以上詳述したように、本発明の組み込み用マルチタスクＯＳによれば、タスクの終了及び強制終了により発した所有済みのミドルウェアの解放削除が行えるという効果を奏する。
【図面の簡単な説明】
【図１】本発明の実施の形態１に係る組み込み用マルチタスクＯＳの構成において自タスクが終了する場合の構成を示す概念図である。
【図２】本発明の実施の形態１に係る組み込み用マルチタスクＯＳの構成において他タスクからの強制終了時の構成を示す概念図である。
【図３】本発明の実施の形態１に係る組み込み用マルチタスクＯＳのハードウェア構成を示すブロック図である。
【図４】本発明の実施の形態１に係る組み込み用マルチタスクＯＳのシステム起動によるカーネルの初期化処理の流れを示すフローチャートである。
【図５】本発明の実施の形態１に係る組み込み用マルチタスクＯＳのミドルウェア資源利用を開始する際の処理の流れを示すフローチャートである。
【図６】本発明の実施の形態１に係る組み込み用マルチタスクＯＳのミドルウェア資源利用を終了する際の処理の流れを示すフローチャートである。
【図７】本発明の実施の形態１に係る組み込み用マルチタスクＯＳのタスク終了及びタスク強制終了時の処理の流れを示すフローチャートである。
【図８】本発明の実施の形態２に係る組み込み用マルチタスクＯＳの構成を示す概念図である。
【図９】本発明の実施の形態２に係る組み込み用マルチタスクＯＳのタスク終了及びタスク強制終了時の処理の流れを示すフローチャートである。
【符号の説明】
１０１      カーネル
１０２      ミドルウェア
１０３      ユーザタスク
１０４      ミドルウェア提供資源
１０５      一般的な資源利用インタフェース
１１１      通知手段（システムコール）
１１２      管理手段（依存関係リスト）
１１３      一般的なタスク終了手段
１１４      検索手段
１１５      削除解放手段
２０１      カーネル
２０２      ミドルウェア
２０３      ユーザタスク（強制削除受け側）
２０４      ユーザタスク（強制削除発行側）
２０５      ミドルウェア提供資源
２０６      一般的な資源利用インタフェース
２１１      通知手段
２１２      管理手段（依存関係リスト）
２１３      一般的なタスク強制終了手段
２１４      検索手段
２１５      削除解放手段
３０１      ＣＰＵ（中央演算処理装置）
３０２      ＲＡＭ（ランダムアクセスメモリ）
３０３      ＲＯＭ（リードオンリメモリ）
３０４      Ｉ／Ｏコントローラ
３０５      バス
８０１      カーネル
８０２      ミドルウェア
８０３      ユーザタスク
８０４      ユーザタスク（終了／強制終了受け側）
８０５      ミドルウェア提供資源
８０６      一般的な資源利用インタフェース
８０７      一般的な資源利用インタフェース
８１１      通知手段
８１２      管理手段（依存関係リスト）
８１３      一般的なタスク終了／強制終了手段
【図１】
2004246581.tif 000003
【図２】
2004246581.tif 000004
【図３】
2004246581.tif 000005
【図４】
2004246581.tif 000006
【図５】
2004246581.tif 000007
【図６】
2004246581.tif 000008
【図７】
2004246581.tif 000009
【図８】
2004246581.tif 000010
【図９】
2004246581.tif 000011