JPH10320216A - コンピュータ読み取り可能な記録媒体 - Google Patents

コンピュータ読み取り可能な記録媒体

Info

Publication number
JPH10320216A
JPH10320216A JP9124442A JP12444297A JPH10320216A JP H10320216 A JPH10320216 A JP H10320216A JP 9124442 A JP9124442 A JP 9124442A JP 12444297 A JP12444297 A JP 12444297A JP H10320216 A JPH10320216 A JP H10320216A
Authority
JP
Japan
Prior art keywords
thread
management program
dispatcher
request message
command
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.)
Pending
Application number
JP9124442A
Other languages
English (en)
Inventor
Toshiki Kikuchi
俊樹 菊地
Yasuhiko Yokote
靖彦 横手
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 JP9124442A priority Critical patent/JPH10320216A/ja
Priority to US09/076,908 priority patent/US6499047B2/en
Publication of JPH10320216A publication Critical patent/JPH10320216A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 要求メッセージを受け取って所定の処理を行
うようなプログラムモジュールを含むアプリケーション
プログラムを容易に記述することが可能なオペレーティ
ングシステムを提供する。 【解決手段】 アプリケーションインターフェースとし
て、要求メッセージを受け付けて当該要求メッセージに
基づく処理がなされるスレッドを生成するスレッド管理
プログラムを起動する手続きと、スレッド管理プログラ
ムを終了させる手続きと、スレッドで処理される内容を
スレッド管理プログラムに登録する手続きとを含むクラ
スを設ける。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オペレーティング
システムを記録したコンピュータ読み取り可能な記録媒
体と、オペレーティングシステムを用いて実行されるア
プリケーションプログラムを記録したコンピュータ読み
取り可能な記録媒体とに関する。
【0002】
【従来の技術】従来、コンピュータを用いて、要求メッ
セージを受け取って所定の処理を行うようなプログラム
モジュールを含むアプリケーションプログラムを実現す
るときには、要求メッセージの受信側の手続きとして、
図6に示すような処理を行う手続きを記述する必要があ
った。
【0003】すなわち、先ず、要求メッセージを受け付
けるためのスレッドとして、主スレッドを予め生成す
る。この主スレッドは、ステップS1に示すように、要
求メッセージを受信するために、いわゆるメッセージボ
ックスを生成する。外部からの要求メッセージは、この
メッセージボックスに受け渡されることとなる。
【0004】主スレッドは、メッセージボックスに受け
渡された要求メッセージの有無を監視する。そして、要
求メッセージがあれば、ステップS2に示すように、当
該要求メッセージを受信し、ステップS3に示すよう
に、当該要求メッセージに基づく処理がなされるスレッ
ドとして、従スレッドを生成する。
【0005】このように生成された従スレッドは、ステ
ップS4に示すように、要求メッセージに従って所定の
処理を行う。そして、当該所定の処理の結果として返答
メッセージを返す必要がある場合は、ステップS5に示
すように、当該返答メッセージを主スレッドへ送信す
る。その後、ステップS6に示すように、従スレッドを
終了させる。
【0006】以上のように、要求メッセージを受け取っ
て所定の処理を行うようなアプリケーションプログラム
を実現するときには、従スレッドの生成等についてまで
も詳細に手続きを記述していた。
【0007】
【発明が解決しようとする課題】ところで、多くのアプ
リケーションプログラムにおいて、要求メッセージを受
け取って所定の処理を行うようなプログラムモジュール
は、非常に頻繁に使用される。そして、従来のアプリケ
ーションプログラムでは、このようなプログラムモジュ
ール毎に、上述したような手続きを毎回記述していた。
そして、アプリケーションプログラムの作成において
は、このような手続きの記述のために、多大な労力を必
要としていた。
【0008】また、図6に示したような処理では、要求
メッセージ毎に従スレッドの生成と終了を繰り返すこと
となる。しかしながら、スレッドの生成や終了は、比較
的に多くの演算を必要とする処理である。このため、従
来は、スレッドの生成や終了が、プログラムの実行効率
向上の妨げとなっていた。
【0009】また、図6に示したような処理では、要求
メッセージを受け付ける度にスレッドを生成することと
なるが、実行資源を考慮した場合、同時に生成できるス
レッドの数には上限をつけたいことが多い。そして、従
来、同時に生成できるスレッドの数に上限をつける必要
がある場合には、更に複雑な手続きを記述する必要があ
り、プログラミングに更に多大な労力を必要としてい
た。
【0010】本発明は、以上のような従来の実情に鑑み
て提案されたものであり、要求メッセージを受け取って
所定の処理を行うようなプログラムモジュールを含むア
プリケーションプログラムを、容易に記述することが可
能なオペレーティングシステムを記録したコンピュータ
読み取り可能な記録媒体を提供することを主な目的とし
ている。
【0011】
【課題を解決するための手段】本発明に係る第1のコン
ピュータ読み取り可能な記録媒体は、オペレーティング
システムが記録されてなる。そして、このオペレーティ
ングシステムは、アプリケーションプログラムインター
フェースとして、要求メッセージを受け付けて当該要求
メッセージに基づく処理がなされるスレッドを生成する
スレッド管理プログラムを起動するコマンドと、スレッ
ド管理プログラムを終了させるコマンドと、スレッドで
処理される内容をスレッド管理プログラムに登録するコ
マンドとを備えている。
【0012】ここで、上記オペレーティングシステム
は、アプリケーションプログラムインターフェースとし
て、更に、スレッド管理プログラムに要求メッセージを
受け渡すコマンドや、スレッド管理プログラムから返答
メッセージを出力させるコマンドや、スレッド管理プロ
グラムからの返答メッセージを受け取るコマンドや、ス
レッドで処理される内容としてスレッド管理プログラム
に登録された内容を削除するコマンド等を備えているこ
とが好ましい。
【0013】また、本発明に係る第2のコンピュータ読
み取り可能な記録媒体は、オブジェクト指向が適用され
たオペレーティングシステムが記録されてなる。そし
て、このオペレーティングシステムは、アプリケーショ
ンプログラムインターフェースとして、要求メッセージ
を受け付けて当該要求メッセージに基づく処理がなされ
るスレッドを生成するスレッド管理プログラムを起動す
る手続きと、スレッド管理プログラムを終了させる手続
きと、スレッドで処理される内容をスレッド管理プログ
ラムに登録する手続きとを含むクラスを備えている。
【0014】ここで、上記クラスは、更に、スレッド管
理プログラムに要求メッセージを受け渡す手続きや、ス
レッド管理プログラムから返答メッセージを出力させる
手続きや、スレッド管理プログラムからの返答メッセー
ジを受け取る手続きや、スレッドで処理される内容とし
てスレッド管理プログラムに登録された内容を削除する
手続き等を備えていることが好ましい。
【0015】また、本発明に係る第3のコンピュータ読
み取り可能な記録媒体は、オペレーティングシステムを
用いて実行されるアプリケーションプログラムが記録さ
れてなる。そして、このオペレーティングシステムは、
アプリケーションプログラムインターフェースとして、
要求メッセージを受け付けて当該要求メッセージに基づ
く処理がなされるスレッドを生成するスレッド管理プロ
グラムを起動するコマンドと、スレッド管理プログラム
を終了させるコマンドと、スレッドで処理される内容を
スレッド管理プログラムに登録するコマンドとを備えて
いる。
【0016】ここで、上記オペレーティングシステム
は、アプリケーションプログラムインターフェースとし
て、更に、スレッド管理プログラムに要求メッセージを
受け渡すコマンドや、スレッド管理プログラムから返答
メッセージを出力させるコマンドや、スレッド管理プロ
グラムからの返答メッセージを受け取るコマンドや、ス
レッドで処理される内容としてスレッド管理プログラム
に登録された内容を削除するコマンド等を備えているこ
とが好ましい。
【0017】また、本発明に係る第4のコンピュータ読
み取り可能な記録媒体は、オブジェクト指向が適用され
たオペレーティングシステムを用いて実行されるアプリ
ケーションプログラムが記録されてなる。そして、この
オペレーティングシステムは、アプリケーションプログ
ラムインターフェースとして、要求メッセージを受け付
けて当該要求メッセージに基づく処理がなされるスレッ
ドを生成するスレッド管理プログラムを起動する手続き
と、スレッド管理プログラムを終了させる手続きと、ス
レッドで処理される内容をスレッド管理プログラムに登
録する手続きとを含むクラスを備えている。
【0018】ここで、上記クラスは、更に、スレッド管
理プログラムに要求メッセージを受け渡す手続きや、ス
レッド管理プログラムから返答メッセージを出力させる
手続きや、スレッド管理プログラムからの返答メッセー
ジを受け取る手続きや、スレッドで処理される内容とし
てスレッド管理プログラムに登録された内容を削除する
手続き等を備えていることが好ましい。
【0019】
【発明の実施の形態】以下、本発明の実施の形態につい
て説明する。
【0020】まず、本発明が適用されるコンピュータシ
ステムの一構成例について説明する。
【0021】このコンピュータシステムは、ビデオテー
プレコーダ、ビデオディスクプレーヤ、オーディオテー
プレコーダ又はオーディオディスクプレーヤ等のような
AV(Audio and Visual)機器に組み込まれ、当該AV
機器の制御を行うものであり、図1に示すように、ブリ
ッジ1を介してメモリ2及びバス3に接続されたCPU
(Central Processing Unit)4と、ブリッジ5を介し
てバス3に接続されたシリアルポート6と、バス3に接
続されたバススロット7とを備えており、これらの間で
はバス3を介して信号の送受信が可能となっている。
【0022】CPU4は、演算処理を行うものであり、
このコンピュータシステムが組み込まれたAV機器は、
このCPU4による演算処理に基づいて制御される。シ
リアルポート6は、このコンピュータシステムが組み込
まれたAV機器の制御対象機器8に接続され、このシリ
アルポート6を介して、コンピュータシステムと制御対
象機器8との間で、制御に必要な信号のやり取りが行わ
れる。バススロット7は、機能拡張する際に使用される
スロットであり、このコンピュータシステム又はAV機
器の機能拡張を行うときに、このバススロット8に機能
拡張に必要な機器が接続され得るようになっている。
【0023】メモリ2は、書き換え可能な記憶装置であ
るRAM(Random Access Memory)9と、読み出し専用
の記憶装置であるROM(Read Only Memory)10とを
有しており、CPU4は、必要に応じてRAM9又はR
OM10からブリッジ1を介してデータが読み出すとと
もに、必要に応じてブリッジ1を介してRAM10にデ
ータを書き込む。ここで、ROM10には、このコンピ
ュータシステムの基本的な管理を行うオペレーティング
システム等が予め保存され、RAM9には、AV機器の
制御に必要なアプリケーションプログラム等が保存され
る。ただし、AV機器の制御に必要なアプリケーション
プログラムもROM10に予め保存するようにしてもよ
い。
【0024】以上がコンピュータシステムの基本的な構
成であるが、本発明が適用されるコンピュータシステム
は、上述した以外の機器を備えていてもよいことは言う
までもない。すなわち、本発明が適用されるコンピュー
タシステムは、例えば、モデム又はターミナルアダプタ
等のような通信用機器を備えていても良いし、ハードデ
ィスク装置、フレキシブルディスク装置又は磁気テープ
装置等のような外部記憶装置を備えていても良いし、マ
ウスやキーボード等のような入力装置を備えていても良
いし、CRTディスプレイ又は液晶ディスプレイ等のよ
うな表示装置を備えていても良いし、プリンタ又はプロ
ッタ等のような出力装置を備えていても良い。
【0025】また、上記コンピュータシステムは、AV
機器に組み込まれるものとしたが、本発明の用途はAV
機器制御用のコンピュータシステムに限られるものでは
なく、本発明は様々な用途のコンピュータシステムに適
用できることは言うまでもない。ただし、本発明によれ
ばメモリ等の資源の効率的な活用が可能となるので、限
られた資源を効率的に活用することが必要な小型のコン
ピュータシステムに適用したときに、本発明は特に有効
である。
【0026】そして、本発明を適用したコンピュータ読
み取り可能な記録媒体は、以上のようなコンピュータシ
ステムを起動するために使用されるオペレーティングシ
ステムが記録されてなるコンピュータ読み取り可能な記
録媒体、並びに当該オペレーティングシステムを用いて
実行されるアプリケーションプログラムが記録されてな
るコンピュータ読み取り可能な記録媒体であり、具体的
には、例えば上述のメモリ2がこれに相当する。
【0027】このオペレーティングシステム(以下、O
Sと称する。)は、オブジェクト指向が適用されてお
り、アプリケーションプログラムインターフェース(以
下、APIと称する。)として、いくつかのクラスを備
えている。
【0028】そして、本発明において使用されるOS
は、APIとして備えているクラスの一つとして、要求
メッセージを受け付けて当該要求メッセージに基づく処
理がなされるスレッドを生成するスレッド管理プログラ
ム(以下、ディスパッチャと称する。)を扱う、「Disp
atcher」というクラスを備えている。すなわち、本発明
では、APIとして、ディスパッチャという要素を導入
する。
【0029】ディスパッチャは、後述するように、要求
メッセージを受け付けるようになされており、この点で
は、メッセージボックスの一種と見なすことができる。
ただし、ディスパッチャは、従来のメッセージボックス
とは異なり、単に要求メッセージを受け付けるだけでは
なく、要求メッセージに基づく処理を行うためのスレッ
ドの管理も行う。
【0030】そして、このクラス「Dispatcher」は、図
2に示すように、オブジェクト指向において一般にメソ
ッドと称される手続きを複数備えている。なお、ここで
は、クラスやメソッド等について、具体的な名称を付し
て説明するが、当然の事ながら、本発明においてこれら
の名称は特に限定されるものではなく、任意の名称とし
て良い。
【0031】図2に示すように、クラス「Dispatcher」
は、メソッドとして、「public static Dispatcher Cre
ate(int maxThread)」と、「public void Destroy()」
と、「public void Send(Entry function,byte[] param
s,int paramSize)」と、「public Id Ask(Entry functi
on,byte[] params,int paramSize)」と、「public void
Reply(Object reply)」と、「public Object GetReply
(Id id)」と、「public Entry Register(Object actio
n)」と、「public void Unregister(Entry entry)」と
を備えている。
【0032】ここで、メソッド「public static Dispat
cher Create(int maxThread)」は、ディスパッチャを起
動する手続きである。ここで、引数「maxThread」は、
同時に生成されるスレッドの上限を規定する。すなわ
ち、ディスパッチャによって生成されるスレッドの数
は、引数「maxThread」に設定された数以下とされる。
【0033】そして、アプリケーションプログラムのプ
ログラムモジュールによってメソッド「public static
Dispatcher Create(int maxThread)」が呼び出される
と、OSはディスパッチャを起動する。このとき、当該
ディスパッチャによって同時に生成されるスレッドの数
は、引数「maxThread」に設定された数以下とする。
【0034】メソッド「public void Destroy()」は、
ディスパッチャを終了させる手続きである。すなわち、
アプリケーションプログラムのプログラムモジュールに
よって、メソッド「public void Destroy()」が呼び出
されると、OSはディスパッチャの終了処理を行う。
【0035】メソッド「public void Send(Entry funct
ion,byte[] params,int paramSize)」は、ディスパッチ
ャに要求メッセージを受け渡す手続きである。このメソ
ッド「public void Send(Entry function,byte[] param
s,int paramSize)」は、返答メッセージが必要ない場合
に使用される。
【0036】このメソッド「public void Send(Entry f
unction,byte[] params,int paramSize)」において、引
数「function」は、この要求メッセージよって呼び出す
処理(以下、アクションと称する。)を指定する。引数
「params」は、当該アクションを呼び出すときに必要な
引数を指定する。引数「paramSize」は、引数「param
s」の数を指定する。
【0037】そして、アプリケーションプログラムのプ
ログラムモジュールによってメソッド「public void Se
nd(Entry function,byte[] params,int paramSize)」が
呼び出されると、OSは、引数「function」で指定され
たアクションを呼び出し、当該アクションに引数「para
ms」で指定された引数を受け渡して、当該アクションを
実行する。
【0038】メソッド「public Id Ask(Entry functio
n,byte[] params,int paramSize)」は、ディスパッチャ
に要求メッセージを受け渡す手続きである。このメソッ
ド「public Id Ask(Entry function,byte[] params,int
paramSize)」は、返答メッセージが必要な場合に使用
される。
【0039】このメソッド「public Id Ask(Entry func
tion,byte[] params,int paramSize)」において、引数
「function」は、この要求メッセージよって呼び出すア
クションを指定する。引数「params」は、当該アクショ
ンを呼び出すときに必要な引数を指定する。引数「para
mSize」は、引数「params」の数を指定する。
【0040】そして、アプリケーションプログラムのプ
ログラムモジュールによってメソッド「public Id Ask
(Entry function,byte[] params,int paramSize)」が呼
び出されると、OSは、引数「function」で指定された
アクションを呼び出し、当該アクションに引数「param
s」で指定された引数を受け渡して、当該アクションを
実行する。
【0041】メソッド「public void Reply(Object rep
ly)」は、ディスパッチャから返答メッセージを出力さ
せる手続きであり、ディスパッチャから返答メッセージ
を返すときに使用される。このメソッド「public void
Reply(Object reply)」において、引数「reply」は、デ
ィスパッチャからの返答メッセージを指定する。
【0042】そして、アプリケーションプログラムのプ
ログラムモジュールによってメソッド「public void Re
ply(Object reply)」が呼び出されると、OSは、引数
「reply」で指定された返答メッセージをディスパッチ
ャから出力する。
【0043】メソッド「public Object GetReply(Id i
d)」は、ディスパッチャからの返答メッセージを受け取
る手続きであり、ディスパッチャからの返答メッセージ
を受け取るときに使用される。このメソッド「public O
bject GetReply(Id id)」において、引数「id」は、メ
ソッド「public Id Ask(Entry function,byte[] param
s,int paramSize)」からの戻り値を指定する。
【0044】そして、アプリケーションプログラムのプ
ログラムモジュールによってメソッド「public Object
GetReply(Id id)」が呼び出されると、OSは、アプリ
ケーションプログラムのプログラムモジュールに、引数
「id」で指定された戻り値を返答メッセージとして受け
渡す。
【0045】メソッド「public Entry Register(Object
action)」は、スレッドで処理されるアクションをディ
スパッチャに登録する手続きである。このメソッド「pu
blicEntry Register(Object action)」において、引数
「action」は、ディスパッチャに登録するアクションを
指定する。
【0046】なお、このメソッド「public Entry Regis
ter(Object action)」からの戻り値は、メソッド「publ
ic void Send(Entry function,byte[] params,int para
mSize)」及びメソッド「public Id Ask(Entry functio
n,byte[] params,int paramSize)」においてアクション
を呼び出すときに使用される。
【0047】そして、アプリケーションプログラムのプ
ログラムモジュールによってメソッド「public Entry R
egister(Object action)」が呼び出されると、OSは、
ディスパッチャに、引数「action」で指定されたアクシ
ョンを登録する。
【0048】メソッド「public void Unregister(Entry
entry)」は、スレッドで処理されるアクションとして
ディスパッチャに登録されたアクションを削除する手続
きである。このメソッド「public void Unregister(Ent
ry entry)」において、引数「entry」は、ディスパッチ
ャから削除するアクションを指定する。
【0049】そして、アプリケーションプログラムのプ
ログラムモジュールによってメソッド「public void Un
register(Entry entry)」が呼び出されると、OSは、
引数「entry」で指定されたアクションを、ディスパッ
チャから削除する。
【0050】以上のようなクラス「Dispatcher」をAP
Iとして使用することにより、要求メッセージを受けと
ってアクションを行うようなプログラムモジュールを非
常に簡潔に記述することが可能となり、しかも、当該ア
クションを効率良く実現することが可能になる。
【0051】このようなクラス「Dispatcher」を用いる
ときは、例えば、先ず、図3に示すように、ディスパッ
チャの起動と、アクションの登録とを行う。すなわち、
先ず、ステップS1−1において、メソッド「public s
tatic Dispatcher Create(int maxThread)」を用いて、
ディスパッチャを起動する。その後、ステップS1−2
において、当該ディスパッチャに、メソッド「public E
ntry Register(Objectaction)」を用いて、アクション
を登録する。
【0052】その後、必要に応じて、メソッド「public
void Send(Entry function,byte[]params,int paramSi
ze)」やメソッド「public Id Ask(Entry function,byte
[]params,int paramSize)」により、ディスパッチャに
登録されたアクションを呼び出して実行する。或いは、
必要に応じて、メソッド「public void Reply(Object r
eply)」を用いて、ディスパッチャから返答メッセージ
を出力させ、当該返答メッセージを、メソッド「public
Object GetReply(Id id)」を用いて受け取るようにす
る。或いは、必要に応じて、メソッド「public Entry R
egister(Object action)」を用いて、スレッドで処理さ
れるアクションを更にディスパッチャに登録する。ま
た、必要に応じて、メソッド「public void Unregister
(Entry entry)」を用いて、ディスパッチャに登録され
ているアクションを削除する。そして、必要な処理が完
了して、ディスパッチャが不要になったら、メソッド
「public void Destroy()」を用いて、ディスパッチャ
を終了させる。
【0053】以上のようなクラス「Dispatcher」をAP
Iとして用いた場合、プログラムモジュールにおいて、
スレッドの生成や消滅について明示的に記述する必要が
無い。すなわち、要求メッセージ毎にスレッドの生成や
消滅を行う必要が無くなるので、プログラムモジュール
の側では、比較的に多くの演算を必要とする、スレッド
の生成や消滅についての管理を行う必要が無くなる。し
たがって、アプリケーションプログラムのプログラムモ
ジュールにおいて要求メッセージが発生したときに、当
該要求メッセージに基づくアクションが開始されるまで
に要する処理が少なくて済む。この結果、プログラムモ
ジュールの処理効率が大幅に向上する。
【0054】以上のようなクラス「Dispatcher」をAP
Iとして用いたときのプログラムモジュールの記述につ
いて、その具体的な一例を図4に示す。なお、図4に示
した例では、クラス「Dispatcher」をAPIとして用い
て、クラス「Sample」を定義している。そして、図4に
示した例では、アクション「foo」と、アクション「ba
r」とを、ディスパッチャに登録するようにしている。
【0055】図4に示したようなプログラムモジュール
において、アクション「foo」やアクション「bar」が呼
び出されるときには、それらのアクションを実行するた
めのスレッドが生成される。しかしながら、ここではク
ラス「Dispatcher」をAPIとして用いており、スレッ
ドの生成や消滅については、ディスパッチャによって管
理される。したがって、プログラムモジュールの側で
は、スレッドの生成や消滅について明示的に記述する必
要がなく、図4に示したように、プログラムモジュール
の記述を非常に簡潔なものとすることができる。
【0056】ところで、上述したメソッド「public sta
tic Dispatcher Create(int maxThread)」では、引数
「maxThread」により、同時に生成されるスレッドの上
限を規定するようにしている。そして、このようなメソ
ッド「public static Dispatcher Create(int maxThrea
d)」を備えたクラス「Dispatcher」をAPIとして使用
することにより、要求メッセージを受け取ってアクショ
ンを行うようなプログラムモジュールにおいて、同時に
実行されるスレッドの数を、容易に制限することができ
る。
【0057】このように、同時に生成されるスレッドの
数の上限を、引数「maxThread」により規定するように
したときの処理の流れを図5に示す。
【0058】図5に示すように、先ず、ステップS2−
1において、メソッド「public static Dispatcher Cre
ate(int maxThread)」により、ディスパッチャを起動す
る。このとき、引数「maxThread」で規定された数のス
レッドが生成され、これらのスレッドの待ち行列が作ら
れる。
【0059】ステップS2−1で起動されたディスパッ
チャは、要求メッセージの有無を監視する。そして、デ
ィスパッチャは、ステップS2−2に示すように、要求
メッセージを受信したら、ステップS2−3に示すよう
に、待ち行列の中からスレッドを一つ選択する。このよ
うに選択されたスレッドにおいて、ステップS2−4に
示すように、要求メッセージで要求されたアクションが
行われる。
【0060】そして、当該アクションが返答メッセージ
を返すような処理の場合には、ステップS2−5に示す
ように、当該アクションの結果として、返答メッセージ
が出力される。そして、ステップS2−6に示すよう
に、アクションの実行が終了したスレッドは、待ち行列
へと戻される。
【0061】このように、引数「maxThread」で規定さ
れた数のスレッドを予め生成しておき、ディスパッチャ
が要求メッセージを受信する毎に待ち行列からスレッド
を一つ選択して、当該スレッドで要求メッセージで要求
されたアクションを行うようにすれば、要求メッセージ
毎にスレッドの生成や消滅を行う必要が無くなるので、
多数の要求メッセージに応じた処理を、非常に効率良く
行うことが可能となる。
【0062】また、引数「maxThread」を「1」に設定
することにより、複数のスレッドを用いるプログラミン
グにおけるスレッド間の相互排他の手段として、ディス
パッチャを使用することも可能となる。つまり、同時に
実行されては困るアクションは、maxThread=1のディ
スパッチャに登録してアクションを行うようにすること
により、それらのアクションが同時には実行されないよ
うになる。
【0063】なお、以上の説明では、オブジェクト指向
を適用したOSを例を挙げたが、本発明では、オブジェ
クト指向を適用していないOSを使用することも可能で
ある。オブジェクト指向を適用していないOSを用いる
ときは、以上の説明で挙げたメソッドと同様な処理を行
うコマンドを、APIとしてOSに備えさせればよい。
【0064】すなわち、ディスパッチャを起動するコマ
ンドと、ディスパッチャを終了させるコマンドと、スレ
ッドで処理される内容をディスパッチャに登録するコマ
ンドと、返答メッセージが不要な要求メッセージをディ
スパッチャに受け渡すコマンドと、返答メッセージが必
要な要求メッセージをディスパッチャに受け渡すコマン
ドと、ディスパッチャから返答メッセージを出力させる
コマンドと、ディスパッチャからの返答メッセージを受
け取るコマンドと、スレッドで処理される内容としてデ
ィスパッチャに登録された内容を削除するコマンドと
を、APIとしてOSに備えさせればよい。
【0065】ここで、ディスパッチャを起動するコマン
ドは、上述のメソッド「public static Dispatcher Cre
ate(int maxThread)」に相当する。ディスパッチャを終
了させるコマンドは、上述のメソッド「public void De
stroy()」に相当する。スレッドで処理される内容をデ
ィスパッチャに登録するコマンドは、上述のメソッド
「public Entry Register(Object action)」に相当す
る。
【0066】また、返答メッセージが不要な要求メッセ
ージをディスパッチャに受け渡すコマンドは、上述のメ
ソッド「public void Send(Entry function,byte[] par
ams,int paramSize)」に相当する。返答メッセージが必
要な要求メッセージをディスパッチャに受け渡すコマン
ドは、上述のメソッド「public Id Ask(Entry functio
n,byte[] params,int paramSize)」に相当する。
【0067】また、ディスパッチャから返答メッセージ
を出力させるコマンドは、上述のメソッド「public voi
d Reply(Object reply)」に相当する。ディスパッチャ
からの返答メッセージを受け取るコマンドは、上述のメ
ソッド「public Object GetReply(Id id)」に相当す
る。スレッドで処理される内容としてディスパッチャに
登録された内容を削除するコマンドは、上述のメソッド
「public void Unregister(Entry entry)」に相当す
る。
【0068】なお、本発明において、アプリケーション
プログラムは、以上のようなオペレーティングシステム
を用いて実行されるものであるならば、その種類や適用
分野等は、特に限定されるものでない。ただし、アプリ
ケーションプログラムが、複数のスレッドでの処理を必
要とするようなときに、本発明は特に有効である。
【0069】
【発明の効果】以上の説明から明らかなように、本発明
を適用することにより、要求メッセージを受け取って所
定の処理を行うようなプログラムモジュールを含むアプ
リケーションプログラムを作成する際に、スレッドの生
成や消滅等についての記述が不要となる。したがって、
アプリケーションプログラムの作成が非常に容易にな
る。しかも、要求メッセージ毎にスレッドの生成や消滅
等を行う必要が無くなるので、処理効率の向上を図るこ
ともできる。
【図面の簡単な説明】
【図1】本発明が適用されるコンピュータシステムの一
例を示すブロック図である。
【図2】クラス「Dispatcher」の構造を示す図である。
【図3】ディスパッチャを用いるときの処理の流れを示
す図である。
【図4】プログラムモジュールの記述の一例を示す図で
ある。
【図5】ディスパッチャを用いて、同時に生成されるス
レッドの数の上限を規定したときの処理の流れを示す図
である。
【図6】要求メッセージを受け取って所定の処理を行う
ようなプログラムモジュールについて、従来の処理の流
れを示す図である。
【符号の説明】
1 ブリッジ、 2 メモリ、 3 バス、 4 CP
U、 5 ブリッジ、6 シリアルポート、 7 バス
スロット、 8 制御対象機器、 9 RAM、 10
ROM

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 アプリケーションプログラムインターフ
    ェースとして、 要求メッセージを受け付けて当該要求メッセージに基づ
    く処理がなされるスレッドを生成するスレッド管理プロ
    グラムを起動するコマンドと、 スレッド管理プログラムを終了させるコマンドと、 スレッドで処理される内容をスレッド管理プログラムに
    登録するコマンドと、 を備えたオペレーティングシステムを記録したコンピュ
    ータ読み取り可能な記録媒体。
  2. 【請求項2】 上記オペレーティングシステムは、アプ
    リケーションプログラムインターフェースとして、 スレッド管理プログラムに要求メッセージを受け渡すコ
    マンドを備えていること を特徴とする請求項1記載のコンピュータ読み取り可能
    な記録媒体。
  3. 【請求項3】 上記オペレーティングシステムは、アプ
    リケーションプログラムインターフェースとして、 スレッド管理プログラムから返答メッセージを出力させ
    るコマンドと、 スレッド管理プログラムからの返答メッセージを受け取
    るコマンドとを備えていることを特徴とする請求項1記
    載のコンピュータ読み取り可能な記録媒体。
  4. 【請求項4】 上記オペレーティングシステムは、アプ
    リケーションプログラムインターフェースとして、 スレッドで処理される内容としてスレッド管理プログラ
    ムに登録された内容を削除するコマンドを備えているこ
    とを特徴とする請求項1記載のコンピュータ読み取り可
    能な記録媒体。
  5. 【請求項5】 要求メッセージを受け付けて当該要求メ
    ッセージに基づく処理がなされるスレッドを生成するス
    レッド管理プログラムを起動する手続きと、 スレッド管理プログラムを終了させる手続きと、 スレッドで処理される内容をスレッド管理プログラムに
    登録する手続きと、 を含むクラスをアプリケーションプログラムインターフ
    ェースとして備えたオペレーティングシステムを記録し
    たコンピュータ読み取り可能な記録媒体。
  6. 【請求項6】 上記クラスは、スレッド管理プログラム
    に要求メッセージを受け渡す手続きを含むことを特徴と
    する請求項5記載のコンピュータ読み取り可能な記録媒
    体。
  7. 【請求項7】 上記クラスは、スレッド管理プログラム
    から返答メッセージを出力させる手続きと、スレッド管
    理プログラムからの返答メッセージを受け取る手続きと
    を含むことを特徴とする請求項5記載のコンピュータ読
    み取り可能な記録媒体。
  8. 【請求項8】 上記クラスは、スレッドで処理される内
    容としてスレッド管理プログラムに登録された内容を削
    除する手続きを含むことを特徴とする請求項5記載のコ
    ンピュータ読み取り可能な記録媒体。
  9. 【請求項9】 要求メッセージを受け付けて当該要求メ
    ッセージに基づく処理がなされるスレッドを生成するス
    レッド管理プログラムを起動するコマンドと、 スレッド管理プログラムを終了させるコマンドと、 スレッドで処理される内容をスレッド管理プログラムに
    登録するコマンドと、 をアプリケーションプログラムインターフェースとして
    備えたオペレーティングシステムを用いて実行されるア
    プリケーションプログラムを記録したコンピュータ読み
    取り可能な記録媒体。
  10. 【請求項10】 上記オペレーティングシステムは、ア
    プリケーションプログラムインターフェースとして、ス
    レッド管理プログラムに要求メッセージを受け渡すコマ
    ンドを備えていることを特徴とする請求項9記載のコン
    ピュータ読み取り可能な記録媒体。
  11. 【請求項11】 上記オペレーティングシステムは、ア
    プリケーションプログラムインターフェースとして、 スレッド管理プログラムから返答メッセージを出力させ
    るコマンドと、 スレッド管理プログラムからの返答メッセージを受け取
    るコマンドとを備えていることを特徴とする請求項9記
    載のコンピュータ読み取り可能な記録媒体。
  12. 【請求項12】 上記オペレーティングシステムは、ア
    プリケーションプログラムインターフェースとして、ス
    レッドで処理される内容としてスレッド管理プログラム
    に登録された内容を削除するコマンドを備えていること
    を特徴とする請求項9記載のコンピュータ読み取り可能
    な記録媒体。
  13. 【請求項13】 要求メッセージを受け付けて当該要求
    メッセージに基づく処理がなされるスレッドを生成する
    スレッド管理プログラムを起動する手続きと、 スレッド管理プログラムを終了させる手続きと、 スレッドで処理される内容をスレッド管理プログラムに
    登録する手続きと、 を含むクラスをアプリケーションプログラムインターフ
    ェースとして備えたオペレーティングシステムを用いて
    実行されるアプリケーションプログラムを記録したコン
    ピュータ読み取り可能な記録媒体。
  14. 【請求項14】 上記クラスは、スレッド管理プログラ
    ムに要求メッセージを受け渡す手続きを含むことを特徴
    とする請求項13記載のコンピュータ読み取り可能な記
    録媒体。
  15. 【請求項15】 上記クラスは、スレッド管理プログラ
    ムから返答メッセージを出力させる手続きと、スレッド
    管理プログラムからの返答メッセージを受け取る手続き
    とを含むことを特徴とする請求項13記載のコンピュー
    タ読み取り可能な記録媒体。
  16. 【請求項16】 上記クラスは、スレッドで処理される
    内容としてスレッド管理プログラムに登録された内容を
    削除する手続きを含むことを特徴とする請求項13記載
    のコンピュータ読み取り可能な記録媒体。
JP9124442A 1997-05-14 1997-05-14 コンピュータ読み取り可能な記録媒体 Pending JPH10320216A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP9124442A JPH10320216A (ja) 1997-05-14 1997-05-14 コンピュータ読み取り可能な記録媒体
US09/076,908 US6499047B2 (en) 1997-05-14 1998-05-13 Computer and recording medium including a thread management program for limiting threads

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9124442A JPH10320216A (ja) 1997-05-14 1997-05-14 コンピュータ読み取り可能な記録媒体

Publications (1)

Publication Number Publication Date
JPH10320216A true JPH10320216A (ja) 1998-12-04

Family

ID=14885613

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9124442A Pending JPH10320216A (ja) 1997-05-14 1997-05-14 コンピュータ読み取り可能な記録媒体

Country Status (2)

Country Link
US (1) US6499047B2 (ja)
JP (1) JPH10320216A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004024859A (ja) * 2002-05-16 2004-01-29 Microsoft Corp プレーヤが口頭でコミュニケーションできるようにする方法及び口頭のコミュニケーションを可能にするシステム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6832376B1 (en) * 1999-09-29 2004-12-14 Unisys Corporation Method and apparatus for resuse of a thread for different programmed operations
US7249355B2 (en) * 2002-12-18 2007-07-24 Microsoft Corporation Unified network thread management
US20050050113A1 (en) * 2003-08-21 2005-03-03 International Business Machines Corporation System and method for facilitating data flow between synchronous and asynchronous processes
US7844668B2 (en) 2004-07-30 2010-11-30 Microsoft Corporation Suggesting a discussion group based on indexing of the posts within that discussion group
US20060026593A1 (en) * 2004-07-30 2006-02-02 Microsoft Corporation Categorizing, voting and rating community threads

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH076043A (ja) * 1993-03-05 1995-01-10 Mitsubishi Electric Corp マルチスレッド・サーバ
US5504898A (en) * 1994-06-20 1996-04-02 Candle Distributed Solutions, Inc. Threaded environment for AS/400
JPH0969053A (ja) * 1995-08-31 1997-03-11 Toshiba Corp メッセージ受信機構に於けるマルチスレッド制御方式及びキューイング方式

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5455951A (en) * 1993-07-19 1995-10-03 Taligent, Inc. Method and apparatus for running an object-oriented program on a host computer with a procedural operating system
US5675796A (en) * 1994-04-08 1997-10-07 Microsoft Corporation Concurrency management component for use by a computer program during the transfer of a message
SE9404294D0 (sv) * 1994-12-09 1994-12-09 Ellemtel Utvecklings Ab sätt och anordning vid telekommunikation
US5752031A (en) * 1995-04-24 1998-05-12 Microsoft Corporation Queue object for controlling concurrency in a computer system
WO1997007621A1 (en) * 1995-08-18 1997-02-27 International Business Machines Corporation Parallel execution of requests in osi agents
US5740362A (en) * 1995-11-06 1998-04-14 International Business Machines Corporation Management of network distributed agents in a distributed computing environment
US5706515A (en) * 1996-03-25 1998-01-06 Sun Microsystems, Inc. System and method for implementing an atomic wait for notification operation
US5862376A (en) * 1996-06-24 1999-01-19 Sun Microsystems, Inc. System and method for space and time efficient object locking
AU731871B2 (en) * 1996-11-04 2001-04-05 Sun Microsystems, Inc. Method and apparatus for thread synchronization in object-based systems
US6026428A (en) * 1997-08-13 2000-02-15 International Business Machines Corporation Object oriented thread context manager, method and computer program product for object oriented thread context management
US5991792A (en) * 1998-01-02 1999-11-23 International Business Machines Corporation Method, apparatus and computer program product for dynamically managing a thread pool of reusable threads in a computer system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH076043A (ja) * 1993-03-05 1995-01-10 Mitsubishi Electric Corp マルチスレッド・サーバ
US5504898A (en) * 1994-06-20 1996-04-02 Candle Distributed Solutions, Inc. Threaded environment for AS/400
JPH0969053A (ja) * 1995-08-31 1997-03-11 Toshiba Corp メッセージ受信機構に於けるマルチスレッド制御方式及びキューイング方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004024859A (ja) * 2002-05-16 2004-01-29 Microsoft Corp プレーヤが口頭でコミュニケーションできるようにする方法及び口頭のコミュニケーションを可能にするシステム

Also Published As

Publication number Publication date
US20010011292A1 (en) 2001-08-02
US6499047B2 (en) 2002-12-24

Similar Documents

Publication Publication Date Title
US6757905B1 (en) Method and system for synchronous operation of linked command objects
US6324690B1 (en) Installation of application software through a network from a source computer system on to a target computer system
US5893106A (en) Object oriented server process framework with interdependent-object creation
US6163801A (en) Dynamic communication between computer processes
US7051288B2 (en) Method, system, and product for a java-based desktop to provide window manager services on UNIX
WO2016155388A1 (zh) 应用安装、运行方法及装置
US5805796A (en) System architecture for implementing modular diagnostics
JPH06161957A (ja) ワークステーション
JP2004505333A (ja) 通信サービスのプロビジョニング方法及び装置、及びプロビジョニング・モデルを開発するためのオブジェクト・プログラミング言語
JPH0635709A (ja) オブジェクトクラス規定装置、ウィジェット及びその実現方法
US8239849B2 (en) Class loading delegation network
US20020174161A1 (en) Java startup wrapper
CN111786823A (zh) 基于分布式服务的故障模拟方法及装置
JPH10320216A (ja) コンピュータ読み取り可能な記録媒体
US8032504B2 (en) Mechanism for enabling new task types to be added to a system for managing distributed nodes
US6185730B1 (en) Method and apparatus for creating dippable beans in a java environment
CN109718547A (zh) 一种游戏美术资源进度展示方法和装置
US6978423B2 (en) Context based view design to support client side multi-threading
CN111124386A (zh) 基于Unity的动画事件处理方法、装置、设备和存储介质
KR100482316B1 (ko) 운영체제상에서의콘솔서버방법및장치
JP2001249801A (ja) ソフトウエアインストール装置、及び、記憶媒体
CN113760321A (zh) 一种视图更新方法、装置、电子设备及存储介质
JP2000172543A (ja) データベース接続管理方法及び装置及びデータベース接続管理プログラムを格納した記憶媒体
CN117806665A (zh) 加快显卡驱动安装方法、装置、设备及介质
CN116049166A (zh) 组件数据源的管理方法、装置、存储介质及计算机设备

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050607

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050808

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051213