(57)【要約】【課題】アプリケーションが複数の機能を同時並行して動作する際に、複数の機能で同一のタスクを共有することを可能にする。【解決手段】アプリケーション・プログラムは、複数のタスクで構成され、マルチタスク環境下で実行され、複数の機能を提供することができる。提供する各機能毎に該機能を実現するために必要なタスクとその実行順序をセッションとして定義する。タスクの１つとして構成されるセッション・マネージャは、呼び出されたセッションを実行するためのリソースと実行状態を管理する。セッションを操作する側は、個々のタスクの状態を意識せず、必要な機能を実現できる。【選択図】  図２
2004310615.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスクを擬似的に並列に実行させることができるマルチタスク・オペレーティング・システムが提供するマルチタスク環境下で複数のタスクからなるプログラムを実行するプログラム処理システムであって、
プログラムが提供する各機能毎に該機能を実現するために必要なタスクとその実行順序をセッションとして定義するセッション定義手段と、
呼び出されたセッションを実行するためのリソースと実行状態を管理するセッション管理手段と、
を具備することを特徴とするプログラム処理システム。
【請求項２】
前記セッション管理手段は、セッションに含まれるタスクのインスタンスの生成及びタスクが行なう入出力の管理によりセッションのリソースを管理する、
ことを特徴とする請求項１に記載のプログラム処理システム。
【請求項３】
前記セッション管理手段は、プログラム外部からの要求に応じてセッションの実行状態の操作及び管理を行なう、
ことを特徴とする請求項１に記載のプログラム処理システム。
【請求項４】
前記セッション管理手段は、プログラム内の各セッションの識別情報と各セッションを構成するタスクの識別情報をあらかじめ静的に規定したセッション登録手段を備え、セッションを構成するタスクを一斉に起動することによりセッションの起動操作を行なう、
ことを特徴とする請求項１に記載のプログラム処理システム。
【請求項５】
前記セッション管理手段は、セッションの起動時に当該セッション及び各セッション構成タスクの識別番号及び動作状態を記録するためのセッション管理テーブルを作成し、これに基づいてセッションを管理する、
ことを特徴とする請求項４に記載のプログラム処理システム。
【請求項６】
前記セッション管理手段は、指定された識別情報を持つセッションに対し、セッション管理テーブルの記録されているセッション構成タスクの実行を一斉に中断又は再開することによりセッションを中断又は再開操作する、
ことを特徴とする請求項５に記載のプログラム処理システム。
【請求項７】
前記セッション管理手段は、指定された識別情報を持つセッションに対し、セッション管理テーブルの記録されているセッション構成タスクを一斉に強制終了するとともに、セッション管理テーブルを削除することによりセッションを終了操作する、
ことを特徴とする請求項５に記載のプログラム処理システム。
【請求項８】
前記セッション管理手段は、セッション操作において該セッションを構成する各タスクの操作を前記オペレーティング・システムへのシステム・コールを発行することにより制御する、
ことを特徴とする請求項１に記載のプログラム処理システム。
【請求項９】
複数のタスクを擬似的に並列に実行させることができるマルチタスク・オペレーティング・システムが提供するマルチタスク環境下で複数のタスクからなるプログラムを実行するプログラム処理方法であって、
プログラムが提供する各機能毎に該機能を実現するために必要なタスクとその実行順序をセッションとして定義するセッション定義ステップと、
呼び出されたセッションを実行するためのリソースと実行状態を管理するセッション管理ステップと、
を具備することを特徴とするプログラム処理方法。
【請求項１０】
前記セッション管理ステップでは、セッションに含まれるタスクのインスタンスの生成及びタスクが行なう入出力の管理によりセッションのリソースを管理する、
ことを特徴とする請求項９に記載のプログラム処理方法。
【請求項１１】
前記セッション管理ステップでは、プログラム外部からの要求に応じてセッションの実行状態の操作及び管理を行なう、
ことを特徴とする請求項９に記載のプログラム処理方法。
【請求項１２】
前記セッション管理ステップでは、プログラム内の各セッションの識別情報と各セッションを構成するタスクの識別情報をあらかじめ静的に登録し、セッションを構成するタスクを一斉に起動することによりセッションの起動操作を行なう、
ことを特徴とする請求項９に記載のプログラム処理方法。
【請求項１３】
前記セッション管理ステップでは、セッションの起動時に当該セッション及び各セッション構成タスクの識別番号及び動作状態を記録するためのセッション管理テーブルを作成し、これに基づいてセッションを管理する、
ことを特徴とする請求項１２に記載のプログラム処理方法。
【請求項１４】
前記セッション管理ステップは、指定された識別情報を持つセッションに対し、セッション管理テーブルの記録されているセッション構成タスクの実行を一斉に中断又は再開することによりセッションを中断又は再開操作する、
ことを特徴とする請求項１３に記載のプログラム処理方法。
【請求項１５】
前記セッション管理ステップでは、指定された識別情報を持つセッションに対し、セッション管理テーブルの記録されているセッション構成タスクを一斉に強制終了するとともに、セッション管理テーブルを削除することによりセッションを終了操作する、
ことを特徴とする請求項１３に記載のプログラム処理方法。
【請求項１６】
前記セッション管理ステップでは、セッション操作において該セッションを構成する各タスクの操作を前記オペレーティング・システムへのシステム・コールを発行することにより制御する、
ことを特徴とする請求項９に記載のプログラム処理方法。
【請求項１７】
複数のタスクで構成され、複数のタスクを擬似的に並列に実行させることができるマルチタスク・オペレーティング・システムが提供するマルチタスク環境下で実行することにより複数の機能を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
提供する各機能毎に該機能を実現するために必要なタスクとその実行順序をセッションとして定義するセッション定義手段と、
呼び出されたセッションを実行するためのリソースと実行状態を管理するセッション管理手段と、
を具備することを特徴とするコンピュータ・プログラム。
【請求項１８】
前記セッション管理手段はコンピュータ・プログラムを構成するタスクである、
ことを特徴とする請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
前記セッション管理手段は、セッションに含まれるタスクのインスタンスの生成及びタスクが行なう入出力の管理によりセッションのリソースを管理する、
ことを特徴とする請求項１７に記載のコンピュータ・プログラム。
【請求項２０】
前記セッション管理手段は、前記コンピュータ・プログラム外部からの要求に応じてセッションの実行状態の操作及び管理を行なう、
ことを特徴とする請求項１７に記載のコンピュータ・プログラム。
【請求項２１】
前記セッション管理手段は、前記コンピュータ・プログラム内の各セッションの識別情報と各セッションを構成するタスクの識別情報をあらかじめ静的に規定したセッション登録手段を備え、セッションを構成するタスクを一斉に起動することによりセッションの起動操作を行なう、
ことを特徴とする請求項１７に記載のコンピュータ・プログラム。
【請求項２２】
前記セッション管理手段は、セッションの起動時に当該セッション及び各セッション構成タスクの識別番号及び動作状態を記録するためのセッション管理テーブルを作成し、これに基づいてセッションを管理する、
ことを特徴とする請求項２１に記載のコンピュータ・プログラム。
【請求項２３】
前記セッション管理手段は、指定された識別情報を持つセッションに対し、セッション管理テーブルの記録されているセッション構成タスクの実行を一斉に中断又は再開することによりセッションを中断又は再開操作する、
ことを特徴とする請求項２２に記載のコンピュータ・プログラム。
【請求項２４】
前記セッション管理手段は、指定された識別情報を持つセッションに対し、セッション管理テーブルの記録されているセッション構成タスクを一斉に強制終了するとともに、セッション管理テーブルを削除することによりセッションを終了操作する、
ことを特徴とする請求項２２に記載のコンピュータ・プログラム。
【請求項２５】
前記セッション管理手段は、セッション操作において該セッションを構成する各タスクの操作を前記オペレーティング・システムへのシステム・コールを発行することにより制御する、
ことを特徴とする請求項１７に記載のコンピュータ・プログラム。
【請求項２６】
複数のタスクを擬似的に並列に実行させることができるマルチタスク・オペレーティング・システムが提供するマルチタスク環境下で複数のタスクからなるプログラムの処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
プログラムが提供する各機能毎に該機能を実現するために必要なタスクとその実行順序をセッションとして定義するセッション定義ステップと、
呼び出されたセッションを実行するためのリソースと実行状態を管理するセッション管理ステップと、
を具備することを特徴とするプログラム・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のタスクで構成されるアプリケーションを実行するプログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラムに係り、特に、複数のタスクを擬似的に同時並列的に動作させるマルチタスク環境下でアプリケーションを実行するプログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラムに関する。
【０００２】
さらに詳しくは、本発明は、アプリケーションが複数の機能を同時並行して動作する際に複数の機能で同一のタスクを共有するプログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラムに係り、特に、複数の機能で共有されるタスクのリソースと実行状態を管理するプログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラムに関する。
【０００３】
【従来の技術】
昨今のＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）技術における革新的な進歩とも相俟って、さまざまなタイプの情報処理機器や情報通信機器が開発・市販され、日常生活に深く浸透するに至っている。この種の機器では、オペレーティング・システムが提供する実行環境下で、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やその他のプロセッサが所定のプログラム・コードを実行することによりさまざまな処理サービスを提供するようになっている。
【０００４】
一般に、オペレーティング・システムは、複数のタスクを時分割で実行することによって、プロセッサの数よりも多くのタスクをあたかも同時に実行しているかのように見せるマルチタスク機能を備えている。マルチタスク・オペレーティング・システムを使用することにより、アプリケーションを機能毎にタスクとして作成し、複数のタスクを擬似的に同時並列的に動作させることができる。
【０００５】
しかしながら、オペレーティング・システムには、タスク単位の管理機能はあるものの、複数のタスクによってある特定の機能が実現されるような場合、その機能に係る一連のタスクを一元的に管理する機構は提供していない。すなわち、マルチタスクにおいて、個々のタスクの実行を制御するのみで、タスク間の関連性までは考慮しない。このため、各タスクが自分自身でタスク間の関連性を管理しなければならず、プログラムの組み易さやメンテナンス性が低下してしまう。
【０００６】
また、同時並行して動作する複数の機能で同一のタスクを共有したい場合があるが、共有されるタスクを管理するような仕組みはオペレーティング・システムでは提供されない。
【０００７】
【発明が解決しようとする課題】
本発明の目的は、アプリケーションが複数の機能を同時並行して動作する際に複数の機能で同一のタスクを好適に共有することができる、優れたプログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラムを提供することにある。
【０００８】
本発明のさらなる目的は、複数の機能で共有されるタスクのリソースと実行状態を好適に管理することができる、優れたプログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラムを提供することにある。
【０００９】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、複数のタスクを擬似的に並列に実行させることができるマルチタスク・オペレーティング・システムが提供するマルチタスク環境下で複数のタスクからなるプログラムを実行するプログラム処理システムであって、
プログラムが提供する各機能毎に該機能を実現するために必要なタスクとその実行順序をセッションとして定義するセッション定義手段と、
呼び出されたセッションを実行するためのリソースと実行状態を管理するセッション管理手段と、
を具備することを特徴とするプログラム処理システムである。
【００１０】
但し、ここで言う「システム」とは、複数の装置（又は特定の機能を実現する機能モジュール）が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
【００１１】
オペレーティング・システムがプログラム実行を管理・制御する単位は、一般に「タスク」と呼ばれる。本発明に係るプログラム処理システムでは、プログラム中に複数のタスクが存在することを許容し、複数のタスクを時分割で実行し、タスクを頻繁に切り替えることにより、各タスクを擬似的に並列に実行させるマルチタスク機能を備えている。したがって、実際に計算を進める実体であるプロセッサの数よりも多くのタスクが存在し、多くのタスクをあたかも同時に実行しているかのように見える。
【００１２】
ところが、オペレーティング・システムは、個々のタスクの実行を管理するだけで、実行されるタスク間の関連性までは考慮しない。
【００１３】
そこで、本発明では、プログラムが提供する機能サービス毎に当該機能を実現するために必要なタスクとその実行順序を「セッション」として定義する。そして、セッション管理手段は、呼び出されたセッションを実行するためのリソースと実行状態を管理する。ここで言うリソース管理には、セッションに含まれるタスクのインスタンスの生成及びタスクが行なう入出力の管理などが含まれる。したがって、セッションを操作する側は、個々のタスクの状態を意識せず、必要な機能を実現できる。
【００１４】
本発明によれば、複数のタスクをセッションという形で一元的に管理することができ、なお且つ実行効率、生産性、移植性、保守性といったタスク単位での開発のメリットを生かすことができる。また、セッション間でタスクを共有することができるので、従来のタスク単体よりも効率的なアプリケーション開発が可能となる。
【００１５】
前記セッション管理手段は、セッションに含まれるタスクのインスタンスの生成及びタスクが行なう入出力の管理によりセッションのリソースを管理する。
【００１６】
また、前記セッション管理手段は、プログラム外部からの要求に応じてセッションの実行状態の操作及び管理を行なう。
【００１７】
前記セッション管理手段は、プログラム内の各セッションの識別情報と各セッションを構成するタスクの識別情報をあらかじめ静的に規定したセッション登録手段を備えることにより、セッションを構成するタスクを一斉に起動することによりセッションの起動操作を行なうことができる。
【００１８】
前記セッション管理手段は、セッションの起動時に当該セッション及び各セッション構成タスクの識別番号及び動作状態を記録するためのセッション管理テーブルを作成し、これに基づいてセッションを管理するようにする。
【００１９】
例えば、前記セッション管理手段は、指定された識別情報を持つセッションに対し、セッション管理テーブルの記録されているセッション構成タスクの実行を一斉に中断又は再開することによりセッションを中断又は再開操作することができる。
【００２０】
また、前記セッション管理手段は、指定された識別情報を持つセッションに対し、セッション管理テーブルの記録されているセッション構成タスクを一斉に強制終了するとともに、セッション管理テーブルを削除し各タスクが使用していたリソースを解放して、セッションを終了操作するようにする。
【００２１】
前記セッション管理手段は、セッション操作において該セッションを構成する各タスクの操作を前記オペレーティング・システムへのシステム・コールを発行することにより制御することができる。
【００２２】
また、本発明の第２の側面は、複数のタスクで構成され、複数のタスクを擬似的に並列に実行させることができるマルチタスク・オペレーティング・システムが提供するマルチタスク環境下で実行することにより複数の機能を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
提供する各機能毎に該機能を実現するために必要なタスクとその実行順序をセッションとして定義するセッション定義手段と、
呼び出されたセッションを実行するためのリソースと実行状態を管理するセッション管理手段と、
を具備することを特徴とするコンピュータ・プログラムである。
【００２３】
本発明の第２の側面に係るコンピュータ・プログラムは、コンピュータ・システム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第２の側面に係るコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第１の側面に係るプログラム処理システムと同様の作用効果を得ることができる。
【００２４】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【００２５】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００２６】
Ａ．システム構成
図１には、本発明の実施に供されるプログラム処理システム１０の構成を模式的に示している。同図に示すように、プログラム処理システム１０は、プロセッサ１１と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１３と、複数の入出力装置１４−１，１４−２…と、タイマ１５とを含んでいる。
【００２７】
プロセッサ１１は、演算処理システム１０のメイン・コントローラであり、オペレーティング・システム（ＯＳ）の制御下で、アプリケーションなどの各種のプログラム・コードを実行するようになっている。オペレーティング・システムは例えば組み込み型で構成される。
【００２８】
オペレーティング・システムがプログラム実行を管理・制御する単位は、一般に「タスク」と呼ばれる。本実施形態に係るプログラム処理システム１０では、プログラム中に複数のタスクが存在することを許容し、複数のタスクを時分割で実行し、タスクを頻繁に切り替えることにより、各タスクを擬似的に並列に実行させるマルチタスク機能を備えている。したがって、実際に計算を進める実体であるプロセッサの数よりも多くのタスクが存在し、多くのタスクをあたかも同時に実行しているかのように見える。
【００２９】
オペレーティング・システムは、プロセッサ１１により処理される各タスクに、他のタスクと識別可能なタスクＩＤを割り振り、個々のタスクの実行を管理する。但し、オペレーティング・システムは、実行されるタスク間の関連性までは考慮しない。
【００３０】
一方、プログラム処理システム１０上で実行されるアプリケーション・プログラムは、マルチタスク環境下で実行される複数のタスクで構成され、複数の機能を提供することができる。例えば、ＤＶＤ記録再生装置における組み込みアプリケーションであれば、ＤＶＤの記録面に対する記録や再生などの複数の機能が提供される。本明細書中では、提供する機能サービス毎に当該機能を実現するために必要なタスクとその実行順序を「セッション」として定義する。また、「セッション・マネージャ」と呼ばれるタスクを備え、呼び出されたセッションを実行するためのリソースと実行状態を管理する。ここで言うリソース管理には、セッションに含まれるタスクのインスタンスの生成及びタスクが行なう入出力の管理などが含まれる。セッションを操作する側は、個々のタスクの状態を意識せず、必要な機能を実現できる。
【００３１】
プロセッサ１１は、バス１６によって他の機器類（後述）と相互接続されている。システム・バス１６上の各機器にはそれぞれ固有のメモリ・アドレス又はＩ／Ｏアドレスが付与されており、プロセッサ１１はこれらアドレスを指定することによって所定の機器へのアクセスが可能となっている。システム・バス１６は、アドレス・バス、データ・バス、コントロール・バスを含む共通信号伝送路である。
【００３２】
ＲＡＭ１２は、書き込み可能なメモリであり、プロセッサ１１において実行されるプログラム・コードをロードしたり、実行プログラムの作業データを一時格納したりするために使用される。プログラム・コードには、例えば、ＢＩＯＳ（Ｂａｓｉｃ  ｉｎｐｕｔ・Ｏｕｔｐｕｔ  ｓｙｓｔｅｍ：基本入出力システム）、周辺機器をハードウェア操作するためのデバイス・ドライバ、オペレーティング・システム、アプリケーションなどが挙げられる。
【００３３】
ＲＯＭ１３は、所定のコードやデータを恒久的に記憶するための不揮発メモリであり、例えば、ＢＩＯＳや始動時の自己診断プログラム（Ｐｏｗｅｒ  ｏｎ  Ｓｅｌｆ  Ｔｅｓｔ：ＰＯＳＴ）などを格納している。
【００３４】
入出力装置１４には、ディスプレイ２１を接続するためのディスプレイ・インターフェース１４−１、キーボード２２やマウス２３のようなユーザ入力装置を接続するためのユーザ入力装置インターフェース１４−２、ハード・ディスク２４やメディア・ドライブ２５などの外部記憶装置を接続するための外部記憶装置インターフェース１４−３、外部ネットワークと接続するためのネットワーク・インターフェース・カード（ＮＩＣ）１４−４などが含まれる。但し、装備すべき入出力装置１４の種類や構成などは、プログラム処理システム１０の実体が何であるかに依存する。例えば、システム１０がＤＶＤ記録再生装置であれば、多重化装置、逆多重化装置、映像信号制御装置、音声信号制御装置などの入出力装置を備えている。
【００３５】
ディスプレイ・インターフェース１４−１は、プロセッサ１１が発行する描画命令を実際に処理するための専用インターフェース・コントローラである。ディスプレイ・インターフェース１４−１において処理された描画データは、例えばフレーム・バッファ（図示しない）に一旦書き込まれた後、ディスプレイ２１によって画面出力される。
【００３６】
ＨＤＤ２４は、記憶担体としての磁気ディスクを固定的に搭載した外部記憶装置であり（周知）、記憶容量やデータ転送速度などの点で他の外部記憶装置よりも優れている。通常、ＨＤＤ２４には、プロセッサ１１が実行すべきオペレーティング・システムのプログラム・コードや、アプリケーション・プログラム、デバイス・ドライバなどが不揮発的に格納されている。ソフトウェア・プログラムを実行可能な状態でＨＤＤ２４上に置くことをプログラムのシステムへの「インストール」と呼ぶ。例えば、オペレーティング・システムや、複数のタスクで構成され機能毎にタスクの集合からなるセッションが定義されているアプリケーション・プログラムをＨＤＤ２４上にインストールすることができる。
【００３７】
メディア・ドライブ２５は、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）やＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）などの可搬型メディアを装填して、そのデータ記録面にアクセスするための装置である。
【００３８】
可搬型メディアは、主として、ソフトウェア・プログラムやデータ・ファイルなどをコンピュータ可読形式のデータとしてバックアップすることや、これらをシステム間で移動（すなわち販売・流通・配布を含む）する目的で使用される。例えば、オペレーティング・システムや、複数のタスクで構成され機能毎にタスクの集合からなるセッションが定義されているアプリケーション・プログラムを、これら可搬型メディアを利用して複数の機器間で物理的に流通・配布することができる。
【００３９】
ネットワーク・インターフェース１４−１は、Ｅｔｈｅｒｎｅｔ（登録商標）などの所定の通信プロトコルに従って、システム１０をＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの局所的ネットワーク、さらにはインターネットのような広域ネットワークに接続することができる。
【００４０】
ネットワーク上では、複数のホスト端末（図示しない）がトランスペアレントな状態で接続され、分散コンピューティング環境が構築されている。ネットワーク上では、ソフトウェア・プログラムやデータ・コンテンツなどの配信が行うことができる。例えば、オペレーティング・システムや、複数のタスクで構成され機能毎にタスクの集合からなるセッションが定義されているアプリケーション・プログラムを、ネットワーク経由でダウンロードすることができる。
【００４１】
各入出力装置１４−１，１４−２…には、割り込みレベルが割り当てられており、所定のイベント発生（例えばキーボード入力やマウス・クリックなどのＧＵＩ処理や、ハード・ディスクにおけるデータ転送の完了など）に応答して、割り込み要求信号線１９を介してプロセッサ１１に通知することができる。プロセッサ１１は、このような割り込み要求に応答して、対応する割り込みハンドラを実行する。
【００４２】
タイマ１５は、タイマ信号を所定周期で発生させる装置である。タイマ１５にも割り込みレベルが割り当てられており、割り込み要求信号線１９を介してプロセッサ１１に対して周期的な割り込みを発生する。
【００４３】
Ｂ．アプリケーション・プログラムの構成
本実施形態では、アプリケーション・プログラムは、マルチタスク環境下で実行される複数のタスクで構成され、複数の機能を提供することができる。図２には、アプリケーション・プログラム１００の構成を模式的に示している。
【００４４】
図示のアプリケーション・プログラム１００によれば、並行動作する複数のタスクの連携によって、ある特定の機能が実現される。この一連の動作のことをセッションと呼び、セッションの動作に係るタスクをセッション構成タスクと呼ぶ。図示の例では、タスク１１１、タスク１１２、タスク１１３の実行順序で構成されるセッション１０１と、タスク１１２、タスク１１４、タスク１１５の実行順序で構成されるセッション１０２が定義されている。
【００４５】
また、アプリケーション・プログラム１００を構成するタスクの１つはセッション・マネージャ１１０であり、セッション毎の動作の実行を管理する。セッション・マネージャ１１０は、アプリケーション・プログラム１００内のすべてのセッションを一元的に管理するために、あらかじめ静的に定義されているセッション登録テーブル１３０を備えている。セッション登録テーブル１３０には各セッションの識別番号と、それぞれのセッションを構成するタスクの識別番号並びに実行順序、各セッションにおいて使用されるハードウェア資源が格納されている。
【００４６】
セッション登録テーブル１３０には、セッションを構成するタスクの数だけタスク識別番号が登録される。このとき、異なるセッションで同一のタスクを重複して登録することが可能である。図２に示す例では、タスク１１２は、セッション１０１及びセッション１０２の双方に登録されている。
【００４７】
セッション・マネージャ１１０は、セッション登録テーブル１３０を用いて、セッションを実行するためのリソースと実行状態を管理する。ここで言うリソース管理には、セッションに含まれるタスクのインスタンスの生成及びタスクが行なう入出力の管理などが含まれる。
【００４８】
また、セッションは、タスクと同様に、起動、中断、再開、終了など、動作の実行状態を遷移させることが可能である。これらセッション単位の実行状態の操作及び管理は、セッション・マネージャ１１０が当該プログラム外部からの要求に応じて行なう。
【００４９】
セッションの操作の際には、セッション・マネージャ１１０がセッションを構成するすべてのタスクの操作を一括して行なうので、セッション操作を要求する側では個々のセッション構成タスクを意識する必要はない。
【００５０】
セッションの起動は、セッション・マネージャ１１０が、セッション登録テーブル１３０から当該セッションを構成する各タスクの識別番号を読み込み、該当するタスクを一斉に起動することにより行なわれる。この際、セッション・マネージャ１１０は、該当するセッションに対してセッション管理テーブルを作成し、そこに当該セッション及び各セッション構成タスクの識別番号及び動作状態を記録し監視する。
【００５１】
また、セッションの中断及び再開の操作は、セッション・マネージャ１１０が、指定された識別番号を持つセッションに対し、セッション管理テーブルに記録されているセッション構成タスクの実行を一斉に中断又は再開することにより行なわれる。
【００５２】
また、セッションの終了では、セッション・マネージャ１１０は、セッション構成タスクを一斉に強制終了し、当該セッションのセッション管理テーブルを削除する。
【００５３】
上述したセッション操作の際におけるセッションを構成する各タスクの動作は、セッション・マネージャ１１０がオペレーティング・システムのシステム・コールを発行することにより制御する。１つのアプリケーション・プログラムにおいて複数のセッションを登録することが可能であり、複数のセッションを同時に並行動作させることが可能である。また、同種のセッションを複数同時に動作させることも可能である。また、異種のセッション間で同一のタスクを共有することも可能である。
【００５４】
Ｃ．具体例
前項Ｂでは、複数のタスクで構成され、マルチタスク環境下で実行されるアプリケーション・プログラムが、提供する機能毎に該機能を実現するために必要なタスクとその実行順序をセッションとして定義し、タスクの１つとして構成されるセッション・マネージャが呼び出されたセッションを実行するためのリソースと実行状態を管理する、という点を説明した。これによって、複数のタスクをセッションという形で一元的に管理することができ、なお且つ、実行効率、生産性、移植性、保守性といったタスク単位での開発のメリットを生かすことができる。また、セッションを操作する側では、個々のタスクの状態を意識することなく、必要な機能を実現することが可能である。また、セッション間でタスクを共有することができるので、従来のタスク単体よりも効率的なアプリケーション開発が可能となる。
【００５５】
この項では、ＤＶＤ記録再生装置における組み込みアプリケーションを例にとって、本発明に係るアプリケーション・プログラムの機能構成並びのその作用について説明する。
【００５６】
図３には、ＤＶＤ記録再生装置における組み込みアプリケーションの構成を模式的に示している。
【００５７】
アプリケーション・プログラムは、複数のタスクで構成される。図示の例では、アプリケーション・プログラムを構成するタスクは、ソフトウェア・ブロックに格納されており（但し、セッション・マネージャを除く）、再生制御タスク、記録制御タスク、入出力制御タスク、多重化タスク、逆多重化タスク、映像符号化タスク、映像逆符号化タスク、音声符号化タスク、音声逆符号化タスク、メモリ制御タスクなどのタスクからなる。また、アプリケーション・プログラム中の各タスクは、システム１０が持つハードウェア資源を使用する。例えば、入出力制御タスクは入出力制御装置を使用し、多重化タスクは多重化装置を使用し、逆多重化タスクは逆多重化装置を使用し、映像符号化タスク並びに映像逆符号化タスクは映像信号制御装置を使用し、音声符号化タスク並びに音声逆符号化タスクは音声信号制御装置を使用し、メモリ制御タスクはメモリを使用する。
【００５８】
また、アプリケーションは、並行動作する複数のタスクの連携によって、ＤＶＤディスクの記録面に対する再生や記録特定の機能が実現される。ここでは、これら再生や記録に関する一連の動作のことをそれぞれ「再生セッション」、「記録セッション」と呼ぶ。
【００５９】
図示の例では、再生セッションは、再生制御タスク、入出力制御タスク、逆多重化タスク、映像逆符号化タスク、音声逆符号化タスク、メモリ制御タスクというセッション構成タスクで定義される。また、記録セッションは、記録制御タスク、入出力制御タスク、多重化タスク、映像符号化タスク、音声符号化タスク、メモリ制御タスクというセッション構成タスクで定義される。
【００６０】
また、このアプリケーション・プログラムを構成するタスクの１つは、セッション・マネージャであり、セッション毎の動作の実行を管理する。セッション・マネージャは、このアプリケーション・プログラム内のすべてのセッションを一元的に管理するために、あらかじめ静的に定義されているセッション登録テーブルを備えている。セッション登録テーブルには、再生セッション、記録セッションなど各セッションの識別番号と、それぞれのセッションを構成するタスクの識別番号並びに実行順序、各セッションにおいて使用されるハードウェア資源が格納されている。
【００６１】
セッション登録テーブルには、セッションを構成するタスクの数だけタスク識別番号が登録される。このとき、異なるセッションで同一のタスクを重複して登録することが可能である。図３に示す例では、入出力制御タスクやメモリ制御タスクは、再生セッション及び記録セッションの双方に登録されている。
【００６２】
セッション・マネージャは、外部からセッションのオープンが指示されると、セッション登録テーブルを参照して、当該セッションを構成するタスクや、各タスクが使用するハードウェア資源を獲得する。そして、セッション構成タスクのインスタンスを生成するとともに、インスタンスによるハードウェア資源に対する入出力を管理する。
【００６３】
また、これらのセッションは、タスクと同様に、起動、中断、再開、終了など、動作の実行状態を遷移させることが可能である。これらセッション単位の実行状態の操作及び管理は、セッション・マネージャが外部からの要求に応じて行なう。セッションの操作の際には、セッション・マネージャがセッションを構成するすべてのタスクの操作を一括して行なうので、セッション操作を要求する側では個々のセッション構成タスクを意識する必要はない。
【００６４】
図３に示す例では、再生セッションや記録セッションを始め複数のセッションが登録されている。図示の例では、再生セッションや記録セッションなど複数のセッションが同時に並行動作している。また、２つの再生セッションが同時に動作している。また、再生セッションと記録セッションという異種のセッション間で、入出力制御タスクとメモリ制御タスクが共有されている。再生セッション１、記録セッション２、再生セッション１は、ソフトウェア・ブロックにあるセッション構成タスクのインスタンスを生成したイメージを示している。
【００６５】
図４には、図３に示したＤＶＤ記録再生装置における組み込みアプリケーションにおいて、再生セッションを起動する際に行なわれる動作シーケンスを示している。
【００６６】
セッションの起動操作は、セッション・マネージャが、セッション登録テーブルから当該セッションを構成する各タスクの識別番号を読み込み、該当するタスクを一斉に起動することにより行なわれる。
【００６７】
すなわち、コマンド・インターフェースからセッション・オープンの指示がなされると、セッション・マネージャは、該当するセッションに対してセッション管理テーブル（図示しない）を作成する。すなわち、セッション登録テーブルに問い合わせて、ハードウェア資源の獲得を行ない各ハードウェア資源の状態をセッション管理テーブルに書き込むとともに、再生セッションを構成するタスクを検索し、セッションの状態をセッション管理テーブルに書き込む。
【００６８】
次いで、セッション・マネージャは、再生セッションを構成するすべてのタスクを一斉に起動する。このタスクの起動操作は、セッション・マネージャがオペレーティング・システムのシステム・コールを発行することにより制御する。すなわち、オペレーティング・システムは、セッション・マネージャからのシステム・コールに応答して、再生制御タスク、入出力制御タスク、逆多重化タスク、映像逆符号化タスク、音声逆符号化タスク、メモリ制御タスクという再生セッションを構成するすべてのタスクを一斉に起動する。
【００６９】
オペレーティング・システムは、再生セッションを構成するすべてのタスクの起動が完了すると、タスクの起動完了をセッション・マネージャに通知する。そして、セッション・マネージャは、コマンド・インターフェースに再生セッションの起動完了を通知する。
【００７０】
その後、セッションが開始され、オペレーティング・システムは、コマンド・インターフェースからの指示に従って個々のタスクの動作を開始する。
【００７１】
セッション起動の際、セッション・マネージャは、該当するセッションに対してセッション管理テーブル（図示しない）を作成し、そこに当該セッション及び各セッション構成タスクの識別番号及び動作状態を記録し監視する。
【００７２】
また、図５には、図３に示したＤＶＤ記録再生装置における組み込みアプリケーションにおいて、再生セッションを終了する際に行なわれる動作シーケンスを示している。
【００７３】
再生セッションの終了では、セッション・マネージャは、再生セッションを構成するすべてのタスクを一斉に強制終了し、当該セッションのセッション管理テーブルを削除する。
【００７４】
すなわち、コマンド・インターフェースからセッション・クローズの指示がなされると、セッション・マネージャは、セッション管理テーブルでセッションの状態を参照して再生セッションの状態を取得した後、オペレーティング・システムに対してセッションを構成するすべてのタスクを終了する旨のシステム・コールを発行する。
【００７５】
オペレーティング・システムは、このシステム・コールに応答して、再生制御タスク、入出力制御タスク、逆多重化タスク、映像逆符号化タスク、音声逆符号化タスク、メモリ制御タスクという再生セッションを構成するすべてのタスクを一斉に終了する。
【００７６】
オペレーティング・システムは、再生セッションを構成するすべてのタスクの終了が完了すると、タスクの終了完了をセッション・マネージャに通知する。そして、セッション・マネージャは、セッション管理テーブルを参照して、セッション構成タスクにおいて使用されていたハードウェア資源を解放するとともに、セッション管理テーブルを削除する。そして、セッション・マネージャは、コマンド・インターフェースにセッション終了の完了を通知する。
【００７７】
図４〜図５の説明からも分るように、セッションを操作する側すなわちコマンド・インターフェースは、個々のタスクの状態を意識せず、必要な機能を実現できる。
【００７８】
［追補］
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【００７９】
【発明の効果】
以上詳記したように、本発明によれば、アプリケーションが複数の機能を同時並行して動作する際に複数の機能で同一のタスクを好適に共有することができる、優れたプログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラムを提供することができる。
【００８０】
また、本発明によれば、複数の機能で共有されるタスクのリソースと実行状態を好適に管理することができる、優れたプログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラムを提供することができる。
【００８１】
本発明によれば、複数のタスクをセッションという形で一元的に管理することができ、なお且つ実行効率、生産性、移植性、保守性といったタスク単位での開発のメリットを生かすことができる。
【００８２】
本発明によれば、セッションを操作する側では、個々のタスクの状態を意識することなく、必要な機能を実現することが可能である。また、セッション間でタスクを共有することができるので、従来のタスク単体よりも効率的なアプリケーション開発が可能となる。
【図面の簡単な説明】
【図１】本発明の実施に供されるプログラム処理システムの構成を模式的に示した図である。
【図２】アプリケーション・プログラムの構成を模式的に示した図である。
【図３】ＤＶＤ記録再生装置における組み込みアプリケーションの構成を模式的に示した図である。
【図４】図３に示したＤＶＤ記録再生装置における組み込みアプリケーションにおいて、再生セッションを起動する際の動作シーケンスを示した図である。
【図５】図３に示したＤＶＤ記録再生装置における組み込みアプリケーションにおいて、再生セッションを終了する際の動作シーケンスを示した図である。
【符号の説明】
１０…プログラム処理システム
１１…プロセッサ
１２…ＲＡＭ
１３…ＲＯＭ
１４…入出力装置
１５…タイマ
１６…システム・バス
１９…割り込み要求線
２１…ディスプレイ
２２…キーボード
２３…マウス
２４…ＨＤＤ
２５…メディア・ドライブ
１００…アプリケーション・プログラム
１０２，１０３…セッション
１１０…セッション・マネージャ
１１１，１１２，１１３，１１４，１１５…タスク
１２１，１２２…セッション管理テーブル
１３０…セッション登録テーブル
【図１】
2004310615.tif 000003
【図２】
2004310615.tif 000004
【図３】
2004310615.tif 000005
【図４】
2004310615.tif 000006
【図５】
2004310615.tif 000007