JP2006018806A - コンピュータ・ベース・システムにおける資源割当て方法 - Google Patents

コンピュータ・ベース・システムにおける資源割当て方法 Download PDF

Info

Publication number
JP2006018806A
JP2006018806A JP2005142898A JP2005142898A JP2006018806A JP 2006018806 A JP2006018806 A JP 2006018806A JP 2005142898 A JP2005142898 A JP 2005142898A JP 2005142898 A JP2005142898 A JP 2005142898A JP 2006018806 A JP2006018806 A JP 2006018806A
Authority
JP
Japan
Prior art keywords
bit
resource
resources
register
available
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
JP2005142898A
Other languages
English (en)
Inventor
Michael D Walker
ディー. ウォーカー マイケル
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.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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 Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of JP2006018806A publication Critical patent/JP2006018806A/ja
Pending legal-status Critical Current

Links

Images

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

Abstract

【課題】データ格納アレイ104を含む広域ネットワーク(WAN)などのコンピュータ・ベース・システム100において、ソフトウェアプロセスにより用いるシステム資源を割当てるための方法および装置を提供する。
【解決手段】第一メモリ空間Aは、少なくとも一つのシステム資源が利用可能となっているかを示す第一ビットインジケータを提供する。第二メモリ空間Bは、処理待ちのソフトウェアプロセスが、システム資源が利用可能となることを待っていることを示す第二ビットインジケータを提供する。論理AND演算を含む、第一および第二ビットインジケータに対する組合せ操作に関連して、プロセスで用いられる資源が割当てられる。第一および第二メモリ空間は、複数ビットレジスタである。自由資源スタックは、利用可能な資源を識別し、プロセス待ち行列は、解放されるプロセスを待つ状態にあるプロセスを識別する。各スタックと待ち行列の状態は、複数ビットレジスタ中のビットに反映される。
【選択図】図1

Description

発明の分野
本発明は、一般的に、コンピュータ・ベース・システムに関するものであり、特に、しかし制限を加えることなく、複数のソフトウェアプロセス中でシステム資源を割当てるための装置及び方法に関するものである。
発明の背景
コンピュータ・ベース・システムにより、広範な種類のデータ処理タスクを、高速かつ効率よく実行することができる。携帯型の消費者向け製品から、複数のデータ格納アレイ装置を有する地理的に分散した広域ネットワークにいたるまで、このようなシステムが、社会生活およびビジネス分野の全ての領域に広く普及しつづけている。
このシステムの操作のために、ソフトウェアが備えられている。ソフトウェア(ファームウェアを含む)は、アプリケーションプログラム、オペレーティングシステム、インターフェースおよびコントローラ処理、保守およびハウス・キーピング・モジュールなど、多くの形態を伴っており、これらの全ては、様々なタスクを実行するために、システム資源を同時に利用および、あるいは共有する傾向がある。
コンピュータ・ベース・システムの複雑度と機能性が増大することが常に要求されているため、様々なソフトウェアプロセスにシステム資源を割当てる方法への改善が常に求められている。
発明の概要
本発明の好適な実施例は、一般的に、データ格納アレイを有する広域ネットワーク(WAN)などのコンピュータ・ベース・システムの、ソフトウェアプロセスで利用するためのシステム資源を割当てる方法および装置に関するものである。
いくつかの好適な実施例によれば、本方法は、少なくとも一つのシステム資源が利用可能であるかどうかを示す第一ビットインジケータを提供するステップと、処理待ちをしているソフトウェアプロセスが、前記プロセスを実行するために、前記システム資源が利用可能となることを待機しているかどうかを示す第二ビットインジケータを提供するステップを含むことを特徴としている。
第一のビットインジケータは、第一の複数ビットレジスタ中の1ビットであることを特徴とし、また、第二のビットインジケータは第二の複数ビットレジスタ中の1ビットであることを特徴とすることが好ましい。割当ては、好ましくは第一および第二ビットインジケータに対する組合せ操作、好ましくは、論理AND操作を含む操作により行われることが好ましい。
利用可能な資源を識別するための自由資源スタックが設けられ、解放されたプロセスを待って処理待ちをしているプロセスを識別するためにプロセス待ち行列(キュー)が用いられることが好ましい。スタックと待ち行列の各々の状態は、複数ビットレジスタ中のビットに反映される。
さらに、他の実施例によれば、本装置は、少なくとも一つのシステム資源が利用可能であるかどうかを示す第一ビットインジケータを格納する第一のメモリ空間と、処理待ちのソフトウェアプロセスが、前記プロセスを実行するために、前記システム資源が利用可能となることを待っているかどうかを示す第二ビットインジケータを含むことが好ましい。
本装置は、さらに、第一および第二ビットインジケータに関連して、前記プロセスが利用するための前記システム資源を割当てる制御ブロックを含むことが好ましい。制御ブロックは、好ましくは第一および第二ビットインジケータに対する組合せ操作、好ましくは論理AND操作を含む操作を実行することが好ましい。
前述したように、第一および第二メモリ空間は、各々、複数ビットレジスタを含むことが好ましい。第三メモリ空間に設けられた自由資源スタックは、利用可能な状態にある複数の異なる種類のシステム資源の各々を識別し、第一ビットインジケータは、前記スタック中に格納された資源のエントリーに関連して設定されることが好ましい。第四のメモリ空間中に設けられたプロセス待ち行列は、前記プロセスに関連した情報を格納し、ここで、第二ビットインジケータは、待ち行列中の前記情報のエントリに関連して設定されることが好ましい。
本発明の特徴となる、上記および他の特徴および利点は、以下の詳細な説明と、添付した図面により明確なものとなる。
実施例の詳細な説明
本発明の好適な実施例を有利に実現できる環境の一例を図示するために、図1は、大容量記憶装置を用いる広域ネットワーク(WAN)であることを特徴とするコンピュータ・ベース・システム100を示している。
システム100は、複数のホストコンピュータ102を含んでおり、各々は、ホストA、ホストB、ホストCとして識別されている。ホストコンピュータ102は、装置106を介して、相互に作用し合い、また、二つのデータ格納アレイ104(各々、AおよびBと称す)とも相互に作用し合う。装置106は、ファイバー・チャンネルベースのスイッチングネットワークであることを特徴とすることが好ましいが、インターネットを含む他の構成として利用することも可能である。
各アレイ104は、一対のコントローラ108(各々、A1/A2およびB1/B2で表す)と、RAID(独立したディスクの冗長なアレイ)として動作するハードディスク装置であることを特徴とすることが好ましいデータ格納装置110の組みを含んでいる。様々なコントローラ108が、パラレルで冗長なリンクを用いるようにするため、また、システムにより格納されるユーザデータが、装置110の両方の組にミラー化されるようにするため、コントローラ108と装置110は、フォールトトレランス構造を用いることが好ましい。
さらに、制限を加えるものではない一例としてではあるが、Aホストコンピュータ102とAデータ格納アレイ104は、物理的に第一サイトに設置され、Bホストコンピュータ102とB格納アレイ104は、物理的に第二サイトに設置され、さらに、Cホストコンピュータ102は、第三サイトに設定されるものと考えることができる。
図2は、図1のシステム100により用いられるソフトウェアの好適な構造を一般的に図示したものである。図2において、ソフトウェアは、複数の階層的なレイアで構成(本例では、レイア1からレイア7で構成)されるものとして描かれており、ここで、レイア1は、装置110の物理媒体112から最も離れた位置にある最上位レイアを表すものであり、レイア7は、媒体112に対して最も近接した最下位レイアを表すものである。
階層的なレイア数は任意のものとすることができるが、参考例として、レイア1からレイア3は、ホストコンピュータ102により使用されるアプリケーション処理とオペレーティングシステムを表し、レイア4とレイア5は、コントローラ108のレベルでの処理とモジュールを表し、さらに、レイア6とレイア7は、装置110レベルでの処理とモジュールを表すものと考えられる。
装置110へのデータ書き込みのため選択されたホストコンピュータ102からのデータ転送要求は、一つあるいはそれ以上の数のホストレベルのコマンド処理を呼び出すものとなっている。このプロセスは、次に、様々なレイアに跨る、他の様々なプロセスを呼び出し、結果的に、所望のタスクが完了するものとなっている。この経過の中では、様々なシステム資源が割当てられ、利用され、解放される。
図3は、資源インデックス114中の、様々な種類のシステム資源の好適な配置を示す図である。資源についての形式と名称は、与えられたアーキテクチャに依存して大幅に変わるものであるが、ここでは、簡単化のため、資源は、一般的に資源0から資源Nとして呼ぶことにする。例えば、資源0は、与えられたプロセスに関連した様々な変数、値あるいは属性などを識別するために用いられるホストコマンド要求(HCR)を表すものであるとすることが可能である。
図3は、各資源の種類には、関連づけられた限定された数があることを示している。すなわち、所定のある時点では、システム資源の各種類については、固定した数だけが存在するということである(一例としては、資源0、あるいはHCRについては、任意の時点で利用可能な資源数は、たかだかN=2048の資源数であるということである)。また、システム資源の各種類は、それ自身の資源数Nを持っていると考えられる(例えば、資源1については、任意の時点で利用可能な資源数は、たかだかN=1024の資源数であるということである)。従って、システム100の動作中に、N以上の数のプロセスが、所定の一つの資源の割当てを同時に要求する場合には、図4で説明するような、順序付けられた割当ての方法が必要となる。
図4は、図2のソフトウェアの様々なプロセスにより用いるための利用可能な資源を割当てるための、本発明の好適な実施例に従って構成され動作する、資源割当てモジュール120の機能ブロック図である。資源割当てモジュール120は、システム100のソフトウェア構造の一部を形成するものであり、図2の少なくともいくつかのソフトウェアレイアにより呼び出されるプロセスを扱うために、コントローラ108により用いられるソフトウェアの内部に組み込まれることが好ましい。
モジュール120は、自由資源スタック122、“gbl.free”と称されるグローバル自由レジスタ124、“gbl.waiter”と称されるグローバル待ちレジスタと126、および、待ちプロセス(すなわち、利用可能な資源を待っている処理待ち中のソフトウェアプロセス)のためのプロセス待ち行列128とを含んでいる。コントロールブロック129は、これらの様々な要素の間の相互作用を行うためのものである。図4に示した要素とは別の、他の種類のメモリ空間が、必要に応じて用いられる。
自由資源スタック122は、図5に示されるように、利用可能な資源のインデックスを含んでいる。スタック112の形式は、任意の数の形式とすることが可能であるが、図3の様々な資源の中から特定の資源が解放され、以降のプロセスにより利用されるために自由な状態となった際に、インジケータがスタック中に設定されることが好ましい。従って、スタック122は、各々の資源ごとに、全ての資源の利用可能状態を、動的に最新の状態を示すインジケータを提供している。
図6は、好ましくは、図3に示したシステム資源の種類の番号に対応したビット0からNを含む、gbl.freeレジスタ124を示している。以下に説明するように、スタック122で示されるように、少なくとも一つの種類の資源が利用可能となる度に、論理ビット値(例えば、1)が、適切なビットフィールドに設定される。同様に、該当する種類の資源に利用可能なものがない場合には、残りの論理ビット値(この場合は、0)が、適切なビットフィールドに設定される。
図7は、好ましくは、対応するビット0からNのセットを提供する、gbl.waiterレジスタ126を示している。論理ビット値を用いて、資源を待っている処理待ちのプロセスの状態を示しており、例えば、論理ビット値が1の場合は、少なくとも一つのプロセスが、関連する資源を待っている状態にあることを示しており、一方、論理ビット値が0の場合は、現状で資源を待っている状態にあるプロセスはないことを示している。
プロセス待ち行列128は、任意の数の好適な形式をとることが可能であり、本例では、図8に示すように、好ましくは、各資源0〜Nについて、スタック130、待ち行列ヘッダフィールド132およびカウントフィールド134を含んでいる。待ち行列128は、好ましくは、待ち行列に入ったプロセスを追跡し、ファースト・イン・ファースト・アウトの方法でサービスできるようにする。カウントフィールド134は、関連したプロセスにより要求された種類の番号を、識別可能とするものである(この番号は、1あるいは、1以上の数である)。
図9に図示するように、gbl.freeおよびgbl.waiterレジスタ124126は、関連したビット位置に対する組合せ演算により、資源割当てに適合したものを識別することを可能とする。例えば、gbl.freeレジスタ124中の論理値1は、所定の種類の資源の一つ(あるいはそれ以上の数のもの)が利用可能であることを示し、gbl.waiterレジスタ126中の論理値1は、待ち状態にあるプロセスにより所定の種類の資源の一つ(あるいはそれ以上の数のもの)が要求されていることを示しており、これらの各ビットのAND演算の結果(すなわち、1*1=1)を用いて、待ち状態にあるプロセスと要求された資源の間で一致するものがあることを示す。AND演算を用いることは一例であり、これに限定されるものではなく、他の任意の数の論理演算、比較あるいは組合せ演算を用いて、所望の結果を得ることが可能である。
好適な実施例で行う図4のモジュール120の好適な演算処理手順は、図10で示されるRESOURCE ALLOCATION(資源割当て)処理200を見ることで理解することができる。処理200は、特定の一つのプロセスの好適な追跡と処理を示すために簡単化したものであるが、同様の方法で、この処理が複数のプロセスを同時に評価するものとなることを理解することもできる。
ステップ202においては、先ず最初に、初期化操作を実行し、システム100を初期化する。このステップは、図3の資源インデックスをローディングし、様々なシステム資源のためのアドレスを識別する処理を含んでいる。自由資源スタック122は、最初にロードされ、レジスタ124、126の様々なビットが初期化される。
初期化により、システム動作の最初の段階から、高い頻度でいくつかの資源が利用されると考えられるが、スタック122の多くの部分については、gbl.freeレジスタ124が比較的低い頻度で、資源全体の利用状況を表すものとなる(すなわち、比較的多くの資源が、最初に利用可能となる)。それとは反対に、全体的とは言わないが、利用不可能な資源を待っている処理待ちのプロセスは、ほとんどないことを表すように、gbl.waiterレジスタ126は、論理値0で多くのビットが占められる。
以降の処理のあるところでは、ステップ204で一般的に示されるように、選択されたプロセスが、選択された資源を要求する。好ましくは、この時点で、制御ブロック129によりチェックを行い、判断ステップ206で示されるように、要求された資源が利用可能であるかをスタック122を用いて判断される。もし判断がYESである場合には、処理フローは、ステップ208に進み、そこで、スタック122を更新し、そこで選択された資源に対応する識別子を削除する。これにより、この特定の資源は、現時点で用いられており、他のプロセスに割当てることはできないことを反映する。
ステップ210に進み、選択されたプロセスが資源を利用し、その利用が完了した時点で、ステップ212で、プロセスは資源を解放する。好ましくは、ステップ212は、解放された資源が、今度は利用可能となったことを示すために、自由資源スタック122内への、適切なエントリを含んでいる。
一方、要求された資源が利用可能でない場合には、判定ステップ206の後、ステップ214に進み、そこで、要求した資源が利用可能となるまで待つために、プロセスはプロセス待ち行列128に入力される。
ステップ216では、制御ブロック129によりレジスタ124、126がポーリングされ、要求した資源が現在利用可能となっているかどうかを判定する。このステップ216によるポーリングは、様々な方法で実行することができるが、これは進行中操作(on−going operation)として、レジスタ124、126の各ビット位置の対応するペアが、順次、組合せ演算されることが好ましい(図9で説明したAND演算を用いることが好ましい)。制御ブロック129は、レジスタ124、126のビット0の位置から処理を開始し、これらのビット値を組合せ演算し、次にビット1の位置に移り、これらのビット値を組合せ演算し、同様にして、論理値1が得られるまで続け、その後、以下で説明する処理を続ける。
ここでは、論理値1が得られ処理された後、制御ブロック129は、ビット0の位置の最初から処理を始めるのではなく、次のビット位置の組合せ演算を引き続き行うという点に注目してほしい。このようにして、より公平な資源の分配が行われる。制御ブロック129の処理が、各レジスタ124、126のビットNの位置に到達したら、再び、ビット0の位置から始る処理を開始する。
判定処理ステップ218で示されるように、ステップ216のポーリングの結果が、要求された資源が処理待ちのプロセスに対して利用可能であることが示された場合には、図10の処理は、ステップ220に進み、そこで、制御ブロック129により、処理待ちのプロセスの要求に合うだけの資源の数が確保できるかどうかを判定する。
この判定処理は、関連するカウントフィールド134(図9)の値をチェックするステップを含むことが好ましく、もし、この値が1より大きい(例えば、4である)場合には、制御ブロック129は、さらに、自由資源スタック122のスキャンに進み、処理待ちのプロセスの要求を満たす、少なくとも要求された数だけの利用可能な資源があるかどうかを判定する。もし、充分な資源がない場合には、gbl.freeレジスタの関連するビット位置を、ステップ222で論理値0にリセットすることが好ましく、その後、図示するように、レジスタのポーリングのためのステップ216に処理を戻す。
処理待ちのプロセスの要求に合うだけの資源の数が確保できる場合には、ステップ220からステップ224に処理を進み、そこで、割当てられた資源の各々に対する資源インジケータを、スタック122から削除する。次に、プロセスは資源を利用するステップ226に進み、その利用が完了したら、ステップ228に進み、資源を解放し、スタック122に資源を戻す。ここで、選択されたプロセスについての処理フローは、ステップ230で終了するが、更に、各待ち状態にあるプロセスが識別された場合には、前記の処理ステップを引き続き実行するものとなっている。
多くの場合、各ソフトウェアプロセスは、単一の種類の資源(すなわち、資源0)を利用することを要求するものとなっていると考えられるが、前記の処理ステップは、所定のプロセスが二つあるいはそれ以上の数の異なる種類の資源(すなわち、資源0と資源1)を要求するような場合にも用いることが可能である。このようなことが行われる方法としては、要求された資源の各々に対して、処理待ちのプロセスの複製をプロセス待ち行列に登録し、資源が利用可能となった際に、利用可能な資源の各種類を(利用することなく)割当て、さらに、異なる種類の資源の全てが解放された際に、該当プロセスを実行するという方法がある。
前記の様々な実施例の利点としては、スタック122あるいは待ち行列128に直接アクセスする必要がなく、レジスタ124、126に対する単純な論理演算のみにより、全ての利用可能な資源と待ち状態にあるプロセスとの間の適合性を迅速に評価できることが挙げられる。複数のプロセスが所定の資源を待っている際に、待ち行列に登録された最古のプロセスを真っ先に処理するためには、ファースト・イン・ファースト・アウト(FIFO)の手順を用いることが好ましい。これにより、タイムアウトエラーの発生を抑制し、更に、割当ての公平性を確保することができる。一方、異なるプロセスの種類ごとに、優先度を割り付けることも可能であり、この場合は、待ち行列128の構成を変更して(ソーティングなどにより)、高い優先度を持つプロセスが、適合した場合には、待ち行列の中で先に処理されるようにすることが可能である。
上述した実施例は、一般的に、複数のデータ格納アレイを有する分散した処理システムに適用したものであるが、この適用は、必ずしも発明の範囲を限定するものにはならない。むしろ、消費者向け製品、携帯の娯楽およびゲーム機、全世界測位システム(GPS)モジュールなどの計測装置、ホームコンピュータ、モバイル通信装置などを含み、これらに限定されない任意の異なる種類のシステムが、本発明を容易に実装することができる。
以上のように実施例で説明し、以下の請求項で記載するように、本発明は、これに限定されることはないが、一般的に(104のような)データ格納アレイを有する広域ネットワーク(WAN)などの(100のような)コンピュータ・ベース・システム中で、ソフトウェアプロセスで利用するためにシステム資源を割当てる方法および装置に関するものである。
いくつかの好適な実施例によれば、本方法は、少なくとも一つのシステム資源が利用可能であるかどうかを示す(124などの)第一ビットインジケータを提供するステップと、処理待ちをしているソフトウェアプロセスが、前記プロセスを実行するために、前記システム資源が利用可能となることを待機しているかどうかを示す(126などの)第二ビットインジケータを提供するステップと、第一および第二ビットインジケータの組合せに関連して、前記プロセスにより用いるための前記システム資源を割当てる(ステップ216などの)ステップとを含むことを特徴としている。
さらに、他の実施例によれば、本装置は、少なくとも一つのシステム資源が利用可能であるかどうかを示す第一ビットインジケータを格納する(124などの)第一のメモリ空間と、処理待ちのソフトウェアプロセスが、前記プロセスを実行するために、前記システム資源が利用可能となることを待っているかどうかを示す第二ビットインジケータを格納する(126などの)第二のメモリ空間と、第一と第二のビットインジケータの組合せに関連し、前記プロセスにより用いる前記システム資源を割当てる(129などの)制御ブロックを含むことを特徴としている。
添付の請求項の目的として、記載されている第一の手段は、図4で開示されたモジュール120に相当するものであることがわかる。さらに、請求項中で、“ビットインジケータ”と称するものは、少なくとも1ビットを含む値であることがわかる。
本発明の様々な実施例の、多くの特徴と利点は、以上で説明したとおりであるが、本発明の様々な実施例の構造と機能の詳細についての説明は、例示のためだけのものであり、特に、本発明の原理内の要素の構造と配置について、請求項で表現されている事項の広い一般的な意味により示された十分な程度に、変更を行うことが可能となっている。例えば、特定の要素は、本発明の主旨と範囲を逸脱することなく、特定の処理環境に応じて変更することが可能である。
さらに、ここで記載した実施例は、データ格納アレイに関するものであるが、本技術分野に精通した者であれば、請求項の主題は、これに限定されるものではなく、本発明の主旨と範囲を逸脱することなく、他の処理システムを用いることが可能である。
図1は、大容量記憶装置を用いる広域ネットワークであることを特徴とするコンピュータ・ベース・システムの最上位レベルの機能ブロック図である。 図2は、図1に示したシステムで用いられる、複数の異なるソフトウェアレイアを一般的に示した図である。 図3は、様々なタスクを実行するために利用可能な様々な種類のシステム資源を識別するために、図2のソフトウェアにより用いられる、資源インデックスの好適な配置を示した図である。 図4は、本発明の一実施例に従い構成し、図2のソフトウェアの様々なプロセスに利用可能な資源を割当てるために動作する資源割当てモジュールの機能ブロック図である。 図5は、現在利用可能な(自由な)図4中の資源を識別するために動作する、図4中の自由資源スタックの好適な構成を示した図である。 図6は、一つあるいはそれ以上の数の各種類の資源が利用可能である時を示す、図4中のグローバル自由レジスタの好適な構成を示した図である。 図7は、一つあるいはそれ以上の数のプロセスが、利用可能な資源を待っている時を示す、図4中のグローバル待ちレジスタの好適な構成を示した図である。 図8は、プロセス待ちをしている資源(待ち資源)に関連した情報を格納する、図4中のプロセス待ち行列の好適な構成を示した図である。 図9は、図7および図8のレジスタの論理組合せ値を示す、簡単化した論理テーブルを表す図である。 図10は、本発明の好適な実施例で実行される処理ステップを表す、RESOURCE ALLOCATION(資源割当て)処理のフローチャートである。
符号の説明
100 システム
102 ホスト
104 ストレージアレイ
106 装置(ファブリック)
108 コントローラ
110 ストレージデバイス
112 フィジカルメディア
114 リソースインデックス
120 リソースアロケーションモジュール
122 フリーリソーススタック
124 グローバルフリーレジスタ
126 グローバルウエイトレジスタ
128 プロセスキュー
129 コントロール
130 スタック
132 キューヘッダ
134 カウント

Claims (21)

  1. 少なくとも一つのシステム資源が利用可能であるかを示す第一ビットインジケータを提供するステップと、処理待ちのソフトウェアプロセスが、前記プロセスを実行するために、前記システム資源が利用可能となることを待っているかどうかを示す第二ビットインジケータを提供するステップと、第一および第二ビットインジケータの組合せに関連し、前記プロセスより利用される前記システム資源を割当てるステップを含む方法。
  2. 請求項1記載の方法であって、さらに、利用可能な異なる種類のシステム資源の各々を識別する自由資源スタックを提供するステップを含むことを特徴とする方法。
  3. 請求項2記載の方法において、第一ビットインジケータを提供するステップは、複数のビットを含み、各々のビットは、異なる種類のシステム資源の選択された一つに対応することを特徴とする複数ビットレジスタを用い、第一ビットインジケータは、前記レジスタの複数のビットの選択された一つを含むことを特徴とする方法。
  4. 請求項1記載の方法であって、さらに、前記プロセスに関連する情報を格納するプロセス待ち行列を提供するステップを含み、第二ビットインジケータは、前記待ち行列の前記情報のエントリに関連して提供されることを特徴とする方法。
  5. 請求項4記載の方法において、第二ビットインジケータを提供するステップは、複数のビットを含み、各々のビットは、異なる種類のシステム資源の選択された一つに対応することを特徴とする複数ビットレジスタを用い、第一ビットインジケータは、前記レジスタの複数のビットの選択された一つを含むことを特徴とする方法。
  6. 請求項1記載の方法であって、さらに、結果を得るために論理演算を用いる第一および第二ビットインジケータを組合せるステップを含み、割当てステップは、前記結果に関連して実行されることを特徴とする方法。
  7. 請求項6記載の方法であって、さらに、前記プロセスが複数の前記資源を必要としているかを判定するステップと、割当てステップの前に、前記複数の前記資源が利用可能であるかを識別するステップとを含むことを特徴とする方法。
  8. 請求項1記載の方法において、第一ビットインジケータは、第一の複数ビットレジスタ内の1ビットを含み、第二ビットインジケータは、第二の複数ビットレジスタ内の1ビットを含むことを特徴とする方法。
  9. 請求項8記載の方法において、前記レジスタの各々は、異なるシステム資源の全数に対応する複数のビットを有することを特徴とする方法。
  10. 請求項9記載の方法において、各レジスタ内の対応するビット位置は、割当てステップの間に、順次、比較されることを特徴とする方法。
  11. 請求項9記載の方法において、少なくとも一つのシステム資源と処理待ちのソフトウェアプロセスは、データ格納アレイを有するコンピュータ・ベース・システムの一部を形成することを特徴とする方法。
  12. 少なくとも一つのシステム資源が利用可能であるかを示す第一ビットインジケータを格納する第一メモリ空間と、
    処理待ちのソフトウェアプロセスが、前記プロセスを実行するために、前記システム資源が利用可能となることを待っているかどうかを示す第二ビットインジケータを格納する第二メモリ空間と、
    第一および第二ビットインジケータの組合せに関連し、前記プロセスより利用される前記システム資源を割当てる制御ブロックを含むことを特徴とする装置。
  13. 請求項12記載の装置であって、さらに、利用可能な異なる種類のシステム資源の各々を識別する、第三メモリ空間に形成された自由資源スタックを含み、第一ビットインジケータは、前記資源のエントリに関連し、前記スタック内に設定されることを特徴とする方法。
  14. 請求項12記載の装置において、第一および第二メモリ空間の少なくとも選択された一方は、複数のビットからなる複数ビットレジスタを含み、第一ビットインジケータは、前記複数のビットの一つを含むことを特徴とする装置。
  15. 請求項14記載の装置において、第一および第二メモリ空間の残りの一方は、第二の複数ビットレジスタを含み、第二ビットインジケータは、第二の複数ビットレジスタの前記複数ビットの一つを含み、制御ブロックは、前記レジスタかの各ビットを順次組合わせる操作を行うことを特徴とする装置。
  16. 請求項12記載の装置であって、さらに、前記プロセスに関連する情報を格納する第四メモリ空間内のプロセス待ち行列を含み、第二ビットインジケータは、前記情報のエントリに関連し、前記待ち行列に設定されることを特徴とする装置。
  17. 請求項12記載の装置において、制御ロジックは、結果を得るために論理演算を用いて、第一および第二ビットインジケータを組合せ、資源を、前記結果に関連して割当てることを特徴とする装置。
  18. 請求項12記載の装置において、さらに、制御ロジックは、前記プロセスは、複数の前記資源を要求しているかを判定し、前記複数の前記資源が、前記資源を割当てる前に利用可能となっているかを識別することを特徴とする装置。
  19. 請求項12記載の装置において、第一ビットインジケータおよび第二ビットインジケータは、各々、単一ビットであることを特徴とする装置。
  20. 請求項12記載の装置は、データ格納アレイを含むコンピュータ・ベース・システムであることを特徴とする装置。
  21. 少なくとも一つのソフトウェアプロセスと少なくとも一つのシステム資源を含むメモリ空間に格納されたソフトウェアと、少なくとも一つのソフトウェアプロセスで利用するために、少なくとも一つのシステム資源を割当てるための第一手段を含む装置。
JP2005142898A 2004-07-02 2005-05-16 コンピュータ・ベース・システムにおける資源割当て方法 Pending JP2006018806A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/884,031 US7917906B2 (en) 2004-07-02 2004-07-02 Resource allocation in a computer-based system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011125284A Division JP5762146B2 (ja) 2004-07-02 2011-06-03 コンピュータ・ベース・システムにおける資源割当てる方法および装置

Publications (1)

Publication Number Publication Date
JP2006018806A true JP2006018806A (ja) 2006-01-19

Family

ID=35515529

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2005142898A Pending JP2006018806A (ja) 2004-07-02 2005-05-16 コンピュータ・ベース・システムにおける資源割当て方法
JP2011125284A Expired - Fee Related JP5762146B2 (ja) 2004-07-02 2011-06-03 コンピュータ・ベース・システムにおける資源割当てる方法および装置
JP2014004140A Expired - Fee Related JP5767347B2 (ja) 2004-07-02 2014-01-14 コンピュータ・ベース・システムにおける資源割当て方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2011125284A Expired - Fee Related JP5762146B2 (ja) 2004-07-02 2011-06-03 コンピュータ・ベース・システムにおける資源割当てる方法および装置
JP2014004140A Expired - Fee Related JP5767347B2 (ja) 2004-07-02 2014-01-14 コンピュータ・ベース・システムにおける資源割当て方法

Country Status (2)

Country Link
US (1) US7917906B2 (ja)
JP (3) JP2006018806A (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090222491A1 (en) * 2008-02-28 2009-09-03 Michael Larkin Systems and Methods for Layered Resource Management
KR20120017294A (ko) * 2010-08-18 2012-02-28 삼성전자주식회사 어플리케이션을 효율적으로 처리하는 스케쥴링 시스템 및 스케쥴링 방법
US8788663B1 (en) 2011-12-20 2014-07-22 Amazon Technologies, Inc. Managing resource dependent workflows
US9128761B1 (en) * 2011-12-20 2015-09-08 Amazon Technologies, Inc. Management of computing devices processing workflow stages of resource dependent workflow
US8656002B1 (en) 2011-12-20 2014-02-18 Amazon Technologies, Inc. Managing resource dependent workflows
US8738775B1 (en) 2011-12-20 2014-05-27 Amazon Technologies, Inc. Managing resource dependent workflows
US9152460B1 (en) * 2011-12-20 2015-10-06 Amazon Technologies, Inc. Management of computing devices processing workflow stages of a resource dependent workflow
US9152461B1 (en) * 2011-12-20 2015-10-06 Amazon Technologies, Inc. Management of computing devices processing workflow stages of a resource dependent workflow
US9158583B1 (en) * 2011-12-20 2015-10-13 Amazon Technologies, Inc. Management of computing devices processing workflow stages of a resource dependent workflow

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61202232A (ja) * 1985-03-05 1986-09-08 Fujitsu Ltd 資源待ち管理方式
JPH0492930A (ja) * 1990-08-06 1992-03-25 Fujitsu Ltd 排他制御処理装置
JPH05158783A (ja) * 1991-12-11 1993-06-25 Fujitsu Ltd メモリブロック制御方式
JPH10301907A (ja) * 1997-04-14 1998-11-13 Internatl Business Mach Corp <Ibm> 共用資源に対するアクセスを制御する方法およびシステム
JPH11259319A (ja) * 1998-03-12 1999-09-24 Matsushita Electric Ind Co Ltd リソース割当方法
JP2000172515A (ja) * 1998-09-29 2000-06-23 Nec Corp 資源優先割り当て方式、資源優先割り当て方法および資源優先割り当てプログラムを記録した記録媒体
JP2001195269A (ja) * 2000-01-12 2001-07-19 Nec Commun Syst Ltd ソフトウェア資源の長期保留検出方式および方法

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3706071A (en) * 1970-06-22 1972-12-12 Information Int Inc Binary image processor
US4378590A (en) * 1980-09-03 1983-03-29 Burroughs Corporation Register allocation apparatus
US4425615A (en) 1980-11-14 1984-01-10 Sperry Corporation Hierarchical memory system having cache/disk subsystem with command queues for plural disks
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control
US4725946A (en) * 1985-06-27 1988-02-16 Honeywell Information Systems Inc. P and V instructions for semaphore architecture in a multiprogramming/multiprocessing environment
US4807111A (en) * 1987-06-19 1989-02-21 International Business Machines Corporation Dynamic queueing method
JPS6477339A (en) * 1987-09-18 1989-03-23 Nec Corp Collision detecting type lan terminal interface module
US5274809A (en) * 1988-05-26 1993-12-28 Hitachi, Ltd. Task execution control method for a multiprocessor system with enhanced post/wait procedure
US5155854A (en) * 1989-02-03 1992-10-13 Digital Equipment Corporation System for arbitrating communication requests using multi-pass control unit based on availability of system resources
US5265257A (en) * 1990-06-22 1993-11-23 Digital Equipment Corporation Fast arbiter having easy scaling for large numbers of requesters, large numbers of resource types with multiple instances of each type, and selectable queuing disciplines
US5724539A (en) * 1992-03-19 1998-03-03 Digital Equipment Corporation System for selectively storing stripes of data in tracks of disks so that sum of transfer rates of stripes match communication bandwidth to host
DK0627100T3 (da) * 1992-12-23 2000-06-26 Ebauchesfabrik Eta Ag Laveffekt-multitaskkontroller
CA2094210C (en) * 1993-04-16 1997-07-08 Mark R. Sestak Multiple queue resource management
US5574851A (en) * 1993-04-19 1996-11-12 At&T Global Information Solutions Company Method for performing on-line reconfiguration of a disk array concurrent with execution of disk I/O operations
US5440563A (en) * 1993-10-12 1995-08-08 At&T Corp. Service circuit allocation in large networks
US5448566A (en) * 1993-11-15 1995-09-05 International Business Machines Corporation Method and apparatus for facilitating communication in a multilayer communication architecture via a dynamic communication channel
US6058473A (en) 1993-11-30 2000-05-02 Texas Instruments Incorporated Memory store from a register pair conditional upon a selected status bit
US5537466A (en) * 1994-08-04 1996-07-16 British Telecommunications, Plc. Intelligent communications networks
NZ290889A (en) * 1994-08-04 1997-05-26 British Telecomm Service node for intelligent communication network
US6094525A (en) 1995-07-06 2000-07-25 Novell, Inc. Network addressing arrangement for backward compatible routing of an expanded address space
JP2928146B2 (ja) 1995-11-29 1999-08-03 日本電気アイシーマイコンシステム株式会社 文字多重データメモリ管理方法
US5867736A (en) 1996-03-29 1999-02-02 Lsi Logic Corporation Methods for simplified integration of host based storage array control functions using read and write operations on a storage array control port
US6067317A (en) * 1996-05-17 2000-05-23 Lucent Technologies Inc. Computer bus resource port
US5896339A (en) * 1996-09-23 1999-04-20 Micron Technology, Inc. Multi-bit block write in a random access memory
US6697868B2 (en) * 2000-02-28 2004-02-24 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US6591302B2 (en) 1997-10-14 2003-07-08 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US8782199B2 (en) 1997-10-14 2014-07-15 A-Tech Llc Parsing a packet header
US6427171B1 (en) 1997-10-14 2002-07-30 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US6134630A (en) 1997-11-14 2000-10-17 3Ware High-performance bus architecture for disk array system
JP3604548B2 (ja) 1997-11-28 2004-12-22 株式会社ルネサステクノロジ アドレス一致検出装置、通信制御システム及びアドレス一致検出方法
US6167558A (en) * 1998-02-20 2000-12-26 Xilinx, Inc. Method for tolerating defective logic blocks in programmable logic devices
US6115788A (en) * 1998-02-20 2000-09-05 Seagate Technology, Inc. Multi-drive array with improved data transfer rate performance
US6873652B1 (en) 1998-04-01 2005-03-29 Panasonic Communications Co., Ltd. Activation of multiple xDSL modems with implicit channel probe
US6772256B1 (en) * 1998-05-27 2004-08-03 Micron Technology, Inc. Routing arbiter for data network switching
JP4234233B2 (ja) * 1998-05-27 2009-03-04 富士通株式会社 情報記憶装置及びプログラムが記憶された記録媒体
US6167477A (en) * 1998-06-15 2000-12-26 Sun Microsystems, Inc. Computer system bridge employing a resource control mechanism with programmable registers to control resource allocation
US6330612B1 (en) * 1998-08-28 2001-12-11 International Business Machines Corporation Method and apparatus for serializing access to a shared resource in an information handling system
US6560627B1 (en) * 1999-01-28 2003-05-06 Cisco Technology, Inc. Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore
US6349345B1 (en) 1999-01-29 2002-02-19 Hewlett-Packard Company Autoconfigurable device that provisionally configures itself as the primary or secondary peripheral device depending on if another peripheral device is present
US20050235319A1 (en) * 1999-12-10 2005-10-20 Carpenter Kenneth F Features for use with advanced set-top applications on interactive television systems
CA2302959A1 (en) * 2000-03-23 2001-09-23 Ibm Canada Limited-Ibm Canada Limitee Priority resource allocation in programming environments
US7062561B1 (en) * 2000-05-23 2006-06-13 Richard Reisman Method and apparatus for utilizing the social usage learned from multi-user feedback to improve resource identity signifier mapping
US6829765B1 (en) * 2000-07-18 2004-12-07 International Business Machines Corporation Job scheduling based upon availability of real and/or virtual resources
EP1746850B1 (en) * 2000-08-03 2009-10-21 Infineon Technologies AG Dynamically reconfigurable universal transmitter system
US6549978B2 (en) * 2001-01-17 2003-04-15 International Business Machines Corporation Method for storage controllers with different data formats to access common storage configuration information
FR2820270B1 (fr) * 2001-01-29 2003-04-25 Mitsubishi Electric Inf Tech Methode d'allocation implicite de ressources
US6732231B1 (en) 2001-02-28 2004-05-04 Emc Corporation System and method for management of mirrored storage devices storing device serial numbers
US7336658B2 (en) 2001-02-28 2008-02-26 Telefonaktiebolaget Lm Ericsson (Publ) Methods and system of virtual circuit identification based on bit permutation of link numbers for multi-stage elements
US20040015874A1 (en) * 2001-05-14 2004-01-22 David Ungar Method and apparatus for finding resource allocation errors in virtual machine compilers
US6697881B2 (en) 2001-05-29 2004-02-24 Hewlett-Packard Development Company, L.P. Method and system for efficient format, read, write, and initial copy processing involving sparse logical units
US7058799B2 (en) * 2001-06-19 2006-06-06 Micron Technology, Inc. Apparatus and method for clock domain crossing with integrated decode
US6966061B1 (en) * 2001-09-20 2005-11-15 Bellsouth Intellectual Property Corp. System and method for managing initiative delivery process
US6982986B2 (en) 2001-11-01 2006-01-03 International Business Machines Corporation QoS scheduler and method for implementing quality of service anticipating the end of a chain of flows
US6988185B2 (en) * 2002-01-22 2006-01-17 Intel Corporation Select-free dynamic instruction scheduling
US7051242B2 (en) * 2002-02-08 2006-05-23 Hewlett-Packard Development Company, L.P. Method and apparatus for improving yield by decommissioning optional units on a CPU due to manufacturing defects
WO2004004245A1 (en) * 2002-06-28 2004-01-08 Nokia Corporation Load balancing devices and method therefor
US7225258B2 (en) * 2002-09-09 2007-05-29 General Dynamics Corporation System and method for connecting dynamic networks with limited resources
US7444634B2 (en) * 2002-10-31 2008-10-28 Sun Microsystems, Inc. Method and apparatus for providing dynamic locks for global resources
US20050075915A1 (en) * 2003-10-07 2005-04-07 Accenture Global Services Gmbh Technology benefits realization for public sector
US7174406B1 (en) * 2003-12-16 2007-02-06 Emc Corporation System and method for arbitrating access to a shared resource
US8655997B2 (en) * 2004-01-30 2014-02-18 International Business Machines Corporation Hierarchical resource management for a computing utility
US7222202B2 (en) * 2004-02-17 2007-05-22 Broadcom Corporation Method for monitoring a set of semaphore registers using a limited-width test bus
US7475089B1 (en) * 2004-09-02 2009-01-06 Sprint Spectrum L.P. Enhanced portal server system and method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61202232A (ja) * 1985-03-05 1986-09-08 Fujitsu Ltd 資源待ち管理方式
JPH0492930A (ja) * 1990-08-06 1992-03-25 Fujitsu Ltd 排他制御処理装置
JPH05158783A (ja) * 1991-12-11 1993-06-25 Fujitsu Ltd メモリブロック制御方式
JPH10301907A (ja) * 1997-04-14 1998-11-13 Internatl Business Mach Corp <Ibm> 共用資源に対するアクセスを制御する方法およびシステム
JPH11259319A (ja) * 1998-03-12 1999-09-24 Matsushita Electric Ind Co Ltd リソース割当方法
JP2000172515A (ja) * 1998-09-29 2000-06-23 Nec Corp 資源優先割り当て方式、資源優先割り当て方法および資源優先割り当てプログラムを記録した記録媒体
JP2001195269A (ja) * 2000-01-12 2001-07-19 Nec Commun Syst Ltd ソフトウェア資源の長期保留検出方式および方法

Also Published As

Publication number Publication date
US20060005196A1 (en) 2006-01-05
JP2014063536A (ja) 2014-04-10
JP5767347B2 (ja) 2015-08-19
JP5762146B2 (ja) 2015-08-12
JP2011165223A (ja) 2011-08-25
US7917906B2 (en) 2011-03-29

Similar Documents

Publication Publication Date Title
JP5767347B2 (ja) コンピュータ・ベース・システムにおける資源割当て方法
JP4922496B2 (ja) I/o要求に優先順位を与える方法
JP5932043B2 (ja) 不揮発性記憶装置セットの揮発メモリ表現
US8185905B2 (en) Resource allocation in computing systems according to permissible flexibilities in the recommended resource requirements
WO2012147116A1 (en) Computer system and virtual machine control method
US20080162735A1 (en) Methods and systems for prioritizing input/outputs to storage devices
JP4748950B2 (ja) 記憶領域管理方法及びシステム
US20060156055A1 (en) Storage network that includes an arbiter for managing access to storage resources
JP5416860B2 (ja) 計算機システムおよびその制御方法
JP5734415B2 (ja) ポートマルチプライヤのためのマルチレベルポート拡張
JP4677514B2 (ja) 物理ネットワーク・インターフェースを選択するための装置、方法、およびプログラム
KR20160061863A (ko) 이기종 스토리지 및 처리 메커니즘을 갖는 컴퓨팅 시스템 및 그것의 동작 방법
JP2007128511A (ja) セルベースシステムにおいて資源を自動的に評価し割り当てる方法および装置
CN109976907B (zh) 任务分配方法和系统、电子设备、计算机可读介质
US7702879B2 (en) Assigning alias addresses to base addresses
JP5104855B2 (ja) 負荷分散プログラム、負荷分散方法、及びストレージ管理装置
KR20200080458A (ko) 클라우드 멀티-클러스터 장치
JP3752193B2 (ja) ホスト・オペレーティング・システムとゲスト・オペレーティング・システムとの間でアクセス装置の使用を割り振る方法
EP2584453A2 (en) Method and apparatus to change storage tiers
JP2010097566A (ja) 情報処理装置、及び情報処理システムにおけるバッチ処理の割り当て方法
US20240160487A1 (en) Flexible gpu resource scheduling method in large-scale container operation environment
JP4857092B2 (ja) エイリアス・アドレスをベース・アドレスに割り当てるプログラム、システム及び方法
WO2013031998A1 (ja) 設計支援装置、設計支援方法、及び、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080516

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100526

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110105

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110331

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110405

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110502

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110815

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111018