説明

OSからのリクエストのリアルタイム・ファイルシステム制御キュー

リアルタイム・ソフトウェアと非リアルタイムOSとがシステムの中に共存し、該リアルタイムソフトウェアは、共有された資源へのアクセスのための該非リアルタイムOSからのリクエストを制御する。前記リクエストは、キューに投入され、前記リアルタイム・ソフトウェアは、いつ、どの保留中のリクエストが実行されるかを決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、非リアルタイム(non−RT)オペレーティング・システム(OS)に、リアルタイム(RT)データ処理能力を提供することに関する。本発明は、特に、しかし他を排除する目的でなく、non−RT OSとリアルタイム・ファイルシステム(RTFS)とを組み合わせることに関する。
【背景技術】
【0002】
例えば、ハードディスク・ドライブ(HDD)へのリアルタイム・レコーディングのために、ディスクへのRTアクセスが要求される。HDDは、多くのプロセスに共有される。アクセスのためのリクエストがリアルタイム状態で保持されることが保証される場合、慎重なスケジューリングが要求される。LinuxのようなホストOS(HOS)は、ベストエフォートに基づくディスクへのアクセスを提供するが、それはリアルタイムの要求にとっては、十分ではない。non−RT OSは、典型的には、各プロセスが、ディスクへの帯域の公平な割当てを得るという状況の下で、高い平均性能のために最適化されたスケジューラを有する。他方では、RTFSソフトウェア、例えばビデオストリームを記憶するためのRTストレージを提供するために使用される、は、全てのビデオストリームがRT状況下で記憶され、再生されることを保証するために、ディスク要求をリオーダリングするためのRTスケジューラを有する。本願発明者は、中でも、non−RT OSにおけるRT動作を達成するための問題を解決することを模索する。
【0003】
米国特許第6,446,962号は、共存するオペレーティング・システムによって、汎用OSにおいて、RTコンピューティングに対応するためのシステム、及び方法を開示する。このRTシステム技術は、デスクトップ・マルチメディア・カンファレンスのようなアプリケーションに対応するための、商用の、汎用(non−RT)オペレーティング・システムと共存することが可能である。中央処理装置、及び他のシステム資源は、二つの仮想装置に区切られる。第1の装置は、ほとんどの部分が改変されていない汎用オペレーシングシステムを実行し、第2の装置は、RTカーネルを実行する。物理的なハードウェアへのアクセスは、仮想装置によって多重化される。多重化器は、装置間の多重のために、予め正確で周期的な間隔でスケジュールされるか、又は該多重化器は、RTカーネルがハードウェアへのアクセスを獲得することを保証するために、RT OSのリクエストに応じた割り込みの制御下で操作される。
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明者は、non−RT OSとRTデータ処理とを組み合わせることで、従来の手法の、より有利な代替を提案する。この目的のために、本発明は、non−RT OSのリクエストをインターセプトし、RTルールに従って該リクエストを制御することによってnon−RT OSと協働するRTソフトェア・スタックを提供する。より詳細には、本発明は、RTソフトウェアとnon−RT OSとの間で、多くの資源の1つを共有するための、non−RT OSと共存するRTソフトウェアを実現する方法に関する。この方法は、RTソフトウェアが、non−RT OSからの、資源に対するアクセスのための1つ又はそれより多くの保留中のリクエストのキューをチェックすることを可能とし、RTソフトウェアが、いつ該保留中のリクエストが実行されるかを決定することを可能とすることを有する。
【課題を解決するための手段】
【0005】
本発明において、RTソフトウェアは、RTルールに従って、non−RT OSにおけるトラフィックを絞ることが可能となる。non−RT OSからのリクエストは、従来の場合に行われていたようには、直ちには実行されない。RTソフトウェアは、non−RT OSリクエストが実行される時を制御する。
【0006】
説明の容易のために、「フック」という語は、この文書において、RTソフトゥエアとnon−RT OSとの間の通信チャネルを示すものとして予定される。
【0007】
本発明によるnon−RT OSと共存するRTソフトウェアの実施例は、RTソフトウェアが、non−RT OS上で動作するものである。他の実施例において、RTソフトウェアは、non−RT OSの外部で動作する。RTソフトウェアがnon−RT OS上で動作している場合、フックによって制御されるようなデータハンドリングがリアルタイム保証されるべきものならば、該OSは、いくつかの制限されたリアルタイム処理保証のようなものを有する必要がある。さもなければ、RTソフトウェアは、フックへのコマンドを発行する機会を一切得られないであろう。RTソフトウェアは、したがって、望ましくは、優先度の高いスレッドで動作するものとなる。OSのCPU処理のみが、そのような条件を有する必要がある。フックの仕組みは、他のプロセス、例えばHDD又は他の資源へのアクセスのためのリアルタイム保証を生成するために、これを利用する。フック制御は大雑把な処理を制御するので、要求されるリアルタイム提供は、相当粗いものとなり得る。
【0008】
望ましくは、フックは、実行時に、有効及び無効にされ得る。無効にされた場合、non−RT OSは、フックが存在しないかのように動作する。これは、従来の方法でブートすることを可能にする。フックは、RTソフトウェアからのリクエストを認識し、該リクエストを、直ちに通過させる。これは、RTソフトウェアが、non−RT OSの関連するデバイスドライバを使用することを可能とし、RTリクエストが、遅延無く実行されることを保証する。フックは、non−RT OSからの全てのリクエストをインターセプトし、該リクエストをキューに入れる。これは、non−RT OSからのリクエストが、RTソフトウェアからのRTリクエストに干渉しないことを保証する。フックは、更に、キュー内のnon−RTリクエストに関する情報を、RTソフトウェアに提供する。これは、特定のnon−RTリクエストをRTトラフィックとの干渉から回避するという手法で、RTソフトウェアが該特定のnon−RTリクエストの実行を決定することを可能とする。例えば、RTソフトウェアは、リソース利用を最適化するように、non−RTリクエストが実行されるシーケンスを決定する。
【0009】
望ましくは、フックは、特定状況下では、フック自身が該フックを無効にすることを可能にする。例えば、フックは、RTソフトウェアが保留中のnon−RTリクエストのキューをチェックすることを停止したことを検出した場合、フック自身を無効にする。これは、システムが、RTソフトウェアが動作することを停止したような状況から復帰することを可能とする。
【0010】
上記特性は、本発明におけるシステムに、以下のような利点を提供する。RTソフトウェアは、non−RT OSのデバイスドライバを使用することができる。non−RT OSは、従来のようにブート可能である。ドライバを介するハードウェアへのアクセスは、完全にRT制御下にある。RTソフトウェアは、non−RT OSから独立、例えば、該RTソフトウェアが、non−RT OSの外側、又は上で動作する、とすることができる。結果、移植可能なRTソフトウェアスタックが開発され得る。
【0011】
ディスクアクセスのための、従来のシステムにおいて使用されていたような時間多重化は、比較的粗粒性のディスクリクエストであるので、望ましくない。発明者は、従って、全ての有効なリクエストに基づいた調停のためのスキームを提案する。これは、従来のシステムと本発明との、非常に重大な相異を導き出す。本発明において、RTディスクスケジューラは、リアルタイムリクエストとnon−RTリクエストとの両者のための、リクエスト実行の順序を決定する。従来のシステムでは、この調停は、ベアプロセッサで、すなわち、RTカーネル及び汎用カーネルの両者の外側で、行われる。多重化は、共有リソース間の競合を解決するために利用される幾つかの特定の手段を伴い、完全に時間ベースとなる。競合が、さもなければ、汎用プロセスにリアルタイムプロセスとの干渉を生じさせる。本発明は、汎用OSからのリクエストがリアルタイムストリーミングのためのリクエストと一切干渉しない時間にのみ、ディスクスケジューラが実行されることを保証するので、それらの競合を完全に回避する。
【発明を実施するための最良の形態】
【0012】
本発明は、例示、及び添付の図面を参照することによって、更に詳細に説明される。
【0013】
全図を通して、同一の参照符号は、同様の又は類似の機構を示す。
【0014】
本発明は、メモリに対しビデオストリーミングを記録する、及びメモリからビデオストリーミングを提供するという状況における例示によって、以下に示される。メモリは、例えばHDD、光ディスクドライブ、又は半導体メモリ、を有する。以下の例示では、メモリはHDDを有するとする。
【0015】
図1は、本発明における、システム100のブロック図である。システム100は、汎用すなわちnon−RTのホストOS(HOS)102を有する。システム100はまた、例えば、ビデオストリーミング・アプリケーションを利用可能とする、RTFSを有するソフトウェアである、RTソフトウェア104を有する。システム100は、更に、ハードウェア資源106、ここではHDDを有する。
【0016】
HOS102は、HOSファイルシステム108、HOSキャッシュ110、及びリソース106を操作するHOSデバイスドライバ112を有する。RTソフトウェア104をHOS102と共存させるために、後者は、HOS102とRTソフトウェア104との通信を可能にするソフトウェアフック114を具備している。HOS102及びRTソフトウェア104の両者は、HDD106へのアクセスを要求するプロセスを有する。フック114は、HOS102のプロセスからの、HDD106へのアクセスのための全てのリクエストをインターセプトし、該リクエストをキュー116に入れる。これは、non−RTリクエストが、RTソフトウェア104からのRTリクエスト118に干渉しないことを保証する。フック114は、更に、キュー116内のnon−RTリクエストに関する情報120をRTソフトウェア104に提供する。例えば、前記情報は、ディスク(ヘッド)の位置、及びリクエストのサイズを有する。これは、RTトラフィックの干渉を避けるように、RTソフトウェア104が、保留中のnon−RTリクエストの実行のための適切な時刻を決定することを可能にする。キュー116のリクエストは、RTソフトウェア104からの明示的な指令122の後にのみ、実行される。加えて、RTソフトウェア104は、non−RTリクエストが実行されるシーケンス、例えば、システム100におけるリソース使用を最適化すること、を決定することができる。フック114は、リソース106のアクセスのためのRTソフトウェア104からのリクエスト118を認識し、遅滞なく該リクエストが実行されるように、当該リクエストを直ちに通過させる。このように、RTソフトウェア104は、HOS102のデバイスドライバ112を使用することが可能となる、ということに留意されたい。non−RT OSは、典型的には、デバイスドライバへのリクエストキューを使用する。フック114におけるこのキューメカニズムを使用することは、フック114の実装を簡潔にする。
【0017】
図2は、システム100の動作を図示しているテーブル202、204、206、及び208を有する。HOS102は、複数の従来のリクエストを発行する。フック114は、前記リクエストをキュー116に入れる。テーブル202は、キュー116に入れられたリクエストの例を提示する。フック114は、RTソフトウェア104へのリクエストのリストを提供する。このリストは、要求された情報のみが、RTソフトウェア104へ渡されるようにフォーマットされている。テーブル204は、テーブル202のリクエストに基づいたリストの例である。RTソフトウェア104は、最初に、ドライバ112によって遅延無く実行される、いくつかのRTリクエスト118を発行する。テーブル206は、RTリクエスト118の例である。そして、RTソフトウェア104は、保留中の1つ又はそれより多くのHOSリクエストを実行する時間があることを見出し、チャネル122を介して、フック114に、該HOSリクエストを実行することを命令する。例えば、フック114は、テーブル202のリクエスト#1及び#2を実行することを命令される。フック114は、これらのリクエストを、該リクエストが実行されるドライバ112に渡す。テーブル202の残りのリクエスト#3は、HOS102によって発行される新たなリクエストとともに、キュー116内に、テーブル208に示されるように、保留のまま保持される。
【図面の簡単な説明】
【0018】
【図1】図1は、本発明におけるシステムのブロック図である。
【図2】図2は、本発明におけるシステムの様々な処理ステージにおけるリクエストのテーブルを有する。

【特許請求の範囲】
【請求項1】
非リアルタイムOSと共存するリアルタイム・ソフトウェアが、該リアルタイムソフトウェアと該非リアルタイムOSとの間で資源を共有する方法であって、該方法は、
前記リアルタイム・ソフトウェアが、前記資源のアクセスのための前記非リアルタイムOSからのリクエストをチェックするステップと、
前記リアルタイム・ソフトウェアが、いつ前記リクエストが実行されるかを決定するステップと、
を有する方法。
【請求項2】
請求項1記載の方法であって、前記リアルタイム・ソフトウェアが、前記リクエストをキューに入れるステップを有する方法。
【請求項3】
請求項1記載の方法であって、前記リアルタイム・ソフトウェアが、リアルタイム・ファイルシステムを有する方法。
【請求項4】
請求項1記載の方法であって、更に、前記リアルタイム・ソフトウェアが、非リアルタイムOSのデバイスドライバを通して、前記資源へのアクセスするステップを有する方法。
【請求項5】
請求項1記載の方法であって、前記資源がメモリを有する方法。
【請求項6】
請求項5記載の方法であって、前記メモリがハードディスク・ドライブを有する方法。
【請求項7】
リアルタイム・ソフトウェアと、
非リアルタイムOSと、
前記リアルタイム・ソフトウェアと前記非リアルタイムOSとの間で共有される資源と、
を有するデータ処理システムであって、
前記リアルタイム・ソフトウェアは、前記資源のアクセスのための、非リアルタイムOSからのリクエストをチェックし、
前記リアルタイム・ソフトウェアは、いつ前記リクエストが実行されるのかを決定する、
データ処理システム。
【請求項8】
請求項7記載のシステムであって、前記リアルタイム・ソフトウェアが、前記リクエストをキューに入れるデータ処理システム。
【請求項9】
請求項7記載のシステムであって、前記リアルタイム・ソフトウェアが、リアルタイム・ファイルシステムを有するデータ処理システム。
【請求項10】
請求項7記載のシステムであって、更に、前記リアルタイム・ソフトウェアが、非リアルタイムOSのデバイスドライバを通して、前記資源へのアクセスするデータ処理システム。
【請求項11】
請求項7記載のシステムであって、前記資源がメモリを有するデータ処理システム。
【請求項12】
請求項11記載のシステムであって、前記メモリがハードディスク・ドライブを有するデータ処理システム。

【図1】
image rotate

【図2】
image rotate


【公表番号】特表2007−528032(P2007−528032A)
【公表日】平成19年10月4日(2007.10.4)
【国際特許分類】
【出願番号】特願2006−502565(P2006−502565)
【出願日】平成16年2月5日(2004.2.5)
【国際出願番号】PCT/IB2004/050080
【国際公開番号】WO2004/073377
【国際公開日】平成16年9月2日(2004.9.2)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(590000248)コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ (12,071)
【Fターム(参考)】