JP2008217786A - コンピューティング環境内のメモリ管理方法、メモリ管理システム及びコンピュータ・プログラム - Google Patents

コンピューティング環境内のメモリ管理方法、メモリ管理システム及びコンピュータ・プログラム Download PDF

Info

Publication number
JP2008217786A
JP2008217786A JP2008041383A JP2008041383A JP2008217786A JP 2008217786 A JP2008217786 A JP 2008217786A JP 2008041383 A JP2008041383 A JP 2008041383A JP 2008041383 A JP2008041383 A JP 2008041383A JP 2008217786 A JP2008217786 A JP 2008217786A
Authority
JP
Japan
Prior art keywords
task
execution
determining
response
context
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
JP2008041383A
Other languages
English (en)
Other versions
JP5182801B2 (ja
Inventor
Gergana Vassileva Markova
ジェルガナ・ヴァルシルヴァ・マルコーヴァ
Harry Clayton Husfelt Jr
ハリー・クレイトン・ハスフェルト・ジュニア
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2008217786A publication Critical patent/JP2008217786A/ja
Application granted granted Critical
Publication of JP5182801B2 publication Critical patent/JP5182801B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Memory System (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】コンピューティング環境内でメモリを管理するためのシステム及び方法を提供する。
【解決手段】
この方法は、コンピューティング環境内で実行されるアプリケーションのための第1のタスクに関連する第1のオブジェクトを一意的に識別するステップを含む。前記第1のオブジェクトには、第1のメモリ領域が割り振られる。また、この方法は、前記第1のタスクに関連する第1の実行コンテキストに従って、前記第1のタスクのための第1の実行スコープを決定するステップを含む。前記第1のコンテキストは、前記実行環境階層内の前記第1のタスクのための第1の予測存続時間を定義する。さらに、この方法は、前記第1の実行コンテキストをモニタすることに応答して、前記第1のタスクの実行スコープの変化を決定するステップと、前記第1のタスクがもはや前記第1の実行スコープ中で実行されないと決定することに応答して、前記第1のメモリ領域の割り振りを解除するステップとを含む。
【選択図】図3

Description

本発明は、コンピューティング環境内のメモリ管理に係り、さらに詳細に説明すれば、コンピューティング環境内で実行されるタスクに対し、当該タスクの実行スコープに基づいてメモリ空間を決定論的に割り振り及び割り振り解除するシステム及び方法に係る。
コンピューティング環境内のメモリ管理は、特定のメモリ管理方式に従って、実行可能な論理コード(すなわち、ソフトウェア・プログラム)をロードするためのコンピュータ・メモリの部分を予約したり、その後の再使用に備えてメモリを解放することを必要とする。一般に、メモリを予約するプロセスを、論理オブジェクトに対するメモリ空間の「割り振り」(allocating)と称し、メモリを解放するプロセスを、メモリ空間の「割り振り解除」(deallocating)と称する。
割り振り解除方式は、使用するプログラミング言語のタイプに依存して、「ガーベジ・コレクション」プロセスを含むことがある。「ガーベジ」とは、プログラムの適切な実行にもはや必要とされない、論理オブジェクトに割り振られたメモリ空間を意味する。一般に、かかるガーベジ・オブジェクトが集められると、対応するメモリ空間の割り振りが解除される。
従来技術では、手動的及び自動的なメモリ管理方式が実装されている。手動方式では、プログラマは、未使用オブジェクトに関連するメモリ空間を識別し且つその割り振りを解除するための命令を、論理コード内にアクティブに挿入しなければならない。自動方式は、プログラミング言語のレベルでのみ使用され、システムのメモリが少なくなっていることを検出する場合に限り、ガーベジ・コレクション・サイクルを開始させる。
しかし、これらの2つの方式は、ウェブ・サーバと1つ以上のクライアント・マシンの間で確立される多数のセッションをサポートする、インターネット・ベースのアプリケーション(すなわち、ウェブ・アプリケーション)のようなメモリ集約的なソフトウェア・アプリケーションでは、最適の結果を提供しない。例えば、ウェブ・セッション中に1つ以上のクライアントからウェブ・サーバに発信される複数の要求にサービスを提供するために複数のサーブレットが利用される場合には、メモリ管理は、一段と厄介で且つ複雑なものとなる。
一般に、セッション中にメモリが論理オブジェクトに割り振られる場合、この論理オブジェクトに対応するタスクが当該セッションの全長にわたってアクティブ状態又は非アクティブ状態の何れにあるかに拘わらず、メモリは、当該セッションが終了するまで割り振られたままに留まる。複雑なウェブ・アプリケーションは、各セッション中に多数の論理タスク及びサーブレットの実行をサポート及び必要とすることがある。もし、各セッションの終わりまで又はメモリが不十分な状態でシステムが稼働するようになるまで、ガーベジ・コレクション・プロセスが遅延されるならば、ウェブ・サーバは速やかにメモリを使い果たし且つ回復不能になることがあるので、ウェブ・サーバの性能が悪影響を受けることになろう。
従って、当分野では、前述の欠点を克服することができるメモリ管理方法及びシステムが要請されている。
本発明は、コンピューティング環境内のアクティブ・タスクのための1つ以上の実行スコープ(execution scope)を定義することにより、コンピューティング環境内のメモリ管理を容易にするシステム及び対応する方法に向けられる。
本明細書では、本発明の特定の側面、利点及び新規な機能を簡潔に説明する。しかし、本発明の特定の実施形態では、かかる利点の全てが達成されるとは限らないことに留意されたい。従って、本発明は、本明細書で教示又は示唆されている全ての利点を達成することなく、そのうちの1つの利点又は1群の利点を達成するように実施することができる。
第1の実施形態に従って、コンピューティング環境内のメモリ管理方法が提供される。この方法は、コンピューティング環境内で実行されるアプリケーションのための第1のタスクに関連する第1のオブジェクトを一意的に識別するステップを含む。前記第1のオブジェクトには、第1のメモリ領域が割り振られる。また、この方法は、前記第1のタスクに関連する第1の実行コンテキストに従って、前記第1のタスクのための第1の実行スコープを決定するステップを含む。前記第1のコンテキストは、実行環境階層内の前記第1のタスクのための第1の予測存続時間を定義する。さらに、この方法は、前記第1の実行コンテキストをモニタすることに応答して、前記第1のタスクの実行スコープの変化を決定するステップと、前記第1のタスクがもはや前記第1の実行スコープ中で実行されないと決定することに応答して、前記第1のメモリ領域の割り振りを解除するステップとを含む。
第2の実施形態に従って、コンピューティング環境内のメモリ管理システムが提供される。このシステムは、コンピューティング環境内で実行されるアプリケーションのための第1のタスクに関連する第1のオブジェクトを一意的に識別する論理装置を備える。前記第1のオブジェクトには、第1のメモリ領域が割り振られる。また、このシステムは、前記第1のタスクに関連する第1の実行コンテキストに従って、前記第1のタスクのための第1の実行スコープを決定する論理装置を備える。 前記第1のコンテキストは、実行環境階層内の前記第1のタスクのための第1の予測存続時間を定義する。さらに、このシステムは、前記第1の実行コンテキストをモニタすることに応答して、前記第1のタスクの実行スコープの変化を決定する論理装置と、前記第1のタスクがもはや前記第1の実行スコープ中で実行されないと決定することに応答して、前記第1のメモリ領域の割り振りを解除する論理装置とをさらに備える。
第3の実施形態では、前記方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラムが提供される。
本発明は、多数の論理タスク及びサブタスクが実行されるアプリケーション環境内のメモリ管理を容易にするシステム及び対応する方法に向けられる。メモリ管理方法は、1つ以上のタスク及びサブタスクのための種々の実行スコープ(例えば、セッション・スコープ、タスク/サブタスク・スコープ及び現在のスコープ)を定義し且つモニタするように実装される。その結果、前記タスクに関連するオブジェクトは、前記定義された実行スコープに従って、メモリから除去されるようになる。
以下では、本発明の種々の実施形態を十分に説明するために、多数の詳細事項を記述する。発明の特定の実施形態は、かかる詳細事項を用いることなく、又はその幾つかの変形版を用いて、実施することができる。或る場合には、本発明の他の側面を不明瞭にしないように、特定の機能を必要以上に詳細に記述しないことにする。各要素又は各機能に関連する記述の詳細度は、1つの機能が他の機能に比べてより新規又は重要であることを意味するものと解釈すべきではない。
例えば、以下では、ウェブ・ベースの環境内で実行されるサーブレットに適用可能なものとして、本発明の特定の側面を開示する。しかし、かかるアプリケーションは、一例に過ぎないので、本発明の範囲は、かかる実施形態に限定されるものと解釈すべきではない。代替実施形態では、本明細書に開示したシステム及び方法を、任意のコンピューティング環境内でメモリを管理するために適用することができる。
図1は、サーバ・システム(以下「サーバ」と略記)110が通信ネットワーク(以下「ネットワーク」と略記)130を介してクライアント・システム(以下「クライアント」と略記)120と通信関係にある、代表的なコンピューティング環境を示す。この実施形態では、ネットワーク130は、サーバ110及びクライアント120を含む多数のコンピューティング・システムが互いに通信するように相互に接続される、インターネット(すなわち、ワールド・ワイド・ウェブ(WWW))上に実装される。しかし、代替実施形態では、実装に依存して、ネットワーク130を、ローカル、リモート又は分散フレームワークに従って構築することができる。
好ましくは、サーバ110は、ウェブ・サーバであり、クライアント120は、ネットワーク130を介してサーバ110に要求を発信するためのクライアント・ソフトウェア環境125を有するコンピュータである。図示のように、サーバ110のサーバ・ソフトウェア環境115は、クライアント120によって発信された要求に応答するように構成される。ネットワーク130上の要求及び応答の交換は、クライアント120の要求にサービスを提供するためにサーバ110とクライアント120の間で確立される、1つ以上のセッションのコンテキスト内で行われる。
発信された要求には、サーバ・ソフトウェア環境115内で実行中のアプリケーション150によってサービスを提供することができる。アプリケーション150は、例えばウェブ・ベースの環境内に持続する論理コード(例えば、Java(登録商標)アプレット、Java(登録商標)サーブレット又は他の機能的に同等のモジュール)とすることができる。すなわち、セッション中に受け取られた第1の要求に応答してアプリケーション150が一旦呼び出されると、アプリケーション150は、当該セッションの残りの間に発信される1つ以上の後続の要求を実行するためにメモリ内でアクティブに留まるのが好ましい。
このように、アプリケーション150がメモリ内に持続すると、クライアント120の要求に対し有効に応答することができる。従って、要求が実行された後にサーバ110の実行環境から除去されるような他のアプリケーション(例えば、コモン・ゲートウェイ・インタフェース(CGI)プログラム)とは対照的に、メモリ内に持続するアプリケーション150は、要求にサービスを提供する度に必要とされるような設定及び解放手順に関連する遅延時間を回避することができるという点で有利である。
次に、図1及び図2を参照して説明する。実施形態では、アプリケーション150は、例えば、クライアント120から発信される1つ以上の要求に応答して、サーバ110によって起動される(S210)。アプリケーション150は、クライアントの数又は発信される要求の数に依存して、1つ以上のセッションを管理することができる(S220)。各セッション中、アプリケーション150は、図1に示す1つ以上のタスク及びサブタスク(例えば、タスク1〜3、サブタスク1〜6等)を開くように実行することができる。
これらのタスク及びサブタスクは、例えば、クライアント要求にサービスを提供するように構成されるサーブレット、Java(登録商標)サーバ・ページ(JSP)又は他のプログラミング・アプリケーション(例えば、アプリケーション・プログラム・インタフェース(API))によって実行又は管理される、1つ以上の動作に関連する。図示のように、或るタスク(例えば、タスク2)は、同じセッション中に開くことができる、1つ以上のサブタスク(例えば、サブタスク3〜5)を有することがある。また、各サブタスクも、1つ以上の他のサブタスクを有することがある。
各タスク又はサブタスクは、一旦開かれると、メモリ空間が割り振られる少なくとも1つの論理オブジェクトに関連付けられる。各オブジェクトは、そのタスク又はサブタスクのための関連する動作を行うように実行される。各セッション中、実装に依存して、種々の管理方式を使用することにより、各タスク/サブタスク及びこれに関連する割り振り済みのメモリ空間を管理することができる。例えば、或る論理モジュール(例えば、セッション・マネージャAPI)を使用することにより、各タスク/サブタスクに関連するセッション・オブジェクトを追加又は除去することができる。
セッション・マネージャは、例えば要求にサービスを提供するために新しいタスク/サブタスクがアプリケーション150によって開かれるか否かを決定する(S230)。新しいタスク/サブタスクが開かれる場合、セッション・マネージャは、実行階層内でタスク及び関連するサブタスクを追跡するために、データ構造(例えば、記述子ファイル)をモニタ又は編集する。好ましくは、セッション・マネージャは、タスクの実行スコープに従って、アプリケーション150によって開かれる各タスクに対し、一意的な識別子を割り当てる。この一意的な識別子は、以下で詳述するように、タスク・タイプを定義するとともに、各タスク/サブタスクを分類するために使用することができる。
記述子ファイルは、各タスク・タイプの記述を定義する、エクステンシブル・マークアップ言語(XML)のようなプログラミング言語の構文を含む。例えば、記述子ファイルの要素は、各タスクの構成要素を定義することができる。定義された各タスク・タイプごとに、デフォルトの特定構成要素を、タスク・タイプの定義内でタスクの初期デフォルト構成要素として識別することができる。従って、開発者は、ユーザが行うことができる1組のタスクを定義することにより、各タスク・タイプごとに、1つ以上の特定構成要素(例えば、代替のJSPページ)を定義することができる。
新しいタスク/サブタスクが開かれる場合、或る論理モジュール(例えば、スコープ・マネージャAPI)を使用して、当該新しいタスク/サブタスクの実行スコープを決定する(S240)。実施形態では、スコープ・マネージャを使用することにより、各タスク/サブタスクに関連し且つセッション中に共有されるオブジェクトをモニタする。従って、スコープ・マネージャは、セッション・オブジェクトの生成(すなわち、割り振り)及び除去(すなわち、割り振り解除)を管理するとともに、当該セッションへのオブジェクトの追加又は当該セッションからのオブジェクトの除去を要求する能力をサポートする。
次に、図3を参照して説明する。スコープ・マネージャは、セッション中に開かれたタスク/サブタスクのための許可された実行スコープも定義するように実装される(S310)。すなわち、スコープ・マネージャは、現在のアプリケーション・フローに関して各タスクに対応する1つ以上のオブジェクトの存続時間粒度(lifetime granularity)を指定するとともに、当該オブジェクトの許可された実行スコープを更新するように実装される。許可された実行スコープを定義すると(すなわち、セッション中のタスク/サブタスクのための多層の存続時間粒度を定義すると)、サーバ110のメモリ空間が臨界的に低いしきい値に達する前に、そして当該タスク/サブタスクに対応する1つ以上のオブジェクトがその内部に持続するような当該セッションが終了する前に、種々の実行コンテキスト又はレベルで当該オブジェクトに割り振られたメモリ空間を解放する可能性に備えることができる。
スコープ・マネージャは、例えば、タスク/サブタスクがセッションに追加される時点において、当該タスク/サブタスクのための許可された実行スコープ及び当該タスク/サブタスクに対応するオブジェクトを定義する。実行スコープは、次の3つのスコープ又はコンテキストに従って定義することができる。
(1)アプリケーション・コンテキスト
(2)タスク/サブタスク・コンテキスト
(3)現在のコンテキスト
しかし、実装に依存して、他のコンテキスト又は基準を指定できることに留意されたい。但し、本明細書の記述を簡潔にするため、以下では、前述の3つの実行コンテキストに基づいて説明する。
アプリケーション・コンテキストでは、アプリケーション150に関連するオブジェクトは、当該セッションの間アクティブに維持される。すなわち、アプリケーション150の動作を制御する対応するオブジェクトは、当該セッションが終了するまで、実行環境から除去されない。アプリケーション・コンテキストは、種々のタスク/サブタスク間で共有され且つ潜在的に更新される状態情報のための実行スコープを定義するために使用することができる。例えば、サーバ上の定義されたノード及びスケジュールを概説するサーバ状態構造は、多数のタスク、コンピュータ、アプリケーション、ノード・グループ及びスケジュールから更新することができ、当該セッションの存続時間にわたって持続することが好ましい。
タスク/サブタスク・コンテキストでは、開かれたタスク/サブタスクに関連するオブジェクトは、当該タスク/サブタスクの実行期間(すなわち、当該タスク/サブタスクが発信された要求に応答するためにアクティブである間)にわたって維持される。例えば、IBM Tivoli Storage Manager(ITSM)のノード・グループ・タスクでは、ITSMサーバに対して定義されたノード・グループに関する関係情報、現在の状態及びタスク構成要素のための情報データ(例えば、当該ノード・グループ・タスクで起動されたウィザード、ノートブック及びフォーム)は、対応するタスクの終了まで維持される。
現在のコンテキストでは、アクティブなタスク/サブタスクに関連するオブジェクトは、その時点でアクティブなタスク/サブタスクの構成要素の期間にわたって維持される。例えば、ITSMのノード・グループ・タスクでは、特定のコンピュータ又はアプリケーションのノートブックがユーザに表示される前に、当該コンピュータ又はアプリケーションが選択される場合、ファイル空間テーブル・データが当該ノートブックに関連することがある。かかるシナリオでは、現在のコンテキストは、例えば、一意的なJSPページに関連する。
そのため、スコープ・マネージャは、予め定義された実行コンテキストに従って、セッション中の各タスク/サブタスクのための実行スコープをモニタする(S320)。当該タスク/サブタスクが許可された実行スコープ中に実行を完了した場合(S330)、スコープ・マネージャは、実行環境から当該タスク/サブタスクに関連するオブジェクトを除去する(S340)。また、セッションが終了する場合(S350)、セッション・マネージャは、アプリケーションに関係する全て又は一部のセッション・オブジェクトを除去する(S360)。
以下では、Java(登録商標)オブジェクト・クラスに従って実装された代表的なスコープ・マネージャのインタフェースを開示する。しかし、開示された主題を異なるプログラミング言語で実装したり、修正することが可能であるので、本発明の範囲は、この実施形態に限定されるものと解釈すべきではない。
public class DsmScopeManager
{
public static final byte COMP_SCOPE;
public static final byte TASK_SCOPE;
public static final byte CCT_SCOPE;
public static final void add (byte scope, String scopeID, Object value, HttpSession session);
public static final void add (byte scope, final Object[][]attrs, HttpSession session);
public static final void addPersistent (String scopeID, Object value, byte scope, HttpSession session);
public static final void makePersistent (String scopeID, byte scope, HttpSession session);
public static final HashSet getScopeAttrSet (byte scope, HttpSession session);
public static final void cleanUp (byte scope, HttpSession session);
public static final void cleanUpTask (WccContext, wccContext, HttpSession session);

}
以下で説明する代表的なフレームワークは、スコープ・マネージャの機能性をサポートする。このフレームワークは、アプリケーション150の実行時フローを管理するソフトウェア・アプリケーションであって、好ましくは、アプリケーション、タスク及びタスク特有の構成要素を検出するようにウェブ・コンテナ内で実装される。さらに、このフレームワークは、ユーザ・フローの状態及びオブジェクトの実行スコープを検出することに加えて、適切なメモリ管理及びオブジェクトのクリーンアップ方式を決定することを支援する。
実施形態では、このフレームワークは、アプリケーション・フローを検出し且つアクティブ・タスク及びそれらの関連する構成要素をモニタするために使用される、1組の関連するクラスから成る。このフレームワークを使用すると、現在アクティブなタスク、現在ユーザに表示されているタスク、各タスクのための現在アクティブな構成要素、及びそれらの構成要素がユーザに表示されていたフローを、モニタ及び決定することができる。
特定のクラス(例えば、DsmTasksFactoryクラス)は、適切なタスク及び関連する構成要素を識別するために実装することができる。実施形態では、かかるクラスは、例えば、singletonクラスとして実装される。singletonクラスは、単一のインスタンスがそのために作成されるクラスである。
好ましくは、前記クラスは、所与のDSMタスク・タイプをサポートするための情報を提供し、入力として、例えば、各DSMタスク・タイプを記述するXMLアプリケーション記述子ファイルを取る。かかるXMLファイルの要素は、或るタスクを起動するのに必要な予め定義された情報項目を提供し、また可能であれば、タスク特有の構成要素がマップされるネストされた構成要素(例えば、タスクのJSPページ及び代替的なJSPページ)を起動するのに必要な予め定義された情報項目を提供することができる。
実施形態では、メソッド・インタフェースは、タスク・スコープの属性セットアップに対するアクセスをサポートする。コントローラ(例えば、DsmTaskController)クラスは、タスクに関係するイベントを処理する役割を有し、アプリケーション150内の各タスクの論理タスク及び内容の生成及び管理をサポートすることができる。このコントローラは、1つ以上のタスクを活動化、非活動化又は終了するというような、特定のタスク・イベントを管理する役割を、或るアプリケーション・モジュール(例えば、タスク・イベント・リスナ)に委任する。
従って、このフレームワークは、或るセッションにおけるセットアップ、ステータス、実行階層、1つ以上のタスクのスコープ及び関係するイベントをモニタし且つこれらを制御する。従って、実施形態では、このフレームワークは、タスク・ビューを含むタスク・フレーム(例えば、JSP)を作成し、そして好ましくは、タスク・ヘルプのようなタスク特有の他の特性を識別する。或る処理モジュールは、応答を生成し、これをユーザのブラウザに送信してアプリケーション・ユーザ・インタフェースの所与のタスク・セクションを表示するか、又は当該タスクが既に存在する場合にはそのセクションを更新する。
タスク/サブタスクが完了する時点では、これに関連するスコープ属性がクリーンアップされ、セッション実行環境から除去される。また、スコープ・コンテキストを追跡する、フレームワークが作成したオブジェクト構造も、これを無視することが好ましい。実施形態では、或るクラス(例えば、DsmConsoleContext)を定義し、これをサポート用フレームワークの観点から見たアプリケーション150の状態に関する情報から構成する。前記クラスは、現在のアプリケーション・セッションの存続時間にわたって持続すべきセッション・スコープ名を全て蓄積する。
実施形態では、或るサーブレット又はポートレット・パッケージは、セッション中に資源を管理するのを支援するためのインタフェース及びクラス(例えば、HttpSessionBindingListener インタフェース及び HttpSessionBindingEvent クラス)を提供する。例えば、或るオブジェクト(例えば、DsmConsoleContext オブジェクト)は、或るセッション(例えば、HttpSession)に関連付ける(例えば、バウンドする)ことができる。この関連付けを通して、このフレームワークは、セッションの終了を検出し、その結果、対応するオブジェクトを実行環境から除去することができる。
実施形態では、或る定義されたコンテキスト・クラス(例えば、DsmConsoleContext)は、前記セッション(例えば、HttpSession)に対する参照を有し、その逆も同様である。この定義されたコンテキスト・クラスが前記セッションから分離(例えば、アンバウンド)される場合、前記セッションと前記コンテキストの間の2重の参照が除去される。この2重の参照は、前記セッション又は前記コンテキストの何れかが利用可能であれば、このフレームワークが前記セッションにアクセスすることを可能にする。
他のコンテキスト・クラス(例えば、WccContext クラス)は、タスク・ナビゲーション及び属性スコープの現在の状態をモニタするために実装することができる。このクラスは、種々の実行スコープ中に現在表示されている又はアクティブなタスクをモニタするとともに、例えば、受信された要求に応答して、オン・デマンドで作成又は削除される対応するオブジェクト・インスタンス(例えば、DsmTask インスタンス)を追跡する。
実施形態に従って、アプリケーション150が起動される場合、或るデフォルト・タスクが作成され、現在表示されているタスクを表すものと仮定される。或るオブジェクト・クラス(例えば、DsmTask クラス)は、或るタスクのための属性メモリ管理情報を定義し、好ましくは、当該タスクのための一意的な識別子及び当該タスクの存続時間にわたってセッション・スコープ中に維持される1組の持続属性に関係する情報を保持する。種々の実行スコープ中に或るタスクのために追加情報が蓄積されると、前記オブジェクト・クラス(例えば、DsmTask クラス)は、当該タスクの構成要素の表示フローをモニタする。そのため、現在のタスク構成要素は、このクラスによってモニタされる。
幾つかの実施形態では、或るタスクが最初に開かれる場合、対応するタスク・タイプのための記述子ファイルで定義されるように、当該タスクの主構成要素が現在のコンテキストを表すものと仮定される。このフレームワークは、或るイベントに基づいて所与のタスク・タイプが表示することができる、主要なビュー・ページ及びゼロ以上の代替的ビュー(例えば、JSPページ)の定義を提供することが好ましい。実施形態では、主要なページは、デフォルトで表示される。
1つ以上の実施形態に従って、他のコンテキスト・クラス(例えば、DsmContextSwitch クラス)は、予め定義されたイベントに応答して、表示された現在のコンテキストを切り替えるか、又はアプリケーション・コンソールの内容を変更するために使用することができる。例えば、ブラウザ・ビューは、最初にメディア・コピーのテーブルを示すページを表示することができる。このテーブルによってサポートされるアクションは、ユーザが、例えば、ウィザードを使用してメディア・グループを作成することを可能にする。
実施形態では、サーバ110は、例えば、第1のコンテキストから第2のコンテキストに切り替えるためのメディア・グループ作成要求に応答して、前記テーブル・ページを置換するためにメディア・グループ・フォームを作成する。これらの2つのコンテキスト間で引き渡される任意の情報は、属性として当該セッション中に置くことができる。かかる属性は、例えば、新しく起動される構成要素の存続時間にわたって、初期セットアップ又はナビゲーション・ガイダンスを定義するために必要である。かかる属性は、例えば、自己完結型オブジェクト・インスタンス(例えば、DsmComponentContext クラス・インスタンス)内に蓄積することができる。このフレームワークが起動中の構成要素へのスイッチバックを検出する場合、最小の粒度レベルを有する属性を当該セッションの実行環境から除去することが好ましい。
異なる実施形態では、本発明は、完全なハードウェア、完全なソフトウェア又はハードウェア及びソフトウェア要素の両方の組み合わせのうち、何れかの形態で実装することができる。例えば、クライアント120及びサーバ110が構成することができる制御されたコンピューティング・システム環境は、本発明のシステムが意図する結果を達成するプロセスを実施するように実行される、ソフトウェア・コードとハードウェア構成要素の組み合わせの形態で提供することができる。
図4及び図5は、実施形態に従ったコンピューティング・システム環境を構成する、ハードウェア環境1110及びソフトウェア環境1120を示す。ハードウェア環境1110は、ソフトウェアのための実行環境を提供する各装置から成り、当該ソフトウェアは、以下で説明するハードウェアのための実行命令を提供する。
以下、図示のハードウェア要素上で実行されるソフトウェア要素を、特定の論理的/機能的関係の観点から説明する。しかし、ソフトウェアの形態で実装される各方法は、例えば、構成済みのプログラム式プロセッサ、ASIC(特定用途向けIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)及びDSP(デジタル信号プロセッサ))を使用することにより、ハードウェアの形態でも実装できることに留意されたい。
ソフトウェア環境1120は、主として、システム・ソフトウェア1121及びアプリケーション・ソフト1122に分割される。システム・ソフトウェア1121は、ハードウェアに対しどのように機能し且つ情報をどのように処理するかを命令する、オペレーティング・システム(OS)及び情報管理システムのような制御プログラムから成る。
推奨実施形態では、アプリケーション150は、クライアント120によって発信された1つ以上の要求にサービスを提供するために1つ以上のハードウェア環境上で実行される、アプリケーション・ソフト1122として実装される。アプリケーション・ソフト1122は、プログラム・コード、データ構造、ファームウェア、常駐ソフトウェア、マイクロコード等から構成することができる。
代替実施形態では、本発明は、コンピュータ又は任意の命令実行システムに関連して又はこれらによって使用するためのプログラム・コードを提供する、コンピュータ使用可能媒体又はコンピュータ可読媒体からアクセス可能なコンピュータ・プログラム製品として実装することができる。この記載の目的上、コンピュータ使用可能媒体又はコンピュータ可読媒体は、コンピュータ又は任意の命令実行システムに関連して又はこれらによって使用するためのプログラムを保持し、格納し、通信し、伝送し、移送することができる、任意の装置とすることができる。
コンピュータ可読媒体は、電子、磁気、光学、電磁気、赤外線又は半導体システム(装置)又は伝送媒体とすることができる。コンピュータ可読媒体の例には、半導体又は固体メモリ、磁気テープ、取り外し可能なフレキシブル・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、剛体磁気ディスク及び光ディスク等がある。光ディスクの例には、読み取り専用のCD−ROM、読み書き可能なCD−R/W及びDVDがある。
図4を参照して説明すると、アプリケーション・ソフト1122は、システム・バス1100を介して1つ以上のメモリ要素に結合されたプロセッサ1101を含むハードウェア環境1110のようなデータ処理システム上で実行される、コンピュータ可読コードの形態を有するコンピュータ・ソフトウェアとして実装することができる。これらのメモリ要素は、例えば、ローカル・メモリ1102、記憶媒体1106及びキャッシュ・メモリ1104を含むことができる。プロセッサ1101は、記憶媒体1106からローカル・メモリ1102に、実行可能コードをロードする。キャッシュ・メモリ1104は、コードが実行のために記憶媒体1106からロードされる回数を減少させるために、一時的記憶装置を提供する。
ユーザ・インタフェース装置1105(例えば、キーボード、ポインティング装置等)及び表示スクリーン1107は、当該コンピューティング・システムに対し直接的に、又はI/Oコントローラ1103を通して、結合することができる。また、ネットワーク・アダプタのような通信インタフェース・ユニット1108を当該コンピューティング・システムに結合すると、当該データ処理システムは、私設又は公衆ネットワークを通して、他のデータ処理システム又はリモートのプリンタ若しくは記憶装置と通信することができる。ネットワーク・アダプタの代表的なタイプには、有線又は無線のモデム及びイーサネット(登録商標)カードがある。
1つ以上の実施形態では、ハードウェア環境1110は、前述の全ての構成要素を含むとは限らないし、又は追加の機能性又はユーティリィティのために他の構成要素を含むことができる。例えば、ハードウェア環境1110は、ラップトップ・コンピュータとすることができるし、或いは組み込みシステム内に実装された他のポータブル計算装置(例えば、セット・トップ・ボックス、パーソナル・データ・アシスタント(PDA)、移動通信ユニット、又は情報処理能力やデータ記憶及び通信能力を有する他の同様のハードウェア・プラットフォーム)とすることができる。
当該システムの幾つかの実施形態では、通信インタフェース1108は、プログラム・コードを含む種々のタイプの情報を表すデジタル・データ・ストリームを搬送する、電気信号、電磁気信号又は光信号の送受信を行うことにより、他のシステムと通信する。かかる通信は、リモートのネットワーク(例えば、インターネット)を介して、又は搬送波の伝送を介して、確立することができる。
図5を参照して説明すると、アプリケーション・ソフト1122は、記憶媒体1106からローカル・メモリ1102にロードされた後、システム・ソフトウェア1121の上部で実行される、1つ以上のコンピュータ・プログラムを含むことができる。クライアント−サーバ・アーキテクチャでは、アプリケーション・ソフト1122は、クライアント・ソフトウェア及びサーバ・ソフトウェアを含むことができる。例えば、本発明の実施形態では、クライアント・ソフトウェアは、コンピューティング・システム100上で実行され、サーバ・ソフトウェアは、サーバ・システム(図示せず)上で実行される。
また、ソフトウェア環境1120は、ローカル又はリモートのコンピューティング・ネットワークを介して、利用可能なデータにアクセスするためのブラウザ・ソフトウェア1126を含むことができる。さらに、ソフトウェア環境1120は、ユーザ・コマンド及びデータを受け取るための、ユーザ・インタフェース1124(例えば、グラフィカル・ユーザ・インタフェースGUI(GUI))を含むことができる。前述のハードウェア及びソフトウェア・アーキテクチャ並びに環境は、例示の目的に沿ったものであることに留意されたい。本発明の1つ以上の実施形態は、任意のタイプのシステム・アーキテクチャ又は処理環境に基づいて実装することができる。
また、前述の論理コード、プログラム、モジュール、プロセス、方法、及び各方法のそれぞれのステップが実施される順序は、単に例示であるに過ぎないことを理解されたい。本明細書において別段の記載がない限り、これらのステップは、実装に依存して、任意の順序で又は並列に実施することができる。さらに、前述の論理コードは、特定のプログラミング言語に限定されないのであり、これを分散式、非分散式又はマルチプロセッシング環境内の1つ以上のプロセッサ上で実行する1つ以上のモジュールから構成することができる。
従って、請求項の精神及び範囲内で修正及び変更を施すことにより、本発明を実施できることを理解されたい。本発明に関する記述は、網羅的であること及び開示された形態それ自体に本発明を限定することを意図するものではない。本明細書に開示された実施形態に関するこれら及び他の種々の改変及びその組み合わせは、その均等物を含めて、請求項の記載によって定義される本発明の範囲内にある。
サーバ・システムが通信ネットワークを介してクライアント・システムと通信関係にあるウェブ・サーバのための、実施形態に従った代表的なソフトウェア環境を示す図である。 図1のクライアント・システムとサーバ・システムの間で確立される通信セッションにおける1つ以上のタスクの実行スコープを決定するための、実施形態に従った代表的な方法のフローチャートである。 定義された実行スコープを有する1つ以上のオブジェクトに割り振られたメモリ領域を管理するための、実施形態に従った代表的な方法のフローチャートである。 本発明のシステムが動作することができるハードウェア環境のブロック図である。 本発明のシステムが動作することができるソフトウェアの環境のブロック図である。

Claims (19)

  1. コンピューティング環境内のメモリ管理方法であって、
    コンピューティング環境内で実行されるアプリケーションのための第1のタスクに関連する第1のオブジェクトを一意的に識別するステップを含み、
    前記第1のオブジェクトには、第1のメモリ領域が割り振られ、
    前記第1のタスクに関連する第1の実行コンテキストに従って、前記第1のタスクのための第1の実行スコープを決定するステップを含み、
    前記第1のコンテキストは、実行環境階層内の前記第1のタスクのための第1の予測存続時間を定義し、
    前記第1の実行コンテキストをモニタすることに応答して、前記第1のタスクの実行スコープの変化を決定するステップと、
    前記第1のタスクがもはや前記第1の実行スコープ中で実行されないと決定することに応答して、前記第1のメモリ領域の割り振りを解除するステップとを含む方法。
  2. 前記第1のタスクのサブタスクである、第2のタスクに関連する第2のオブジェクトを一意的に識別するステップを含み、
    前記第2のオブジェクトには、第2のメモリ領域が割り振られ、
    前記第2のタスクに関連する第2の実行コンテキストに従って、前記第2のタスクのための第2の実行スコープを決定するステップを含み、
    前記第2のコンテキストは、前記第1のタスクに関する前記実行環境階層内の前記第2のタスクのための第2の予測存続時間を定義し、
    前記第2の実行コンテキストをモニタすることに応答して、前記第2のタスクの実行スコープの変化を決定するステップと、
    前記第2のタスクがもはや前記第2の実行スコープ中で実行されないと決定することに応答して、前記第2のメモリ領域の割り振りを解除するステップとをさらに含む、請求項1に記載の方法。
  3. 前記第2のタスクのサブタスクである、第3のタスクに関連する第3のオブジェクトを一意的に識別するステップを含み、
    前記第3のオブジェクトには、第3のメモリ領域が割り振られ、
    前記第3のタスクがもはや要求に対するサービスをアクティブに提供しないと決定することに応答して、前記第3のメモリ領域の割り振りを解除するステップをさらに含む、請求項2に記載の方法。
  4. 前記第3のタスクがもはや要求に対するサービスをアクティブに提供しないと決定することに応答して、前記第2の実行コンテキストが終了される、請求項3に記載の方法。
  5. 前記第2のタスクがもはや要求に対するサービスをアクティブに提供しないと決定することに応答して、前記第1の実行コンテキストが終了される、請求項2に記載の方法。
  6. 前記第2のタスクのどのサブタスクも要求に対するサービスをアクティブに提供しないと決定することに応答して、前記第2の実行コンテキストが終了される、請求項2に記載の方法。
  7. 前記第1のタスクがサーバ・システムとクライアント・システムの間で確立されるセッション中に実行され、前記セッションが終了されると決定することに応答して、前記第1の実行コンテキストが終了される、請求項1に記載の方法。
  8. 前記第1のタスクないし第3のタスクが、通信ネットワークを介してサーバ・システムとクライアント・システムの間で確立されるセッション中に実行される、請求項3に記載の方法。
  9. 前記通信ネットワークがインターネットを含む、請求項8に記載の方法。
  10. 前記セッションが終了したと決定することに応答して、前記第1のメモリ領域ないし第3のメモリ領域が割り振り解除される、請求項8に記載の方法。
  11. コンピューティング環境内のメモリ管理システムであって、
    コンピューティング環境内で実行されるアプリケーションのための第1のタスクに関連する第1のオブジェクトを一意的に識別する論理装置を備え、
    前記第1のオブジェクトには、第1のメモリ領域が割り振られ、
    前記第1のタスクに関連する第1の実行コンテキストに従って、前記第1のタスクのための第1の実行スコープを決定する論理装置を備え、
    前記第1のコンテキストは、実行環境階層内の前記第1のタスクのための第1の予測存続時間を定義し、
    前記第1の実行コンテキストをモニタすることに応答して、前記第1のタスクの実行スコープの変化を決定する論理装置と、
    前記第1のタスクがもはや前記第1の実行スコープ中で実行されないと決定することに応答して、前記第1のメモリ領域の割り振りを解除する論理装置とをさらに備える、システム。
  12. 前記第1のタスクのサブタスクである、第2のタスクに関連する第2のオブジェクトを一意的に識別する論理装置を備え、
    前記第2のオブジェクトには、第2のメモリ領域が割り振られ、
    前記第2のタスクに関連する第2の実行コンテキストに従って、前記第2のタスクのための第2の実行スコープを決定する論理装置を備え、
    前記第2のコンテキストは、前記第1のタスクに関する前記第2のタスクのための第2の予測存続時間を定義し、
    前記第2の実行コンテキストをモニタすることに応答して、前記第2のタスクの実行スコープの変化を決定する論理装置と、
    前記第2のタスクがもはや前記第2の実行スコープ中で実行されないと決定することに応答して、前記第2のメモリ領域の割り振りを解除する論理装置とをさらに備える、請求項11に記載のシステム。
  13. 前記第2のタスクのサブタスクである、第3のタスクに関連する第3のオブジェクトを一意的に識別する論理装置を備え、
    前記第3のオブジェクトには、第3のメモリ領域が割り振られ、
    前記第3のタスクがもはや要求に対するサービスをアクティブに提供しないと決定することに応答して、前記第3のメモリ領域の割り振りを解除する論理装置をさらに備える、請求項12に記載のシステム。
  14. 前記第3のタスクがもはや要求に対するサービスをアクティブに提供しないと決定することに応答して、前記第2の実行コンテキストが終了される、請求項13に記載のシステム。
  15. 前記第2のタスクがもはや要求に対するサービスをアクティブに提供しないと決定することに応答して、前記第1の実行コンテキストが終了される、請求項12に記載のシステム。
  16. 前記第2のタスクのどのサブタスクも要求に対するサービスをアクティブに提供しないと決定することに応答して、前記第2の実行コンテキストが終了される、請求項12に記載のシステム。
  17. 前記第1のタスクがサーバ・システムとクライアント・システムの間で確立されるセッション中に実行され、前記セッションが終了されると決定することに応答して、前記第1の実行コンテキストが終了される、請求項11に記載のシステム。
  18. 前記第1のタスクないし第3のタスクが、通信ネットワークを介してサーバ・システムとクライアント・システムの間で確立されるセッション中に実行される、請求項13に記載のシステム。
  19. 請求項1乃至10の何れか1項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
JP2008041383A 2007-03-02 2008-02-22 コンピューティング環境内のメモリ管理方法、メモリ管理システム及びコンピュータ・プログラム Expired - Fee Related JP5182801B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/681,650 US8001336B2 (en) 2007-03-02 2007-03-02 Deterministic memory management in a computing environment
US11/681650 2007-03-02

Publications (2)

Publication Number Publication Date
JP2008217786A true JP2008217786A (ja) 2008-09-18
JP5182801B2 JP5182801B2 (ja) 2013-04-17

Family

ID=39733959

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008041383A Expired - Fee Related JP5182801B2 (ja) 2007-03-02 2008-02-22 コンピューティング環境内のメモリ管理方法、メモリ管理システム及びコンピュータ・プログラム

Country Status (4)

Country Link
US (2) US8001336B2 (ja)
JP (1) JP5182801B2 (ja)
CN (1) CN101256533B (ja)
TW (1) TWI421681B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019133666A (ja) * 2018-02-02 2019-08-08 三星電子株式会社Samsung Electronics Co.,Ltd. グラフィックプロセシングユニット上での機械学習トレーニングのためのメモリ管理方法及びシステム

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120124126A1 (en) * 2010-11-17 2012-05-17 Microsoft Corporation Contextual and task focused computing
US20120159341A1 (en) 2010-12-21 2012-06-21 Microsoft Corporation Interactions with contextual and task-based computing environments
CN102437935B (zh) * 2011-12-16 2015-01-14 江西省电力公司信息通信中心 Web应用监控方法及设备
US9363321B2 (en) 2013-11-08 2016-06-07 International Business Machines Corporation Analytics based scoping of HTML5 web storage attributes
WO2015070384A1 (en) * 2013-11-12 2015-05-21 Pivotal Software, Inc. Managing job status
US9747250B2 (en) * 2015-03-25 2017-08-29 International Business Machines Corporation Effective memory management for host objects in a runtime environment with embedded garbage-collected based dynamic language
GB2539435B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level
GB2539429B (en) 2015-06-16 2017-09-06 Advanced Risc Mach Ltd Address translation
US10230804B2 (en) * 2015-06-16 2019-03-12 International Business Machines Corporation Monitoring system for tracking user activities for completing thoughts, ideas, or tasks of the user
GB2539433B8 (en) * 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
GB2539436B (en) 2015-06-16 2019-02-06 Advanced Risc Mach Ltd Secure initialisation
GB2539428B (en) 2015-06-16 2020-09-09 Advanced Risc Mach Ltd Data processing apparatus and method with ownership table
US10554692B2 (en) * 2017-06-16 2020-02-04 Google Llc Cross-origin communication in restricted computer environments
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US10880401B2 (en) * 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
CN113791988B (zh) * 2021-11-17 2022-02-18 畅捷通信息技术股份有限公司 一种降低小程序包体积的渲染方法、装置及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000099351A (ja) * 1997-11-21 2000-04-07 Omron Corp プログラム制御装置とメモリ割当装置および方法
JP2003186737A (ja) * 2001-12-14 2003-07-04 Matsushita Electric Ind Co Ltd ガベージコレクション装置、ガベージコレクション方法及びガベージコレクションプログラム
JP2004206644A (ja) * 2002-12-26 2004-07-22 Fujitsu Ltd ヒープサイズ自動最適化処理方法,ヒープサイズ自動最適化装置,そのプログラムおよびプログラム記録媒体
JP2006024223A (ja) * 2004-07-09 2006-01-26 Microsoft Corp オブジェクト指向言語による同時実行プログラムの実装
JP2006146917A (ja) * 2004-11-15 2006-06-08 Palo Alto Research Center Inc アーキテクチャ非依存プログラミング及びネットワークアプリケーション合成システム及び方法
JP2007519110A (ja) * 2004-01-21 2007-07-12 インターナショナル・ビジネス・マシーンズ・コーポレーション 可動オブジェクトを有するグリッド対応仮想マシンのための方法およびシステム
JP2007538325A (ja) * 2004-05-20 2007-12-27 エスアーペー アーゲー ランタイムシステムの共有プログラム、方法、装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778350A (en) * 1995-11-30 1998-07-07 Electronic Data Systems Corporation Data collection, processing, and reporting system
JP3087696B2 (ja) * 1997-07-25 2000-09-11 日本電気株式会社 分散メモリ型マルチプロセッサ・システム制御方法およびコンピュータ読み取り可能な記録媒体
JP2001176250A (ja) 1999-12-16 2001-06-29 Pioneer Electronic Corp ディスク再生方法ならびにその再生装置及び同方法が記録される記録媒体
US7072934B2 (en) * 2000-01-14 2006-07-04 Saba Software, Inc. Method and apparatus for a business applications server management system platform
US7065568B2 (en) * 2000-11-30 2006-06-20 Microsoft Corporation System and method for managing states and user context over stateless protocols
US7024473B2 (en) * 2001-01-05 2006-04-04 Matsushita Electric Works, Ltd. Web server for communicating with one or more electronic devices through a gateway computer
US6892202B2 (en) * 2002-04-17 2005-05-10 Sun Microsystems, Inc. Optimistic transaction compiler
US7243352B2 (en) * 2002-11-27 2007-07-10 Sun Microsystems, Inc. Distributed process runner
DE60318993T2 (de) * 2003-06-19 2009-01-29 Texas Instruments Inc., Dallas Eingebettete Speicherbereinigung
JP4028853B2 (ja) * 2004-03-30 2007-12-26 株式会社日立製作所 情報サービス通信ネットワークシステムおよびセッション管理サーバ
US20050267770A1 (en) * 2004-05-26 2005-12-01 International Business Machines Corporation Methods and apparatus for performing task management based on user context
US7680935B2 (en) * 2004-09-30 2010-03-16 Microsoft Corporation Entity domains
JP4609070B2 (ja) * 2004-12-28 2011-01-12 沖電気工業株式会社 マルチ呼処理スレッド処理方法
CN100383739C (zh) * 2006-03-15 2008-04-23 浙江大学 嵌入式操作***镜像启动的启动优化方法
US7900200B1 (en) * 2006-06-16 2011-03-01 Oracle America, Inc. Persistence system for servlet-based applications on resource-constrained devices
TWM305384U (en) * 2006-07-14 2007-01-21 Hon Hai Prec Ind Co Ltd Multifunctional keyboard

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000099351A (ja) * 1997-11-21 2000-04-07 Omron Corp プログラム制御装置とメモリ割当装置および方法
JP2003186737A (ja) * 2001-12-14 2003-07-04 Matsushita Electric Ind Co Ltd ガベージコレクション装置、ガベージコレクション方法及びガベージコレクションプログラム
JP2004206644A (ja) * 2002-12-26 2004-07-22 Fujitsu Ltd ヒープサイズ自動最適化処理方法,ヒープサイズ自動最適化装置,そのプログラムおよびプログラム記録媒体
JP2007519110A (ja) * 2004-01-21 2007-07-12 インターナショナル・ビジネス・マシーンズ・コーポレーション 可動オブジェクトを有するグリッド対応仮想マシンのための方法およびシステム
JP2007538325A (ja) * 2004-05-20 2007-12-27 エスアーペー アーゲー ランタイムシステムの共有プログラム、方法、装置
JP2006024223A (ja) * 2004-07-09 2006-01-26 Microsoft Corp オブジェクト指向言語による同時実行プログラムの実装
JP2006146917A (ja) * 2004-11-15 2006-06-08 Palo Alto Research Center Inc アーキテクチャ非依存プログラミング及びネットワークアプリケーション合成システム及び方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019133666A (ja) * 2018-02-02 2019-08-08 三星電子株式会社Samsung Electronics Co.,Ltd. グラフィックプロセシングユニット上での機械学習トレーニングのためのメモリ管理方法及びシステム

Also Published As

Publication number Publication date
CN101256533A (zh) 2008-09-03
JP5182801B2 (ja) 2013-04-17
TWI421681B (zh) 2014-01-01
CN101256533B (zh) 2010-06-16
US8001336B2 (en) 2011-08-16
US20080215826A1 (en) 2008-09-04
US20110238944A1 (en) 2011-09-29
TW200900923A (en) 2009-01-01

Similar Documents

Publication Publication Date Title
JP5182801B2 (ja) コンピューティング環境内のメモリ管理方法、メモリ管理システム及びコンピュータ・プログラム
KR100898315B1 (ko) 인핸스드 런타임 호스팅
US8595722B2 (en) Preprovisioning virtual machines based on request frequency and current network configuration
US9396021B2 (en) Techniques for dynamically assigning jobs to processors in a cluster using local job tables
US8239524B2 (en) Techniques for dynamically assigning jobs to processors in a cluster based on processor workload
JP4914717B2 (ja) 維持可能なグリッドマネージャ
US8032623B2 (en) Context-based dynamic policy assignment in a distributed processing environment
US9384042B2 (en) Techniques for dynamically assigning jobs to processors in a cluster based on inter-thread communications
JP2007115246A (ja) ソフトウェアによって使用される資源を動的に割り当てるための方法及び装置
US8122132B2 (en) Techniques for dynamically assigning jobs to processors in a cluster based on broadcast information
US20090249374A1 (en) Dynamic template instantiation
JP2007500386A (ja) グリッド組織
KR20080059574A (ko) 로드 균형 조정
US8181182B1 (en) Resource allocation brokering in nested containers
KR101091325B1 (ko) 철강 공정 제어를 위한 미들웨어 및 그 미들웨어에서의 서비스 제공 방법
JP2009521746A (ja) プログラム実行サービスウィンドウ
JP2002505471A (ja) 遠隔処理の中断および継続の方法と装置
US8495630B2 (en) Transferring objects between virtual machines
US20100094861A1 (en) System and method for application session tracking
US10599556B2 (en) Debugging a transaction in a replica execution environment
US20070061277A1 (en) Method, system, and storage medium for providing dynamic deployment of grid services over a computer network
US8977752B2 (en) Event-based dynamic resource provisioning
US7743379B2 (en) Variable resource sets
US20100005475A1 (en) Information processing device and information processing method
Pautasso et al. JOpera: Autonomic Service Orchestration.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120925

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20121017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20121017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121129

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: 20121218

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20121218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130109

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160125

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees