JP2001134452A - リソースの使用を管理するための装置および方法 - Google Patents

リソースの使用を管理するための装置および方法

Info

Publication number
JP2001134452A
JP2001134452A JP2000273621A JP2000273621A JP2001134452A JP 2001134452 A JP2001134452 A JP 2001134452A JP 2000273621 A JP2000273621 A JP 2000273621A JP 2000273621 A JP2000273621 A JP 2000273621A JP 2001134452 A JP2001134452 A JP 2001134452A
Authority
JP
Japan
Prior art keywords
resource
code
usage
computer
threshold
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.)
Granted
Application number
JP2000273621A
Other languages
English (en)
Other versions
JP4786785B2 (ja
Inventor
William F Foote
ウィリアム・エフ.・フート
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2001134452A publication Critical patent/JP2001134452A/ja
Application granted granted Critical
Publication of JP4786785B2 publication Critical patent/JP4786785B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

(57)【要約】 【課題】 ダウンロードされたアプレットを代表して実
行されるコードなどの関連のコードセットによる、特定
のリソースのリソース使用を管理するための方法を開示
する。 【解決手段】 リソース標識は、関連コードに関連付け
られており、関連コードによる特定のリソースのリソー
ス使用量を示す。リソース標識は、関連コードが、特定
のリソースのリソース総使用量を増加または減少させた
場合に更新される。

Description

【発明の詳細な説明】
【0001】
【発明の背景】この発明は、概してソフトウェアアプリ
ケーションに関し、特に、オブジェクトベースのシステ
ムにおいてリソース使用を管理するための、方法および
装置に関する。
【0002】消費者サイドからは、コストダウンが強く
求められている。このため、例えば、消費者向けのシス
テムにおいて、メモリおよびCPUデバイスの能力を可
能な限り縮小し、コスト全体を最小化する試みがなされ
ている。例えば、ケーブルテレビのセットトップボック
スでは、メモリスペースおよびCPU能力に制限があ
る。オブジェクトベースのシステムが消費者向けのデバ
イスに組み入れられていることから、同システムにおけ
るリソースの使用を効率的に管理することが日々重要性
を増している。つまり、(多くの原因のなかでも特に)
制限リソースによってもたらされる結果として、リソー
スの使用を追跡および管理することが、オブジェクト指
向分野における大きな課題となっている。
【0003】特に、非トラステッドコードのリソースの
使用を追跡することが重要である。例えば、非トラステ
ッドなURLからセットトップボックスにダウンロード
されたアプレットのリソースの使用を追跡することが重
要である。ダウンロードされたアプレットは、メモリの
スペースやCPUの時間などのリソースを法外な量で消
費するように、作為的または非作為的に設計されている
可能性がある。
【0004】また、関連コードセットのリソースの使用
を追跡および管理することも重要である。例えば、アプ
レットを代表して実行されるスレッドは、セットトップ
ボックスの制限リソースを、共にまたは個々に過度に消
費する恐れがある。したがって、単に個別のスレッドの
リソースの使用を追跡および管理するだけでは不十分で
ある。アプレットは、例えば、共同で作用してリソース
を消費するマルチプルスレッドを開始し得る。個別のス
レッドのリソースの使用を追跡しても、その個別のスレ
ッドだけしか強制終了させることができない。ところ
が、リソースを消費しているスレッドを強制終了させる
前に、アプレットは、他のリソース消費スレッドにラウ
ンチし得る。つまり、あるアプレットまたは関連コード
セットがリソースを過度に消費していることを決定する
方法があれば、その貪欲なアプレットに関連付けられて
いる、および/または同アプレットによる制御を受けて
いる、全てのスレッドを、リソースの過度な消費から阻
止することができる。
【0005】このように、リソースの使用を追跡および
管理するための、改善された方法および装置が必要とさ
れている。また、関連コードセットに関し、そのリソー
スの使用を追跡および管理するためのメカニズムが必要
とされている。
【0006】
【発明の概要】上述したニーズを満たすために、本発明
は概して、アプレットに代わって実行されるコードなど
の、関連コードによるリソースの使用を管理するため
の、装置および方法を提供する。本発明は、一実施形態
において、関連コードセットにより特定リソースの使用
を管理するための方法を開示する。リソース標識は関連
コードに関連付けられており、リソース標識は、関連コ
ードによって特定リソースの使用量を表示する。例え
ば、カウンタは、アプレットに代わって実行されるコー
ドによって、何バイトのリソース(例えば、Java
[登録商標]ヒープメモリ)が消費されているかを追跡す
る。リソース標識は、関連コードが自身の特定リソース
の総使用量を増加または減少する際に更新される。例え
ば、カウンタは、アプレットがその使用のためにメモリ
を割り当てられ、メモリ使用量を増加させた場合に増加
され、アプレットのメモリが再利用されている場合には
減少される。
【0007】別の実施形態では、本発明は、リソースの
使用を管理するためのコンピュータコードを有したコン
ピュータ読み取り可能媒体に実現される。このコンピュ
ータ読み取り可能媒体は、関連コードによる特定リソー
スのリソース使用量を表示する関連コードに、リソース
標識を関連付けるための、コンピュータコードと、関連
コードによる特定リソースの全リソース使用が増加また
は減少した場合に、リソース標識を更新するための、コ
ンピュータコードと、を備える。
【0008】別の実施形態では、関連コードセットによ
ってリソースの使用を管理するための、コンピュータシ
ステムを開示する。このコンピュータシステムは、ある
関連コードセットに関連付けられたリソースコンテキス
トを有する。例えば、1つのリソースが、ある特定のソ
ース(例えばURL)から得られた各アプレットセット
に関連付けられているとする。リソースコンテキスト
は、ある特定のリソースタイプに関連付けられて、該タ
イプのリソースが関連コードセットによってどれだけ使
用されているかを示す、リソース標識を有する。例えば
リソースコンテキストは、そのアプレットによるメモリ
(例えばJava[登録商標]ヒープメモリ)の使用量を
追跡するための、カウンタを有する。また、上記コンピ
ュータシステムは、リソースコンテキストに関連付けら
れたリソースオブジェクトをも有する。このリソースオ
ブジェクトは、上述したリソースタイプのリソースが、
関連コードセットによってどれだけ使用されるかを表示
する。メモリカウンタは、リソースコンテキストのアプ
レットが、メモリ(例えばJava[登録商標]ヒープメ
モリ)を例えば20バイトしか使用していないと示すか
もしれない。上記コンピュータシステムはさらに、関連
コードセットが、更新後のリソース標識に関連付けられ
たリソースタイプのリソースの使用を増加させた場合
に、リソースコンテキストのリソース標識を増分させる
ように構成された、更新メカニズムを有する。
【0009】本発明には数々の利点が見られる。例え
ば、関連コード(例えばソースを同じくする複数のアプ
レット)によってリソースの使用を追跡することによ
り、リソースの過度な消費を停止するまたは阻止するア
クションが、関連コードセット全体に実装される。例え
ば、特定のウェブサイトからセットトップボックスにア
プレットがダウンロードされると、そのアプレットによ
るセットトップリソースの使用状況が、注意深くモニタ
される。使用量が大きすぎる場合は、そのアプレット
に、リソースの使用をカットするかまたは終了する必要
があることを警告する。もしそのアプレットがリソース
の使用を増大し続けるならば、そのアプレットに関連付
けられた全てのスレッドを終了させる。このため、たと
えアプレットがリソースを消費するスレッドを複数生成
するように作為的に設計されていたとしても、そのよう
なスレッドを全て打ち切ることが可能となる。また、ア
プレットコードを実行するあらゆるシステムスレッドの
実行を、有害なアプレットの所有ではないリソースオブ
ジェクトの状態を破壊しない方法で、確実に終了させる
ことができる。
【0010】以下に続く詳細な説明と添付した種々の図
面とから、本発明の上述したおよびその他の利点がいっ
そう明らかになる。
【0011】
【発明の実施の形態】次に、本発明の特定の実施形態に
関して詳細な説明を行う。以下では、本発明を特定の実
施形態との関連のもとで説明するが、これは、本発明を
これらの実施形態に限定することを意図するものではな
い。反対に、添付した特許請求の範囲で定義される、発
明の趣旨および範囲の範囲内で、種々の変更物、改良
物、および等価物を含むことを意図している。以下の説
明では、本発明の完全な理解を促すために多くの詳細に
ついて特定している。しかしながら本発明は、これらの
項目の一部または全てを特定しなくても実施することが
可能である。そのほか、本発明を不必要に不明瞭化する
のを避けるため、周知のプロセス操作および/または構
造の説明は省略した。
【0012】本発明は一般に、特定のウェブサイトから
ダウンロードされたアプレットに代わって実行されるコ
ードなどの、関連コードによるリソースの使用を管理す
るための方法および装置に関する。関連コードは、自身
によるリソース使用のシングルエンティティとして理論
的にチャージされ得る任意のコードを含む。関連コード
は、例えば、メソッド上にダウンロードされアプレット
によって開始されたコードおよび/またはスレッドの一
部として、同アプレットによって直接実行される、スレ
ッドまたはメソッドを含む。例えば、アプレットメソッ
ドによってシステムメソッドが呼び出される。関連コー
ドはまた、同じソース(例えばウェブサイト)または関
連ソース(例えば同一企業が所有するサイト)から得ら
れる複数のアプレットに代わって実行されるコードも含
む。また、関連コードはアプレット以外の形態を採って
も良い。
【0013】簡単のため、本明細書を通じて、アプレッ
トを代表して実行されるコードを関連コードの一例とし
て使用するものとする。本明細書で開示する実施形態で
は、各アプレットによるリソースの使用を追跡する。例
として、アプレットによるメモリの総消費量を追跡およ
び管理する場合が挙げられる。別の例として、特定の継
続期間のうちアプレットが必要としたCPU時間(例え
ば、特定の継続期間に占めるCPU時間の割合で表した
もの)を追跡および管理する場合が挙げられる。
【0014】リソースの使用の追跡は、各アプレットに
何らかの標識を関連付けることによってもなされる。こ
の標識は、特定のリソースが、アプレットによってどれ
だけ消費されたかを追跡するものである。標識は例え
ば、特定リソースの絶対消費量を追跡することができ
る。例として、特定のアプレットが消費するバイト数
(例えばJava[登録商標]ヒープメモリの)を、カウ
ンタで追跡する場合が挙げられる。その代わりに、標識
は、例えば、特定リソースの相対消費量を追跡すること
もできる。例として、アプレットがCPUを使用してい
る時間が既定期間に占める割合を、CPUの使用標識で
追跡することが挙げられる。各アプレットは複数の関連
の標識を有し、その各標識は、アプレットおよび関連コ
ードが特定タイプのリソースをどれだけ消費しているか
を追跡する。各アプレットは、例えば、メモリの使用標
識と、CPUの使用標識と、ネットワークの使用標識と
を有することができる。
【0015】割り当てられた、または、利用された各リ
ソースオブジェクトを、対応するアプレットに関連付け
ても良い。どのアプレットまたはアプレットセットが特
定のリソースオブジェクトに対応するかを決定するに
は、あらゆる適切な係数を考慮することが可能である。
例えば、あるアプレットにメモリブロックが1つ割り当
てられた場合は、同アプレットがそのメモリブロックに
対応すると見なされて、その割り当てられたメモリブロ
ックに関連付けられる。対応する関連コードセットにリ
ソースオブジェクトを関連付けるためのメカニズムに関
しては、図1と関連させて後ほど説明することにする。
【0016】特定のアプレットにリソースオブジェクト
が関連付けられると、リソースオブジェクトがアプレッ
トの使用に割り当てられた後、およびリソースオブジェ
クトがアプレットから割り当て解除された後に、同アプ
レットの適切なリソース標識が更新される。例えば、ア
プレットの使用にメモリブロックが割り当てられると、
そのアプレットのメモリカウンタが、割り当てられたメ
モリブロックのサイズ分だけ増分される。
【0017】アプレットによるリソースの使用を追跡す
るために使用されるメカニズムのなかには、エンティテ
ィ(ここではリソースコンテキストを呼ぶ)の形で表さ
れるものもある。また、リソースコンテキストは、該リ
ソースコンテキストに関連付けられたコードがリソース
を使用する際に、そのリソースの使用を要求する対象と
なるエンティティである。つまり、リソースコンテキス
トは、自身を介してリソース使の用を追跡および管理で
きるようなエンティティである。リソースコンテキスト
はまた、コードボディと、そのようなコードボディの実
行によって消費されるリソースとに関連付けられる。
【0018】図1は、リソースの使用を管理するための
種々のメカニズム間の関係を、本発明の一実施形態に従
って示した図である。図中に示されているように、リソ
ースコンテキスト102は、同リソースコンテキストが
各タイプのリソースをどれだけ消費しているかを追跡す
るための、標識のセットを有する。一実施形態におい
て、標識は、CPUの使用と、メモリの使用と、ネット
ワークの使用と、オープンファイルの数と、オープンソ
ケットの数と、モニタの数とを追跡する。
【0019】また、リソースコンテキスト102は、各
リソースタイプ(例えばヒープメモリ)に関する1つま
たはそれ以上の既定の限界にも関連付けられている。各
限界セットは、リソースの過度な消費を阻止するための
アクションが採られるまでに、リソースコンテキストに
関連コードが、関連タイプのリソースにどれだけアクセ
スできるかを示す。リソースコンテキスト102は、例
えば、2キロバイト、4キロバイト、および5キロバイ
ト(最大使用量)の3種類のメモリ使用限界に関連付け
られることが可能である。このリソースコンテキストの
メモリ使用量が2キロバイトを超えると、同リソースコ
ンテキストに関連付けられたアプレットは、そのリソー
スの使用が最大使用量の5キロバイトまであと3キロバ
イトのレベルに到達した、という警告を受ける。このリ
ソースコンテキストのメモリ使用量が3キロバイトを超
えると、同リソースコンテキストは、リソースを過度に
消費しているため間もなく終了させられる、という警告
を受ける。アプレットが第1および/または第2の限界
を超えると、これ以上のメモリの割り当ては許可されな
い。使用量が5キロバイトを超えると、そのリソースコ
ンテキストのアプレットは警告なしに終了させられる。
【0020】図1に示される実施形態において、リソー
スコンテキスト102は、メモリの使用量に関する複数
の制限または閾値、すなわち制限制限1と、制限制限2
と、最大制限と、特定のリソースタイプに関する下限配
列および上限配列とを有したリソースオブジェクト10
4に関連付けられている。図中には示されていないが、
リソースコンテキストは、任意の数のリソースオブジェ
クト(例えば、CPU使用、ネットワーク使用、ソケッ
ト使用、ファイル使用、およびモニタ使用の各リソース
に対応するリソースオブジェクト)に関連付けられるこ
とが可能である。
【0021】再び図1に戻り、最大制限は、リソースコ
ンテキストに関連付けられた関連コードが消費し得るメ
モリの最大量を表す。制限1および制限2は、メモリの
使用量が最大閾値に近づきづつある、という警告をトリ
ガするために利用される閾値を表す。例えば、制限1を
1キロバイト、制限2を2キロバイト、そして最大制限
を3キロバイトにそれぞれ設定することができる。
【0022】関連のリソースコンテキストが制限1を超
えると(例えば、関連のアプレットが1キロバイトを超
える量を使用すると)、アプレットは、最大使用量の限
界に近づきつつあるという警告を受ける。さらに制限2
をも超えると(例えば、関連のアプレットが2キロバイ
トを超える量を使用すると)、アプレットは、最大使用
量の限界にさらに近づいたという警告を受ける。そして
最大使用量をも超えると(アプレットが3キロバイトを
超える量を使用すると)、アプレットによるメモリへの
アクセスは、さらなる警告を一切受けることなく終了さ
せられる。同様に、アプレットが閾値以下に下がると、
同アプレットは、もう最大の閾値に近づきつつしてはな
いという通知を受ける。
【0023】メモリが限界を超えつつあること、または
もう超えつつないことをアプレットに通知するために
は、あらゆるメカニズムを実装することが可能である。
図中に示される実施形態において、リソースオブジェク
ト104は、リソースコールバック118へのアクセス
権を有する。リソースオブジェクトは、アプリケーショ
ンがリソースの使用に関する通知を登録および指示する
と、リソースコールバックへのアクセス権を得る。ある
閾値を超えた場合、あるいは同閾値またはその他の閾値
をもう超えつつない場合に、登録済みのユーザに対する
コールバックが開始される。
【0024】ヒステリシス効果を得るために、各制限に
対して1対の値を提供することが可能である。例えば、
リソースの使用が制限1をいったん超えると、通知をト
リガするためには、そのリソースの使用が制限1よりも
低い下限値以下に下がる必要がある。すると、再度通知
をトリガするためには、そのリソースの使用が制限1よ
りも高い上限値を超える必要がある。同様に、制限2お
よび最大制限に対しても、下限値および上限値が提供さ
れる。
【0025】リソースコンテキストは、関連コードの特
定のセットに関連付けられている。この関連付けは、任
意の適切な方法で行うことができる。例えば、アプリケ
ーションコードセットを受信するアプリケーションフレ
ームワークが、関連コードの特定のセットへのリソース
コンテキストの割り当てを、事前に決定しても良い。こ
の決定は、任意の適切なポリシー考慮事項に基づいて下
すことが可能である。例えば、ある特定の保護ドメイン
に割り当てられたコードを、全て1つのリソースコンテ
キストに割り当てても良い。当業者には明らかなよう
に、保護ドメイン(JDK1.2のセキュリティ特徴に
含まれる特徴を有するもの)は一般に、コードセットへ
の許可の付与を行う。つまり、特定のコードセットに保
護ドメインを割り当てるメカニズムを、同コードセット
へのリソースコンテキストの割り当てにも利用すること
が可能である。
【0026】保護ドメインは一般に、特定のスレッドに
よって実行されているメソッドのクラスが、どのクラス
ローダを使用してローディングされたかに基づいて、特
定のスレッドに関連付けられている。クラスローダに基
づいてスレッドに保護ドメインを割り当てるための、幾
つかの実施形態に関しては、Java2プラットフォー
ムセキュリティアーキテクチャ(Java2 Platform Secur
ity Architecture)、API設計(API Design)、リ・
ゴング著のインプリメンテーション(Implementation b
y Li Gong)(アディソン・ウェスリィ出版、ISBN 201-
31000-7)で説明がなされているため、本明細書中に引
用としてそのまま組み入れることとする。
【0027】図1に示されるように、リソースコンテキ
スト102を代表して実行されている特定のスレッド1
06は、保護ドメイン116内でも実行されている。よ
り厳密に言うと、スレッド106中のある特定のメソッ
ド110が現在実行されており、該メソッドは、対応す
るスタックフレーム108に関連付けられている。スレ
ッド106中の実行中のメソッド110は、クラス11
2の一部分としてクラスローダ114によってローディ
ングされる。クラスローダ114は保護ドメイン116
に関連付けられ、該保護ドメイン116はさらにリソー
スコンテキスト102に関連付けられている。一実施形
態において、各スレッドは、クラスローダおよびその関
連の保護ドメインを介して関連のリソースコンテキスト
に割り当てられてトレースされる。
【0028】異なる保護ドメインに属する複数のコード
セットを、同じリソースコンテキストに割り当てること
も当然可能である。例として、第1のアプレットがPe
psiによって制御されているウェブサイトから発生し
て、第2のアプレットがPizza Hutによって制
御されているウェブサイトから発生している場合を取り
上げる。これら2つのアプレットは、異なるウェブサイ
トから発生して異なるクラスローダによってローディン
グされているため、異なる保護ドメインを有している
が、Pizza HutおよびPepsiが共有されて
いることから、同じリソースコンテキストに対してリソ
ースの使用を要求することが可能である。
【0029】リソースの使用を追跡するためのメカニズ
ムのなかには、リソース自体に関連付けられても良いも
のがある。一実施形態では、割り当てられた各リソース
オブジェクトを、対応するリソースコンテキストで呼び
出すことが可能である。図中に示されるように、メモリ
ブロック120は、同メモリブロックに対応する一つの
コードセットに関連付けられた、対応するリソースコン
テキスト102へのポインタを有する。このため、リソ
ースの割り当ては対応するリソースコンテキストに対し
て要求され、リソースの割り当ての解除は、関連のポイ
ンタを介して対応するリソースコンテキストに帰され
る。例えば、リソースが割り当てられると、対応するり
ソースコンテキストの適切なリソースカウンタが増分す
る。
【0030】図2Aおよび図2Bは、メモリを割り当て
るためのプロセス200を、本発明の一実施形態に従っ
て示したフローチャートである。一般に絶対量(例えば
バイト数)で割り当てられるあらゆるタイプのリソース
に対し、同様な手続きを実装することが可能である。例
えば、オープンファイル、オープンソケット、およびモ
ニタなどの割り当てにおいてこの手続きを実装すること
が可能である。
【0031】先ず操作202において、アクティブ保護
ドメインを決定する。アクティブ保護ドメインを決定す
るための技術に関しては、Java2プラットフォーム
セキュリティアーキテクチャ(Java2 Platform Securit
y Architecture)、API設計(API Design)、リ・ゴ
ング著のインプリメンテーション(Implementation by
Li Gong)(アディソン・ウェスリィ出版、ISBN 201-31
000-7)で詳しい説明がなされているため、本明細書中
に引用としてそのまま組み入れることとする。次に操作
204において、アクティブ保護ドメインに関連付けら
れたリソースコンテキストを識別する。リソースコンテ
キストの割り当てはポリシー決定であり、任意の適切な
方法で実現することが可能であるが、図中に示された実
施形態のリソースコンテキストの場合は、アクティブ保
護ドメインに直接マッピングされている。
【0032】特定の保護ドメインに対するリソースコン
テキストのマッピングは、アプリケーションフレームワ
ークによって前もって設定されていても良い。あるいは
アプリケーションフレームワークは、各コードソース
(例えば各URLサイト)に対して別途クラスローダを
形成しても良い。そして、あるクラスローダによってロ
ーディングされるクラス全てを、そのコードソースに対
応する特定の保護ドメインに割り当てる。すると、アプ
リケーションフレームワークがリソースコンテキストを
インスタンス化し、インスタンス化された同リソースコ
ンテキストが、上記特定のクラスローダの保護領域に関
連付けられる。
【0033】次に操作206において、識別されたリソ
ースコンテキストに対応してメモリカウンタを増分させ
る。そして続く操作206において、リソースの使用が
閾値を超えたか否かを決定する。例えば、図1の制限
1、制限2、または最大制限の閾値を超えたか否かを決
定する。あるいは代わりに、上限値を超えたか否かを決
定しても良い。
【0034】リソースの使用が閾値を超えていない場合
は、操作210においてメモリが割り当てられ、割り当
てられた同メモリに対してリソースコンテキストが記録
される。例えば、そのリソースコンテキストへのポイン
タが、割り当てられたメモリ部位内に記録される。この
ため、同メモリ部位の割り当てが解除されると、適切な
リソースコンテキストのリソースカウンタが減分され
る。リソースコンテキストが記録された後、メモリ割り
当ての手続きが終了する。
【0035】リソースの使用が閾値を超えた場合は、操
作212において、リソース再利用のプロセスがトリガ
される。例えば、ヒープメモリに対してガーベッジコレ
クションの手続きを開始する。リソースの再利用の一実
施形態に関しては、図3と関連させて後ほど説明するこ
とにする。リソースの再利用は、対応するリソースコン
テキストの関連コードセットが使用しなくなった、あら
ゆるメモリの割り当てを解除するためにトリガされる。
このメモリの割り当て解除がトリガされると、そのメモ
リの使用がこれ以上閾値を超えることはない。
【0036】リソースの再利用がトリガされると、操作
214において、閾値を依然として超えているか否かを
決定する。もう閾値を超えていない場合は、操作210
においてメモリが割り当てられ、割り当てられた同メモ
リに対してリソースコンテキストが記録される。そし
て、メモリ割り当ての手続き200が終了する。このよ
うに、このアプリケーションには、メモリの使用を削減
する(カットバックする)機会が与えられる。
【0037】依然として閾値を超えている場合は、操作
216において、登録済みのリソースコールバックが通
知される。リソースコンテキストのコードセットが特定
リソースの最大制限に近づいていることを警告するため
には、その他警報タイプの任意のメカニズムを実装する
ことが可能である。コールバックタイプのアラームとし
ては、アプリケーションに対してアプリケーションフレ
ームワークからのコールバックの登録を許可するような
メカニズムが使用可能である。例えばアプレットは、メ
モリの使用が閾値を超えたら通知を受けるように登録を
行う。そして実際に閾値を超えると、例えば、メモリの
使用が最大メモリ使用量に近づいている、というような
通知を受ける。
【0038】次に図2Bに移り、操作218において、
最大閾値を超えているか否かを決定する。最大閾値を超
えていない場合は、図2Aの操作210においてメモリ
が割り当てられ、割り当てられた同メモリに対してリソ
ースコンテキストが記録される。しかしながら、最大閾
値を超えている場合は、操作220において、メモリカ
ウンタが減分される(操作206において先に増分され
ているため)。すると操作222において、Out of Mem
ory 例外がスローされて、エラーが生じたことを示し、
メモリの割り当てが行われなくなる。そして、メモリ割
り当ての手続き200が終了する。
【0039】ある特定のセットの関連コードが最大メモ
リ使用量を超えた場合は、その関連コードを代表して実
行されるスレッドを打ち切るメカニズムを実装しても良
い。
【0040】図3は、図2におけるリソース再利用の操
作を、本発明の一実施形態に従って示したフローチャー
トである。先ず操作302において、別のオブジェクト
に呼び出されていないメモリオブジェクトに対してメモ
リ走査を実行する。例えばあるメモリは、現在はもう使
用されていないローカル変数によって、かつて呼び出さ
れたことがあるかもしれない。続く操作304では、呼
び出されていない各オブジェクトに関し、そのオブジェ
クトのサイズを、そのメモリオブジェクトによって呼び
出されるリソースコンテキストの、対応するリソースカ
ウンタから差し引く(例えば、図2の操作210におけ
るメモリオブジェクトの割り当て中に、特定のリソース
コンテキストが記録される)。そして操作306におい
て、呼び出されていないメモリオブジェクトに対してメ
モリを再利用する。
【0041】続く操作308において、メモリの使用が
リソースの使用の閾値以下に下がったか否かを決定す
る。メモリの使用が閾値以下に下がった原因は、例え
ば、メモリの最大使用限界に近づいているという警告に
応えて、関連のアプレットがメモリの使用を減らしたた
めかもしれない。メモリの使用が閾値以下に下がってい
ない場合は、リソース再利用の手続き212が終了す
る。メモリの使用が閾値以下に下がった場合は、操作3
10において、登録済みのリサーチコールバックが通知
を受ける。例えば、リソースコンテキストに関連付けら
れたアプレットに、メモリの最大割り当て量を超える危
険がもうないことを通知する。すると、メモリ再利用の
手続き212が終了し、制御が図2Aおよび図2Bのメ
モリ割り当ての手続き200に戻される。
【0042】図2から図3に関連させて説明したリソー
スの管理技術は、使用限界が絶対値であるリソースに対
しては上手く機能するが、相対的な形でより容易に測定
または追跡できるその他のリソースタイプに対しては、
他のメカニズムを実装して管理を行っても良い。例えば
アプレットによるCPUの使用は、特定期間中に占める
使用時間の割合として追跡することが可能である。アプ
レットによるCPUの使用が一定の割合を超えたら、ア
プレットによるCPUの使用を完全に停止しなくても、
単に、CPUの使用におけるアプレットの優先度を下げ
れば良い。
【0043】図4は、リソースの使用を管理するための
メカニズム間の関係を、本発明の一実施形態に従って示
した図である。図4の手続きを使用して、類似のリソー
スを管理することも当然可能である。先ず操作402に
おいて、リソースコンテキストに関連付けられた全スレ
ッドに対してCPUまたはネットワークの使用を監視す
る。次いで操作404において、第1の閾値を超えたか
否かを決定する。第1の閾値を超えていない場合は、操
作402において、CPUまたはネットワークの使用が
続けて監視される。
【0044】第1の閾値を超えている場合は、操作40
6において、リソースコンテキストに関連付けられたス
レッドの優先度を格下げするよう、スケジューラに命令
する。次いで、優先度のバックアップをいつ格上げする
かを決定するため、操作408において、同リソースコ
ンテキストに関連付けられた全スレッドを再度モニタす
る。そして操作410において、リソースの使用が第2
の閾値以下に下がったか否かを決定する。優先度の格下
げおよび格上げの決定に、同一の閾値を使用することも
当然可能である。
【0045】CPUまたはネットワークの使用が第2の
閾値以下に下がっていない場合は、操作412におい
て、第1の閾値を依然として超えているか否かを決定す
る。第1の閾値を依然として超えている場合は、操作4
06において、リソースコンテキストに関連付けられた
スレッドの優先度を格下げするよう、スケジューラに再
度命令する。つまり、特定のリソースコンテキストに関
連付けられたスレッドは、CPUまたはネットワークの
使用が第1の閾値を超えている限り、続けて優先度を格
下される。第1の閾値を超えていない場合は、優先度を
再度格下げする(操作414により)かまたは優先度の
バックアップを格上げする(操作406により)かを決
定するため、操作408において、リソースコンテキス
トに関連付けられた全スレッドに対し、そのCPUまた
はネットワークの使用を再度、監視する。
【0046】リソースの使用が第2の閾値以下に下がっ
た場合は、操作414において、リソースコンテキスト
に関連付けられたスレッドの優先度を格上げするよう、
スケジューラに命令する。次いで操作416において、
優先度がもとの優先度以下に下がっているか否かを決定
する。もとの優先度以下に下がっていない場合は、優先
度を格下げする(つまりメモリの消費量が第1の閾値を
超えている)か否かを決定するため、操作402におい
て、リソースコンテキストに関連付けられた全スレッド
に対してCPUまたはネットワークの使用をモニタす
る。もとの優先度以下に下がっている場合は、優先度を
いつ格上げする(つまりメモリの消費量が第2の閾値以
下に下がっている)かを決定するため、操作408にお
いて、CPUまたはネットワークの使用を監視する。
【0047】次に、リソースの使用を追跡するためのこ
れらのメカニズムを利用して、特定のコードセットが、
あるタイプのリソースを過度に使用しているか否かを決
定することができる。例えば、特定のリソースコンテキ
ストのリソースカウンタと、関連コードセットとを分析
する(例えば、その特定のリソースに関する既定の制限
と比較する)ことにより、そのリソースコンテキスト
が、特定のリソースタイプを過度に消費しているか否か
(あるいは、過度に消費しようとしているか否か)を決
定しても良い。ある特定のセットの関連コードが、特定
のリソースタイプを過度に消費していると決定された場
合は、さらなる消費を停止および/または阻止するため
の措置が採られる。
【0048】図5は、本発明を実現するのに適した、代
表的な汎用コンピュータシステムを示した図である。コ
ンピュータシステム1030は、一次ストレージデバイ
ス1034(読み取り専用メモリ、すなわちROMが代
表的)と、一次ストレージデバイス1036(ランダム
アクセスメモリ、すなわちRAMが代表的)と、を含ん
だメモリデバイスに結合された、任意の数のプロセッサ
1032(中央演算処理装置、すなわちCPUとも呼ば
れる)を備える。このコンピュータシステムは、任意の
適切な形態を採ることができる。例えばこのコンピュー
タシステムは、ナビゲーションシステムまたはテレビの
セットトップボックスに組み込まれていても良い。
【0049】コンピュータシステム1030、あるいは
より特定して複数のCPU1032は、当業者には明ら
かなように、仮想マシンをサポートするように構成され
ている。当業者には周知のように、ROMが、データお
よび命令を一方向にCPU1032に伝送する一方で、
RAMは、データおよび命令を双方向に伝送するように
使用されるのが通常である。CPU1032は一般に、
任意数のプロセッサを有することができる。一次ストレ
ージデバイス1034,1036は、ともに任意の適切
なコンピュータ読み取り可能媒体を含むことができる。
通常は大容量のメモリデバイスである二次ストレージメ
ディア1038もまた、CPU1032に双方向に結合
して追加のデータ格納容量を提供している。大容量メモ
リデバイス1038は、コンピュータコードやデータ等
を含んだプログラムを格納するのに使用される、コンピ
ュータ読み取り可能媒体である。代表的な大容量メモリ
デバイス1038として、一次ストレージデバイス10
34,1036より一般に低速な、ハードディスクやテ
ープ等のストレージメディアが挙げられる。大容量メモ
リデバイス938は、磁気もしくは紙のテープ読み取り
装置、またはその他周知な装置の形態を採ることができ
る。ここで、適切な場合には、大容量メモリデバイス1
038内に保持される情報が、RAM1036内にその
一部を占める仮想メモリとして一般的な方式で組み込ま
れ得る点に、留意する必要がある。CD−ROM等の特
定の一次ストレージデバイス1034は、CPU103
2に一方向にデータを引き渡すこともできる。
【0050】CPU1032はまた、1つまたはそれ以
上の入出力デバイス1040に結合されることもでき
る。ここで、入出力デバイスとは、ビデオモニタ、トラ
ックボール、マウス、キーボード、マイクロフォン、タ
ッチディスプレイ、トランスデューサカード読み取り装
置、磁気もしくは紙のテープ読み取り装置、タブレッ
ト、スタイラス、音声もしくは筆跡の認識装置、または
他のコンピュータ等のその他周知な入力デバイスを含
み、これらに限定されない。CPU1032は、コンピ
ュータに接続されても良いし、あるいは、例えばインタ
ーネットやイントラネット等の通信網に、1012とし
て一般に示されるネットワーク接続を使用して結合され
ても良い。このようなネットワーク接続により、CPU
1032は、リソースの使用を管理するための上述した
メカニズムを実施する際に、ネットワークから情報を受
信したりネットワークに情報を出力したりできると考え
られる。これらの情報は、CPU1032で実行される
命令のシーケンスとして表わされることが多く、例えば
搬送波に組み込まれたコンピュータデータ信号の形で、
ネットワークから受信されたりネットワークに出力され
たりすることができる。上述したデバイスおよび材料
は、コンピュータのハードウェア技術およびソフトウェ
ア技術の当業者にとって周知のものである。
【0051】以上では、本発明の実施形態を数種類のみ
取り上げたが、本発明は、その趣旨または範囲を逸脱し
ない範囲内ならば、その他多くの特定の形態によって実
現することが可能である。例えば、リソースの管理をと
もなう操作はリオーダ(追加注文)が可能である。ま
た、本発明の趣旨または範囲を逸脱しない範囲内なら
ば、ステップを省略または追加することも可能である。
【0052】本発明に従った、リソースの使用を管理す
るための技術は、Java(登録商標)環境との関連の
もとで実装するのに特に適しているものの、一般に、任
意の適切なオブジェクトベース環境に適用することが可
能である。これらの技術は特に、プラットフォーム独立
のオブジェクトベース環境で使用するのに適している。
また、これらのメソッドが、分散オブジェクト指向シス
テムにおいても実現できる点を、理解しておく必要があ
る。
【0053】また、メモリの使用が閾値を超えた場合に
登録済みのコールバックを開始させたが、これらのコー
ルバックを全く排除することも可能である。関連コード
セットが最大閾値を超えたら、単にさらなるメモリの消
費を阻止または最小化すれば良い。反対に、関連コード
セットによるCPUまたはネットワークの使用が閾値を
超えた場合には登録済みのコールバックを開始させず
に、CPUまたはネットワークの使用が限界に達した場
合にはコールバックを実装することも、当然可能であ
る。また、CPUまたはネットワークの使用が閾値以下
に下がった場合にコールバックを開始することも可能で
ある。
【0054】リソースコンテキストがどのリソースの限
界を超えた場合にもリソースの再利用を開始させたが、
リソースの再利用を排除することも、またはある限界を
超えた場合にのみリソースの再利用を開始させること
も、当然可能である。また、リソースコンテキストがリ
ソースの限界を超えたか否かとは関わりなく、平行処理
により単に定期的にリソースの再利用をトリガしても良
い。
【0055】したがって、以上で取り上げた実施形態
は、例示を目的としたものであって、本発明の内容を限
定するものではない。このため本発明は、本明細書で特
定した詳細に限定されることなく、添付した特許請求の
範囲の範囲および等価物の範囲内で、種々の変更を加え
ることが可能である。
【図面の簡単な説明】
【図1】リソースの使用を管理するためのメカニズム間
の関係を、本発明の一実施形態に従って示した図であ
る。
【図2A】メモリを割り当てるためのプロセスを、本発
明の実施形態に従って示したフローチャートである。
【図2B】メモリを割り当てるためのプロセスを、本発
明の実施形態に従って示したフローチャートである。
【図3】図2におけるリソースの再利用の操作を、本発
明の一実施形態に従って示したフローチャートである。
【図4】CPUまたはネットワークの使用を管理するた
めのプロセスを、本発明の一実施形態に従って示したフ
ローチャートである。
【図5】本発明を実装するのに適した、代表的な汎用コ
ンピュータシステムを示した図である。
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 ウィリアム・エフ.・フート アメリカ合衆国 カリフォルニア州95014 クパーチノ,#ビー,ウォルナット・サ ークル・サウス,22441

Claims (37)

    【特許請求の範囲】
  1. 【請求項1】 一組の関連コードセットによる特定のリ
    ソースのリソース使用を管理するための方法であって、 前記関連コードに、該関連コードによる前記特定のリソ
    ースのリソース使用量を示すリソース標識を関連付け、 前記関連コードが前記特定のリソースのリソース総使用
    量を増加または減少させた場合に、前記リソース標識を
    更新することを備えた方法。
  2. 【請求項2】 請求項1記載の方法であって、 前記リソース標識の値は、前記リソース使用の絶対値を
    表す方法。
  3. 【請求項3】 請求項1記載の方法であって、 前記リソース標識の値は、前記リソース使用の相対値を
    表す方法。
  4. 【請求項4】 請求項1ないし請求項3のいずれかに記
    載の方法であって、さらに、 前記関連コードに割り当てられた前記特定のリソースの
    各リソース部位に、前記関連コードを関連付け、 前記関連コードから割り当てを解除された前記特定のリ
    ソースの各リソース部位と前記関連コードとの関連付け
    を解消することを備え、 前記リソース標識は、リソース部位が前記関連コードか
    ら割り当てを解除された場合に減少し、リソース部位が
    前記関連コードに割り当てられた場合に増加する方法。
  5. 【請求項5】 請求項4記載の方法であって、さらに、 前記リソース標識が既定の最大閾値以下である場合に、
    前記特定のリソースを前記関連コードに割り当て、 前記リソース標識が前記既定の最大閾値を超える場合
    に、エラーを示し、前記特定のリソースを割り当てない
    ことを備えた方法。
  6. 【請求項6】 請求項5記載の方法であって、 前記エラーは、out_of_memory 例外をスローすることに
    よって示される方法。
  7. 【請求項7】 請求項4または請求項5に記載の方法で
    あって、 前記関連コードは、ガーベッジコレクションの手続きを
    経て分離される方法。
  8. 【請求項8】 請求項1ないし請求項7のいずれかに記
    載の方法であって、 前記特定のリソースは、メモリの使用と、オープンファ
    イルの使用と、オープンソケットの使用と、モニタの使
    用と、からなる群より選択される方法。
  9. 【請求項9】 請求項8記載の方法であって、 前記リソース表示は、前記関連コードによって使用され
    る前記特定のリソースの割合を示す方法。
  10. 【請求項10】 請求項8または請求項9に記載の方法
    であって、さらに、 前記特定のリソースと前記関連コードとに、複数の閾値
    を関連付け、 前記関連コードによる前記特定のリソースのリソース使
    用量が、第1番目の閾値を超えた場合に、登録済みのリ
    ソースコールバックを通知することを備えた方法。
  11. 【請求項11】 請求項10記載の方法であって、さら
    に、 前記関連コードによる前記特定のリソースのリソース使
    用量が、前記第1番目の閾値と異なる値を有した第2番
    目の閾値以下に下がった場合に、登録済みのリソースコ
    ールバックを通知することを備えた方法。
  12. 【請求項12】 請求項8記載の方法であって、さら
    に、 前記関連コードによる前記特定のリソースのリソース使
    用量が、前記第1の閾値以下に下がった場合に、登録済
    みのリソースコールバックを通知することを備えた方
    法。
  13. 【請求項13】 請求項1ないし請求項7のいずれかに
    記載の方法であって、 前記特定のリソースは、CPUの使用またはネットワー
    クの使用である方法。
  14. 【請求項14】 請求項13記載の方法であって、さら
    に、 前記特定のリソースと前記関連コードとに、閾値を関連
    付け、 前記関連コードによる前記特定のリソースのリソース使
    用量が、前記閾値を超えた場合に、CPU使用量におけ
    る前記関連コードの優先度を格下げすることを示すこと
    を備えた方法。
  15. 【請求項15】 請求項14記載の方法であって、さら
    に、 第2の閾値を前記特定のリソースと、前記関連コードと
    に関連付け、 前記関連コードによる前記特定のリソースのリソース使
    用量が、前記第2の閾値以下に下がった場合に、CPU
    の使用についての前記関連コードの優先度を格上げする
    ことを示すことを備えた方法。
  16. 【請求項16】 請求項1ないし請求項15のいずれか
    に記載の方法であって、 前記関連コードは、アプレットを代表してスレッドの形
    で実行されるように構成されている方法。
  17. 【請求項17】 請求項1ないし請求項16のいずれか
    に記載の方法であって、さらに、 各々が、前記関連コードによる複数のリソースのリソー
    ス使用量を示す、複数のリソース標識を、前記関連コー
    ドに関連付け、 前記関連コードが、前記関連のリソースのリソース総使
    用量を増加または減少させた場合に、選択されたリソー
    ス標識を更新することを備えた方法。
  18. 【請求項18】 請求項17記載の方法であって、 前記リソースは、メモリの使用と、CPUの使用と、ネ
    ットワークの使用とを含む方法。
  19. 【請求項19】 請求項18記載の方法であって、 前記リソースはさらに、オープンファイルの使用と、オ
    ープンソケットの使用とを含む方法。
  20. 【請求項20】 リソースの使用を管理するためのコン
    ピュータコードを備えたコンピュータ読み取り可能媒体
    であって、 前記関連コードに、該関連コードによる前記特定のリソ
    ースのリソース使用量を示すリソース標識を関連付ける
    ための、コンピュータコードと、 前記関連コードが、前記特定のリソースのリソース総使
    用量を増加または減少させた場合に、前記リソース標識
    を更新するための、コンピュータコードとを備えたコン
    ピュータ読み取り可能媒体。
  21. 【請求項21】 請求項20記載のコンピュータ読み取
    り可能媒体であって、さらに、 前記関連コードに割り当てられた前記特定のリソースの
    各リソース部位に、前記関連コードを関連付けるため
    の、コンピュータコードと、 前記関連コードから割り当てを解除された前記特定のリ
    ソースの各リソース部位から、前記関連コードを分離す
    るための、コンピュータコードとを備え、 前記リソース標識は、リソース部位が前記関連コードか
    ら割り当てを解除された場合に減少し、リソース部位が
    前記関連コードに割り当てられた場合に増加する、コン
    ピュータ読み取り可能媒体。
  22. 【請求項22】 請求項20または請求項21に記載の
    方法であって、さらに、 前記リソース標識が既定の最大閾値以下である場合に、
    前記特定のリソースを前記関連コードに割り当てるため
    の、コンピュータコードと、 前記リソース標識が前記既定の最大閾値を超える場合
    に、エラーを示し、前記特定のリソースを割り当てない
    ための、コンピュータコードと、を備えた方法。
  23. 【請求項23】 請求項20ないし請求項22のいずれ
    かに記載のコンピュータ読み取り可能媒体であって、 前記特定のリソースは、メモリと、オープンファイル
    と、オープンソケットと、モニタと、からなる群より選
    択される、コンピュータ読み取り可能媒体。
  24. 【請求項24】 請求項23に記載のコンピュータ読み
    取り可能媒体であって、さらに、 前記特定のリソースと、前記関連コードとに、複数の閾
    値を関連付けるための、コンピュータコードと、 前記関連コードによる前記特定のリソースのリソース使
    用量が、第1番目の閾値を超えた場合に、登録済みのリ
    ソースコールバックを通知するための、コンピュータコ
    ードとを備えたコンピュータ読み取り可能媒体。
  25. 【請求項25】 請求項23記載のコンピュータ読み取
    り可能媒体であって、さらに、 前記関連コードによる前記特定のリソースのリソース使
    用量が、前記第1番目の閾値と異なる値を有した第2番
    目の閾値以下に下がった場合に、登録済みのリソースコ
    ールバックを通知するための、コンピュータコードを備
    えたコンピュータ読み取り可能媒体。
  26. 【請求項26】 請求項20ないし請求項22のいずれ
    かに記載のコンピュータ読み取り可能媒体であって、 前記特定のリソースは、CPUの使用またはネットワー
    クの使用である、コンピュータ読み取り可能媒体。
  27. 【請求項27】 請求項26記載のコンピュータ読み取
    り可能媒体であって、さらに、 前記特定のリソースと、前記関連コードとに、閾値を関
    連付けるための、コンピュータコードと、 前記関連コードによる前記特定のリソースのリソース使
    用量が、前記閾値を超えた場合に、CPUの使用におけ
    る前記関連コードの優先度を格下げすることを示すため
    の、コンピュータコードとを備えたコンピュータ読み取
    り可能媒体。
  28. 【請求項28】 請求項27記載のコンピュータ読み取
    り可能媒体であって、さらに、 前記特定のリソースと、前記関連コードとに、第2の閾
    値を関連付けるための、コンピュータコードと、 前記関連コードによる前記特定のリソースのリソース使
    用量が、前記第2の閾値以下に下がった場合に、CPU
    の使用における前記関連コードの優先度を格上げするこ
    とを示すための、コンピュータコードとを備えたコンピ
    ュータ読み取り可能媒体。
  29. 【請求項29】 請求項20ないし請求項28のいずれ
    かに記載の方法であって、 前記関連コードは、アプレットを代表してスレッドの形
    で実行されるように構成されている方法。
  30. 【請求項30】 関連コードセットによるリソース使用
    を管理するためのコンピュータシステムであって、 前記関連コードセットに関連付けられたリソースコンテ
    キストであって、リソースタイプに関連付けられ、該リ
    ソースタイプが前記関連コードセットによってどれだけ
    使用されているかを示す、リソース標識を有するリソー
    スコンテキストと、 前記リソースコンテキストに関連付けられたリソースオ
    ブジェクトであって、前記リソースタイプが前記関連コ
    ードセットによってどれだけ使用されるかを示すリソー
    スオブジェクトと、 前記関連コードセットが、前記更新後のリソース標識に
    関連付けられた前記リソースタイプのリソース使用を増
    加させた場合に、前記リソースコンテキストの前記リソ
    ース標識を増分させるように構成された、更新メカニズ
    ムとを備えたコンピュータシステム。
  31. 【請求項31】 請求項30記載のコンピュータシステ
    ムであって、 前記リソースオブジェクトは、前記関連コードセットに
    よる前記リソースタイプの最大リソース使用量を示す、
    関連の最大制限を有しているコンピュータシステム。
  32. 【請求項32】 請求項31記載のコンピュータシステ
    ムであって、 前記リソースオブジェクトは、前記最大制限より低い第
    1の関連の限界を有しており、前記コンピュータシステ
    ムは、さらに、 前記関連コードセットによるリソース使用が前記第1の
    限界を超えた場合に、該コードセットに警告を発するよ
    うに構成されたアラームを備えたコンピュータシステ
    ム。
  33. 【請求項33】 請求項32記載のコンピュータシステ
    ムであって、 前記アラームはさらに、前記関連コードセットによるリ
    ソース使用が前記第1の限界以下に戻った場合に、該コ
    ードセットを改めるように構成されているコンピュータ
    システム。
  34. 【請求項34】 請求項32または請求項33に記載の
    コンピュータシステムであって、 前記リソースオブジェクトは、前記第1の限界より小さ
    い第2の関連の限界を有し、前記アラームはさらに、前
    記関連コードセットによるリソース使用が、前記第1の
    限界を超えた後に再び前記第2の限界以下に下がった場
    合に、前記関連コードセットを改めるように構成されて
    いる、コンピュータシステム。
  35. 【請求項35】 請求項30ないし請求項34のいずれ
    かに記載のコンピュータシステムであって、 前記リソースタイプは、メモリの使用と、CPUの使用
    と、ネットワークの使用と、オープンファイルの使用
    と、オープンソケットの使用と、モニタの使用と、から
    なる群より選択される、コンピュータシステム。
  36. 【請求項36】 請求項30ないし請求項35のいずれ
    かに記載のコンピュータシステムであって、 前記更新メカニズムはさらに、前記リソースコンテキス
    トの関連コードを代表して割り当てられた前記リソース
    タイプの任意のリソース部位に、前記リソースコンテキ
    ストをマッピングするように構成されている、コンピュ
    ータシステム。
  37. 【請求項37】 請求項30ないし請求項36のいずれ
    かに記載のコンピュータシステムであって、 前記リソースコンテキストの前記関連コードセットは、
    シングル保護ドメインに関連付けられている、コンピュ
    ータシステム。
JP2000273621A 1999-09-10 2000-09-08 リソースの使用を管理するための装置および方法 Expired - Lifetime JP4786785B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/394,118 US7028298B1 (en) 1999-09-10 1999-09-10 Apparatus and methods for managing resource usage
US09/394118 1999-09-10

Publications (2)

Publication Number Publication Date
JP2001134452A true JP2001134452A (ja) 2001-05-18
JP4786785B2 JP4786785B2 (ja) 2011-10-05

Family

ID=23557628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000273621A Expired - Lifetime JP4786785B2 (ja) 1999-09-10 2000-09-08 リソースの使用を管理するための装置および方法

Country Status (3)

Country Link
US (1) US7028298B1 (ja)
EP (1) EP1083485A3 (ja)
JP (1) JP4786785B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005056011A (ja) * 2003-08-08 2005-03-03 Hitachi Ltd 仮想一元化ネットワークストレージシステムにおける一元的なディスク使用量制御方法
JP2006236351A (ja) * 2005-02-22 2006-09-07 Microsoft Corp リソース管理方法およびシステム
JP2009037611A (ja) * 2002-04-26 2009-02-19 Ricoh Co Ltd 起動制御を行うためのプログラム
JP2014512048A (ja) * 2011-06-14 2014-05-19 エンパイア テクノロジー ディベロップメント エルエルシー クラウドコンピューティング環境のためのピーク性能を意識した課金
JP2017525035A (ja) * 2014-07-10 2017-08-31 オラクル・インターナショナル・コーポレイション マルチテナントアプリケーションサーバ環境におけるリソースの分離および消費のためのシステムおよび方法
JP2018206026A (ja) * 2017-06-02 2018-12-27 キヤノン株式会社 情報処理装置および資源管理方法
US10742568B2 (en) 2014-01-21 2020-08-11 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020129080A1 (en) * 2001-01-11 2002-09-12 Christian Hentschel Method of and system for running an algorithm
US7073177B2 (en) 2001-05-10 2006-07-04 Sun Microsystems, Inc. Resource managing system for changing resource consumption state of the lower priority resource entity to more restrictive state when resource reached critical level
US7792978B2 (en) * 2001-12-28 2010-09-07 At&T Intellectual Property I, L.P. System and method to remotely manage and audit set top box resources
US7019757B2 (en) * 2002-01-28 2006-03-28 International Business Machines Corporation Changing the alpha levels of an application window to indicate a status of a computing task
US7046254B2 (en) 2002-01-28 2006-05-16 International Business Machines Corporation Displaying transparent resource aids
US7146573B2 (en) * 2002-01-28 2006-12-05 International Business Machines Corporation Automatic window representation adjustment
DE60226176T2 (de) * 2002-01-30 2009-05-14 Real Enterprise Solutions Development B.V. Verfahren und programme zur einstellung von prioritätsstufen in einem datenverarbeitungssystem mit multiprogrammierung und priorisierte warteschlangenbildung
JP2003330732A (ja) * 2002-05-17 2003-11-21 Canon Inc 画像形成装置、制御方法、制御プログラム
GB0229670D0 (en) * 2002-12-19 2003-01-29 Ibm System and method for managing memory resources in a shared memory system
US7657893B2 (en) * 2003-04-23 2010-02-02 International Business Machines Corporation Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor
US7406694B2 (en) * 2003-06-20 2008-07-29 Microsoft Corporation Method and system for tracking kernel resource usage
US7496928B2 (en) * 2003-08-28 2009-02-24 Microsoft Corporation Method and system for moderating thread priority boost for I/O completion
US8271651B1 (en) * 2003-12-31 2012-09-18 Google Inc. Methods and systems for regulating resource usage
US8321858B1 (en) 2003-12-31 2012-11-27 Google Inc. Systems and methods for providing software updates
US8046763B1 (en) * 2004-02-20 2011-10-25 Oracle America, Inc. Regulation of resource requests to control rate of resource consumption
US7610586B2 (en) * 2004-04-30 2009-10-27 Tvworks, Llc Resource manager for clients in an information distribution system
US7143222B2 (en) * 2004-09-21 2006-11-28 International Business Machines Corporation Adaptive message delivery system
US8387052B2 (en) * 2005-03-14 2013-02-26 Qnx Software Systems Limited Adaptive partitioning for operating system
US9361156B2 (en) 2005-03-14 2016-06-07 2236008 Ontario Inc. Adaptive partitioning for operating system
JP2007004595A (ja) * 2005-06-24 2007-01-11 Hitachi Ltd コンピュータ制御方法、コンピュータ、情報処理システム、及びプログラム
US7814290B1 (en) * 2005-11-03 2010-10-12 Oracle America, Inc. Synchronous detection and signaling of memory quota violations for sequential memory allocation in a shared heap
US7987160B2 (en) * 2006-01-30 2011-07-26 Microsoft Corporation Status tool to expose metadata read and write queues
US8813082B2 (en) * 2006-06-22 2014-08-19 International Business Machines Corporation Thread priority based on object creation rates
US8516462B2 (en) * 2006-10-09 2013-08-20 International Business Machines Corporation Method and apparatus for managing a stack
US20080163230A1 (en) * 2006-12-29 2008-07-03 Fernando Latorre Method and apparatus for selection among multiple execution threads
US8386391B1 (en) * 2007-05-01 2013-02-26 Hewlett-Packard Development Company, L.P. Resource-type weighting of use rights
CN101393535B (zh) * 2007-09-19 2013-01-23 国际商业机器公司 将运行时事件与组件相关联的方法和系统
US8683483B2 (en) * 2008-03-25 2014-03-25 Oracle America, Inc. Resource utilization monitor
US20090316706A1 (en) * 2008-06-18 2009-12-24 Telect, Inc. Structured premise networking system
US8286134B2 (en) * 2008-07-15 2012-10-09 International Business Machines Corporation Call stack sampling for a multi-processor system
US9418005B2 (en) * 2008-07-15 2016-08-16 International Business Machines Corporation Managing garbage collection in a data processing system
US20100017583A1 (en) * 2008-07-15 2010-01-21 International Business Machines Corporation Call Stack Sampling for a Multi-Processor System
US8312268B2 (en) * 2008-12-12 2012-11-13 International Business Machines Corporation Virtual machine
JP5343586B2 (ja) * 2009-01-29 2013-11-13 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US20110289482A1 (en) * 2010-05-24 2011-11-24 Avaya Inc. Performance detection and debugging of applications
US9176783B2 (en) 2010-05-24 2015-11-03 International Business Machines Corporation Idle transitions sampling with execution context
US8843684B2 (en) 2010-06-11 2014-09-23 International Business Machines Corporation Performing call stack sampling by setting affinity of target thread to a current process to prevent target thread migration
US8799872B2 (en) 2010-06-27 2014-08-05 International Business Machines Corporation Sampling with sample pacing
US8799904B2 (en) 2011-01-21 2014-08-05 International Business Machines Corporation Scalable system call stack sampling
JP5708049B2 (ja) * 2011-03-07 2015-04-30 株式会社リコー 情報処理装置、制御方法、制御プログラム、及び記録媒体
US8505021B2 (en) * 2011-08-29 2013-08-06 Kaspersky Lab Zao Efficient management of computer resources
US9712546B2 (en) * 2014-09-12 2017-07-18 Level 3 Communications, Llc Dynamic configuration of settings in response to DDOS attack
US20180129537A1 (en) * 2016-11-10 2018-05-10 Microsoft Technology Licensing, Llc Managing memory usage using soft memory targets
US11570632B1 (en) * 2018-03-20 2023-01-31 Amazon Technologies, Inc. Algorithm for improving zigbee reliability and latency in a multi-radio system
CN109445880A (zh) * 2018-10-23 2019-03-08 数贸科技(北京)有限公司 跨线程调用链上下文的传递方法、装置及电子设备
US20210184977A1 (en) * 2019-12-16 2021-06-17 Citrix Systems, Inc. Cpu and priority based early drop packet processing systems and methods

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0253150A (ja) * 1988-08-17 1990-02-22 Nec Corp メモリ割り当て量調査方式
JPH02297233A (ja) * 1989-05-11 1990-12-07 Mitsubishi Electric Corp メモリ管理方法
JPH08166888A (ja) * 1994-12-14 1996-06-25 Nec Corp メモリ管理装置
JPH10320266A (ja) * 1997-03-19 1998-12-04 Fujitsu Ltd 計算機システムにおけるメモリ返却忘れ検出方法とその装置およびそのための記録媒体

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5214778A (en) * 1990-04-06 1993-05-25 Micro Technology, Inc. Resource management in a multiple resource system
JPH06250928A (ja) * 1993-02-24 1994-09-09 Matsushita Electric Ind Co Ltd 情報処理装置
US6684261B1 (en) * 1993-07-19 2004-01-27 Object Technology Licensing Corporation Object-oriented operating system
US5471526A (en) * 1994-02-28 1995-11-28 Telefonaktiebolaget L M Ericsson (Publ.) Tracing with keys and locks on a telecommunication network
US6173289B1 (en) * 1995-07-07 2001-01-09 Novell, Inc. Apparatus and method for performing actions on object-oriented software objects in a directory services system
JP2000516408A (ja) * 1995-12-11 2000-12-05 ヒューレット・パッカード・カンパニー 遠隔通信システムに使用されるサービス資源項目のアクセス方法
US5838968A (en) * 1996-03-01 1998-11-17 Chromatic Research, Inc. System and method for dynamic resource management across tasks in real-time operating systems
US5905860A (en) * 1996-03-15 1999-05-18 Novell, Inc. Fault tolerant electronic licensing system
US5764235A (en) * 1996-03-25 1998-06-09 Insight Development Corporation Computer implemented method and system for transmitting graphical images from server to client at user selectable resolution
US6219708B1 (en) * 1996-05-30 2001-04-17 Multi-Tech Systems, Inc. System for network resource management
US6298422B1 (en) * 1996-06-17 2001-10-02 Network Associates, Inc. Method for reducing the memory requirements for an application program executing in a multi-tasking environment
US6006248A (en) * 1996-07-12 1999-12-21 Nec Corporation Job application distributing system among a plurality of computers, job application distributing method and recording media in which job application distributing program is recorded
US6438573B1 (en) * 1996-10-09 2002-08-20 Iowa State University Research Foundation, Inc. Real-time programming method
US6148377A (en) * 1996-11-22 2000-11-14 Mangosoft Corporation Shared memory computer networks
US5826239A (en) * 1996-12-17 1998-10-20 Hewlett-Packard Company Distributed workflow resource management system and method
IL120420A (en) * 1997-03-10 1999-12-31 Security 7 Software Ltd Method and system for preventing the downloading and execution of executable objects
US5958010A (en) * 1997-03-20 1999-09-28 Firstsense Software, Inc. Systems and methods for monitoring distributed applications including an interface running in an operating system kernel
US5796952A (en) * 1997-03-21 1998-08-18 Dot Com Development, Inc. Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database
US6421737B1 (en) * 1997-05-02 2002-07-16 Hewlett-Packard Company Modularly implemented event monitoring service
US5961586A (en) * 1997-05-14 1999-10-05 Citrix Systems, Inc. System and method for remotely executing an interpretive language application
US5983316A (en) * 1997-05-29 1999-11-09 Hewlett-Parkard Company Computing system having a system node that utilizes both a logical volume manager and a resource monitor for managing a storage pool
US6064974A (en) * 1997-05-30 2000-05-16 Novell, Inc. Method and system for monitoring the status of a limited resource
US6188995B1 (en) * 1997-07-28 2001-02-13 Apple Computer, Inc. Method and apparatus for enforcing software licenses
US6112240A (en) * 1997-09-03 2000-08-29 International Business Machines Corporation Web site client information tracker
US6363411B1 (en) * 1998-08-05 2002-03-26 Mci Worldcom, Inc. Intelligent network
US6425005B1 (en) * 1997-10-06 2002-07-23 Mci Worldcom, Inc. Method and apparatus for managing local resources at service nodes in an intelligent network
US6184878B1 (en) * 1997-12-23 2001-02-06 Sarnoff Corporation Interactive world wide web access using a set top terminal in a video on demand system
US6182022B1 (en) * 1998-01-26 2001-01-30 Hewlett-Packard Company Automated adaptive baselining and thresholding method and system
US6311327B1 (en) * 1998-03-02 2001-10-30 Applied Microsystems Corp. Method and apparatus for analyzing software in a language-independent manner
US6430615B1 (en) * 1998-03-13 2002-08-06 International Business Machines Corporation Predictive model-based measurement acquisition employing a predictive model operating on a manager system and a managed system
US6055650A (en) * 1998-04-06 2000-04-25 Advanced Micro Devices, Inc. Processor configured to detect program phase changes and to adapt thereto
US6381321B1 (en) * 1998-05-04 2002-04-30 T-Netix, Inc. Telecommunication resource allocation system and method
US6093216A (en) * 1998-05-29 2000-07-25 Intel Corporation Method of run-time tracking of object references in Java programs
US6947987B2 (en) * 1998-05-29 2005-09-20 Ncr Corporation Method and apparatus for allocating network resources and changing the allocation based on dynamic workload changes
US6363421B2 (en) * 1998-05-31 2002-03-26 Lucent Technologies, Inc. Method for computer internet remote management of a telecommunication network element
US6259448B1 (en) * 1998-06-03 2001-07-10 International Business Machines Corporation Resource model configuration and deployment in a distributed computer network
US6553403B1 (en) * 1998-06-03 2003-04-22 International Business Machines Corporation System, method and computer program product for monitoring in a distributed computing environment
US6279034B1 (en) * 1998-06-03 2001-08-21 International Business Machines Corporation Distributed monitor timer service for use in a distributed computing environment
JP3597051B2 (ja) * 1998-07-31 2004-12-02 株式会社ソニー・コンピュータエンタテインメント データ処理システム及び方法、並びにデータ処理装置及び方法
US6327622B1 (en) * 1998-09-03 2001-12-04 Sun Microsystems, Inc. Load balancing in a network environment
US6370572B1 (en) * 1998-09-04 2002-04-09 Telefonaktiebolaget L M Ericsson (Publ) Performance management and control system for a distributed communications network
US6289446B1 (en) * 1998-09-29 2001-09-11 Axis Ab Exception handling utilizing call instruction with context information
JP2000172657A (ja) * 1998-12-08 2000-06-23 Fujitsu Ltd 分散処理システム、分散処理方法、その方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体、サーバ装置およびクライアント装置
US6510466B1 (en) * 1998-12-14 2003-01-21 International Business Machines Corporation Methods, systems and computer program products for centralized management of application programs on a network
US6343280B2 (en) * 1998-12-15 2002-01-29 Jonathan Clark Distributed execution software license server
US6295602B1 (en) * 1998-12-30 2001-09-25 Spyrus, Inc. Event-driven serialization of access to shared resources
US6327702B1 (en) * 1998-12-30 2001-12-04 Microsoft Corporation Generating a compiled language program for an interpretive runtime environment
US6970925B1 (en) * 1999-02-03 2005-11-29 William H. Gates, III Method and system for property notification
US6173442B1 (en) * 1999-02-05 2001-01-09 Sun Microsystems, Inc. Busy-wait-free synchronization
US6341371B1 (en) * 1999-02-23 2002-01-22 International Business Machines Corporation System and method for optimizing program execution in a computer system
US6430570B1 (en) * 1999-03-01 2002-08-06 Hewlett-Packard Company Java application manager for embedded device
US6463454B1 (en) * 1999-06-17 2002-10-08 International Business Machines Corporation System and method for integrated load distribution and resource management on internet environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0253150A (ja) * 1988-08-17 1990-02-22 Nec Corp メモリ割り当て量調査方式
JPH02297233A (ja) * 1989-05-11 1990-12-07 Mitsubishi Electric Corp メモリ管理方法
JPH08166888A (ja) * 1994-12-14 1996-06-25 Nec Corp メモリ管理装置
JPH10320266A (ja) * 1997-03-19 1998-12-04 Fujitsu Ltd 計算機システムにおけるメモリ返却忘れ検出方法とその装置およびそのための記録媒体

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009037611A (ja) * 2002-04-26 2009-02-19 Ricoh Co Ltd 起動制御を行うためのプログラム
JP4565024B2 (ja) * 2002-04-26 2010-10-20 株式会社リコー アプリケーションプログラム、画像形成装置、及びアプリケーションプログラム実行方法
JP2005056011A (ja) * 2003-08-08 2005-03-03 Hitachi Ltd 仮想一元化ネットワークストレージシステムにおける一元的なディスク使用量制御方法
JP2006236351A (ja) * 2005-02-22 2006-09-07 Microsoft Corp リソース管理方法およびシステム
JP2014512048A (ja) * 2011-06-14 2014-05-19 エンパイア テクノロジー ディベロップメント エルエルシー クラウドコンピューティング環境のためのピーク性能を意識した課金
US9727847B2 (en) 2011-06-14 2017-08-08 Empire Technology Development Llc Peak-performance-aware billing for cloud computing environment
US10742568B2 (en) 2014-01-21 2020-08-11 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US11343200B2 (en) 2014-01-21 2022-05-24 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US11683274B2 (en) 2014-01-21 2023-06-20 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
JP2017525035A (ja) * 2014-07-10 2017-08-31 オラクル・インターナショナル・コーポレイション マルチテナントアプリケーションサーバ環境におけるリソースの分離および消費のためのシステムおよび方法
JP2018206026A (ja) * 2017-06-02 2018-12-27 キヤノン株式会社 情報処理装置および資源管理方法
US10606748B2 (en) 2017-06-02 2020-03-31 Canon Kabushiki Kaisha Apparatus and method for garbage collection on socket objects

Also Published As

Publication number Publication date
EP1083485A3 (en) 2004-02-25
JP4786785B2 (ja) 2011-10-05
EP1083485A2 (en) 2001-03-14
US7028298B1 (en) 2006-04-11

Similar Documents

Publication Publication Date Title
JP4786785B2 (ja) リソースの使用を管理するための装置および方法
US11016879B2 (en) Determining costs based on computer memory usage
US6353838B2 (en) Incremental garbage collection
US6070202A (en) Reallocation of pools of fixed size buffers based on metrics collected for maximum number of concurrent requests for each distinct memory size
EP1101167B1 (en) Method and apparatus for achieving deterministic memory allocation response in a computer system
US9613073B2 (en) Managing object lifetime in a cyclic graph
US7840773B1 (en) Providing memory management within a system management mode
US6829772B2 (en) Apparatus and methods for communicating between resource domains
EP3283965B1 (en) Reducing memory commit charge when compressing memory
US7822938B2 (en) System and method for performing garbage collection based on unmanaged memory allocations
US20120005448A1 (en) Demand-Based Memory Management of Non-pagable Data Storage
JP2010272059A (ja) メモリ管理方法計算機システム及びプログラム
JP2006172495A (ja) プログラム制御装置、プログラム制御方法、およびプログラム記録媒体
JP3826626B2 (ja) プログラム制御装置、プログラム制御方法、およびプログラム記録媒体
JP4345748B2 (ja) メモリ割当装置、メモリ割当方法、およびプログラム記録媒体
CN109343976A (zh) 一种单任务实时消息传递操作系统
CN111752851A (zh) 一种内存回收方法及装置
Chen et al. mBalloon: enabling elastic memory management for big data processing
JP2003330741A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100601

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110419

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110422

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110602

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110606

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110705

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110714

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4786785

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140722

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term