JP2000315155A - データ処理装置、データ処理方法及びプログラム提供媒体 - Google Patents

データ処理装置、データ処理方法及びプログラム提供媒体

Info

Publication number
JP2000315155A
JP2000315155A JP2000014245A JP2000014245A JP2000315155A JP 2000315155 A JP2000315155 A JP 2000315155A JP 2000014245 A JP2000014245 A JP 2000014245A JP 2000014245 A JP2000014245 A JP 2000014245A JP 2000315155 A JP2000315155 A JP 2000315155A
Authority
JP
Japan
Prior art keywords
configuration
message
composite
data processing
objects
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.)
Withdrawn
Application number
JP2000014245A
Other languages
English (en)
Inventor
Hideaki Okamura
英明 岡村
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2000014245A priority Critical patent/JP2000315155A/ja
Publication of JP2000315155A publication Critical patent/JP2000315155A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 オブジェクト指向オペレーティングシステム
を採用したシステムにおいて、システムの柔軟性を保ち
つつ、システム全体の実行性能を向上させる。 【解決手段】 オブジェクト間でメッセージ通信を行う
オブジェクトを、1つ以上の構成オブジェクトから構成
される複合オブジェクトと、複合オブジェクト以外のオ
ブジェクトである標準オブジェクトとのいずれかにより
構成する。そして、任意のオブジェクトから標準オブジ
ェクト及び構成オブジェクトを参照できるように、各標
準オブジェクト及び各構成オブジェクトに識別子を付
す。また、複合オブジェクトについては、1つの複合オ
ブジェクトを1つの実行スレッドによって実行し、その
実行スレッドを複合オブジェクトを構成する各構成オブ
ジェクトによって共有させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オブジェクト指向
オペレーティングシステムを実行するデータ処理装置、
オブジェクト指向オペレーティングシステムでのデータ
処理方法、並びに、オブジェクト指向オペレーティング
システムのデータ処理プログラムを提供するプログラム
提供媒体に関する。
【0002】
【従来の技術】オブジェクト指向技術をオペレーティン
グシステムに適用し、オペレーティングシステムの構成
要素をオブジェクトとしてモジュール化する技術があ
る。このように、構成要素がオブジェクトとしてモジュ
ール化されて構成されたオペレーティングシステムは、
オブジェクト指向オペレーティングシステムと称され
る。なお、オペレーティングシステム上で実行されるア
プリケーションオブジェクトと、オペレーティングシス
テムの構成要素となるオブジェクトとが同様な実行機構
を持つオブジェクト指向オペレーティングシステムは、
純オブジェクト指向オペレーティングシステムと称され
る場合もある。
【0003】オブジェクト指向オペレーティングシステ
ムにおいて、オペレーティングシステムの提供するサー
ビスは、オブジェクトの集合により定義される。サービ
スをオブジェクト毎に分割することにより、従来のオペ
レーティングシステムよりも柔軟なシステムを構築する
ことができる。
【0004】すなわち、オブジェクト指向オペレーティ
ングシステムでは、例えば、オペレーティングシステム
のサービスを提供するオブジェクトを、オペレーティン
グシステムの実行開始前に適切に組み合わせることで、
ユーザの必要な機能に合わせたシステムを容易に構築す
ることができる。また、システムの最適化やアップデー
ト等のためになされる機能の追加や削除を、システムを
停止することなく動的に行うことも可能になる。このよ
うに、オブジェクト指向オペレーティングシステムは、
システムコンフィグレーションの柔軟性や、システムの
動的変更の容易性などの点で非常に優れている。
【0005】ところで、オブジェクト指向オペレーティ
ングシステムのサービスを提供するオブジェクトは、シ
ステムオブジェクトと呼ばれる。システムオブジェクト
同士は、互いに並行に動作する。そして、メッセージ通
信機構を用いて互いに通信を行い、メッセージの交換を
行ったり、互いの動作の同期をとったりする。このよう
なシステムオブジェクトの動作は、システムの部品とし
てのオブジェクトの独立性を高め、システムコンフィギ
ュレーションの柔軟性や、システムの動的変更の容易性
を向上させる。換言すれば、オブジェクト指向オペレー
ティングシステムのサービス提供部分を、追加や削除が
可能なシステムオブジェクトで実現することで、システ
ムコンフィギュレーションの柔軟性や、システムの動的
変更の容易性を向上させることができる。
【0006】
【発明が解決しようとする課題】以上のように、オブジ
ェクト指向オペレーティングシステムは優れた特徴を有
している。しかしながら、オブジェクト指向オペレーテ
ィングシステムは、オブジェクト間のメッセージ通信が
頻繁になると、通信コストの増大によって、システム全
体の実行性能が劣化してしまうという問題をもってい
る。
【0007】したがって、オブジェクト指向オペレーテ
ィングシステムのシステム設計者は、システムコンフィ
ギュレーションの柔軟性やシステムの動的変更の容易性
など、オブジェクト指向オペレーティングシステムの優
れた特徴を取り入れるだけでなく、そのような優れた特
徴と実際の実行性能とのバランスを十分に考慮して、シ
ステムオブジェクトを設計する必要がある。
【0008】本発明は、以上のような従来の実情に鑑み
て提案されたものであり、オブジェクト指向オペレーテ
ィングシステムの優れた特徴を保ちつつ、システム全体
の実行性能を向上することを目的としており、具体的に
は、そのような機能を実現するデータ処理装置及びデー
タ処理方法、並びにそのような機能を実現するデータ処
理プログラムを提供するプログラム提供媒体を提供する
ことを目的としている。
【0009】
【課題を解決するための手段】本発明に係るデータ処理
装置は、互いに平行に動作しメッセージ通信を行う、複
数のオブジェクトから構成されるオブジェクト指向オペ
レーティングシステムを実行するデータ処理装置であ
る。そして、所定のオブジェクトの追加を要求する複合
化要求メッセージを受信したオブジェクトが、当該所定
のオブジェクトを構成オブジェクトとして参照するため
のテーブルデータ構造を作成し、当該構成オブジェクト
のデータによって初期化することによって複合オブジェ
クトを構成する手段を備える。また、少なくとも一つの
当該構成オブジェクトのデータ構造を作成し、当該テー
ブルデータ構造に登録し、当該構成オブジェクトが具備
する少なくとも一つのメッセージ処理機能と当該メッセ
ージ処理機能を要求するためのメッセージインターフェ
ースとの関係を、当該構成オブジェクトデータ構造に登
録する手段を備える。
【0010】なお、上記データ処理装置において、上記
複合オブジェクトは、上記テーブルデータ構造を初期化
するために、上記構成オブジェクトの名前と、当該構成
オブジェクトの有する上記メッセージインターフェース
の数と、当該構成オブジェクトを初期化する処理機能と
を記載した、所定の設定のデータ構造を読み込む。
【0011】また、上記データ処理装置において、上記
複合オブジェクトは、独自の実行スレッドを持つことに
より、上記構成オブジェクトに対して発行されたメッセ
ージの処理を、当該実行スレッドにおいて実行する。
【0012】また、上記データ処理装置において、上記
複合オブジェクトは、所定の構成オブジェクトの追加要
求を受理することにより、上記テーブルデータ構造に、
当該所定の構成オブジェクトのデータ構造を追加登録す
る。
【0013】また、上記データ処理装置は、上記複合オ
ブジェクトに所定のオブジェクトを追加する際、当該複
合オブジェクトを構成する全ての構成オブジェクトとの
間に、実行逐次性があることを検査する手段と、当該実
行逐次性が確認された後、上記所定のオブジェクトを追
加する手段とを備える。
【0014】また、上記データ処理装置において、上記
実行逐次性は、上記所定のオブジェクトにメッセージが
送信された時点で、上記複合オブジェクトを構成する全
ての構成オブジェクトが、当該所定のオブジェクトと並
行に動作する必要がないことを検査する手段と、当該所
定のオブジェクトが、当該複合オブジェクトを構成する
いずれかの構成オブジェクトに対しメッセージを送信す
る場合に、当該構成オブジェクトが既に他のメッセージ
を処理中であることはないことを検査する手段と、当該
複合オブジェクトを構成するいずれかの構成オブジェク
トから、当該所定のオブジェクトがメッセージを受け取
る場合に、当該所定のオブジェクトが既に他のメッセー
ジを処理中であることはないことを検査する手段とによ
って検査される。
【0015】また、上記データ処理装置において、上記
構成オブジェクトは、その他全ての上記構成オブジェク
トとの間で、実行逐次性があることを検査する。
【0016】また、上記データ処理装置において、上記
構成オブジェクトは、所定の構成オブジェクトの分離要
求を受理することにより、上記テーブルデータ構造か
ら、当該所定の構成オブジェクトのデータ構造を登録抹
消する。
【0017】また、上記データ処理装置において、上記
複合オブジェクトは、当該複合オブジェクトに送達され
たメッセージの送付元が、非構成オブジェクトからのも
のであるか、当該構成オブジェクトからのものであるか
を検査する手段と、当該メッセージの送付先が、当該非
構成オブジェクトに対するものであるか、当該構成オブ
ジェクトに対するものであるかを検査する手段とを具備
する。
【0018】また、上記データ処理装置において、上記
複合オブジェクトは、上記メッセージの送付元が上記構
成オブジェクトであり、当該メッセージの送付先が当該
構成オブジェクトに対するものである場合、実行スレッ
ドの切り替えをせずに、メッセージで要求された処理を
実行する。
【0019】また、本発明に係るデータ処理方法は、メ
ッセージ通信を行う複数のオブジェクトから構成される
オブジェクト指向オペレーティングシステムのデータ処
理方法である。そして、所定のオブジェクトの追加を要
求する複合化要求メッセージを受信したオブジェクト
が、当該所定のオブジェクトを構成オブジェクトとして
参照するためのテーブルデータ構造を作成し、当該構成
オブジェクトのデータによって初期化することによって
複合オブジェクトを構成するステップと、少なくとも一
つの当該構成オブジェクトのデータ構造を作成し、当該
テーブルデータ構造に登録し、当該構成オブジェクトが
具備する少なくとも一つのメッセージ処理機能と当該メ
ッセージ処理機能を要求するためのメッセージインター
フェースとの関係を、当該構成オブジェクトデータ構造
に登録するステップとを具備する。なお、上記データ処
理方法において、上記複合オブジェクトは、上記テーブ
ルデータ構造を初期化するために、上記構成オブジェク
トの名前と、当該構成オブジェクトの有する上記メッセ
ージインターフェースの数と、当該構成オブジェクトを
初期化する処理機能とを記載した、所定の設定のデータ
構造を読み込む。
【0020】また、上記データ処理方法において、上記
複合オブジェクトは、独自の実行スレッドを持つことに
より、上記構成オブジェクトに対して発行されたメッセ
ージの処理を、当該複合オブジェクトの実行スレッドに
おいて実行する。
【0021】また、上記データ処理方法において、上記
複合オブジェクトは、所定の構成オブジェクトの追加要
求を受理することにより、上記テーブルデータ構造に、
当該所定の構成オブジェクトのデータ構造を追加登録す
る。
【0022】また、上記データ処理方法において、上記
複合オブジェクトは、所定のオブジェクトを追加する
際、当該複合オブジェクトを構成する全ての構成オブジ
ェクトとの間に、実行逐次性があることを検査する検査
ステップと、当該実行逐次性が確認された後、上記所定
のオブジェクトを追加する追加ステップとを実行する。
また、上記データ処理方法において、上記実行逐次性
は、上記所定のオブジェクトにメッセージが送信された
時点で、上記複合オブジェクトを構成する全ての構成オ
ブジェクトが、当該所定のオブジェクトと並行に動作す
る必要がないことを検査するステップと、当該所定のオ
ブジェクトが、当該複合オブジェクトを構成するいずれ
かの構成オブジェクトに対しメッセージを送信する場合
に、当該構成オブジェクトが既に他のメッセージを処理
中であることはないことを検査するステップと、当該複
合オブジェクトを構成するいずれかの構成オブジェクト
から、当該所定のオブジェクトがメッセージを受け取る
場合に、当該所定のオブジェクトが既に他のメッセージ
を処理中であることはないことを検査するステップとに
よって検査される。
【0023】また、上記データ処理方法において、上記
構成オブジェクトは、その他全ての上記構成オブジェク
トとの間で、実行逐次性があることを検査する。
【0024】また、上記データ処理方法において、上記
構成オブジェクトは、所定の構成オブジェクトの分離要
求を受理することにより、上記テーブルデータ構造か
ら、当該所定の構成オブジェクトのデータ構造を登録抹
消する。
【0025】また、上記データ処理方法において、上記
複合オブジェクトは、当該複合オブジェクトに送達され
たメッセージの送付元が、非構成オブジェクトからのも
のであるか、当該構成オブジェクトからのものであるか
を検査するステップと、当該メッセージの送付先が、当
該非構成オブジェクトに対するものであるか、当該構成
オブジェクトに対するものであるかを検査するステップ
とを具備する。
【0026】また、上記データ処理方法において、上記
複合オブジェクトは、上記メッセージの送付元が上記構
成オブジェクトであり、当該メッセージの送付先が当該
構成オブジェクトに対するものである場合、実行スレッ
ドの切り替えをせずに、メッセージで要求された処理を
実行する。
【0027】また、本発明に係るプログラム提供媒体
は、メッセージ通信を行う複数のオブジェクトから構成
されるオブジェクト指向オペレーティングシステムのデ
ータ処理プログラムを提供するものであり、所定のオブ
ジェクトの追加を要求する複合化要求を受理したオブジ
ェクトが、当該所定のオブジェクトを構成オブジェクト
として参照するためのテーブルデータ構造を作成し、当
該構成オブジェクトのデータによって初期化することに
よって複合オブジェクトを構成するステップと、少なく
とも一つの当該構成オブジェクトのデータ構造を作成
し、当該テーブルデータ構造に登録し、当該構成オブジ
ェクトが具備する少なくとも一つのメッセージ処理機能
と当該メッセージ処理機能を要求するためのメッセージ
インターフェースとの関係を、当該構成オブジェクトデ
ータ構造に登録するステップとを具備するデータ処理プ
ログラムを提供する。
【0028】また、本発明に係るデータ処理装置は、オ
ブジェクト指向オペレーティングシステムを実行するデ
ータ処理装置であって、オブジェクト間でメッセージ通
信を行うオブジェクトを、1つ以上の構成オブジェクト
から構成される複合オブジェクトと、複合オブジェクト
以外のオブジェクトである標準オブジェクトとのいずれ
かにより構成するオブジェクト構成手段を備える。ま
た、上記オブジェクト構成手段により構成された標準オ
ブジェクト及び構成オブジェクトを任意のオブジェクト
から参照できるように、各標準オブジェクト及び各構成
オブジェクトに識別子を付す識別子設定手段を備える。
また、上記オブジェクト構成手段により構成されたオブ
ジェクトのうち、複合オブジェクトについては、1つの
複合オブジェクトを1つの実行スレッドによって実行
し、その実行スレッドを複合オブジェクトを構成する各
構成オブジェクトによって共有させる実行スレッド制御
手段を備える。
【0029】なお、上記データ処理装置は更に、追加オ
ブジェクト情報読み込み手段と、追加オブジェクト特定
手段と、オブジェクト追加手段とを備えていても良い。
ここで、追加オブジェクト情報読み込み手段は、所定の
オブジェクトを他のオブジェクトに構成オブジェクトと
して追加することを要求するメッセージが入力されたと
きに、少なくとも、上記所定のオブジェクトを特定する
追加対象オブジェクト名と、当該所定のオブジェクトを
構成オブジェクトとして他のオブジェクトに追加するの
に必要な初期化手続きが記述されたメソッドを特定する
初期化メソッド情報とを読み込む。追加オブジェクト特
定手段は、上記追加オブジェクト情報読み込み手段によ
り読み込まれた上記追加対象オブジェクト名により、他
のオブジェクトに構成オブジェクトとして追加するオブ
ジェクトを特定する。オブジェクト追加手段は、上記追
加オブジェクト特定手段により特定されたオブジェクト
を、上記追加オブジェクト情報読み込み手段により読み
込まれた上記初期化メソッド情報によって特定されるメ
ソッドを実行することにより、構成オブジェクトとして
他のオブジェクトに追加する。
【0030】また、上記データ処理装置は更に、記述子
作成手段と、メソッド情報格納手段とを備えていてもよ
い。ここで、記述子作成手段は、所定のオブジェクトを
他のオブジェクトに構成オブジェクトとして追加する際
に、構成オブジェクトとして追加されるオブジェクトに
関する情報が格納される記述子を上記識別子と対応づけ
て作成する。メソッド情報格納手段は、上記記述子作成
手段によって作成された記述子に、少なくとも、構成オ
ブジェクトとして追加されるオブジェクトが具備するメ
ソッドを呼び出すための情報を格納する。
【0031】また、上記データ処理装置は更に、削除オ
ブジェクト情報読み込み手段と、削除オブジェクト特定
手段と、オブジェクト削除手段と、記述子削除手段とを
備えていてもよい。ここで、削除オブジェクト情報読み
込み手段は、所定の構成オブジェクトを複合オブジェク
トから削除することを要求するメッセージが入力された
ときに、少なくとも、削除対象の構成オブジェクトを特
定する削除対象オブジェクト名を読み込む。削除オブジ
ェクト特定手段は、上記削除オブジェクト情報読み込み
手段により読み込んだ削除対象オブジェクト名により、
複合オブジェクトから削除する構成オブジェクトを特定
する。オブジェクト削除手段は、上記削除オブジェクト
特定手段により特定された構成オブジェクトを複合オブ
ジェクトから削除する。記述子削除手段は、上記削除オ
ブジェクト特定手段により特定された構成オブジェクト
に対応した識別子から、当該構成オブジェクトに対応し
た記述子を特定し、当該記述子を削除する。
【0032】また、上記データ処理装置において、上記
オブジェクト構成手段は、複合オブジェクトを複数の構
成オブジェクトから構成する際に、ある構成オブジェク
トから、当該構成オブジェクトを含む複合オブジェクト
を構成する他の構成オブジェクトにメッセージが送信さ
れた時点で、それらの2つの構成オブジェクトが並行動
作する必要がないという条件と、ある構成オブジェクト
から、当該構成オブジェクトを含む複合オブジェクトを
構成する他の構成オブジェクトにメッセージを送信する
ときに、メッセージを受け取る側の構成オブジェクトが
他のメッセージを処理中であることはないという条件
と、を満たすように複合オブジェクトを構成する。
【0033】また、上記データ処理装置において、ある
オブジェクトから他のオブジェクトにメッセージを送る
ときに、メッセージ送信側オブジェクト及びメッセージ
受信側オブジェクトが構成オブジェクトであり、それら
の構成オブジェクトが同じ複合オブジェクトに含まれて
いる場合、上記実行スレッド制御手段は、実行スレッド
の切り替えを行わずに、メッセージ送信側オブジェクト
が使用していた実行スレッドと同じ実行スレッドを用い
て、メッセージ送信側オブジェクトから送られたメッセ
ージで要求された処理を、メッセージ受信側オブジェク
トにより実行させる。
【0034】また、上記データ処理装置は更に、オブジ
ェクト間でのメッセージ通信に使用されるアプリケーシ
ョンプログラムインターフェースとして、メッセージ通
信を行うオブジェクトが標準オブジェクトであるか構成
オブジェクトであるかに関わらず共通に使用可能なアプ
リケーションプログラムインターフェースを備えていて
もよい。
【0035】また、本発明に係るデータ処理方法は、オ
ブジェクト指向オペレーティングシステムによって実行
されるデータ処理方法において、オブジェクト間でメッ
セージ通信を行うオブジェクトを、1つ以上の構成オブ
ジェクトから構成される複合オブジェクトと、複合オブ
ジェクト以外のオブジェクトである標準オブジェクトと
のいずれかにより構成する。また、任意のオブジェクト
から標準オブジェクト及び構成オブジェクトを参照でき
るように、各標準オブジェクト及び各構成オブジェクト
に識別子を付す。また、複合オブジェクトについては、
1つの複合オブジェクトを1つの実行スレッドによって
実行し、その実行スレッドを複合オブジェクトを構成す
る各構成オブジェクトによって共有させる。
【0036】なお、上記データ処理方法において、所定
のオブジェクトを他のオブジェクトに構成オブジェクト
として追加することを要求するメッセージが入力された
ときは、少なくとも、上記所定のオブジェクトを特定す
る追加対象オブジェクト名と、当該所定のオブジェクト
を構成オブジェクトとして他のオブジェクトに追加する
のに必要な初期化手続きが記述されたメソッドを特定す
る初期化メソッド情報とを読み込む。そして、上記追加
対象オブジェクト名により、他のオブジェクトに構成オ
ブジェクトとして追加するオブジェクトを特定し、上記
追加対象オブジェクト名により特定されたオブジェクト
を、上記初期化メソッド情報によって特定されるメソッ
ドを実行することにより、構成オブジェクトとして他の
オブジェクトに追加する。
【0037】また、上記データ処理方法において、所定
のオブジェクトを他のオブジェクトに構成オブジェクト
として追加する際は、構成オブジェクトとして追加され
るオブジェクトに関する情報が格納される記述子を上記
識別子と対応づけて作成し、上記記述子に少なくとも、
構成オブジェクトとして追加されるオブジェクトが具備
するメソッドを呼び出すための情報を格納する。
【0038】また、上記データ処理方法において、所定
の構成オブジェクトを複合オブジェクトから削除するこ
とを要求するメッセージが入力されたときは、少なくと
も、削除対象の構成オブジェクトを特定する削除対象オ
ブジェクト名を読み込み、上記削除対象オブジェクト名
により、複合オブジェクトから削除する構成オブジェク
トを特定する。そして、上記削除対象オブジェクト名に
より特定された構成オブジェクトを複合オブジェクトか
ら削除する。また、上記削除対象オブジェクト名により
特定された構成オブジェクトに対応した識別子から、当
該構成オブジェクトに対応した記述子を特定し、当該記
述子も削除する。
【0039】また、上記データ処理方法において、複合
オブジェクトを複数の構成オブジェクトから構成する際
は、ある構成オブジェクトから、当該構成オブジェクト
を含む複合オブジェクトを構成する他の構成オブジェク
トにメッセージが送信された時点で、それらの2つの構
成オブジェクトが並行動作する必要がないという条件
と、ある構成オブジェクトから、当該構成オブジェクト
を含む複合オブジェクトを構成する他の構成オブジェク
トにメッセージを送信するときに、メッセージを受け取
る側の構成オブジェクトが他のメッセージを処理中であ
ることはないという条件と、を満たすように複合オブジ
ェクトを構成する。
【0040】また、上記データ処理方法において、ある
オブジェクトから他のオブジェクトにメッセージを送る
ときに、メッセージ送信側オブジェクト及びメッセージ
受信側オブジェクトが構成オブジェクトであり、それら
の構成オブジェクトが同じ複合オブジェクトに含まれて
いる場合は、実行スレッドの切り替えを行わずに、メッ
セージ送信側オブジェクトが使用していた実行スレッド
と同じ実行スレッドを用いて、メッセージ送信側オブジ
ェクトから送られたメッセージで要求された処理を、メ
ッセージ受信側オブジェクトにより実行する。
【0041】また、上記データ処理方法において、オブ
ジェクト間でメッセージ通信を行う際には、メッセージ
通信を行うオブジェクトが標準オブジェクトであるか構
成オブジェクトであるかに関わらず共通に使用可能なア
プリケーションプログラムインターフェースを用いる。
【0042】また、本発明に係るプログラム提供媒体
は、オブジェクト指向オペレーティングシステムのデー
タ処理プログラムを提供するプログラム提供媒体であ
る。そして、上記オブジェクト指向オペレーティングシ
ステムのデータ処理プログラムは、オブジェクト間でメ
ッセージ通信を行うオブジェクトを、1つ以上の構成オ
ブジェクトから構成される複合オブジェクトと、複合オ
ブジェクト以外のオブジェクトである標準オブジェクト
とのいずれかにより構成する。また、任意のオブジェク
トから標準オブジェクト及び構成オブジェクトを参照で
きるように、各標準オブジェクト及び各構成オブジェク
トに識別子を付す。また、複合オブジェクトについて
は、1つの複合オブジェクトを1つの実行スレッドによ
って実行し、その実行スレッドを複合オブジェクトを構
成する各構成オブジェクトによって共有させる。
【0043】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照しながら詳細に説明する。
【0044】1.ハードウェア環境 まず、本発明が適用されるハードウェア構成の一例につ
いて、図1を参照して説明する。なお、ここでは、本発
明の実施の形態の一例として、テレビジョン受信装置に
本発明を適用した例を挙げるが、当然の事ながら、本発
明は、その他のデータ処理装置にも適用可能である。す
なわち、本発明は、オペレーティングシステムが搭載さ
れるデータ処理装置に広く適用可能であり、例えば、テ
レビジョン受信装置以外のオーディオ・ビジュアル機器
(いわゆるAV機器)や、各種の事務機器や、一般のコ
ンピュータ装置等にも適応可能である。
【0045】本発明が適用されたデータ処理装置である
図1に示すテレビジョン受信装置は、アンテナ又はケー
ブル等によって放送局からの信号を受信し、当該信号に
基づいて、ブラウン管又は液晶等の画像表示装置に映像
を表示すると共にスピーカから音声を出力する。
【0046】このテレビジョン受信装置は、通常のテレ
ビ機能を備えているだけでなく、外部からプログラムや
データを受けとることが可能となっており、図1に示す
ように、バス/IOブリッジ1を介してバス2に接続さ
れたテレビ機能部3と、バス/メモリブリッジ4を介し
てバス2に接続されたプロセッサ5と、バス/メモリブ
リッジ4を介してプロセッサ5に接続されたROM(Re
ad Only Memory)6及びRAM(Random Access Memor
y)7と、バス2に接続された操作パネル8、外部記憶
装置9及び通信装置10とを備えている。
【0047】テレビ機能部3は、アンテナ又はケーブル
等によって受信した信号に基づいて、映像や音声を再生
する機能を備えている。このテレビ機能部3は、バス/
IOブリッジ1を介してバス2に接続されており、これ
により、他の部分との信号のやり取りが可能となってい
る。
【0048】プロセッサ5は、このテレビジョン受信装
置の各部の制御を行うものであり、バス/メモリブリッ
ジ4を介してバス2に接続されている。また、プロセッ
サ5には、バス/メモリブリッジ4を介してROM6及
びRAM7が接続されている。ROM6は、プロセッサ
5による制御を行うためのオペレーティングシステムや
アプリケーションプログラムを記憶している。RAM7
は、プロセッサ5のワークエリアとして使われる。すな
わち、プロセッサ5は、ROM6に記憶されているオペ
レーティングシステムやアプリケーションプログラム
を、RAM7をワークエリアとして使用して実行するこ
とにより、このテレビジョン受信装置を構成する各部を
制御する。
【0049】操作パネル8は、ユーザからの操作入力を
受け付けるための入力装置であり、この操作パネル8か
ら、例えば、テレビのチャンネルやボリューム等の切り
換えを指示する信号が入力される。この操作パネル8
は、具体的には、各種信号を入力するための複数のボタ
ンを備えた入力装置や、いわゆるマウスと称されるよう
なポインティングデバイス等からなる。この操作パネル
8によって入力された信号は、バス2及びバス/メモリ
ブリッジ4を介してプロセッサ5に入力される。そし
て、プロセッサ5は、操作パネル8によって入力された
信号に基づいて、所定の演算処理を行って各部を制御す
る。
【0050】外部記憶装置9は、例えばハードディスク
装置からなり、画像データ、制御データ、又は外部から
通信装置10を介してダウンロードされたプログラム等
を記録するのに使われる。また、通信装置10は、外部
との間でデータ通信を行うための入出力部であり、例え
ばモデムやターミナルアダプター等からなる。
【0051】このテレビジョン受信装置は、テレビ機能
部3によって提供される通常のテレビ機能を備えている
だけでなく、通信装置10を介して、外部からプログラ
ムやデータを受け取ることが可能となっている。例え
ば、このテレビジョン受信装置では、オペレーティング
システムのバージョンアップを行う際に、外部のネット
ワークから通信装置10を介して新規ソフトウェアモジ
ュールを受け取り、これにより、オペレーティングシス
テムのバージョンアップを行うことが可能となってい
る。
【0052】また、このテレビジョン受信装置では、プ
ロセッサ5によって、ROM6に記憶されているオペレ
ーティングシステムを実行し、このオペレーティングシ
ステム上で、ROM6や外部記憶装置9に記憶されてい
るアプリケーションプログラムを実行することにより、
各部の制御を行う。すなわち、このテレビジョン受信装
置は、オペレーティングシステムのデータ処理プログラ
ムを提供するプログラム提供媒体として、ROM6を備
えている。なお、オペレーティングシステムは、RAM
7や外部記憶装置9に記録しておくようにしてもよい。
特に、オペレーティングシステムの書き換えを行えるよ
うにしたい場合には、RAM7や外部記憶装置9に記録
しておいたほうが好ましい。さらに、オペレーティング
システムをDVD−RWを記録媒体に用いるようなリム
ーバブル記憶装置11に記憶しておき、ROM6にオペ
レーティングシステム起動用ソフトウェアを搭載し、R
AM7や外部記憶装置9をオペレーティングシステムの
作業領域として利用するような方式でもよい。
【0053】本例におけるオペレーティングシステム
は、純オブジェクト指向型オペレーティングシステムで
ある。そして、このオペレーティングシステム上で、例
えば、テレビ機能部3に動画像を表示するためのアプリ
ケーションプログラムや、操作パネル8を制御するため
のグラフィカル・ユーザ・インターフェース(GUI)
を実現するアプリケーションプログラムが実行される。
【0054】2.ソフトウェア環境 つぎに、図1に示したようなテレビ受信装置装置で使用
される、本発明を適用したオペレーティングシステムに
ついて詳細に説明する。
【0055】2−1 オペレーティングシステムの構成 このオペレーティングシステムは、オペレーティングシ
ステムの基本部分であるメタコア(MetaCore)と、その
他のオブジェクト群とから構成される。ここで、メタコ
アは、オブジェクトとしては定義できない部分であり、
オブジェクト間の実行制御の切り替えを実行する処理
部、すなわち実行スレッドの切り替えを実行するスレッ
ド切替処理部である。
【0056】また、メタコアは、ユーザプログラムによ
り変更が困難な部分であり、一方、その他のオブジェク
ト群は、ユーザプログラムにより変更が容易な部分であ
る。なお、ここでの「変更」とは、当該変更をオペレー
ティングシステムに反映させるためには、全てのアプリ
ケーションプログラムを停止して、オペレーティングシ
ステムを再起動させる必要があるような、オペレーティ
ングシステムの変更のことである。
【0057】このオペレーティングシステムは、純オブ
ジェクト指向オペレーティングシステムであり、オペレ
ーティングシステム上で実行されるアプリケーションプ
ログラムを構成するオブジェクトと、オペレーティング
システムを構成するオブジェクトとが、同様な実行機構
を持つオペレーティングシステムである。したがって、
オブジェクト間の実行スレッドの切り替えは、サービス
の依頼と提供という観点から考えると、次の2種類に集
約できる。
【0058】(1)サービス依頼者からサービス提供者
に実行制御が移る。
【0059】(2)サービス提供者からサービス依頼者
に実行制御が戻る。
【0060】ここで、オペレーティングシステムによっ
て提供されるサービスを依頼する側であるサービス依頼
者のオブジェクトのことを、「ベースレベルオブジェク
ト」と称する。また、オペレーティングシステムによっ
て提供されるサービスを提供する側であるサービス提供
者のオブジェクトのことを、「メタオブジェクト」と称
する。また、メタオブジェクトにより提供されるサービ
スのことを、「メタオペレーション」と称する。また、
サービス依頼者とサービス提供者との間の関係のこと
を、「ベース/メタの関係」と呼ぶ。このとき、オペレ
ーティングシステム内の全ての動作は、オブジェクト間
のベース/メタの関係で表現することができる。
【0061】以下の説明では、メタオブジェクトの一例
をシステムオブジェクトと称し、ベースオブジェクトの
一例をアプリケーションオブジェクトと称す。なお、2
つのシステムオブジェクト間でも、片方がもう一方にオ
ペレーティングシステムのサービスを提供する場合に
は、オペレーティングシステムのサービスを依頼する側
がベースオブジェクトであり、オペレーティングシステ
ムのサービスを提供する側がメタオブジェクトである。
ベース/メタの関係の詳細は、本願出願人の出願に係る
特開平9ー911143号公報に記載されている。
【0062】そして、このオペレーティングシステムで
は、上記2種類の実行スレッドの切り替えを行うスレッ
ド切替処理部が、メタコアとして提供される。すなわ
ち、このオペレーティングシステムでは、オペレーティ
ングシステムを構築するための必要最低限の機構が、メ
タコアによって提供される。
【0063】すなわち、このオペレーティングシステム
は、実行スレッドに関する情報の書き換えを伴う実行ス
レッドの切り替えの処理を担うスレッド切替処理部とし
て、メタコアを備えている。そして、このメタコアの内
容を変更することなく、当該オペレーティングシステム
を構成するオブジェクトの内容変更が可能とされてい
る。
【0064】このオペレーティングシステムでは、ユー
ザが変更困難な部分は最小化され、様々なハードウェア
環境やユーザの要求に対して、容易に対応が可能な、柔
軟性が高いシステムを実現できる。すなわち、例えば、
オブジェクト間でメッセージをやり取りするオブジェク
ト間通信を担う部分を交換したり更新したりするような
ことが、オペレーティングシステムを再起動させること
無く行うことができる。したがって、オブジェクト間通
信を担う部分のバグの修正や、新デバイスの追加に対す
る新機能の追加といったことを、非常に容易に行うこと
が可能である。また、プロセッサのアーキテクチャに依
存する部分を、メタコアに集中させることにより、他の
システム構成要素の移植性を高めることもできる。
【0065】図2に、このオペレーティングシステムを
構成するオブジェクト群の例を示す。図2の例におい
て、オペレーティングシステムは、システムオブジェク
トとして、「オペレーティングシステム初期化手続
き」、「オブジェクトマネージャ」、「ダウンロー
ダ」、「レジストリ」、「割り込みベクタ」、「OID
(ObjectID)マネージャ」、「スレッドマネージ
ャ」、「メモリマネージャ」、「スケジューリング機
構」、「スケジューリングポリシ」、「メッセージハン
ドラ」、「メモリスイッチャ」、「タイマ」を備えてお
り、これらがメタコア上で動作するようになされてい
る。
【0066】なお、図2は、このオペレーティングシス
テムの典型的な構成例において存在するオブジェクト群
を示しており、これらのオブジェクト群は変更される可
能性がある。すなわち、このオペレーティングシステム
は、ユーザによってシステム構成を柔軟に変更すること
が可能となっており、当該オペレーティングシステムを
構成するオブジェクト群は容易に変更可能とされてい
る。ただし、図2に示したオブジェクト群のうち、オブ
ジェクト「オペレーティングシステム初期化手続き」は
必須であり、このオブジェクト「オペレーティングシス
テム初期化手続き」だけは、オペレーティングシステム
を構成するオブジェクト群に必ず含まれる。
【0067】図2に示したオブジェクト群のうち、オブ
ジェクト「オペレーティングシステム初期化手続き」
は、オペレーティングシステムの起動時に最初に実行さ
れる初期化手続きを実行する。オブジェクト「オブジェ
クトマネージャ」は、オブジェクトの生成や削除を管理
する。オブジェクト「ダウンローダ」は、ネットワー
ク、二次記憶装置又は着脱可能メディア等から、オブジ
ェクトをダウンロード又はアンロードするときの手続き
を実行する。
【0068】オブジェクト「レジストリ」は、各オブジ
ェクトを識別するための識別子(Object identifier:
以下、「OID」と称する。)と、各オブジェクトの名
称とのマッピングを行う。オブジェクト「割り込みベク
タ」は、割り込み発生時に割り込みの種類を判別し、適
当な手続きを呼び出す。オブジェクト「OIDマネージ
ャ」は、OIDの生成や削除を管理する。オブジェクト
「スレッドマネージャ」は、オブジェクトの実行スレッ
ドの生成や削除を管理する。オブジェクト「メモリマネ
ージャ」は、記憶領域の割り当てや解放の手続きを行
う。
【0069】オブジェクト「スケジューリング機構」
は、オブジェクトのスケジューリングを行うときに、実
行スレッドの切り替えのタイミングの管理を行い、オブ
ジェクト「スケジューリングポリシ」は、スケジューリ
ングキューの動作を含むスケジューリングの方策の管理
を行う。すなわち、オブジェクト「スケジューリング機
構」は、スケジューリングの低レベル(すなわち、より
ハードウェアに近いレベル)の手続きを扱い、オブジェ
クト「スケジューリングポリシ」は、スケジューリング
の高レベル(すなわち、よりアプリケーションに近いレ
ベル)の手続きを扱う。
【0070】オブジェクト「メッセージハンドラ」は、
アプリケーションオブジェクト間のメッセージ通信機構
を管理する。具体的には、オブジェクト「メッセージハ
ンドラ」は、アプリケーションオブジェクト間でメッセ
ージ通信を行うときに、メッセージキューの管理や、メ
ッセージ受信者の確認処理などを行う。
【0071】オブジェクト「基本メッセージハンドラ」
は、システムオブジェクト間のメッセージ通信機構を管
理する。具体的には、オブジェクト「基本メッセージハ
ンドラ」は、システムオブジェクト間でメッセージ通信
を行うときに、メッセージキューの管理や、メッセージ
受信者の確認処理などを行う。
【0072】オブジェクト「メモリスイッチャ」は、M
MU(Memory Management Unit:メモリ管理機構)を用い
て、実行スレッド切り替えのタイミングに合わせて、ア
クティブなメモリ空間を切り替える。オブジェクト「タ
イマ」は、ハードウェアタイマの割り込みを管理し、定
期的処理を管理する。
【0073】2−2 オブジェクトの実行遷移 図3に、オペレーティングシステム上で動作する2つの
アプリケーションオブジェクト(アプリケーションオブ
ジェクト1とアプリケーションオブジェクト2)の間で
メッセージ通信が行われるときの、システムオブジェク
トの実行の遷移を示す。
【0074】アプリケーションオブジェクト1でメッセ
ージ送信要求が起こると、先ず、システムオブジェクト
の一つであるオブジェクト「メッセージハンドラ」への
実行スレッドの切り替えが起こる。ここで、アプリケー
ションオブジェクトとシステムオブジェクトの間ではメ
ッセージ通信は起こらず、メタコアによる実行スレッド
の切り替えだけが起こる。これは、アプリケーションオ
ブジェクトとシステムオブジェクトの動作レベルを切り
替えることで、オペレーティングシステムとアプリケー
ションとの間に境界を作り、システムの安全性を高める
ためである。
【0075】次に、オブジェクト「メッセージハンド
ラ」は、メッセージ受信者であるアプリケーションオブ
ジェクト2に対するメッセージキューの処理を行う。そ
して、処理中のメッセージがキューに貯まっていなけれ
ば、オブジェクト「メモリスイッチャ」を起動する。ま
た、処理中の他のメッセージがある場合には、アプリケ
ーションオブジェクト2に対するメッセージをキューに
格納し、当該メッセージを処理する順番が来たら、オブ
ジェクト「メモリスイッチャ」を起動する。
【0076】次に、オブジェクト「メモリスイッチャ」
は、アクティブなメモリ空間をアプリケーションオブジ
ェクト1のメモリ空間から、アプリケーションオブジェ
クト2のメモリ空間に切り替える。
【0077】次に、オブジェクト「メッセージハンド
ラ」は、アプリケーションオブジェクト2の実行スレッ
ドの情報を、オブジェクト「スケジューリングポリシ」
に受け渡す。
【0078】次に、オブジェクト「スケジューリングポ
リシ」及びオブジェクト「スケジューリング機構」によ
り、スケジューリングキューの処理を行う。このとき、
キューにはアプリケーションオブジェクト1の実行スレ
ッドが存在するはずなので、その後ろにアプリケーショ
ンオブジェクト2の実行スレッドを格納する。
【0079】その後、実行の制御はオブジェクト「メッ
セージハンドラ」まで戻り、続いてアプリケーションオ
ブジェクト1への実行スレッドの切り替えが起こり、ア
プリケーションオブジェクト1の実行が再開される。
【0080】やがて、オブジェクト「タイマ」が、ハー
ドウェア割込み発生により起動され、オブジェクト「タ
イマ」によりオブジェクト「スケジューリング機構」が
呼び出される。そして、アプリケーションオブジェクト
2へ実行スレッドの切り替えが起こり、メッセージ受信
者であるアプリケーションオブジェクト2も動作を開始
する。
【0081】以後は、タイムスライススケジューリング
の元で、アプリケーションオブジェクト1とアプリケー
ションオブジェクト2とが並行に動作する。
【0082】なお、以上の例は、アプリケーションオブ
ジェクト間でメッセージ通信を行うときのオブジェクト
の実行遷移であったが、システムオブジェクト間でメッ
セージ通信を行うときも、ほぼ同様にオブジェクトの実
行遷移がなされる。
【0083】ただし、システムオブジェクト間でのメッ
セージ通信を処理するオブジェクトは、オブジェクト
「メッセージハンドラ」データはなく、オブジェクト
「基本メッセージハンドラ」である。また、システムオ
ブジェクト同士は、通常は同一のメモリ空間に配置され
ているので、システムオブジェクト間でメッセージ通信
を行うとき、オブジェクト「メモリスイッチャ」は動作
しない。
【0084】システムオブジェクト間でメッセージ通信
を行うときの実行遷移の例として、図4に、オブジェク
ト「基本メッセージハンドラ」とオブジェクト「スケジ
ューリングポリシ」との間でメッセージ通信を行うとき
の実行遷移を示す。
【0085】図4に示すように、システムオブジェクト
間でメッセージ通信を行うときも、 ・その実行遷移は、オブジェクト「メッセージハンド
ラ」ではなくオブジェクト「基本メッセージハンドラ」
が動作することと、 ・オブジェクト「メモリスイッチャ」が動作しないこと 以外については、図3に示したアプリケーションオブジ
ェクト間でメッセージ通信を行う場合の実行遷移と同様
である。
【0086】なお、図4の例において、メッセージ受信
者であるオブジェクト「スケジューリングポリシ」のス
ケジューリングは、オブジェクト「スケジューリングポ
リシ」自身で行っている。すなわち、オブジェクト「ス
ケジューリングポリシ」についても、そのスケジューリ
ングを行うオブジェクトは、オブジェクト「スケジュー
リングポリシ」である。オブジェクト「スケジューリン
グポリシ」は、このようなモデルに矛盾しないように、
自分自身をアクティブにするときには、他の場合とは区
別して例外的な処理を行う。
【0087】2−3 メッセージ通信機構 以下、メッセージ通信を行う機構について、具体的なア
プリケーションプログラムインタフェース(Application
Program Interface:以下、APIと称する。)を例に
挙げて詳細に説明する。
【0088】なお、以下の説明では、個々のAPIをO
MG IDL(Object Management Group Interface De
finition Language)の記述方法に準じた形で示し、そ
の後、そのAPIについて説明する。
【0089】2−3−1 メッセージ通信に用いられる
API まず、オブジェクト間のメッセージ通信に用いられるA
PIについて、具体的な例を挙げて説明する。なお、以
下に挙げるAPIは、アプリーケーションオブジェクト
間でメッセージ通信を行う場合と、システムオブジェク
ト間でメッセージ通信を行う場合のどちらにおいても使
用される。また、以下の説明では、メッセージ送信側の
オブジェクトを送信オブジェクトと称し、メッセージ受
信側のオブジェクトを受信オブジェクトと称する。
【0090】また、以下に挙げるAPIにおいて、「sE
rror」はエラー識別値を表す変数型を示している。ま
た、引数型の前に「in」とあるのは入力引数、「out」
とあるのは出力引数である。また、変数型「OID」は、
OIDを表す変数型であり、変数型「Selector」は、メ
ソッドに対応したメッセージセレクタを表す変数型であ
る。
【0091】また、変数型「FutureID」は、フューチャ
構造体の識別子を表す変数型である。フューチャ構造体
は、送信オブジェクトと受信オブジェクトの同期をとる
ために用いられる構造体であり、フューチャ構造体に
は、受信オブジェクトによる処理の結果として送信オブ
ジェクトに返されるメッセージが格納される。そして、
各フューチャ構造体には、個々のフューチャ構造体を識
別するための識別子が付けられる。フューチャ構造体に
ついては、本願出願人が先に出願する特開平10ー28
3205号公報に詳細が記載されている。
【0092】sError FindOID (in char* name, out OID
* object);このAPIは、入力引数「name」で与えたオ
ブジェクト名に対応するオブジェクトのOIDを出力引
数「object」に代入する。なお、本例におけるオペレー
ティングシステムでは、オブジェクトの参照にOIDを
用いる。そして、オブジェクト名とOIDのマッピング
は、システムオブジェクトの一つであるオブジェクト
「レジストリ」によって管理される。
【0093】sError Send (in OID destination, in Se
lector method,in void* arg, out FutureID* future);
このAPIは、送信オブジェクトから、入力引数「dest
ination」で特定される受信オブジェクトに対して、メ
ッセージを送信する。また、入力引数「method」で特定
される受信オブジェクトのメソッドを起動し、当該メソ
ッドへの引数として入力引数「arg」を受け渡す。ま
た、メッセージ通信に使用されるフューチャ構造体の識
別子を、戻り値として出力引数「future」に格納する。
【0094】受信オブジェクトがメッセージを受信した
後、送信オブジェクトと受信オブジェクトは並行に動作
する。また、送信オブジェクトから受信オブジェクトに
メッセージが送信された時に、受信オブジェクトが別の
メッセージを処理中の場合は、その処理が終了するま
で、送信されたメッセージの処理は開始されず、そのメ
ッセージはメッセージキューに格納される。
【0095】sError WaitFor (in FutureID future);こ
のAPIは、送信オブジェクトと受信オブジェクトの同
期をとるためのものであり、入力引数「future」で特定
されるフューチャ構造体に、受信オブジェクトによる処
理の結果として送信オブジェクトに返されるメッセージ
が格納されるまで、送信オブジェクトの処理を中断す
る。すなわち、このAPIが発行された場合、受信オブ
ジェクトから返答があるまで、送信オブジェクトは処理
を中断する。
【0096】sError Reply ();このAPIは、受信オブ
ジェクトによる処理の結果として、送信オブジェクトに
メッセージを返す。なお、送信オブジェクトに返すメッ
セージは、このAPIの引数とするのではなく、フュー
チャ構造体に格納することで送信オブジェクトに受け渡
す。したがって、このAPIでは、送信オブジェクトに
返すメッセージを代入する引数を用意していない。
【0097】void Exit ();このAPIは、オブジェク
トのメソッド実行を終了する。このAPIが発行された
時点でメッセージキューに格納されているメッセージが
ある場合は、そのメッセージの処理が開始される。
【0098】以上のようなAPIを使った場合の実行遷
移の一例を図5に示す。
【0099】図5は、送信オブジェクト「Sender」から
受信オブジェクト「Receiver」へメッセージを送信する
場合を示している。具体的には、送信オブジェクト「Se
nder」のメソッド「Method1()」が、受信オブジェクト
「Receiver」のメソッド「Method2(ptr)」の起動を要求
するメッセージを送信し、その後、送信オブジェクト
「Sender」と受信オブジェクト「Receiver」の同期をと
って、受信オブジェクト「Receiver」のメソッド「Meth
od2(ptr)」での処理の結果を送信オブジェクト「Sende
r」に返す、という処理の実行遷移を示している。
【0100】図5に示した例では、先ず、「FindOID("R
eceiver",&receiver_oid)」により、"Receiver"という
名前のオブジェクトのOIDが、出力引数「receiver_o
id」に代入される。
【0101】次に、「Send(receiver_oid,method2_sele
ctor,pArgument,&futureID)」により、受信オブジェク
ト「Receiver」のメソッド「Method2(ptr)」の起動を要
求するメッセージが、送信オブジェクト「Sender」から
受信オブジェクト「Receiver」へ送信される。ここで、
受信オブジェクト「Receiver」のメソッド「Method2(pt
r)」は、引数「method2_selector」によって特定され
る。また、引数「pArgument」は、受信オブジェクト「R
eceiver」のメソッド「Method2(ptr)」に受け渡され
る。また、受信オブジェクト「Receiver」による処理の
結果として送信オブジェクト「Sender」に返されるメッ
セージが格納されるフューチャ構造体を識別するための
識別子が、戻り値として出力引数「futureID」に格納さ
れる。
【0102】そして、「Send(receiver_oid,method2_se
lector,pArgument,&futureID)」が発行されると、図3
や図4に示したような処理がシステムオブジェクトによ
って行われ、その結果、受信オブジェクト「Receiver」
が起動される。この時点から、送信オブジェクト「Send
er」と受信オブジェクト「Receiver」は並行動作する。
【0103】その後、送信オブジェクト「Sender」が
「WaitFor(futureID)」を発行し、受信オブジェクト「R
eceiver」からの返答待ちの状態になると、送信オブジ
ェクト「Sender」の実行は、受信オブジェクト「Receiv
er」が「Reply()」を発行するまで中断される。
【0104】その後、受信オブジェクト「Receiver」が
「Reply()」を発行し、送信オブジェクト「Sender」へ
の返答を行うと、送信オブジェクト「Sender」の実行が
再開され、送信オブジェクト「Sender」と受信オブジェ
クト「Receiver」は再び並行動作する。なお、受信オブ
ジェクト「Receiver」から送信オブジェクト「Sender」
への返答メッセージの受け渡しは、フューチャ構造体を
介して行われる。
【0105】そして、以上のようなメッセージ通信の
後、やがて両者とも「Exit()」を発行することで、それ
ぞれの処理を終了する。
【0106】2−3−2 オブジェクトの外部インター
フェース オブジェクトのメソッドは、エントリテーブルに登録す
ることにより、外部インターフェースとして使用可能と
なる。オブジェクトの外部インタフェースとは、他のオ
ブジェクトに公開されているメソッドのことであり、換
言すれば、メッセージ通信により他のオブジェクトから
起動することが可能なメソッドである。例えば、図5の
例では、受信オブジェクト「Receiver」のメソッド「Me
thod2(ptr)」は、外部インターフェースの一つである。
【0107】エントリテーブルは、図6に示すように、
メッセージセレクタとエントリの組からなるテーブルで
あり、各オブジェクトに一つずつ保持されている。ここ
で、エントリは、メソッドへのポインタである。このエ
ントリテーブルは、オブジェクトが起動されるときに、
メソッドを検索するために、システムオブジェクトによ
って参照される。
【0108】以下、このようなエントリーテーブルへの
メソッドの登録等の処理を行うAPIについて、具体的
な例を挙げて説明する。なお、以下に挙げるAPIは、
オブジェクトの初期化時に呼び出される特別なメソッド
(以下、「プロローグメソッド」と称する。)において主
に用いられるが、動的に外部インタフェースの登録を行
う場合に任意のメソッドから呼び出して用いることも可
能である。
【0109】なお、以下に挙げるAPIにおいて、「sE
rror」はエラー識別値を表す変数型を示している。ま
た、引数型の前に「in」とあるのは入力引数、「out」
とあるのは出力引数である。また、変数型「EntryTabl
e」は、エントリテーブルへのポインタを表す変数型で
あり、変数型「Selector」は、メソッドに対応したメッ
セージセレクタを表す変数型である。
【0110】sError InitEntryTable (in EntryTable t
able);このAPIは、エントリテーブルをオブジェクト
に登録する。ここで、入力引数「table」には、オブジ
ェクトに登録するエントリテーブルへのポインタを設定
する。このポインタにより特定されるエントリテーブル
の内容が、オブジェクトに登録され、当該エントリテー
ブルに登録されているメソッドが、外部インターフェー
スとして使用可能となる。
【0111】sError GetEntryTable (out EntryTable t
able);このAPIは、オブジェクトに登録されているエ
ントリテーブルの内容を、エントリテーブルの形式で得
る。出力引数「table」には、エントリテーブルへのポ
インタが格納される。
【0112】void EntryTable::SetEntry (in Selector
method, in Entry entry);このAPIは、エントリテ
ーブルにメッセージセレクタやエントリの値を登録す
る。入力引数「method」には、登録するメッセージセレ
クタを設定し、入力引数には、登録するエントリを設定
する。
【0113】void EntryTable::UnsetEntry (in Select
or method);このAPIは、エントリテーブルから値を
削除する。入力引数「method」には、削除するメソッド
のメッセージセレクタを設定する。
【0114】下記にコード1として、上述のようなAP
Iを用いたプロローグメソッドの一例(メソッド名「Pro
logue」)を示す。
【0115】コード1:外部インターフェースの登録 1: void 2: Prologue () 3: { 4: EntryTable entryTable (2); 5: 6: entryTable.SetEntry (selector1, Method1); 7: entryTable.SetEntry (selector2, Method2); 8: 9: InitEntryTable (&entryTable); 10: }
【0116】上記メソッド「Prologue」は、オブジェク
トの初期化時にメソッドを外部インタフェースとして登
録するプロローグメソッドである。このメソッド「Prol
ogue」では、4行目において、エントリ数が2であるエ
ントリテーブルを定義し、6,7行目において、エント
リテーブルにメッセージセレクタやエントリの値を登録
する。そして、メッセージセレクタやエントリの値が登
録されたエントリーテーブルを、9行目において、この
プロローグメソッドを発行したオブジェクトに登録す
る。これにより、エントリテーブルに登録されているメ
ソッドが、外部インターフェースとして使用可能とな
る。
【0117】また、下記にコード2として、上述のよう
なAPIを用いて外部インターフェースの変更を行うメ
ソッドの一例(メソッド名「ChangeExternalInterfac
e」)を示す。
【0118】コード2:外部インターフェースの変更 1: void 2: ChangeExternalInterface () 3: { 4: EntryTable* pEntryTable; 5: 6: GetEntryTable (pEntryTable); 7: 8: entryTable.UnsetEntry (selector1); 9: entryTable.SetEntry (selector3, Method1); 10: 11: InitEntryTable (pEntryTable); 12: }
【0119】上記メソッド「ChangeExternalInterfac
e」は、上記メソッド「Prologue」で登録したメソッド
のうち、メソッド「Method1」について外部インタフェ
ースとしての登録を抹消し、代わりにメッセージセレク
タ「selector3」で参照されるエントリ「Method3」を新
たに登録する。このメソッド「ChangeExternalInterfac
e」において、4行目で定義している「EntryTable* pEn
tryTable」には、エントリの交換を行うために用いられ
るエントリテーブルへのポインタが格納される。そし
て、このメソッド「ChangeExternalInterface」は、6
行目において、エントリテーブルのポインタを獲得し、
8行目でメッセージセレクタ「selector1」のエントリ
を削除し、9行目で新しいエントリを登録する。そし
て、変更されたエントリテーブルの内容を、11行目に
おいて、オブジェクトに再登録する。
【0120】2−4 動的リンク機構 動的リンク機構について説明する。動的リンク機構は、
オブジェクト間で動的にリンク可能な共有のライブラリ
(以下、動的共有ライブラリと称する。)を構築すると
きに用いられたり、後述する複合オブジェクトの動的変
更機構の一部として用いられる。
【0121】動的リンク機構は、オブジェクトを複数の
「オブレット」と呼ぶソフトウェアモジュールを用いて
構成するための機構である。オブレットの構造を、図7
のOMTダイアグラム(Object Modeling Technique Dia
gram)を用いて説明する。
【0122】オブレットは「リンクテーブル(LinkTabl
e)」と任意の数の「アドレススペース(AddressSpace)」
から成る。リンクテーブルは「エントリ(Entry)」(この
エントリは、後述するテキストセグメント内にあるメソ
ッドへのポインタ)の集合である。アドレススペース
は、メモリ保護の単位で、複数の「セグメント(Segmen
t)」から成る。そして、通常は実行バイナリのテキスト
(コード)領域及びデータ領域が、それぞれ「テキスト
セグメント(TextSegment)」及び「データセグメント(Da
taSegment)」として、オブレット内に定義される。した
がって、テキストセグメント内にメソッドが格納され、
リンクテーブルのエントリは、テキストセグメント内に
格納されたメソッドへのポインタとなる。
【0123】全てのオブジェクトはエントリテーブルを
持つが、エントリテーブルに格納されたエントリ(メソ
ッドへのポインタ)が指す先は、テキストセグメント中
のエントリでもよいし、リンクテーブル中のエントリで
もよい。あるオブジェクトのエントリテーブルに格納さ
れたエントリが、リンクテーブル中のエントリを指した
場合は、当該リンクテーブルを有するオブレット中のテ
キストセグメントの内容が、そのオブジェクトのメソッ
ドとして用いられる。
【0124】このような動的リンク機構を利用すると、
オブジェクト間で動的にリンク可能な共有のライブラ
リ、すなわち動的共有ライブラリの構築が可能となる。
図8に、オブジェクトAとオブジェクトBで、オブレッ
トCを使った動的共有ライブラリを用いている例を示
す。
【0125】オブジェクトAは3つのエントリを持つエ
ントリテーブルを持っており、それらのうち、メッセー
ジセレクタ「selector1」「selector2」に対応するエン
トリは、オブジェクトAのテキストセグメント内のメソ
ッドへのエントリとなっている。また、メッセージセレ
クタ「selector3」に対応するエントリは、オブレット
Cのリンクテーブル内のエントリを指しており、このリ
ンクテーブル内のエントリは、オブレットCのテキスト
セグメント内のメソッドへのエントリとなっている。
【0126】一方、オブジェクトBのエントリテーブル
も3つのエントリを持っており、それらのうち、メッセ
ージセレクタ「selector1」に対応するエントリは、オ
ブジェクトBのテキストセグメント内のメソッドへのエ
ントリとなっている。また、メッセージセレクタ「sele
ctor2」「selector3」に対応するエントリは、オブレッ
トCのリンクテーブル内のエントリを指しており、この
リンクテーブル内のエントリは、オブレットCのテキス
トセグメント内のメソッドへのエントリとなっている。
【0127】このとき、オブレットCは、オブジェクト
A及びオブジェクトBからリンクされた共有のライブラ
リとなっている。したがって、例えば、共有ライブラリ
となっているオブレットCを更新することにより、オブ
ジェクトAとオブジェクトBの動作を同時に更新するこ
とが可能である。また、オブレットCのリンクテーブル
へのリンクは、動的に変更可能である。すなわち、オブ
レットCは、オブジェクト間で動的にリンク可能な共有
のライブラリ、すなわち動的共有ライブラリとなってい
る。
【0128】オブレットを動的共有ライブラリとして用
いる場合、オブレットのリンクテーブルにどの種類のエ
ントリがあるかを抽出した「オブレット情報」がオブレ
ットの定義時に提供される。オブジェクトの初期化手続
きにおいて、オブジェクトが参照しているライブラリ内
のエントリ名を、オブレット情報内のエントリ名と比較
して一致した場合は、そのオブジェクトのエントリテー
ブルからオブレットのリンクテーブルに対してリンクを
張る。
【0129】なお、以上のような動的リンク機構の複合
オブジェクトへの利用については後述する。
【0130】2−5 複合オブジェクト 複合オブジェクトについて説明する。複合オブジェクト
は、本発明のポイントとなるものであり、複合オブジェ
クトを導入することにより、オペレーティングシステム
の柔軟性を保ったまま、オブジェクト間通信のコストを
低減することが可能となる。
【0131】2−5−1 複合オブジェクトの概念 「複合オブジェクト(Composite Object)」は、次の性質
を持つオブジェクトである。
【0132】(1)複合オブジェクトは、複数の「構成オ
ブジェクト(Component Object)」から成る。
【0133】(2)構成オブジェクトのプログラミングス
タイルは、構成オブジェクト以外のオブジェクト(以
下、「標準オブジェクト」と称する。)のプログラミン
グスタイルと同じである。つまり、構成オブジェクト
も、標準オブジェクトと同様に、上述したAPIを用い
たメッセージ通信により互いにメッセージをやり取りす
る実体として定義される。また、プロローグメソッドに
よる初期化方法についても、構成オブジェクトと標準オ
ブジェクトとで同一のプログラミングスタイルを用い
る。
【0134】(3)各構成オブジェクトは、標準オブジェ
クトと同様にOIDを持ち、構成オブジェクトや標準オ
ブジェクトから参照可能である。
【0135】(4)複合オブジェクト内の構成オブジェク
トは、独自の実行スレッドを持たず、複合オブジェクト
が持つ実行スレッドを共有する。
【0136】(5)複合オブジェクトは複数の構成オブジ
ェクトから成るが、これらの構成オブジェクト間でのメ
ッセージ通信は、標準オブジェクト間のメッセージ通信
よりも高速である。これは、複合オブジェクトを構成し
ている構成オブジェクト間でメッセージ通信を行うとき
には、実行スレッドの切り替えが起こらずに、関数呼び
出しと同様な制御の流れで、オブジェクト間通信が行わ
れるからである。
【0137】(6)2つのオブジェクトが複合オブジェク
トの構成オブジェクトになることが可能なのは、両オブ
ジェクトの間に「実行逐次性」がある場合である。ここ
で、2つのオブジェクトの間に実行逐次性がある場合と
は、具体的には、次の2つの条件を満たす場合である。
【0138】(a)一方のオブジェクトから他方のオブジ
ェクトにメッセージが送信された時点で、それらの2つ
のオブジェクトが並行動作する必要がない。
【0139】(b)一方のオブジェクトから他方のオブジ
ェクトにメッセージを送信するときに、メッセージを受
け取る側のオブジェクトが他のメッセージを処理中であ
ることがない。
【0140】(7)複合オブジェクトを標準オブジェクト
に変換したり、標準オブジェクトを複合オブジェクトに
変換することは可能である。
【0141】(8)構成オブジェクトの外部インタフェー
スは、当該構成オブジェクトが属する複合オブジェクト
の外部インタフェースでもある。
【0142】(9)複合オブジェクトを構成する構成オブ
ジェクトは、複合オブジェクトの初期化時に決定可能で
あるとともに、その後、動的に追加や削除することも可
能である。
【0143】図9に、2つの標準オブジェクトである
「オブジェクトA」と「オブジェクトB」から、複合オ
ブジェクトである「オブジェクトC」を構成した例を示
す。図9の例において、オブジェクトAには、メソッド
1,2の二つのメソッドが外部インタフェースとして定
義されている。また、オブジェクトBには、メソッド
3,4,5の三つのメソッドが外部インタフェースとし
て定義されている。
【0144】そして、図9中の矢印Aに示すように、オ
ブジェクトAとオブジェクトBを合成し複合化すること
で、複合オブジェクトCを構成することができる。この
とき、オブジェクトA及びオブジェクトBは、複合オブ
ジェクトCの構成オブジェクトとなり、メソッド1,
2,3,4,5は、複合オブジェクトCの外部インタフ
ェースとなる。これらの外部インタフェースは、オブジ
ェクトA及びオブジェクトBが標準オブジェクトである
ときと同様である。
【0145】また、オブジェクトA及びオブジェクトB
を複合オブジェクトCの構成オブジェクトとしたとき、
それらの構成オブジェクトはそれぞれのOIDを持つ。
したがって、それらの構成オブジェクトは、標準オブジ
ェクトと同様に、他の構成オブジェクトや標準オブジェ
クトから参照可能である。
【0146】また、オブジェクトA及びオブジェクトB
を複合オブジェクトCの構成オブジェクトとしたとき、
それらの構成オブジェクトは、複合オブジェクトCの実
行スレッドを共用する。
【0147】また、図9中の矢印Bに示すように、オブ
ジェクトCを分解し複合解除することで、複合オブジェ
クトCを構成していた構成オブジェクトを、標準オブジ
ェクトに戻すこともできる。
【0148】ところで、標準オブジェクトを、複合オブ
ジェクトを構成する構成オブジェクトにするには、オブ
ジェクト間の実行逐次性が重要である。
【0149】例えば、3つの標準オブジェクトA,B,
Cがあり、オブジェクトAとオブジェクトBとの間には
実行逐次性がなく(換言すれば、オブジェクトAとオブ
ジェクトBには並行性があり)、オブジェクトAとオブ
ジェクトCとの間には実行逐次性があるとする。このと
き、オブジェクトAとオブジェクトBを組み合わせて複
合オブジェクトにすることはできない。一方、オブジェ
クトAとオブジェクトCを組み合わせて複合オブジェク
トとすることは可能である。
【0150】そこで、オブジェクトAとオブジェクトB
については、それらを組み合わせて用いるとしても、そ
れらのオブジェクトA,Bをそのまま標準オブジェクト
として用いる。一方、オブジェクトAとオブジェクトC
について、それらを組み合わせて用いる場合は、オブジ
ェクトA,Cを複合オブジェクトを構成する構成オブジ
ェクトとすることができる。
【0151】このように、実行逐次性を考慮して、標準
オブジェクトと複合オブジェクトとを使い分けること
で、システムのパフォーマンスを向上させることが可能
となる。
【0152】2−5−2 複合オブジェクトの動的リン
ク機構による実現 構成オブジェクトを標準オブジェクトと同様に、柔軟に
追加や削除できるようにするために、構成オブジェクト
の実現には、動的リンク機構が用いられる。
【0153】図10に、複合オブジェクトの構成を示し
たOMTダイアグラムを示す。図10に示すように、複
合オブジェクト(Composite Object)は、任意の数の構成
オブジェクト(Component Object)から成る。各構成オブ
ジェクトはそれぞれのOIDを持つ。複合オブジェクト
もOIDを一つ持つ。複合オブジェクトは一つの実行ス
レッド(Thread)を持つ。構成オブジェクトは、オブレッ
ト(Oblet)とエントリテーブル(EntryTable)から成る。
オブレットの構造は図7及び図8を用いて説明した通り
である。エントリテーブルからリンクテーブルに複数の
参照がある。この構成は、2−4章で説明した動的共有ラ
イブラリの構成の特殊な場合、すなわちオブレットがラ
イブラリとして共有されていない場合の構成になってい
る。したがって、このオブレットも、動的共有ライブラ
リと同じ方式で初期化が行われる。
【0154】また、標準オブジェクトも動的リンク機構
を用いた構成になっている。これにより、標準オブジェ
クトの構成と複合オブジェクトの構成とを共通化でき、
システムの処理を簡便化することができる。
【0155】図11に、標準オブジェクトの構成を示し
たOMTダイアグラムを示す。図11に示すように、標
準オブジェクト(StandardObject)は、一つのOIDと、
一つの実行スレッド(Thread)とを持つ。また、標準オブ
ジェクトは、オブレット(Oblet)とエントリテーブル(En
tryTable)を持つ。すなわち、標準オブジェクトの構成
は、複合オブジェクトの特殊な場合、すなわち、複合オ
ブジェクトが一つの構成オブジェクトのみを持っている
場合と、同様な構造になっている。ただし、標準オブジ
ェクトに対してOIDは一つだけ与えられる。
【0156】2−5−3 複合オブジェクトの初期化ア
ルゴリズム 複合オブジェクトの初期化後の動作は標準オブジェクト
と同様だが、初期化手続きについては、標準オブジェク
トの場合とは異なる。図12に複合オブジェクトの初期
化手続きを示すとともに、図13に複合オブジェクトに
含まれる構成オブジェクトの初期化手続きを示す。
【0157】標準オブジェクトは、プロローグメソッド
が呼び出されて当該プロローグメソッドが実行されるこ
とで初期化手続きが行われる。複合オブジェクトもプロ
ローグメソッドを持ち、当該プロローグメソッドが呼び
出されて初期化手続きが行われる。しかしながら、複合
オブジェクトの初期化手続きは標準オブジェクトの場合
とは異なり、図12及び図13に示すように行われる。
【0158】複合オブジェクトの初期化手続きでは、図
12に示すように、先ず、ステップS1において、オブ
ジェクト参照用テーブル(オブジェクト名からOIDを
参照するためのテーブル)を作成し、当該オブジェクト
参照用テーブルを初期化する。このオブジェクト参照テ
ーブルは、複合オブジェクトの内部のみで用いられる。
しかし、その内容は、後述するように初期化手続きの最
後でレジストリに登録するので、最終的には複合オブジ
ェクトの外部からも参照可能となる。
【0159】次に、ステップS2において、複合オブジ
ェクトを構成する全ての構成オブジェクトについて、初
期化手続きが完了しているか否かを判別する。初期化手
続きが完了していない構成オブジェクトがある場合に
は、ステップS3へ進む。また、全ての構成オブジェク
トの初期化手続きが完了しているならば、ステップS7
へ進む。
【0160】なお、複合オブジェクトの初期化手続きを
実行する時点で、当該複合オブジェクトがどの構成オブ
ジェクトを含むかは、「構成オブジェクトコンフィギュ
レーションファイル」に予め記述しておく。構成オブジ
ェクトコンフィギュレーションファイルには、具体的に
は、構成オブジェクトの名前と、構成オブジェクトの持
つエントリ数と、構成オブジェクトのプロローグメソッ
ドのエントリポイントとを記述しておく。
【0161】下記にコード3として、構成オブジェクト
コンフィギュレーションファイルの一例を示す。なお、
下記の例では、プログラミング言語C++の構造体とし
て構成オブジェクトコンフィギュレーションファイルを
記述している。
【0162】 コード3:構成オブジェクトコンフィギュレーションファイル 1: componentObjectConfiguration [] = { 2: /* name, entry_num, prologue_method */ 3: {"SchedulerPolicy", 8, _SchedPolicyPrologue}, 4: {"SchedulerMechanism", 4, _SchedMechanismPrologue}, 5: {"Timer", 3, _TimerPrologue} 6: } 上記コード3は、「"SchedulerPolicy"」,「"Scheduler
Mechanism"」,「"Timer"」という名前を持つ3つの構成
オブジェクトが、それぞれ8, 4, 3のエントリ数を持
ち、それぞれ「_SchedPolicyPrologue」,「_SchedMecha
nismPrologue」,「_TimerPrologue」というプロローグ
メソッドを持っていることを示している。そして、ステ
ップS3では、上述のような構成オブジェクトコンフィ
ギュレーションファイルから、次に初期化手続きを行う
構成オブジェクトの情報を獲得する。
【0163】次に、ステップS4において、ステップS
3で獲得した情報に基づいて、図13に示すように、構
成オブジェクトの初期化手続きを行う。なお、構成オブ
ジェクトの初期化手続きについては、後で図13を参照
して詳細に説明する。
【0164】次に、ステップS5において、ステップS
4での構成オブジェクトの初期化手続きが成功したか否
かを判別する。構成オブジェクトの初期化手続きが成功
しているならば、ステップS2へ戻って処理を繰り返
す。一方、構成オブジェクトの初期化手続きに失敗して
いるならば、ステップS6へ進み、当該ステップS6に
おいて中間生成物の削除などのエラー処理を行った上
で、ステップS2へ戻る。以上の処理を繰り返し、全て
の構成オブジェクトの初期化手続きが完了したならば、
上述したように、ステップS2からステップS7へと進
む。そして、ステップS7において、オブジェクト参照
用テーブルの内容をレジストリに登録し、複合オブジェ
クトの初期化手続きを終了する。
【0165】なお、個々の複合オブジェクトに対して図
12に示すような初期化手続きを記述してもよいが、こ
の初期化手続きはライブラリとして提供することが好ま
しい。殆どの複合オブジェクトは同様な初期手続きを実
行するため、図12に示すような初期化手続きをライブ
ラリとして提供することにより、プログラミングを軽減
することができる。
【0166】つぎに、図13を参照して、個々の構成オ
ブジェクトの初期化手続きについて説明する。なお、以
下に説明する初期化手続きは、上記ステップS4で実行
されるものである。
【0167】図13に示すように、構成オブジェクトの
初期化手続きでは、先ず、ステップS11において、構
成オブジェクトのプロローグメソッドを呼び出す。構成
オブジェクトのプロローグメソッドは、2−3−2章の
コード1で示した標準オブジェクトのものと同一のプロ
グラミングスタイルで記述され、このプロローグメソッ
ドにより外部インタフェースの登録が行われる。
【0168】なお、構成オブジェクトのプロローグメソ
ッドのプログラミングスタイルは標準オブジェクトの場
合と同一だが、「InitEntryTable()」での処理が、対象
が標準オブジェクトの場合と、対象が構成オブジェクト
の場合とで若干異なる。すなわち、対象が標準オブジェ
クトの場合、「InitEntryTable()」はエントリテーブル
の内容をオブジェクトに直接登録するが、対象が構成オ
ブジェクトの場合、「InitEntryTable()」は、エントリ
テーブルの内容を一時的な記憶領域に格納し、その内容
を後から構成オブジェクトに登録する。
【0169】このように、「InitEntryTable()」での処
理を、対象が標準オブジェクトの場合と、対象が構成オ
ブジェクトの場合とで変えることで、プロローグメソッ
ドのプログラミングスタイルを、標準オブジェクトのも
のと構成オブジェクトのものとで同一にすることができ
る。換言すれば、対象が標準オブジェクトの場合と、対
象が構成オブジェクトの場合とで、「InitEntryTabl
e()」での処理を若干異なるものとしているのは、プロ
ローグメソッドのプログラミングスタイルを標準オブジ
ェクトのものと構成オブジェクトのものとで同一にする
ための措置である。そして、ステップS11で呼び出さ
れたプロローグメソッドから制御が戻ったら、次に、ス
テップS12において、プロローグメソッドの中で「In
itEntryTable()」が正しく呼び出されたかをチェックを
する。これは、エントリテーブルの内容が格納されてい
る一時的な記憶領域を調べることで分かる。そして、
「InitEntryTable()」が一度も呼び出されていなかった
り、複数回呼び出されているような場合には、エラーを
返す。
【0170】一方、プロローグメソッドの中で「InitEn
tryTable()」が正しく呼び出されている場合には、ステ
ップS13に進み、一時的な記憶領域に格納されている
エントリテーブルの内容を獲得する。
【0171】次に、ステップS14において、一時的な
記憶領域に格納されているエントリテーブルの内容を獲
得できたかをチェックする。そして、初期化中の構成オ
ブジェクトに対応したエントリーテーブルの内容が一時
的な記憶領域に格納されておらず、エントリーテーブル
の内容を獲得できなかった場合には、エラーを返す。一
方、エントリーテーブルの内容を獲得できた場合には、
ステップS15に進み、「構成オブジェクト記述子」を
作成する。構成オブジェクト記述子は、構成オブジェク
トのエントリテーブル等が格納される構造体である。な
お、構成オブジェクト記述子については、2−5−4章
で詳述する。
【0172】次に、ステップS16において、構成オブ
ジェクト記述子にエントリテーブルを登録する。具体的
には、先ず、エントリテーブルを作成し、当該エントリ
ーテーブルに、一時的な記憶領域に格納されているエン
トリーテーブルの内容をコピーする。その後、このエン
トリテーブルを構成オブジェクト記述子に登録する。次
に、ステップS17において、構成オブジェクトのOI
Dを生成する。
【0173】次に、ステップS18において、オブジェ
クト参照用リストにオブジェクト名とOIDを登録す
る。
【0174】以上の処理で構成オブジェクトの初期化手
続きが完了し、図12に示した複合オブジェクトの初期
化手続きにおけるステップS4の処理が完了したことと
なる。
【0175】なお、以上のような構成オブジェクトの初
期化手続きの最中にエラーが発生した場合は、図12に
示した複合オブジェクトの初期化手続きにおいて、ステ
ップS6へ進むこととなる。
【0176】2−5−4 オブジェクト記述子 オブジェクトの情報を格納する記述子について、図14
のOMTダイアグラムを参照して説明する。
【0177】図14に示すように、「オブジェクト記述
子」「標準オブジェクト記述子」「構成オブジェクト記
述子」の3種類のクラスが定義されている。クラス「オ
ブジェクト記述子」は抽象クラスであり、クラス「標準
オブジェクト記述子」及びクラス「構成オブジェクト記
述子」は、クラス「オブジェクト記述子」のサブクラス
になっている。
【0178】そして、オブジェクト記述子は、「オブジ
ェクト型」「OID」を持っている。
【0179】オブジェクト記述子の「オブジェクト型」
には、対応するオブジェクトが標準オブジェクトと構成
オブジェクトのどちらであるかを示すフラグが格納さ
れ、オブジェクト記述子の「OID」には、対応するオブ
ジェクトのOIDが入る。
【0180】標準オブジェクト記述子は、標準オブジェ
クトに関する情報を格納するための構造体であり、一つ
の標準オブジェクトは、標準オブジェクト記述子を一つ
保持する。また、複合オブジェクトも、標準オブジェク
ト記述子を一つ保持する。
【0181】標準オブジェクト記述子は、「実行スレッ
ド」「メモリスペースID」「ヒープリスト」を持ってい
る。標準オブジェクト記述子の「メモリスペースID」に
は、対応する標準オブジェクトが使用するメモリスペー
スの識別子が格納され、「ヒープリスト」には、対応す
る標準オブジェクトが使用するヒープメモリ領域のリス
トが格納される。
【0182】また、標準オブジェクト記述子の「実行ス
レッド」には、対応する標準オブジェクトの実行スレッ
ドに関する情報として、「エントリテーブル」「実行ス
タック」「実行モード」「割込みレベル」が格納され
る。ここで、「実行モード」は、対応するオブジェクト
が特権命令モードであるか否かを示し、「割込みレベ
ル」は、割込みの優先順位を示す。
【0183】構成オブジェクト記述子は、構成オブジェ
クトに関する情報を格納するための構造体であり、一つ
の構成オブジェクトは、構成オブジェクト記述子を一つ
保持する。
【0184】構成オブジェクト記述子は、対応する構成
オブジェクトが属している複合オブジェクトに対応した
「標準オブジェクト記述子」と、対応する構成オブジェ
クトの「エントリテーブル」と、リンクテーブルなどを
含む「オブレット」とを持っている。なお、オブレット
の構成は図7及び図8を用いて説明した通りである。そ
して、この構成オブジェクト記述子には、2−5−3章
で図13を参照して説明したように、構成オブジェクト
の初期化手続き時に値が書き込まれる。
【0185】2−5−5 複合オブジェクトを考慮した
メッセージ通信機構 構成オブジェクト間でメッセージ通信を行うときのプロ
グラミングスタイルや、構成オブジェクトと標準オブジ
ェクトとの間でメッセージ通信を行うときのプログラミ
ングスタイルは、いずれも標準オブジェクト間でメッセ
ージ通信を行うときのプログラミングスタイルと同一で
ある。すなわち、構成オブジェクト間でメッセージ通信
を行うときや、構成オブジェクトと標準オブジェクトと
の間でメッセージ通信を行うときも、2−3−1章で示
したAPIを用いてプログラミングが行われる。ただ
し、構成オブジェクト間でのメッセージ通信は、2−5
−1章で示したように、二つのオブジェクト間で実行逐
次性があることを考慮する必要がある。
【0186】以上のように、プログラミングスタイルの
互換性を保つには、複数の構成オブジェクトから成る複
合オブジェクトを考慮する必要がある。
【0187】以下、複合オブジェクトを考慮して、プロ
グラミングスタイルの互換性を保ったままメッセージ通
信を行えるようにしたメッセージ通信機構について、詳
細に説明する。なお、以下の説明では、メッセージ送信
側のオブジェクトが構成オブジェクトの場合と、メッセ
ージ送信側のオブジェクトが標準オブジェクトの場合と
に分けて説明する。
【0188】(1)メッセージ送信側のオブジェクトが
構成オブジェクトの場合 メッセージ送信側のオブジェクトが構成オブジェクトの
場合、メッセージの処理は複合オブジェクトにリンクさ
れているライブラリの中で開始される。メッセージ送信
側のオブジェクトが構成オブジェクトの場合に、メッセ
ージ送信用のAPI「Send()」が発行されたときの手続
きを図15を参照して説明する。
【0189】先ず、ステップS21において、「Sen
d()」の引数として与えられる受信オブジェクトのOI
Dからオブジェクト記述子を獲得する。なお、オブジェ
クト記述子とOIDとの対応関係を記述した「オブジェ
クトテーブル」を予め作成しておき、OIDからオブジ
ェクト記述子を獲得する際は、このオブジェクトテーブ
ルを参照する。
【0190】次に、ステップS22において、オブジェ
クト記述子のオブジェクト型を調べる。そして、オブジ
ェクト型が構成オブジェクトを示している場合(すなわ
ち、受信オブジェクトが構成オブジェクトの場合)は、
ステップS23に進む。
【0191】ステップS23では、構成オブジェクト記
述子の「実行スレッド」から、対応する構成オブジェク
トの「エントリテーブル」を獲得する。
【0192】次に、ステップS24において、「Sen
d()」の引数として与えられるメッセージセレクタに対
応したエントリを、ステップS23で獲得した「エント
リテーブル」から獲得する。
【0193】次に、ステップS25において、ステップ
S24で正しくエントリが獲得できたかをチェックし、
正しくエントリが獲得できなかった場合にはエラーを返
す。正しくエントリが獲得できた場合には、ステップS
26へ進み、ステップS24で獲得したエントリに直接
ジャンプして処理を行う。これにより、送信オブジェク
トから受信オブジェクトへ制御が移り、メッセージ通信
が行われたこととなる。すなわち、送信オブジェクト及
び受信オブジェクトが共に構成オブジェクトの場合に
は、実行スレッドの切り替えは起こらずに、関数呼び出
しと同様な制御の流れで、オブジェクト間通信が行われ
る。
【0194】また、ステップS22において、オブジェ
クト記述子のオブジェクト型が標準オブジェクトを示し
ている場合(すなわち、受信オブジェクトが標準オブジ
ェクトの場合)には、ステップS27に進む。
【0195】ステップS27では、標準オブジェクト記
述子の「実行スレッド」を獲得する。換言すれば、この
ステップS27では、受信オブジェクトに対応した「実
行スレッド」を獲得する。
【0196】次に、ステップS28において、ステップ
S27で獲得した「実行スレッド」から、対応する標準
オブジェクトの「エントリテーブル」を獲得する。
【0197】次に、ステップS29において、「Sen
d()」の引数として与えられるメッセージセレクタに対
応したエントリを、ステップS28で獲得した「エント
リテーブル」から獲得する。
【0198】次に、ステップS30において、ステップ
S29で正しくエントリが獲得できたかをチェックし、
正しくエントリが獲得できなかった場合にはエラーを返
す。正しくエントリが獲得できた場合には、ステップS
31へ進む。
【0199】ステップS31では、図3や図4で示した
ようなメッセージ通信の処理を行う。このとき、図3や
図4を参照して説明したように、メッセージキュー操作
やオブジェクト「スケジューリングポリシ」の呼び出し
等の処理を行い、最終的に受信オブジェクトへの実行ス
レッドの切り替えが起こる。なお、受信オブジェクトが
オブジェクト「スケジューリングポリシ」の場合にも、
基本的にはこの手続きが用いられるが、その場合にはス
ケジューリングポリシの内部で例外的な処理が行われ
る。
【0200】以上が、構成オブジェクトがメッセージ送
信用のAPI「Send()」を発行したときに行われる手続
きである。
【0201】以上の説明から分かるように、メッセージ
通信が構成オブジェクト間で行われる場合は、メッセー
ジキュー操作、オブジェクト「スケジューリングポリ
シ」の呼び出し、実行スレッドの切り替え等の処理(す
なわちステップS31での処理)が省略されるので、通
信コストが大幅に低減される。
【0202】(2)メッセージ送信側のオブジェクトが
標準オブジェクトの場合 メッセージ送信側のオブジェクトが標準オブジェクトの
場合、メッセージの処理はオブジェクト「メッセージハ
ンドラ」で開始される。メッセージ送信側のオブジェク
トが標準オブジェクトの場合に、メッセージ送信用のA
PI「Send()」が発行されたときの手続きを図16を参
照して説明する。
【0203】先ず、ステップS41において、「Sen
d()」の引数として与えられる受信オブジェクトのOI
Dからオブジェクト記述子を獲得する。なお、オブジェ
クト記述子とOIDとの対応関係を記述した「オブジェ
クトテーブル」を予め作成しておき、OIDからオブジ
ェクト記述子を獲得する際は、このオブジェクトテーブ
ルを参照する。
【0204】次に、ステップS42において、オブジェ
クト記述子のオブジェクト型を調べる。そして、そのオ
ブジェクト型が構成オブジェクトを示している場合(す
なわち、受信オブジェクトが構成オブジェクトの場合)
は、ステップS43に進む。また、そのオブジェクト型
が標準オブジェクトを示している場合(すなわち、受信
オブジェクトが標準オブジェクトの場合)は、ステップ
S44に進む。
【0205】ステップS43では、構成オブジェクト記
述子経由で、受信オブジェクトが属する複合オブジェク
トの標準オブジェクト記述子を得て、その標準オブジェ
クト記述子から、複合オブジェクトの「実行スレッド」
を獲得する。その後、ステップS45へ進む。
【0206】一方、ステップS44では、受信オブジェ
クトの標準オブジェクト記述子を得て、その標準オブジ
ェクト記述子から、受信オブジェクトの「実行スレッ
ド」を獲得する。その後、ステップS45へ進む。
【0207】ステップS45では、ステップS43又は
ステップS44で獲得した「実行スレッド」から、対応
する構成オブジェクトの「エントリテーブル」を獲得す
る。次に、ステップS46において、「Send()」の引数
として与えられるメッセージセレクタに対応したエント
リを、ステップS45で獲得した「エントリテーブル」
から獲得する。
【0208】次に、ステップS47において、ステップ
S46で正しくエントリが獲得できたかをチェックし、
正しくエントリが獲得できなかった場合にはエラーを返
す。正しくエントリが獲得できた場合には、ステップS
48へ進む。
【0209】ステップS48では、図3や図4で示した
ようなメッセージ通信の処理を行う。このとき、図3や
図4を参照して説明したように、メッセージキュー操作
やオブジェクト「スケジューリングポリシ」の呼び出し
等の処理を行い、最終的に受信オブジェクトへの実行ス
レッドの切り替えが起こる。なお、受信オブジェクトが
オブジェクト「スケジューリングポリシ」の場合にも、
基本的にはこの手続きが用いられるが、その場合にはス
ケジューリングポリシの内部で例外的な処理が行われ
る。
【0210】以上が、標準オブジェクトがメッセージ送
信用のAPI「Send()」を発行したときに行われる手続
きである。なお、受信オブジェクトと送信オブジェクト
の両者が標準オブジェクトの場合の手続きは、ステップ
S42においてオブジェクト記述子のチェックを行うこ
と以外、複合オブジェクトを導入する以前の手続きと同
様なものとなっている。
【0211】2−5−6 複合オブジェクトの例 本章では、図2で示したオブジェクト指向オペレーティ
ングシステムにおいて、オペレーティングシステムサー
ビスを提供するシステムオブジェクトの一部を複合オブ
ジェクトとして実現し、システムオブジェクト間の通信
コストを低減して、オペレーティングシステム全体の実
行性能を向上させる例を示す。
【0212】ここでは、図17に示すように、複合オブ
ジェクト「システムコア」を構成する。複合オブジェク
ト「システムコア」は、「タイマ」「メモリスイッチ
ャ」「スケジューリングポリシ」「スケジューリング機
構」「割込みベクタ」を構成オブジェクトとして持つ。
【0213】図3や図4で示したように、オブジェクト
間のメッセージ通信の手続きにおいては、オブジェクト
「メモリスイッチャ」、オブジェクト「スケジュリング
ポリシ」、オブジェクト「スケジューリング機構」、オ
ブジェクト「タイマ」の間で頻繁なメッセージ交換が行
われるが、これらのオブジェクト間には実行逐次性があ
る。したがって、これらのオブジェクトは、複合オブジ
ェクト「システムコア」を構成する構成オブジェクトし
て定義した方が、メッセージ通信機構の性能が向上し、
結果的にシステム全体の実行性能が向上する。
【0214】また、オブジェクト「割込みベクタ」は、
割込み処理の時にオブジェクト「スケジューリングポリ
シ」やオブジェクト「スケジューリング機構」とメッセ
ージ交換を行うが、これら三者の間には実行逐次性があ
る。したがって、これらのオブジェクトは、複合オブジ
ェクト「システムコア」を構成する構成オブジェクトし
て定義した方が、割り込み処理の性能が向上し、結果的
にシステム全体の実行性能が向上する。
【0215】なお、複合オブジェクトに組み込む構成オ
ブジェクトの種類は、「構成オブジェクトコンフィギュ
レーションファイル」に記述しておくことで予め定義す
ることが可能である。すなわち、オペレーティングシス
テムのサービス提供部分のうち、複合オブジェクトとし
て定義されたサービス提供部分に組み込む構成オブジェ
クトの種類は、2−5−3章のコード3で示したよう
に、「構成オブジェクトコンフィギュレーションファイ
ル」に記述しておけばよい。また、複合オブジェクトに
組み込む構成オブジェクトは、動的に変更したり交換し
たりすることも可能である。
【0216】したがって、オペレーティングシステムの
サービス提供部分のうち、複合オブジェクトとして定義
されたサービス提供部分は、所望の動作を行うように、
当該複合オブジェクトを構成する構成オブジェクトを定
義したり、或いは、必要に応じて後から動的に、当該複
合オブジェクトを構成する構成オブジェクトを変更した
り交換したりすることが可能である。なお、構成オブジ
ェクトを動的に変更や交換する方法については、2−6
章で説明する。
【0217】2−6 構成オブジェクトの動的な複合化
と分離 標準オブジェクトを複合オブジェクト中の構成オブジェ
クトにすることを、オブジェクトの「複合化」と呼ぶ。
逆に、複合オブジェクト中の構成オブジェクトを複合オ
ブジェクトから抜き出して標準オブジェクトにすること
を、オブジェクトの「分離」と呼ぶ。本章では、複合化
やと分離を動的に(すなわち、オペレーティングシステ
ムの実行中に)行う方法について述べる。動的な複合化
や分離を行い、構成オブジェクトの種類の変更や交換を
行うことにより、オペレーティングシステムの動作は柔
軟に変更可能である。
【0218】2−6−1 複合化及び分離に用いられる
API オブジェクトの複合化や分離に用いられるAPIについ
て、具体的な例を挙げて説明する。
【0219】オブジェクトの複合化には、API「AddC
omponent()」が用いられる。また、オブジェクトの分離
には、API「RemoveComponent()」が用いられる。こ
れらのAPIは、複合オブジェクトにリンクされるライ
ブラリ中に定義されており、複合オブジェクトで用いる
ことが可能である。以下、これらのAPIについて詳細
に説明する。
【0220】sError AddComponent(in char* object_na
me, in longword entry_num,in Entry prologue_entry,
out OID object_oid);このAPIは、標準オブジェク
トとして定義されたオブジェクトを、このAPIを発行
した複合オブジェクトの構成オブジェクトにする。この
APIにおいて、入力引数「object_name」には、構成
オブジェクトとするオブジェクトの名称を設定する。複
合化されたオブジェクトの初期化後に、この入力引数
「object_name」に設定した名称が、レジストリに登録
される。この名称は、このAPIにより複合化されたオ
ブジェクトを他のオブジェクトが参照するときに用いら
れる。また、入力引数「entry_num」には、複合化され
るオブジェクトのエントリ数を設定する。また、入力引
数「prologue_entry」には、複合化されるオブジェクト
が初期化されるときに呼ばれるプロローグメソッドのエ
ントリポイントを設定する。また、このAPIは戻り値
として、複合化されて生成された構成オブジェクトのO
IDを、出力引数「object_oid」に格納する。
【0221】sError RemoveComponent(in char* object
_name, out OID object_oid);このAPIは、このAP
Iを発行した複合オブジェクト内の構成オブジェクト
を、標準オブジェクトとして分離する。ここで、入力引
数「object_name」には、複合オブジェクトから分離す
るオブジェクトの名称を設定する。すなわち、このAP
Iは、入力引数「object_name」で参照されるオブジェ
クトを、このAPIを発行した複合オブジェクトから分
離し、標準オブジェクトとして独立させる。また、この
APIは戻り値として、複合オブジェクトから分離され
て生成された標準オブジェクトのOIDを、出力引数
「object_oid」に格納する。
【0222】なお、「AddComponent()」や「RemoveComp
onent()」が発行された場合、オブジェクトの複合化や
分離の手続きが完了した時点でオブジェクトの状態はリ
セットされ、再び初期化手続きが行われる。
【0223】以上のようなAPIを用いて、既存の2つ
の標準オブジェクトを複合化し、1つの複合オブジェク
トの構成オブジェクトにするプログラムの例を、下記に
コード4として示す。コード4のプログラムでは、オブ
ジェクト「SystemCore」にオブジェクト「ObjectA」及
びオブジェクト「ObjectB」を組み込む。このとき、オ
ブジェクト「ObjectC」のメソッド「AddAandB()」が、
オブジェクト「SystemCore」を呼び出して、これらのオ
ブジェクトを登録させる。
【0224】 コード4:複合化のプログラミング例 1: void SystemCore::Add (char* name, number, prologue) 2: { 3: AddComponent (name, number, prologue) 4: } 5: 6: void ObjectC::AddAandB () 7: { 8: #define NAME_OBJECT_A "ObjectA" 9: #define NAME_OBJECT_B "ObjectB" 10: 11: OID objectA, objectB, systemCore; 12: 13: struct SystemCoreAddMsg { 14: char name [16]; 15: longword number; 16: Entry entry; 17: } msgA, msgB; 18: 19: FindOID ("SystemCore", &systemCore); 20: FindOID (NAME_OBJECT_A, &objectA); 21: FindOID (NAME_OBJECT_B, &objectB); 22: strcpy (msgA.name, NAME_OBJECT_A); 23: strcpy (msgB.name, NAME_OBJECT_B); 24: msgA.number = FindEntryNumber (objectA); 25: msgB.number = FindEntryNumber (objectB); 26: msgA.entry = FindPrologue (objectA); 27: msgB.entry = FindPrologue (objectB); 28: 29: Send (systemCore, INDEX_ADD, &msgA); 30: Send (systemCore, INDEX_ADD, &msgB); 31: } 上記コード4のプログラム例において、4行目はオブジ
ェクト「SystemCore」のメソッド「Add()」であり、最
終的に構成オブジェクトを追加するために、API「Ad
dComponent() 」を呼び出している。
【0225】このメソッド「Add()」を呼び出すのが、
6行目以下に記載されたメソッド「ObjectC::AddAand
B()」である。
【0226】メソッド「ObjectC::AddAandB()」では、
19行目において、後で行われるメッセージ送信に備え
て、オブジェクト「SystemCore」を検索している。ま
た、20行目でオブジェクト「ObjectA」を検索し、2
1行目でオブジェクト「ObjectB」を検索している。
【0227】22〜27行目では、13〜17行目で定
義されている構造体「SystemCoreAddMsg」に値をセット
している。この構造体「SystemCoreAddMsg」の値は、メ
ッセージ送信の過程で、オブジェクト「SystemCore」の
メソッド「Add()」の3つの引数にそれぞれ渡される。
【0228】24,25行目で用いられているメソッド
「FindEntryNumber()」は、引数で渡されるOIDを持
つオブジェクトのエントリ数を獲得する。すなわち、2
4行目では、メソッド「FindEntryNumber()」により、
オブジェクト「ObjectA」のエントリ数が獲得され、2
5行目では、メソッド「FindEntryNumber()」により、
オブジェクト「ObjectB」のエントリ数が獲得されてい
る。
【0229】26,27行目で用いられているメソッド
「FindPrologue()」は、引数で渡されるOIDを持つオ
ブジェクトのプロローグメソッドのエントリポイントを
獲得する。すなわち、26行目では、メソッド「FindPr
ologue()」により、オブジェクト「ObjectA」プロロー
グメソッドのエントリポイントが獲得され、27行目で
は、メソッド「FindPrologue()」により、オブジェクト
「ObjectB」プロローグメソッドのエントリポイントが
獲得されている。
【0230】29行目では、オブジェクト「SystemCor
e」のメソッド「Add()」に対するメッセージが、オブジ
ェクト「ObjectA」に関するパラメータと共に送信され
ている。ここで、引数「INDEX_ADD」は、オブジェクト
「SystemCore」のメソッド「Add()」に対応するメソッ
ドセレクタである。
【0231】30行目では、オブジェクト「SystemCor
e」のメソッド「Add()」に対するメッセージが、オブジ
ェクト「ObjectB」に関するパラメータと共に送信され
ている。ここで、引数「INDEX_ADD」は、オブジェクト
「SystemCore」のメソッド「Add()」に対応するメソッ
ドセレクタである。
【0232】なお、上記のプログラム例では、2つのオ
ブジェクト「ObjectA」「ObjectB」を複合化する部分だ
けを示したが、オブジェクト定義、複合化、分離、オブ
ジェクト削除、オブジェクト再定義、再複合化というサ
イクルをくり返すと、オペレーティングシステムの動作
を柔軟に変化させていくようなことも可能である。
【0233】2−6−2 複合化アルゴリズム及び分離
アルゴリズム API「AddComponent()」が発行されたときに実行され
る複合化のアルゴリズムと、API「RemoveComponen
t()」が発行されたときに実行される分離のアルゴリズ
ムとについて説明する。
【0234】(1)「AddComponent()」 「AddComponent() 」が発行されると、図13に示した
構成オブジェクトの初期化手続きが呼ばれる。この手続
きについては、2−5−3章で説明した通りである。た
だし、2−5−3章では、複合オブジェクトの初期化手
続きを行う場合を説明しており、初期化対象の複合オブ
ジェクト自身が、既存の「構成オブジェクトコンフィギ
ュレーションファイル」を読み込んで、構成オブジェク
トの情報を得ていた。これに対して、「AddComponent()
」が発行された場合は、「AddComponent()」の引数と
して、構成オブジェクトの情報が与えられる。また、新
しく生成された構成オブジェクトのOIDは、「AddCom
ponent()」の出力引数「object_oid」に格納される。
【0235】(2)「RemoveComponent()」 「RemoveComponent()」が発行されたときに実行される
分離のアルゴリズムについては、図18を参照して説明
する。
【0236】「RemoveComponent()」が発行されると、
先ず、ステップS51において、「RemoveComponen
t()」の入力引数「object_name」に設定されたオブジェ
クト名から、分離対象の構成オブジェクトのOIDを獲
得する。
【0237】次に、ステップS52において、複合オブ
ジェクトのオブジェクト参照用リストから、分離対象の
構成オブジェクトのオブジェクト名とOIDを削除す
る。
【0238】次に、ステップS53において、分離対象
の構成オブジェクトのOIDを削除する。
【0239】次に、ステップS54において、分離対象
の構成オブジェクトのエピローグメソッドを呼び出す。
エピローグメソッドは、オブジェクトの削除時に呼ばれ
るメソッドであり、例えば、不必要なデータ領域の解放
を行う。
【0240】次に、ステップS55において、分離対象
の構成オブジェクトのエントリテーブルを削除する。
【0241】次に、ステップS56において、分離対象
の構成オブジェクトに対応した構成オブジェクト記述子
を削除する。
【0242】以上で、分離の動作を終了し、「RemoveCo
mponent()」の入力引数「object_name」にオブジェクト
名が設定されていた構成オブジェクトが、複合オブジェ
クトから削除される。
【0243】2−7 複合オブジェクトの導入による効
複合オブジェクトを導入することにより、オブジェクト
間のメッセージ通信のコストを低減することができる。
しかも、オペレーティングシステムのサービス提供部分
を複合オブジェクトとすることにより、オペレーティン
グシステムのサービス提供部分を動的に追加したり削除
したりすることも可能となる。
【0244】すなわち、複合オブジェクトを導入するこ
とにより、オペレーティングシステムの柔軟性を保った
上で、オブジェクト間通信コストを低減して、オペレー
ティングシステム全体の実行性能を向上することができ
る。
【0245】
【発明の効果】以上詳細に説明したように、本発明によ
れば、システムコンフィギュレーションの柔軟性等、オ
ブジェクト指向オペレーティングシステムの優れた特徴
を保ちつつ、システム全体の実行性能を向上することが
できる。
【図面の簡単な説明】
【図1】本発明を適用したテレビジョン受信装置の構成
例を示す図である。
【図2】オペレーティングシステムを構成するオブジェ
クト群の一例を示す図である。
【図3】オペレーティングシステム上で動作する2つの
アプリケーションオブジェクトの間でメッセージ通信が
行われるときの実行遷移の一例を示す図である。
【図4】システムオブジェクト間でメッセージ通信を行
うときの実行遷移の一例を示す図である。
【図5】メッセージ通信用のAPIを利用した場合の実
行遷移の一例を示す図である。
【図6】エントリテーブルの一例を示す図である。
【図7】オブレットの構造をOMTダイアグラムにより
示した図である。
【図8】オブジェクトAとオブジェクトBで、オブレッ
トCを使った動的共有ライブラリを使用した例を示す図
である。
【図9】2つの標準オブジェクト「オブジェクトA」
「オブジェクトB」から、複合オブジェクト「オブジェ
クトC」を構成した例を示す図である。
【図10】複合オブジェクトの構造をOMTダイアグラ
ムにより示した図である。
【図11】標準オブジェクトの構造をOMTダイアグラ
ムにより示した図である。
【図12】複合オブジェクトの初期化手続きの処理手順
を示す図である。
【図13】複合オブジェクトに含まれる構成オブジェク
トの初期化手続きの処理手順を示す図である。
【図14】オブジェクトの情報を格納するオブジェクト
記述子をOMTダイアグラムにより示した図である。
【図15】メッセージ送信側のオブジェクトが構成オブ
ジェクトの場合に、メッセージ送信用のAPI「Sen
d()」が発行されたときに実行される手続きの処理手順
を示す図である。
【図16】メッセージ送信側のオブジェクトが標準オブ
ジェクトの場合に、メッセージ送信用のAPI「Sen
d()」が発行されたときに実行される手続きの処理手順
を示す図である。
【図17】オペレーティングシステムのサービスを提供
するシステムオブジェクトの一部を複合オブジェクトと
して実現した例を示す図である。
【図18】オブジェクトの分離用のAPI「RemoveComp
onent()」が発行されたときに実行される手続きの処理
手順を示す図である。
【符号の説明】
1 バス/IOブリッジ、 2 バス、 3 テレビ機
能部、 4 バス/メモリブリッジ、 5 プロセッ
サ、 6 ROM(Read Only Memory)、 7RAM
(Random Access Memory)、 8 操作パネル、 9
外部記憶装置、10 通信装置

Claims (36)

    【特許請求の範囲】
  1. 【請求項1】 メッセージ通信を行う複数のオブジェク
    トから構成されるオブジェクト指向オペレーティングシ
    ステムを実行するデータ処理装置において、 所定のオブジェクトの追加を要求する複合化要求メッセ
    ージを受信したオブジェクトが、当該所定のオブジェク
    トを構成オブジェクトとして参照するためのテーブルデ
    ータ構造を作成し、当該構成オブジェクトのデータによ
    って初期化することによって複合オブジェクトを構成す
    る手段と、 少なくとも一つの当該構成オブジェクトのデータ構造を
    作成し、当該テーブルデータ構造に登録し、当該構成オ
    ブジェクトが具備する少なくとも一つのメッセージ処理
    機能と当該メッセージ処理機能を要求するためのメッセ
    ージインターフェースとの関係を、当該構成オブジェク
    トデータ構造に登録する手段とを具備することを特徴と
    するデータ処理装置。
  2. 【請求項2】 上記複合オブジェクトは、上記テーブル
    データ構造を初期化するために、上記構成オブジェクト
    の名前と、当該構成オブジェクトの有する上記メッセー
    ジインターフェースの数と、当該構成オブジェクトを初
    期化する処理機能とを記載した、所定の設定のデータ構
    造を読み込むことを特徴とする請求項1記載のデータ処
    理装置。
  3. 【請求項3】 上記複合オブジェクトは、独自の実行ス
    レッドを持つことにより、上記構成オブジェクトに対し
    て発行されたメッセージの処理を、当該実行スレッドに
    おいて実行することを特徴とする請求項1記載のデータ
    処理装置。
  4. 【請求項4】 上記複合オブジェクトは、所定の構成オ
    ブジェクトの追加要求を受理することにより、上記テー
    ブルデータ構造に、当該所定の構成オブジェクトのデー
    タ構造を追加登録することを特徴とする請求項3記載の
    データ処理装置。
  5. 【請求項5】 上記複合オブジェクトに所定のオブジェ
    クトを追加する際、当該複合オブジェクトを構成する全
    ての構成オブジェクトとの間に、実行逐次性があること
    を検査する手段と、当該実行逐次性が確認された後、上
    記所定のオブジェクトを追加する手段とを具備すること
    特徴とする請求項4記載のデータ処理装置。
  6. 【請求項6】 上記実行逐次性は、上記所定のオブジェ
    クトにメッセージが送信された時点で、上記複合オブジ
    ェクトを構成する全ての構成オブジェクトが、上記所定
    のオブジェクトと並行に動作する必要がないことを検査
    する手段と、上記所定のオブジェクトが、当該複合オブ
    ジェクトを構成するいずれかの構成オブジェクトに対し
    メッセージを送信する場合に、当該構成オブジェクトが
    既に他のメッセージを処理中であることはないことを検
    査する手段と、当該複合オブジェクトを構成するいずれ
    かの構成オブジェクトから当該所定のオブジェクトがメ
    ッセージを受け取る場合に、当該所定のオブジェクトが
    既に他のメッセージを処理中であることはないことを検
    査する手段とによって検査されることを特徴とする請求
    項5記載のデータ処理装置。
  7. 【請求項7】 上記構成オブジェクトは、その他全ての
    上記構成オブジェクトとの間で、実行逐次性があること
    を検査することを特徴とする請求項4記載のデータ処理
    装置。
  8. 【請求項8】 上記構成オブジェクトは、所定の構成オ
    ブジェクトの分離要求を受理することにより上記テーブ
    ルデータ構造から当該所定の構成オブジェクトのデータ
    構造を登録抹消することを特徴とする請求項3記載のデ
    ータ処理装置。
  9. 【請求項9】 上記複合オブジェクトは、当該複合オブ
    ジェクトに送達されたメッセージの送付元が、非構成オ
    ブジェクトからのものであるか、当該構成オブジェクト
    からのものであるかを検査する手段と、当該メッセージ
    の送付先が、当該非構成オブジェクトに対するものであ
    るか、当該構成オブジェクトに対するものであるかを検
    査する手段とを具備することを特徴とする請求項3記載
    のデータ処理装置。
  10. 【請求項10】 上記複合オブジェクトは、上記メッセ
    ージの送付元が上記構成オブジェクトであり、当該メッ
    セージの送付先が当該構成オブジェクトに対するもので
    ある場合、実行スレッドの切り替えをせずに、メッセー
    ジで要求された処理を実行することを特徴とする請求項
    9記載のデータ処理装置。
  11. 【請求項11】 メッセージ通信を行う複数のオブジェ
    クトから構成されるオブジェクト指向オペレーティング
    システムのデータ処理方法において、 所定のオブジェクトの追加を要求する複合化要求メッセ
    ージを受信したオブジェクトが、当該所定のオブジェク
    トを構成オブジェクトとして参照するためのテーブルデ
    ータ構造を作成し、当該構成オブジェクトのデータによ
    って初期化することによって複合オブジェクトを構成す
    るステップと、 少なくとも一つの当該構成オブジェクトのデータ構造を
    作成し、当該テーブルデータ構造に登録し、当該構成オ
    ブジェクトが具備する少なくとも一つのメッセージ処理
    機能と当該メッセージ処理機能を要求するためのメッセ
    ージインターフェースとの関係を、当該構成オブジェク
    トデータ構造に登録するステップとを具備することを特
    徴とするデータ処理方法。
  12. 【請求項12】 上記複合オブジェクトは、上記テーブ
    ルデータ構造を初期化するために、上記構成オブジェク
    トの名前と、当該構成オブジェクトの有する上記メッセ
    ージインターフェースの数と、当該構成オブジェクトを
    初期化する処理機能とを記載した、所定の設定のデータ
    構造を読み込むことを特徴とする請求項11記載のデー
    タ処理方法。
  13. 【請求項13】 上記複合オブジェクトは、独自の実行
    スレッドを持つことにより、上記構成オブジェクトに対
    して発行されたメッセージの処理を、当該複合オブジェ
    クトの実行スレッドにおいて実行することを特徴とする
    請求項11記載のデータ処理方法。
  14. 【請求項14】 上記複合オブジェクトは、所定の構成
    オブジェクトの追加要求を受理することにより、上記テ
    ーブルデータ構造に、当該所定の構成オブジェクトのデ
    ータ構造を追加登録することを特徴とする請求項13記
    載のデータ処理方法。
  15. 【請求項15】 上記複合オブジェクトは、所定のオブ
    ジェクトを追加する際、 当該複合オブジェクトを構成する全ての構成オブジェク
    トとの間に、実行逐次性があることを検査する検査ステ
    ップと、当該実行逐次性が確認された後、上記所定のオ
    ブジェクトを追加する追加ステップとを実行することを
    特徴とする請求項14記載のデータ処理方法。
  16. 【請求項16】 上記実行逐次性は、上記所定のオブジ
    ェクトにメッセージが送信された時点で、上記複合オブ
    ジェクトを構成する全ての構成オブジェクトが、当該所
    定のオブジェクトと並行に動作する必要がないことを検
    査するステップと、当該所定のオブジェクトが、当該複
    合オブジェクトを構成するいずれかの構成オブジェクト
    に対しメッセージを送信する場合に、当該構成オブジェ
    クトが既に他のメッセージを処理中であることはないこ
    とを検査するステップと、当該複合オブジェクトを構成
    するいずれかの構成オブジェクトから、当該所定のオブ
    ジェクトがメッセージを受け取る場合に、当該所定のオ
    ブジェクトが既に他のメッセージを処理中であることは
    ないことを検査するステップとによって検査されること
    を特徴とする請求項15記載のデータ処理方法。
  17. 【請求項17】 上記構成オブジェクトは、その他全て
    の上記構成オブジェクトとの間で、実行逐次性があるこ
    とを検査することを特徴とする請求項14記載のデータ
    処理方法。
  18. 【請求項18】 上記構成オブジェクトは、所定の構成
    オブジェクトの分離要求を受理することにより、上記テ
    ーブルデータ構造から、当該所定の構成オブジェクトの
    データ構造を登録抹消することを特徴とする請求項13
    記載のデータ処理方法。
  19. 【請求項19】 上記複合オブジェクトは、当該複合オ
    ブジェクトに送達されたメッセージの送付元が、非構成
    オブジェクトからのものであるか、当該構成オブジェク
    トからのものであるかを検査するステップと、当該メッ
    セージの送付先が、当該非構成オブジェクトに対するも
    のであるか、当該構成オブジェクトに対するものである
    かを検査するステップとを具備することを特徴とする請
    求項13記載のデータ処理方法。
  20. 【請求項20】 上記複合オブジェクトは、上記メッセ
    ージの送付元が上記構成オブジェクトであり、当該メッ
    セージの送付先が当該構成オブジェクトに対するもので
    ある場合、実行スレッドの切り替えをせずに、メッセー
    ジで要求された処理を実行することを特徴とする請求項
    19記載のデータ処理方法。
  21. 【請求項21】 メッセージ通信を行う複数のオブジェ
    クトから構成されるオブジェクト指向オペレーティング
    システムのデータ処理プログラムを提供するプログラム
    提供媒体において、 所定のオブジェクトの追加を要求する複合化要求を受理
    したオブジェクトが、当該所定のオブジェクトを構成オ
    ブジェクトとして参照するためのテーブルデータ構造を
    作成し、当該構成オブジェクトのデータによって初期化
    することによって複合オブジェクトを構成するステップ
    と、 少なくとも一つの当該構成オブジェクトのデータ構造を
    作成し、当該テーブルデータ構造に登録し、当該構成オ
    ブジェクトが具備する少なくとも一つのメッセージ処理
    機能と当該メッセージ処理機能を要求するためのメッセ
    ージインターフェースとの関係を、当該構成オブジェク
    トデータ構造に登録するステップとを具備するデータ処
    理プログラムを提供するプログラム提供媒体。
  22. 【請求項22】 オブジェクト指向オペレーティングシ
    ステムを実行するデータ処理装置において、 オブジェクト間でメッセージ通信を行うオブジェクト
    を、1つ以上の構成オブジェクトから構成される複合オ
    ブジェクトと、複合オブジェクト以外のオブジェクトで
    ある標準オブジェクトとのいずれかにより構成するオブ
    ジェクト構成手段と、 上記オブジェクト構成手段により構成された標準オブジ
    ェクト及び構成オブジェクトを任意のオブジェクトから
    参照できるように、各標準オブジェクト及び各構成オブ
    ジェクトに識別子を付す識別子設定手段と、 上記オブジェクト構成手段により構成されたオブジェク
    トのうち、複合オブジェクトについては、1つの複合オ
    ブジェクトを1つの実行スレッドによって実行し、その
    実行スレッドを複合オブジェクトを構成する各構成オブ
    ジェクトによって共有させる実行スレッド制御手段とを
    備えること特徴とするデータ処理装置。
  23. 【請求項23】 所定のオブジェクトを他のオブジェク
    トに構成オブジェクトとして追加することを要求するメ
    ッセージが入力されたときに、少なくとも、上記所定の
    オブジェクトを特定する追加対象オブジェクト名と、当
    該所定のオブジェクトを構成オブジェクトとして他のオ
    ブジェクトに追加するのに必要な初期化手続きが記述さ
    れたメソッドを特定する初期化メソッド情報とを読み込
    む追加オブジェクト情報読み込み手段と、上記追加オブ
    ジェクト情報読み込み手段により読み込まれた上記追加
    対象オブジェクト名により、他のオブジェクトに構成オ
    ブジェクトとして追加するオブジェクトを特定する追加
    オブジェクト特定手段と、 上記追加オブジェクト特定手段により特定されたオブジ
    ェクトを、上記追加オブジェクト情報読み込み手段によ
    り読み込まれた上記初期化メソッド情報によって特定さ
    れるメソッドを実行することにより、構成オブジェクト
    として他のオブジェクトに追加するオブジェクト追加手
    段とを備えることを特徴とする請求項22記載のデータ
    処理装置。
  24. 【請求項24】 所定のオブジェクトを他のオブジェク
    トに構成オブジェクトとして追加する際に、構成オブジ
    ェクトとして追加されるオブジェクトに関する情報が格
    納される記述子を上記識別子と対応づけて作成する記述
    子作成手段と、 上記記述子作成手段によって作成された記述子に、少な
    くとも、構成オブジェクトとして追加されるオブジェク
    トが具備するメソッドを呼び出すための情報を格納する
    メソッド情報格納手段とを備えることを特徴とする請求
    項23記載のデータ処理装置。
  25. 【請求項25】 所定の構成オブジェクトを複合オブジ
    ェクトから削除することを要求するメッセージが入力さ
    れたときに、少なくとも、削除対象の構成オブジェクト
    を特定する削除対象オブジェクト名を読み込む削除オブ
    ジェクト情報読み込み手段と、 上記削除オブジェクト情報読み込み手段により読み込ん
    だ削除対象オブジェクト名により、複合オブジェクトか
    ら削除する構成オブジェクトを特定する削除オブジェク
    ト特定手段と、上記削除オブジェクト特定手段により特
    定された構成オブジェクトを複合オブジェクトから削除
    するオブジェクト削除手段と、 上記削除オブジェクト特定手段により特定された構成オ
    ブジェクトに対応した識別子から、当該構成オブジェク
    トに対応した記述子を特定し、当該記述子を削除する記
    述子削除手段とを備えることを特徴とする請求項24記
    載のデータ処理装置。
  26. 【請求項26】 上記オブジェクト構成手段は、複合オ
    ブジェクトを複数の構成オブジェクトから構成する際
    に、ある構成オブジェクトから、当該構成オブジェクト
    を含む複合オブジェクトを構成する他の構成オブジェク
    トにメッセージが送信された時点で、それらの2つの構
    成オブジェクトが並行動作する必要がないという条件
    と、ある構成オブジェクトから、当該構成オブジェクト
    を含む複合オブジェクトを構成する他の構成オブジェク
    トにメッセージを送信するときに、メッセージを受け取
    る側の構成オブジェクトが他のメッセージを処理中であ
    ることはないという条件とを満たすように複合オブジェ
    クトを構成することを特徴とする請求項22記載のデー
    タ処理装置。
  27. 【請求項27】 あるオブジェクトから他のオブジェク
    トにメッセージを送るときに、メッセージ送信側オブジ
    ェクト及びメッセージ受信側オブジェクトが構成オブジ
    ェクトであり、それらの構成オブジェクトが同じ複合オ
    ブジェクトに含まれている場合、上記実行スレッド制御
    手段は、実行スレッドの切り替えを行わずに、メッセー
    ジ送信側オブジェクトが使用していた実行スレッドと同
    じ実行スレッドを用いて、メッセージ送信側オブジェク
    トから送られたメッセージで要求された処理を、メッセ
    ージ受信側オブジェクトにより実行させることを特徴と
    する請求項22記載のデータ処理装置。
  28. 【請求項28】 オブジェクト間でのメッセージ通信に
    使用されるアプリケーションプログラムインターフェー
    スとして、メッセージ通信を行うオブジェクトが標準オ
    ブジェクトであるか構成オブジェクトであるかに関わら
    ず共通に使用可能なアプリケーションプログラムインタ
    ーフェースを備えることを特徴とする請求項22記載の
    データ処理装置。
  29. 【請求項29】 オブジェクト指向オペレーティングシ
    ステムによって実行されるデータ処理方法において、 オブジェクト間でメッセージ通信を行うオブジェクト
    を、1つ以上の構成オブジェクトから構成される複合オ
    ブジェクトと、複合オブジェクト以外のオブジェクトで
    ある標準オブジェクトとのいずれかにより構成するとと
    もに、 任意のオブジェクトから標準オブジェクト及び構成オブ
    ジェクトを参照できるように、各標準オブジェクト及び
    各構成オブジェクトに識別子を付し、 複合オブジェクトについては、1つの複合オブジェクト
    を1つの実行スレッドによって実行し、その実行スレッ
    ドを複合オブジェクトを構成する各構成オブジェクトに
    よって共有させることを特徴とするデータ処理方法。
  30. 【請求項30】 所定のオブジェクトを他のオブジェク
    トに構成オブジェクトとして追加することを要求するメ
    ッセージが入力されたとき、少なくとも、上記所定のオ
    ブジェクトを特定する追加対象オブジェクト名と、当該
    所定のオブジェクトを構成オブジェクトとして他のオブ
    ジェクトに追加するのに必要な初期化手続きが記述され
    たメソッドを特定する初期化メソッド情報とを読み込
    み、上記追加対象オブジェクト名により、他のオブジェ
    クトに構成オブジェクトとして追加するオブジェクトを
    特定し、上記追加対象オブジェクト名により特定された
    オブジェクトを、上記初期化メソッド情報によって特定
    されるメソッドを実行することにより、構成オブジェク
    トとして他のオブジェクトに追加することを特徴とする
    請求項29記載のデータ処理方法。
  31. 【請求項31】 所定のオブジェクトを他のオブジェク
    トに構成オブジェクトとして追加する際に、構成オブジ
    ェクトとして追加されるオブジェクトに関する情報が格
    納される記述子を上記識別子と対応づけて作成し、上記
    記述子に少なくとも、構成オブジェクトとして追加され
    るオブジェクトが具備するメソッドを呼び出すための情
    報を格納することを特徴とする請求項30記載のデータ
    処理方法。
  32. 【請求項32】 所定の構成オブジェクトを複合オブジ
    ェクトから削除することを要求するメッセージが入力さ
    れたとき、少なくとも、削除対象の構成オブジェクトを
    特定する削除対象オブジェクト名を読み込み、上記削除
    対象オブジェクト名により、複合オブジェクトから削除
    する構成オブジェクトを特定し、上記削除対象オブジェ
    クト名により特定された構成オブジェクトを複合オブジ
    ェクトから削除するとともに、上記削除対象オブジェク
    ト名により特定された構成オブジェクトに対応した識別
    子から、当該構成オブジェクトに対応した記述子を特定
    し、当該記述子も削除することを特徴とする請求項31
    記載のデータ処理方法。
  33. 【請求項33】 複合オブジェクトを複数の構成オブジ
    ェクトから構成する際、 ある構成オブジェクトから、当該構成オブジェクトを含
    む複合オブジェクトを構成する他の構成オブジェクトに
    メッセージが送信された時点で、それらの2つの構成オ
    ブジェクトが並行動作する必要がないという条件と、あ
    る構成オブジェクトから、当該構成オブジェクトを含む
    複合オブジェクトを構成する他の構成オブジェクトにメ
    ッセージを送信するときに、メッセージを受け取る側の
    構成オブジェクトが他のメッセージを処理中であること
    はないという条件とを満たすように複合オブジェクトを
    構成することを特徴とする請求項29記載のデータ処理
    方法。
  34. 【請求項34】 あるオブジェクトから他のオブジェク
    トにメッセージを送るときに、メッセージ送信側オブジ
    ェクト及びメッセージ受信側オブジェクトが構成オブジ
    ェクトであり、それらの構成オブジェクトが同じ複合オ
    ブジェクトに含まれている場合は、実行スレッドの切り
    替えを行わずに、メッセージ送信側オブジェクトが使用
    していた実行スレッドと同じ実行スレッドを用いて、メ
    ッセージ送信側オブジェクトから送られたメッセージで
    要求された処理を、メッセージ受信側オブジェクトによ
    り実行することを特徴とする請求項29記載のデータ処
    理方法。
  35. 【請求項35】 オブジェクト間でメッセージ通信を行
    う際に、メッセージ通信を行うオブジェクトが標準オブ
    ジェクトであるか構成オブジェクトであるかに関わらず
    共通に使用可能なアプリケーションプログラムインター
    フェースを用いることを特徴とする請求項29記載のデ
    ータ処理方法。
  36. 【請求項36】 オブジェクト指向オペレーティングシ
    ステムのデータ処理プログラムを提供するプログラム提
    供媒体であって、 上記オブジェクト指向オペレーティングシステムのデー
    タ処理プログラムは、 オブジェクト間でメッセージ通信を行うオブジェクト
    を、1つ以上の構成オブジェクトから構成される複合オ
    ブジェクトと、複合オブジェクト以外のオブジェクトで
    ある標準オブジェクトとのいずれかにより構成するとと
    もに、 任意のオブジェクトから標準オブジェクト及び構成オブ
    ジェクトを参照できるように、各標準オブジェクト及び
    各構成オブジェクトに識別子を付し、 複合オブジェクトについては、1つの複合オブジェクト
    を1つの実行スレッドによって実行し、その実行スレッ
    ドを複合オブジェクトを構成する各構成オブジェクトに
    よって共有させることを特徴とするプログラム提供媒
    体。
JP2000014245A 1999-03-04 2000-01-20 データ処理装置、データ処理方法及びプログラム提供媒体 Withdrawn JP2000315155A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000014245A JP2000315155A (ja) 1999-03-04 2000-01-20 データ処理装置、データ処理方法及びプログラム提供媒体

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP11-57689 1999-03-04
JP5768999 1999-03-04
JP2000014245A JP2000315155A (ja) 1999-03-04 2000-01-20 データ処理装置、データ処理方法及びプログラム提供媒体

Publications (1)

Publication Number Publication Date
JP2000315155A true JP2000315155A (ja) 2000-11-14

Family

ID=26398752

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000014245A Withdrawn JP2000315155A (ja) 1999-03-04 2000-01-20 データ処理装置、データ処理方法及びプログラム提供媒体

Country Status (1)

Country Link
JP (1) JP2000315155A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005513914A (ja) * 2001-12-10 2005-05-12 アパレント・ネットワークス・インコーポレイテッド データ通信ネットワーク上へのテスト・パケット配置方法およびその装置
JP2008041038A (ja) * 2006-08-10 2008-02-21 Mitsubishi Electric Corp ソフトウエア作成方法
JP2014505384A (ja) * 2010-11-23 2014-02-27 クゥアルコム・インコーポレイテッド オブジェクトベースのトランスポートプロトコル

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005513914A (ja) * 2001-12-10 2005-05-12 アパレント・ネットワークス・インコーポレイテッド データ通信ネットワーク上へのテスト・パケット配置方法およびその装置
JP2008041038A (ja) * 2006-08-10 2008-02-21 Mitsubishi Electric Corp ソフトウエア作成方法
JP2014505384A (ja) * 2010-11-23 2014-02-27 クゥアルコム・インコーポレイテッド オブジェクトベースのトランスポートプロトコル

Similar Documents

Publication Publication Date Title
US7080386B2 (en) Architecture with digital signal processor plug-ins for general purpose processor media frameworks
EP0753811B1 (en) Data processing method and device
US8054319B2 (en) Method and apparatus for multiscreen management for multiple screen configuration
US5724272A (en) Method and apparatus for controlling an instrumentation system
US5930480A (en) Software architecture for controlling data streams based on linked command blocks
US7559056B2 (en) Object-oriented component and framework architecture for signal processing
US6389487B1 (en) Control of video device by multiplexing accesses among multiple applications requesting access based on visibility on single display and via system of window visibility rules
US6249818B1 (en) Network transport driver interfacing
US9304833B2 (en) System and method of providing inter-application communications
US20050240944A1 (en) Method and apparatus for adapting and hosting legacy user interface controls
JPH05204673A (ja) 名前付きパイプを用いるプロセス間通信の方法及びプロセス
KR19990082226A (ko) 버스 구조 위에서의 데이터 전달 및 버스 관리를 위한 응용 프로그래밍 인터페이스
ES2206957T3 (es) Actuador para dispositivo de caja de adaptacion multimedios para norma ieee1394.
JP3794119B2 (ja) データ処理方法、記録媒体及びデータ処理装置
US6922834B1 (en) Data processing apparatus, data processing method, and program providing medium
JP2000315155A (ja) データ処理装置、データ処理方法及びプログラム提供媒体
CA2244394C (en) Data processing method and apparatus for handling exception events in application programs
US6636964B1 (en) Method and apparatus for loading an object-oriented operating system by providing an initial execution environment and migrating to a core execution environment thereafter
US6308226B1 (en) Communication method and system for objects movable in network
US20070174383A1 (en) System and method for effectively configuring a marketsite application integrator
JP2000259417A (ja) データ処理装置、データ処理方法及びプログラム提供媒体
US6105052A (en) Data processing method, recording medium, and data processing apparatus
JP7106778B1 (ja) ブロックチェーンシステム実行方法、装置、機器、および記憶媒体
Brewer A real-time executive for multiple-computer clusters
CN116860306A (zh) 业务系统的数据升级方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070403