JP4597608B2 - 連続媒体優先順位を意識した記憶装置スケジューラ - Google Patents

連続媒体優先順位を意識した記憶装置スケジューラ Download PDF

Info

Publication number
JP4597608B2
JP4597608B2 JP2004236041A JP2004236041A JP4597608B2 JP 4597608 B2 JP4597608 B2 JP 4597608B2 JP 2004236041 A JP2004236041 A JP 2004236041A JP 2004236041 A JP2004236041 A JP 2004236041A JP 4597608 B2 JP4597608 B2 JP 4597608B2
Authority
JP
Japan
Prior art keywords
requests
queue
round
periodic
storage medium
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.)
Expired - Fee Related
Application number
JP2004236041A
Other languages
English (en)
Other versions
JP2005071353A (ja
Inventor
ディー.ヘンデル マシュー
シダーサ
ウィン−シー リュウ ジェーン
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005071353A publication Critical patent/JP2005071353A/ja
Application granted granted Critical
Publication of JP4597608B2 publication Critical patent/JP4597608B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、一般に、コンピュータシステムに関し、より詳細には、効率的かつ限定された形でデータ要求をスケジューリングすることを容易にするシステムおよび方法に関する。
ドライブヘッドを探索することで生じる性能の損失を低減するために、オペレーティングシステムソフトウェア(およびドライブファームウェア)は従来、I/Oパケットを再順序付けし、探索(seek)時間を最小限に抑えている。長い探索時間に対処しつつ、ディスクドライブに対するかなりのアクセスを維持するため、多くの研究が行われている。一般に、従来のディスクスケジューリングアルゴリズムは、ディスク宛の要求を再順序付けし、データスループットを最大化する。多数のオペレーティングシステムによって実施されている共通アルゴリズムの1つは、しばしばC−SCANアルゴリズムと呼ばれる、正式にはC−LOOKアルゴリズムである。C−LOOKアルゴリズムは、任意の数の要求を再順序付けし、考えられる最高のデバイスに対するスループットを達成する。しかし、この種の再順序付けにおいては、C−LOOKアルゴリズムにより、要求が開始された時間から、要求が最終的に完了するまでの間に大きな待ち時間が生じる可能性がある。
上記で指摘されるように、実施されているほとんどの共通アルゴリズムはC−LOOKアルゴリズムであり、C−LOOKアルゴリズムは、要求の順序付けを行って、ディスクヘッドが入力/出力動作(I/O)を実行するディスクを端から端まで1方向で掃引し、次いで、追加のI/Oを実行するためにディスクの他方の側に戻るようにする。これはしばしば、論理ブロックアドレス順序付けまたはLBA順序付けと呼ばれる。残念なことに、従来のディスクスケジューリングアルゴリズムにおいては、ディスクに対するより高いスループットのため、アクセス時間(または待ち時間)は単純な先入れ先出し(FIFO)キューイングを超える、より長いものとなる。これはより良好なスループットを提供するが、I/O要求については潜在的に、および劇的に長い待ち時間となる。従来のオペレーティングシステムの場合、この兼ね合いは、十分そのコストに見合う。一例としてはオーディオ・ビジュアルストリーミングをサポートすることが必要な、より新しいシステムの場合、単に待ち時間をスループットの高さで対処しようとしても、しばしばこれは受け入れられない。
多くのこれに替わるディスクスケジューリングアルゴリズムが実施されている。具体的には、到着順(first−come−first−serve/FCFS、またFIFOとも呼ばれることがある)アルゴリズムと期限の早い順(earliest−deadline−first/EDF)アルゴリズムが、それぞれマルチメディアアプリケーションにおけるスケジューリングのために提案されている。FCFSアルゴリズムは、I/Oを実行するための時間を、現在のキューの長さに応じて限定し、EDFアルゴリズムは、期限のより早い要求が、期限のより遅い要求の前に実行されることを保証する。
残念なことに、FCFSアルゴリズムもEDFアルゴリズムも共に、I/Oスループットが不十分である。専用オペレーティングシステムやリアルタイムオペレーティングシステムでは、このようにディスクが十分に利用されないことは欠点とはならないかもしれないが、たとえばマルチメディアアプリケーションをも処理する(host)汎用オペレーティングシステムでは、I/O要求を実行するための待ち時間を限定するためにスループットが著しく低下することは、通常受け入れられない。
以下に、本発明のいくつかの態様の基本的理解のため、本発明の簡単な概要を説明する。この概要は、本発明の広範な全体像ではない。本発明の重要な要素を識別すること、あるいは本発明の範囲を述べることは意図されていない。後述されるより詳しい説明に対する序文として、本発明のいくつかの概念を簡単な形態で提供することだけが目的である。
本発明は、記憶媒体に対するデータ要求の動的スケジューリングを効率的かつ適時に支援するシステムおよび方法に関する。データ要求は、ディスクドライブまたは他のタイプの媒体など記憶媒体に対する、入力/出力(I/O)読出しおよび書込みとして処理される。スケジューリングは、ディスクドライブの1走査当たり固定された数の要求を再順序付けし、したがって、要求の待ち時間に対して固定された上限を設けるアーキテクチャにおいて達成される。ここで、ディスクドライブの各走査は、ラウンドと呼ばれる。ディスクドライブが実行するのに効率的なパターンに要求が再順序付けされるため、ディスクドライブに対する高いスループットもまた達成される。したがって、少なくとも1つのスケジューリングコンポーネントを含むディスクスケジューリングシステムが提供される。このスケジューリングコンポーネントは、1ラウンド内で予め定められた数の要求を使用して所定の待ち時間保証を提供し、一方、ディスク更新に関連して高いスループットレベルを維持する。
一態様において、I/Oの決定されたカテゴリに従ってI/O要求を類別する許可コントローラが提供される。たとえば、マルチメディアアプリケーションに関連付けられたI/Oは周期的I/Oとして類別することができ、一方、他のI/Oは非周期的として特徴付けることができるであろう。非周期的I/Oは、優先順位によってさらに特徴付けられ、任意の固定された数の優先順位が存在する。一実施例において、優先順位の数を32に限定することができる。しかし、これは、他の実施例において、より大きい値、またはより小さい値に容易に変更することができる。
周期的I/O要求は、周期的I/Oキューに入れて、望むなら、期限の早い(EDF)順で維持することができる。非周期的I/O要求は、要求の優先順位に基づいて別々の非周期的I/Oキューに入れることができ、非周期的キューは、たとえばFCFS順で維持することができる。アルゴリズムの各ラウンド中に、周期的キューおよび非周期的キューからの固定された数の要求が取り出され、掃引キューに配置される。掃引キューは、C−LOOK順で維持される。要求は、掃引キューからC−LOOK順で取り出され、ディスクにスケジューリングされる。諸要素がC−LOOK順で物理ドライブにスケジューリングされるため、ドライブに対して高い性能が維持される。
前述の、および関連の目的を達成するため、以下の説明および添付の図面と関連して、本発明のある例示的な諸態様が本明細書に述べられている。これらの態様は、本発明を実施することができる様々な方法を示すものであり、そのすべてを本発明に包含しようとするものである。本発明の他の利点および新規な特徴は、図面と共に考察すると、以下の本発明の詳細な説明から明らかになる可能性がある。
本発明は、コンピュータ記憶媒体に対するI/Oアクセスを、予測可能かつ効率的な形で支援するシステムおよび方法に関する。様々なレベルのデータアクセス要件に鑑みて、ディスクI/Oについて様々なレベルの性能保証を提供するという問題を軽減するスケジューリングシステムおよび方法が提供される。一態様においては、本スケジューリングシステムは、より時間に最重要なアプリケーションについて高性能I/O更新を促進し、一方、限定された、または決定された形でディスクに対する高スループットを維持するアルゴリズムまたはコンポーネントを含む。これは、I/Oアクセス時間および待ち時間という考慮すべき点(たとえば、I/Oアクセスの範囲に対して限定を設けること)を、他のデータスケジューリングタスクという考慮すべき点(たとえば、I/Oアクセスデータタスクのレベルを重要度によって分類すること)と動的に釣り合わせることによって達成される。また、本システムは、マルチメディアアプリケーション(たとえば、オーディオ/ビジュアルストリームなど周期的データを有し、時間に左右されるアプリケーション)について待ち時間境界を設け、他のアプリケーション(たとえば、周期的でないデータに関連する優先順位の低いI/Oタスク)についてデータアクセスを管理する。
本願では、「コンポーネント」「スケジューラ」「システム」などの用語は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアであるコンピュータ関連のエンティティを指すものとする。たとえば、コンポーネントは、それだけには限らないが、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/またはコンピュータとすることができる。例示のために、サーバ上で動作するアプリケーションもサーバも共にコンポーネントとすることができる。プロセスおよび/または実行のスレッド内に1つまたは複数のコンポーネントが常駐することができ、コンポーネントは、1つのコンピュータに局所化し、および/または2つ以上のコンピュータ間で分散することができる。
まず図1を参照すると、本発明の一態様によるスケジューリングシステム100が示されている。記憶媒体120宛の/記憶媒体120からの1つまたは複数の入力/出力(I/O)データ要求110は、カテゴライザ130によって処理され、自動的に1つまたは複数のクラスのキュー140内に整理される。そのようなキュー140は、マルチメディアストリームなど周期的I/Oデータ用の周期的キューと、非周期的データなど他の種類のデータ用の1つまたは複数のキューとを含むことができる。周期的I/Oストリームは、マルチメディアタイプのアプリケーション用など、一定の間隔で生成されるストリームである。他のI/Oストリームは、非周期的I/Oストリームと見なされる。周期的I/Oと異なり、非周期的I/Oの到着率は、時間の経過につれて急に変化する可能性がある。さらに、非周期的I/Oは、やはりキュー140に関連付けられた様々なI/Oクラスに分類することができる。
カテゴライザ130は、スケジューラ160によって処理されるキュー140内に要求を転送するが、スケジューラ160は、固定された、または予め定められたサイズのキュー170を有する。スケジューラ160は、1つまたは複数のデータラウンド150の形態で記憶媒体120に対してデータを読み出し、および/または書き込むため、キュー170へ/キュー170からデータを転送する。データラウンド150は、システムの全体的な待ち時間およびスループットを抑制する定められた時間スロットに従って媒体に向けて送られる。1ラウンド当たりの要求数の点で予め定められたサイズを有するデータ要求のラウンド150を転送することにより、本発明は、媒体に対する/媒体からの所望のデータスループットに鑑みて、記憶媒体120にアクセスするための全体的な待ち時間を動的に釣り合わせる。
上記で指摘したように、ディスクドライブ(たとえば、ハードディスク、フロッピー(登録商標)ディスク)または他のタイプの媒体(たとえば、CD、コンピュータからアクセスされるようにスケジューリングされる任意のタイプのメモリ)を示すことができる記憶媒体120に対するI/O読出し/書込みとして、データ要求110が処理される。一般に、スケジューリングは、記憶媒体120に対する所望のスループットを維持している間に、1ラウンド当たり予め定められた数、部分集合、集合の要求150をサービスすることによってI/O要求の待ち時間を限定する多層アーキテクチャにおいて実現される。また、選択されたタスクにI/Oスケジューリングを割り振るために、カテゴライザ130および/またはスケジューラ160によって、決定された量のI/O帯域幅を動的に予約することができる。システム100に示されているコンポーネントは、分離し、ローカルおよび/または遠隔コンピュータシステム上で通信することができること、および/または、本明細書に述べられている機能を実行するために様々な形態で組み合わせることができる(たとえば、スケジューリング機能を形成するために組み合わせられたプリカテゴライザとスケジューラ)ことに留意されたい。
次に図2を参照すると、本発明の一態様による多層スケジューリングシステム200が示されている。システム200についてアルゴリズムの点で述べることができるが、このシステムは、1つのコンポーネント、複数のコンポーネント、ハードウェア、ソフトウェア、および/またはそれらの組合せとして実施することができることを理解されたい。システム200は、ユーザまたはアプリケーションからの複数のデータ要求210を処理する。これらの要求210は、1つの周期的キュー220(または複数のキュー)、および1つまたは複数の他のキュー230内で整理される。次いで、キュー220および230からの要求は、固定されたサイズを有する掃引キュー240内に転送されてから、ディスク250に書き込まれ、またはディスク250から読み出される。上記で指摘したように、本発明は、1組の要求の待ち時間を限定しつつ、許容できるスループットを維持するものである。したがって、システム200は、これらの考慮すべき点を自動的に、かつ動的に釣り合わせるアルゴリズムとして提供することができる。
一般に、システム200は、2つの別個のタイプのI/Oストリームを区別する。周期的I/Oストリームは、マルチメディアアプリケーション用に一定の間隔で到来するストリームである。したがって、周期的I/Oストリームは、システムリソースに対して検査することができる所定の性能パラメータと共に開かれる。システムの能力を超える周期的I/Oストリームを開こうとする場合、望むならその要求を打ち切ることができる。許可制御機構(図示せず)は、その周期的I/Oのそれぞれのパラメータを超えないことを強制する。他のI/Oストリームは、非周期的I/Oストリームと見なされる。周期的I/Oと異なり、非周期的I/Oの到着率は、時間の経過につれて急に変化する可能性がある。
さらに、非周期的I/Oは、様々なI/O優先順位クラスに分類することができる。これらの様々な優先順位は、コンピュータシステムなど、システム内の様々なコンポーネントの様々なI/Oニーズを表す。たとえば、オペレーティングシステムのメモリマネージャがページングされたメモリを使い果たしたとき、一般に、アプリケーションが確実に引き続き実行することができるように、可能な限り迅速にメモリを解放することが重要である。この状況では、メモリマネージャのI/O要求が、ユーザアプリケーションからのあまり重要でないI/O要求の後方で遮断されないことが望ましい。従来、バックグラウンドタスクは、しばしば、その機能を達成するためにI/Oを実行することを必要とする。これらのバックグラウンドタスクが大量のI/Oを生成する場合、より少ないI/Oを生成するフォアグラウンドタスクの性能に容易に影響を及ぼす可能性がある。一般に、システム200は、最重要、高優先順位、対話型、通常、バックグラウンド、低優先順位、アイドルという7つの優先順位クラスをサポートする(7つより多い、または少ない優先順位クラスを使用することができる)。一般に、より高い優先順位クラスからのI/Oが、より低い優先順位クラスからのI/Oの前に処理されることが望ましい。
一般に、システム200は、上述の目標を達成するために、(より多く、または少なくすることができる)4つの技法を適用する。たとえば、様々な要求キュー内で様々な種類の要求を保持する2レベルのキューイング機構を提供することができる。クラス特有の要求キュー230は、様々な要求クラスについてクラスレベルのスケジューリングを実行する。一実施形態において、たとえば、8つのクラス特有のキューを持たせることができる。周期的要求は、周期的キュー220内で保持され、一般にEDF順で維持される一方、非周期的要求は、一般にFIFO順で維持される。これらの順序付けは、周期的要求が大量の非周期的要求の後方で詰まることを軽減し、また低優先順位要求の前に高優先順位要求をスケジューリングすることを可能にする。
掃引キュー240は、物理ディスク250に対してスケジューリングされることになる要求をキューに入れるために使用される。クラス特有のキューからの要求は、掃引キューが空になったとき掃引キューに移動される。掃引キュー内の要素は、論理ブロックアドレス(LBA)順序付け(他の順序付けも可能)で順序付けられ、掃引キューは、要求をドライブ250に対してスケジューリングするときC−LOOKアルゴリズム(または他の同様なタイプ)を実行する。さらに、システム200は、掃引キュー全体をスケジューリングするのに必要とされる時間の長さを演繹的に計算するために、掃引キュー240のサイズを固定する。さらに、システム200は、必要なときI/O帯域幅の可用性を支援するために、掃引キュー240内のエントリを予約することができる。
図3は、上述のコンポーネントおよびプロセスを実施するために使用することができるシステム400を示す。I/Oディスクアクセスのための1つまたは複数の要求404が許可コントローラ410によって受信され、この要求は、一般に、コンピュータシステム上で実行可能なコンポーネントまたはアプリケーションから受け取られる。要求が周期的要求である場合、許可コントローラ410に関連付けられた期限コンポーネント420は、要求を完了すべき期限または時間枠を割り当てる。周期的でない要求など他の種類の要求は、許可コントローラ410から、クラス指定(class−specifier)コンポーネントに関連付けられた非周期的キュー440に渡される。期限指定がタグ付けされた周期的要求は、クラス指定コンポーネント内の周期的キュー430内で処理される。クラス指定コンポーネントは、選択された要求クラスに関連付けられた所望のポリシーに基づいて、要求をソートする。上記で指摘したように、周期的キュー430は、EDF順序付けに従って構成することができ、一方非周期的キュー440は、FIFO順序付けに従って構成することができる。現在の掃引ラウンドが完了したとき、掃引キュー(図示せず)は、キュー430および440から充填される。次いで、掃引キューは、C−LOOKコンポーネント450を介して、C−LOOK順で1枚のディスク460(または複数のディスク)に対してスケジューリングされる。
図4および図5は、本発明の一態様によるディスクスケジューリングプロセスを示す図である。説明を簡単にするため、方法は一連の動作として示し、また記述するが、本発明によるいくつかの動作は、本明細書に示され、また述べられているものと異なる順序とすることもでき、または他の動作と同時に行うこともできることから、本発明は動作の順序によって制限されないことを理解されたい。たとえば、方法は、これに代えて状態図など一連の相互に関係のある状態または事象として表すことができることを、当業者なら理解できるであろう。さらに、本発明による方法を実施するのに図の動作すべてが必要とされるわけではない。
図4は、本発明によるディスクスケジューリングプロセスの特定の一実施形態のためのプロセス500を示す。プロセス510に進むと、許可コントローラは、コンピュータシステムの上位レベルからの1つの要求(または複数の要求)を受信/処理する。要求が周期的要求である場合、許可コントローラは、そのI/O要求について期限を設け、そうでない場合には、許可コントローラからクラス特有のキューに要求が無修正で渡される。プロセス520で、許可コントローラからの要求が、適正なクラス特有のキューに配置される。クラス特有のキューは、要求のそのクラスにとって望ましい、または適切なポリシーに基づいて要求をソートし、周期的要求は、EDF順序付けでソートされ、非周期的要求は、FIFO順序付けでソートされる。プロセス530で、現在の掃引ラウンドが完了したとき、掃引キューは、クラス特有のキューからの要求で充填される。プロセス540で、掃引キューは、たとえば、C−LOOK順でディスクに対してスケジューリングされる。以下は、本明細書に述べられているシステムおよび方法と共に使用することができる、本発明によるアルゴリズムの擬似コード例である。
(例)
while 周期的キュー≠0 and 周期的スロット≠0 and
DEADLINE(周期的キュー)<ROUND_TIME do
INSERT_LBA_ORDER(掃引キュー,REMOVE_EDF_ORDER(周期的キュー))
周期的スロット=周期的スロット-1
end

for 優先順位=High downto Idle do
while 優先順位リスト[優先順位].スロット≠0
INSERT_LBA_ORDER(掃引キュー,
REMOVE_FIFO_ORDER(優先順位キュー[優先順位]))
優先順位リスト[優先順位].スロット=優先順位リスト[優先順位].スロット-1
end
end

while 掃引キュー≠0 do
SCHEDULE(REMOVE_MINMUM_LBA(掃引キュー))
end
上記のアルゴリズムは、指定された数の要求を完了するため、待ち時間に対して明確な上限を有することに留意されたい。nが整数であるn個の要求の場合、待ち時間に対する上限は、以下の通りである。
Figure 0004597608
したがって、上記のアルゴリズムでは、最大I/Oサービス時間が、掃引深度(sweep−depth)変数(n)によってパラメータ化される。特定のディスクドライブについて掃引深度とパラメータ群が与えられた場合、所与の掃引深度について最悪の場合の待ち時間値を計算することができる。
本発明に従って使用することができるいくつかのコンポーネントについて述べる際に、C−LOOKそれ自体は、一般に、いずれの待ち時間も保証することなく、要求すべてを等しく扱うことに留意されたい。しかし、C−LOOKは、ディスクスループットが最大化される点でディスクの最適なスケジューリングを実現する。EDFアルゴリズムは、最も早い期限を有する要求を最初に処理することができるが、長いシーク遅延を受ける可能性がある。EDF走査は、概してこの2者間の兼ね合いである。したがって、各々のI/Oが、走査に陥るゼロの期限と共に送られる可能性があるため、EDF走査において保証することは困難である。本発明および関連アルゴリズムでは、最悪の場合の待ち時間を保証すること、より厳しい許可制御を提供すること、および限定された待ち時間を保証することと、ローカルで最適化されたディスクのスケジューリングおよび一定のI/Oのための優先順位方式との兼ね合いをはかって動作が行なわれる。
図5は、本発明の一態様によるディスクスケジューリング方法のためのプロセス600を示す。プロセス610に進むと、I/O要求のための待ち時間要件(たとえば、アプリケーションが適切に機能するための最悪の場合のスケジューリング時間は何か)が決定される。プロセス620で、プロセス610で決定された待ち時間要件に基づいてラウンドサイズが調整される。プロセス640で、決定された待ち時間要件に基づいて、要求が1ラウンド内で順序付けられる。プロセス650で、プロセス610およびプロセス620での決定に基づいて固定されたサイズを有する1ラウンドに従ってディスクが更新される。プロセス660で、そのラウンドのサイズを変える、または交換するかどうかについて決定がなされる(たとえば、変更されたシステム環境に基づいて動的な処理がなされる)。変えない場合、プロセスはプロセス620に戻り、I/O要求の後続のラウンドを処理する。プロセス660でラウンドサイズを調整しようとする場合、プロセスはプロセス610に戻り、待ち時間要件が決定され、次いで、プロセス620でラウンドサイズが調整される。
図6を参照すると、本発明の様々な態様を実施するための例示的な環境は、コンピュータ712を備える。コンピュータ712は、処理装置714、システムメモリ716、システムバス718を備える。システムバス718は、それだけには限らないが、システムメモリ716を含むシステムコンポーネントを処理装置714に結合する。処理装置714は、様々な使用可能なプロセッサのいずれかとすることができる。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャもまた、処理装置714として使用することができる。
システムバス718は、メモリバスもしくはメモリコントローラ、周辺機器バスもしくは外部バス、および/または任意の様々な使用可能なバスアーキテクチャを使用するローカルバスを含め、いくつかの種類のバス構造のいずれかとすることができる。バスアーキテクチャには、それだけには限らないが、16ビットバス、ISA(Industrial Standard Architecture)、MCA(Micro Channel Architecture)、EISA(Extended ISA)、IDE(Intelligent Drive Electroniccs)、VESAローカルバス(VLB)、PCI(Peripheral Component Interconnect)、ユニバーサルシリアルバス(USB)、AGP(Advanced Graphics Port)、PCMCIA(Personal Computer Memory Card International Association)バス、SCSI(Small Computer Systems Interface)が含まれる。
システムメモリ716には、揮発性メモリ720および不揮発性メモリ722がある。起動中などにコンピュータ712内の要素間で情報を転送する基本ルーチンを含む基本入出力システム(BIOS)は、不揮発性メモリ722内に記憶されている。限定ではなく例を挙げると、不揮発性メモリ722には、読出し専用メモリ(ROM)、プログラム可能なROM(PROM)、電気的プログラム可能なROM(EPROM)、電気的消去可能なROM(EEPROM)、またはフラッシュメモリが含まれる。揮発性メモリ720には、外部キャッシュメモリとして動作するランダムアクセスメモリ(RAM)が含まれる。限定ではなく例を挙げると、RAMは、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレートSDRAM(DDR SDRAM)、ESDRAM(enhanced SDRAM)、SLDRAM(Synchlink DRAM)、ダイレクトラムバスRAM(DRRAM)など、多数の形態で使用可能である。
コンピュータ712はまた、取外し式/固定式、揮発性/不揮発性コンピュータ記憶媒体を含む。図6は、たとえば、ディスク記憶装置724を示す。ディスク記憶装置724には、それだけには限らないが、磁気ディスクドライブ、フロッピー(登録商標)ディスクドライブ、テープドライブ、Jazドライブ、Zipドライブ、LS−100ドライブ、フラッシュメモリカード、メモリースティックのようなデバイスが含まれる。さらに、ディスク記憶装置724には、それだけには限らないが、コンパクトディスクROMデバイス(CD−ROM)、記録可能なCDドライブ(CD−Rドライブ)、再書込み可能なCDドライブ(CD−RWドライブ)、またはデジタル多用途ディスクROMドライブ(DVD−ROM)など光ディスクドライブを含めて、記憶媒体が別個に、または他の記憶媒体との組合せで含まれる可能性がある。ディスク記憶装置724のシステムバス718に対する接続を容易にするために、インターフェース726など取外し式または固定式インターフェースが一般に使用される。
図6は、ユーザと、好適な動作環境に述べられている基本的なコンピュータ資源との間の媒介物として動作するソフトウェアについて説明していることを理解されたい。そのようなソフトウェアには、オペレーティングシステム728が含まれる。オペレーティングシステム728は、ディスク記憶装置724に記憶することができ、コンピュータシステム712の資源を制御し、割り振るように動作する。システムアプリケーション730は、システムメモリ716内またはディスク記憶装置724に記憶されたプログラムモジュール732およびプログラムデータ734を介して、オペレーティングシステム728による資源の管理を利用する。本発明は様々なオペレーティングシステムまたはオペレーティングシステムの組合せと共に実施することができることを理解されたい。
ユーザは、入力デバイス736を介してコンピュータ712にコマンドまたは情報を入力する。入力デバイス736には、それだけには限らないが、マウスなどポインティングデバイス、トラックボール、スタイラス、タッチパッド、キーボード、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナ、TV同調器カード、デジタルカメラ、デジタルビデオカメラ、ウェブカメラなどが含まれる。これら、および他の入力デバイスは、インターフェースポート738を介して、システムバス718を通じて処理装置714に接続する。インターフェースポート738には、たとえば、シリアルポート、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)が含まれる。出力デバイス740は、入力デバイス736と同じタイプのポートのいくつかを使用する。したがって、たとえばUSBポートは、コンピュータ712に入力を提供するために、また、コンピュータ712から出力デバイス740に情報を出力するために使用することができる。出力アダプタ742は、出力デバイス740の中でも、特別なアダプタを必要とするモニタ、スピーカ、プリンタのようないくつかの出力デバイス740があることを示すために提供されている。限定ではなく例を挙げると、出力アダプタ742には、出力デバイス740とシステムバス718の間で接続手段を提供するビデオカードおよびサウンドカードが含まれる。他のデバイスおよび/またはデバイスのシステムは、遠隔コンピュータ744など、入力機能と出力機能を共に提供することに留意されたい。
コンピュータ712は、遠隔コンピュータ744など、1つまたは複数の遠隔コンピュータに対する論理接続を使用してネットワーク環境内で動作することができる。遠隔コンピュータ744は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサをベースとする家電、ピアデバイスまたは他の共通ネットワークノードなどとすることができ、一般に、コンピュータ712に関して上述した要素の多数または全部を含む。簡潔にするために、メモリ記憶装置746だけが遠隔コンピュータ744と共に示されている。遠隔コンピュータ744は、ネットワークインターフェース748を介してコンピュータ712に論理的に接続され、次いで、通信接続750を介して物理的に接続される。ネットワークインターフェース748は、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)など、通信ネットワークを含む。LAN技術には、光ファイバ分散データインターフェース(FDDI)、銅分散データインターフェース(CDDI)、イーサネット(登録商標)/IEEE1102.3、トークンリング/IEEE1102.5などが含まれる。WAN技術には、それだけには限らないが、ポイント・トゥ・ポイント・リンク、総合デジタル通信網(ISDN)のような回路交換ネットワークとその変形形態、パケット交換ネットワーク、およびデジタル加入者回線(DSL)が含まれる。
通信ネットワーク750は、ネットワークインターフェース748をバス718に接続するために使用されるハードウェア/ソフトウェアを指す。通信接続750は、図が見やすいようにコンピュータ712の内側で示されているが、コンピュータ712の外側とすることもできる。例示する目的にすぎないが、ネットワークインターフェース748に対する接続に必要なハードウェア/ソフトウェアには、通常の電話級モデム、ケーブルモデムおよびDSLモデムを含むモデム、ISDNアダプタ、ならびにイーサネット(登録商標)カードなど、内部技術および外部技術が含まれる。
図7は、本発明が相互作用することができるコンピューティング環境例800の概略ブロック図である。システム800は、1つまたは複数のクライアント810を含む。クライアント810は、ハードウェアおよび/またはソフトウェアとすることができる(たとえば、スレッド、プロセス、コンピューティングデバイス)。また、システム800は、1つまたは複数のサーバ830を含む。サーバ830は、ハードウェアおよび/またはソフトウェアとすることができる(たとえば、スレッド、プロセス、コンピューティングデバイス)。サーバ830は、たとえば、本発明を使用することによって変換を実行するためのスレッドを収容することができる。クライアント810とサーバ830の間の1つの可能な通信は、2つ以上のコンピュータプロセス間で伝送されるように適合されたデータパケットの形態にあるものとすることができる。システム800は、クライアント810とサーバ830の間の通信を容易にするために使用することができる通信フレームワーク850を含む。クライアント810は、クライアント810にとってローカルで情報を記憶するために使用することができる1つまたは複数のクライアントデータストア860に動作可能に接続される。同様に、サーバ830は、サーバ830にとってローカルで情報を記憶するために使用することができる1つまたは複数のサーバデータストア840に動作可能に接続される。
上述したものには、本発明の諸例が含まれる。当然ながら、本発明について述べるためにコンポーネントまたは方法の考えられるあらゆる組合せについて述べることは不可能であり、本発明の多数の他の組合せおよび変形が可能であることを、当業者なら理解することができる。したがって、本発明は、特許請求の範囲の精神および範囲内に入るそのような変更、修正、および変形形態をすべて包含するものとする。さらに「includes(含む)」という用語が詳細な説明または特許請求の範囲で使用されている限り、そのような用語は、「comprising(含む、備える)」が特許請求の範囲内で転換句として使用されたとき解釈されるように「comprising」という用語と同様に包括的であるものとする。
本発明の一態様によるスケジューリングシステムの概略ブロック図である。 本発明の一態様による多層スケジューリングシステムの図である。 本発明の一態様によるディスクスケジューリングシステムを示す概略ブロック図である。 本発明の一態様によるディスクスケジューリングプロセスを示す流れ図である。 本発明の一態様によるディスクスケジューリングプロセスを示す流れ図である。 本発明の一態様による好適な動作環境を示す概略ブロック図である。 本発明が対話することができるコンピューティング環境例の概略ブロック図である。
符号の説明
100 スケジューリングシステム
110 要求
120 記憶媒体
130 カテゴライザ
140 キューのクラス
150 ラウンド
160 スケジューラ
170 固定されたサイズのキュー
200 多層スケジューリングシステム
210 ユーザからの要求
220 周期的キュー(EDF)
230 他のキュー
240 掃引キュー
250 ドライブ
400 システム
404 要求
410 管理コントローラ
420 期限コンポーネント
430 周期的キュー
440 非周期的キュー
450 C−LOOK
460 ディスク
712 コンピュータ
714 処理装置
716 システムメモリ
720 揮発性
722 不揮発性
724 ディスク記憶装置
726 インターフェース
728 オペレーティングシステム
730 アプリケーション
732 モジュール
734 データ
736 入力デバイス
738 インターフェースポート
740 出力デバイス
742 出力アダプタ
744 リモートコンピュータ
746 メモリ記憶装置
748 ネットワークインターフェース
750 通信接続
800 コンピューティング環境
810 クライアント
830 サーバ
840 サーバデータストア
850 通信フレームワーク
860 クライアントデータストア

Claims (29)

  1. 記憶媒体に向けて送られる入力/出力要求の部分集合を保持する少なくとも1つのキューと、
    前記記憶媒体を走査する1ラウンド内の入力/出力要求の予め定められた数を使用して、1ラウンド内に入力/出力要求をサービスする上限の待ち時間を提供し、前記提供された上限の待ち時間によりラウンドサイズを調節することによって前記入力/出力要求を再順序付けして、前記入力/出力要求のスケジューリングを最大化して、記憶媒体更新に関連して最大化されたスループットレベルを維持するスケジューリングコンポーネントであって、前記上限の待ち時間は、1ラウンド内の入力/出力要求の個数によって決定される、スケジューリングコンポーネントと
    を備えたことを特徴とするディスクスケジューリングシステム。
  2. 前記スケジューリングコンポーネントは、自動的に前記入力/出力要求をキューの1つまたは複数のクラスに向けて送るカテゴライザに結びつけられることを特徴とする請求項1に記載のシステム。
  3. 前記スケジューリングコンポーネントは、前記入力/出力要求を前記カテゴライザから受信する予め定められたサイズのキューを含むことを特徴とする請求項2に記載のシステム。
  4. 前記記憶媒体は、コンピュータからアクセスされるようにスケジューリングされるハードディスク、フロッピー(登録商標)ディスク、メモリースティック、コンパクトディスク、メモリのうち少なくとも1つを含むことを特徴とする請求項1に記載のシステム。
  5. 前記スケジューリングコンポーネントは、選択されたタスクについてI/Oスケジューリングを実行するため、抑制された待ち時間の定められた量を動的に計算することを特徴とする請求項1に記載のシステム。
  6. 周期的キューおよび非周期的キューのうち少なくとも1つをさらに備えたことを特徴とする請求項1に記載のシステム。
  7. 前記周期的キューは、期限の早い(EDF)順で構成されることを特徴とする請求項6に記載のシステム。
  8. 前記周期的キューは、重要度のクラスに従って構成されることを特徴とする請求項6に記載のシステム。
  9. 前記重要度のクラスは、最重要、高優先順位、対話型、通常、バックグラウンド、低優先順位、アイドルのうち少なくとも1つを含むことを特徴とする請求項8に記載のシステム。
  10. 前記非周期的キューは、先入れ先出し(FIFO)順に従って構成されることを特徴とする請求項8に記載のシステム。
  11. 前記周期的キューおよび前記非周期的キューを処理し、および前記記憶媒体にアクセスする掃引キューをさらに備えたことを特徴とする請求項6に記載のシステム。
  12. 前記掃引キューは、C−LOOKコンポーネントに従って管理され、および前記掃引キューの要求は、C−LOOK順で構成されることを特徴とする請求項11に記載のシステム。
  13. 前記周期的キューは、マルチメディアアプリケーションに関連する周期的I/Oに結び付けられることを特徴とする請求項6に記載のシステム。
  14. システムリソースを鑑みて検査される性能パラメータを有する周期的I/Oストリームを処理するコンポーネントをさらに備えたことを特徴とする請求項6に記載のシステム。
  15. システム能力を鑑みて周期的I/Oストリームを分析し、および前記能力を超えた場合、要求を打ち切るコンポーネントをさらに備えたことを特徴とする請求項6に記載のシステム。
  16. 前記コンポーネントは、許可コントローラであり、および前記周期的I/Oのそれぞれのパラメータを超えないことを強制することを特徴とする請求項15に記載のシステム。
  17. 前記許可コントローラは、要求に、前記要求を完了すべき期限または時間枠を割り当てる期限コンポーネントを含むことを特徴とする請求項16に記載のシステム。
  18. nが1ラウンド内の入力/出力要求の個数を表す整数であり、およびサービス(n)が1ラウンド内に入力/出力要求をサービスする上限の待ち時間を表すとおくと、前記記憶媒体を更新するために1ラウンド内に入力/出力要求をサービスする上限の待ち時間は、以下の式によって、
    Figure 0004597608
    決定することを特徴とする請求項1に記載のシステム。
  19. 請求項1に記載のシステムを実施するためのコンピュータ読取可能命令を記憶していることを特徴とするコンピュータ読取可能な媒体。
  20. コンピュータに、記憶媒体に対する要求をスケジューリングさせる方法であって、
    処理装置が、1組の要求について予め定められた数の要求を決定するステップと、
    前記処理装置が、前記記憶媒体を更新するために前記1組の要求をサービスする上限の待ち時間を決定するステップであって、前記上限の待ち時間は、前記1組の要求内の要求数によって決定される、上限の待ち時間を決定するステップと、
    前記処理装置が、前記決定された上限の待ち時間によりラウンドサイズを調節することによって要求を再順序付けして、前記要求のスケジューリングを最大化して、最大化されたスループットレベルを維持するステップと、
    前記処理装置が、前記上限の待ち時間内に前記1組の要求をサービスすることにより前記記憶媒体を更新するステップと
    を備えたことを特徴とする方法。
  21. 前記処理装置が、前記1組の要求に関連する入力/出力ストリームを、周期的ストリームおよび非周期的ストリームのうち少なくとも1つに自動的に分離するステップをさらに備えたことを特徴とする請求項20に記載の方法。
  22. 前記処理装置が、前記周期的ストリームを期限の早い順で構成するステップと、
    前記処理装置が、前記非周期的ストリームを先入れ先出し順で構成するステップと
    をさらに備えたことを特徴とする請求項21に記載の方法。
  23. 前記処理装置が、C−LOOKアルゴリズムを前記周期的ストリームおよび前記非周期的ストリームに適用して、記憶媒体にアクセスするステップをさらに備えたことを特徴とする請求項22に記載の方法。
  24. 前記処理装置が、前記記憶媒体にアクセスするために、命令
    while 周期的キュー≠0 and 周期的スロット≠0 and
    DEADLINE(周期的キュー)<ROUND_TIME do
    INSERT_LBA_ORDER(掃引キュー,
    REMOVE_EDF_ORDER(周期的キュー))
    周期的スロット=周期的スロット-1
    end

    for 優先順位=High downto Idle do
    while 優先順位リスト[優先順位].スロット≠0
    INSERT_LBA_ORDER(掃引キュー,
    REMOVE_FIFO_ORDER(優先順位キュー[優先順位]))
    優先順位リスト[優先順位].スロット=優先順位リスト[優先順位].スロット-1
    end
    end

    while 掃引キュー≠0 do
    SCHEDULE(REMOVE_MINMUM_LBA(掃引キュー))
    end
    に関連する関数を適用するステップをさらに備えたことを特徴とする請求項20に記載の方法。
  25. コンピュータに、ディスク更新を実行させる方法であって、
    処理装置が、機能に適用するために記憶媒体に対する1ラウンドの要求をサービスする上限の待ち時間を自動的に決定するステップと、
    前記処理装置が、前記1ラウンドの要求について順序付けするために要求数を自動的に調整して、調整後の1ラウンドの要求数が前記上限の待ち時間内にサービス可能な最大の要求数であるようにするステップと、
    前記処理装置が、前記1ラウンドの要求を順序付けして、調節するステップと、
    前記処理装置が、前記上限の待ち時間内に前記1ラウンドの要求をサービスすることにより前記記憶媒体を更新するステップと
    を備えたことを特徴とする方法。
  26. 前記処理装置が、前記1ラウンドの要求について、帯域幅要件を決定するステップと、
    前記処理装置が、前記決定された帯域幅要件に基づいて、前記1ラウンドの要求を自動的に優先順位付けするステップと
    をさらに備えたことを特徴とする請求項25に記載の方法。
  27. 前記処理装置が、前記帯域幅要件および前記上限の待ち時間を動的に監視するステップをさらに備えたことを特徴とする請求項26に記載の方法。
  28. ディスク更新を容易にするシステムであって、
    1組の要求を分類する手段と、
    固定されたサイズを有する前記1組の要求をキューイングする手段と、
    記憶媒体を更新するために前記1組の要求をサービスする上限の待ち時間、および前記1組の要求のスケジューリングを最大化するために前記1組の要求を再順序付けすることにより保持される最大化されたスループットレベルに基づいて、記憶媒体と対話して、前記上限の待ち時間内に前記1組の要求をサービスすることによって前記記憶媒体を更新する手段であって、前記上限の待ち時間は、前記1組の要求内の要求数によって決定される、前記記憶媒体を更新する手段と
    を備えたことを特徴とするシステム。
  29. 1ラウンドの要求に関連するキューのためのサイズパラメータに関する第1のデータフィールドと、
    記憶媒体を更新するために1ラウンドの要求をサービスする上限の待ち時間に関する第2のデバイスフィールドであって、前記上限の待ち時間は、前記1ラウンドの要求および前記サイズパラメータのうちの少なくとも1つにより決定される、第2のデータフィールドと
    備え、請求項1に記載のシステムの実施を助力するためのデータ構造を記憶していることを特徴とするコンピュータ読取可能な媒体。
JP2004236041A 2003-08-20 2004-08-13 連続媒体優先順位を意識した記憶装置スケジューラ Expired - Fee Related JP4597608B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US49652903P 2003-08-20 2003-08-20
US10/729,138 US7206866B2 (en) 2003-08-20 2003-12-05 Continuous media priority aware storage scheduler

Publications (2)

Publication Number Publication Date
JP2005071353A JP2005071353A (ja) 2005-03-17
JP4597608B2 true JP4597608B2 (ja) 2010-12-15

Family

ID=34068470

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004236041A Expired - Fee Related JP4597608B2 (ja) 2003-08-20 2004-08-13 連続媒体優先順位を意識した記憶装置スケジューラ

Country Status (5)

Country Link
US (2) US7206866B2 (ja)
EP (1) EP1508850A3 (ja)
JP (1) JP4597608B2 (ja)
KR (1) KR101086514B1 (ja)
CN (1) CN1617100A (ja)

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7984175B2 (en) 2003-12-10 2011-07-19 Mcafee, Inc. Method and apparatus for data capture and analysis system
US8548170B2 (en) 2003-12-10 2013-10-01 Mcafee, Inc. Document de-registration
US8656039B2 (en) 2003-12-10 2014-02-18 Mcafee, Inc. Rule parser
US7774604B2 (en) * 2003-12-10 2010-08-10 Mcafee, Inc. Verifying captured objects before presentation
US7899828B2 (en) * 2003-12-10 2011-03-01 Mcafee, Inc. Tag data structure for maintaining relational data over captured objects
US8312145B2 (en) * 2003-12-22 2012-11-13 Rockstar Consortium US L.P. Traffic engineering and bandwidth management of bundled links
US7930540B2 (en) * 2004-01-22 2011-04-19 Mcafee, Inc. Cryptographic policy enforcement
US7962591B2 (en) * 2004-06-23 2011-06-14 Mcafee, Inc. Object classification in a capture system
US7260703B1 (en) * 2004-08-20 2007-08-21 Sun Microsystems, Inc. Method and apparatus for I/O scheduling
US7386692B1 (en) * 2004-08-20 2008-06-10 Sun Microsystems, Inc. Method and apparatus for quantized deadline I/O scheduling
US8560534B2 (en) * 2004-08-23 2013-10-15 Mcafee, Inc. Database for a capture system
US7949849B2 (en) * 2004-08-24 2011-05-24 Mcafee, Inc. File system for a capture system
KR100585176B1 (ko) * 2005-02-04 2006-05-30 삼성전자주식회사 입출력 서브시스템에서 입출력 명령의 부하 판단 방법 및장치
US7305537B1 (en) 2005-03-01 2007-12-04 Sun Microsystems, Inc. Method and system for I/O scheduler activations
US20060288184A1 (en) * 2005-06-17 2006-12-21 Seagate Technology Llc Admission control in data storage devices
US20060294049A1 (en) * 2005-06-27 2006-12-28 Microsoft Corporation Back-off mechanism for search
US7907608B2 (en) 2005-08-12 2011-03-15 Mcafee, Inc. High speed packet capture
US7818326B2 (en) * 2005-08-31 2010-10-19 Mcafee, Inc. System and method for word indexing in a capture system and querying thereof
US7730011B1 (en) * 2005-10-19 2010-06-01 Mcafee, Inc. Attributes of captured objects in a capture system
US7657671B2 (en) * 2005-11-04 2010-02-02 Sun Microsystems, Inc. Adaptive resilvering I/O scheduling
US20070106849A1 (en) * 2005-11-04 2007-05-10 Sun Microsystems, Inc. Method and system for adaptive intelligent prefetch
US7478179B2 (en) * 2005-11-04 2009-01-13 Sun Microsystems, Inc. Input/output priority inheritance wherein first I/O request is executed based on higher priority
US7657104B2 (en) 2005-11-21 2010-02-02 Mcafee, Inc. Identifying image type in a capture system
US8504537B2 (en) 2006-03-24 2013-08-06 Mcafee, Inc. Signature distribution in a document registration system
US7689614B2 (en) 2006-05-22 2010-03-30 Mcafee, Inc. Query generation for a capture system
US7958227B2 (en) 2006-05-22 2011-06-07 Mcafee, Inc. Attributes of captured objects in a capture system
US7644206B2 (en) * 2006-06-30 2010-01-05 Seagate Technology Llc Command queue ordering by positionally pushing access commands
US7779175B2 (en) * 2007-05-04 2010-08-17 Blackwave, Inc. System and method for rendezvous in a communications network
KR100927190B1 (ko) * 2007-10-12 2009-11-18 한국전자통신연구원 디스크 스케줄링 방법 및 장치
US8521951B2 (en) * 2008-01-16 2013-08-27 S. Aqua Semiconductor Llc Content addressable memory augmented memory
US20090182977A1 (en) * 2008-01-16 2009-07-16 S. Aqua Semiconductor Llc Cascaded memory arrangement
US8090903B2 (en) * 2008-01-18 2012-01-03 Microsoft Corporation Fair and dynamic disk input/output bandwidth distribution
US20100312815A1 (en) * 2008-03-26 2010-12-09 Masaki Uekubo Date communication processing device and method
US8504736B2 (en) * 2008-05-30 2013-08-06 Sony Computer Entertainment America Inc. File input/output scheduler
US8205242B2 (en) 2008-07-10 2012-06-19 Mcafee, Inc. System and method for data mining and security policy management
JP5147584B2 (ja) * 2008-07-23 2013-02-20 株式会社日立製作所 ストレージサブシステム及びコントローラによるコマンド実行方法
JP2010033125A (ja) * 2008-07-25 2010-02-12 Hitachi Ltd ストレージ装置及びデータ転送方法
US9253154B2 (en) 2008-08-12 2016-02-02 Mcafee, Inc. Configuration management for a capture/registration system
KR20110066140A (ko) 2008-09-29 2011-06-16 인터내셔널 비지네스 머신즈 코포레이션 데이터의 다시 불러내기 순을 결정하기 위한 장치, 방법, 및 프로그램
KR100983048B1 (ko) * 2008-11-27 2010-09-17 서울대학교산학협력단 Ncq 제어 방법 및 컴퓨팅 장치
US8850591B2 (en) 2009-01-13 2014-09-30 Mcafee, Inc. System and method for concept building
US8706709B2 (en) 2009-01-15 2014-04-22 Mcafee, Inc. System and method for intelligent term grouping
US8473442B1 (en) 2009-02-25 2013-06-25 Mcafee, Inc. System and method for intelligent state management
US8447722B1 (en) 2009-03-25 2013-05-21 Mcafee, Inc. System and method for data mining and security policy management
US8667121B2 (en) 2009-03-25 2014-03-04 Mcafee, Inc. System and method for managing data and policies
US8539129B2 (en) * 2010-04-14 2013-09-17 Qualcomm Incorporated Bus arbitration techniques to reduce access latency
US9842068B2 (en) 2010-04-14 2017-12-12 Qualcomm Incorporated Methods of bus arbitration for low power memory access
US8330645B2 (en) * 2010-08-31 2012-12-11 Raytheon Company Radar activation multiple access system and method
US8806615B2 (en) 2010-11-04 2014-08-12 Mcafee, Inc. System and method for protecting specified data combinations
CN103299271B (zh) * 2011-01-11 2016-04-13 惠普发展公司,有限责任合伙企业 并发请求调度
US9043509B2 (en) * 2011-01-14 2015-05-26 Broadcom Corporation Method and system for low-latency networking
KR101311305B1 (ko) * 2011-08-26 2013-09-25 국방과학연구소 데드라인 기반 우선순위상속 시스템 및 그 방법
CN102402401A (zh) * 2011-12-13 2012-04-04 云海创想信息技术(无锡)有限公司 一种磁盘io请求队列调度的方法
US20130246336A1 (en) 2011-12-27 2013-09-19 Mcafee, Inc. System and method for providing data protection workflows in a network environment
US8966173B1 (en) * 2012-06-28 2015-02-24 Emc Corporation Managing accesses to storage objects
US11372672B2 (en) 2013-02-15 2022-06-28 Apple Inc. Centralized task scheduling
US20150032961A1 (en) * 2013-07-23 2015-01-29 Lexmark International Technologies S.A. System and Methods of Data Migration Between Storage Devices
CN104714753A (zh) * 2013-12-12 2015-06-17 中兴通讯股份有限公司 一种数据访问存储方法及装置
CN103761051B (zh) * 2013-12-17 2016-05-18 北京同有飞骥科技股份有限公司 一种基于持续数据多输入输出流并发写入性能优化方法
US9542107B2 (en) * 2014-06-25 2017-01-10 International Business Machines Corporation Flash copy relationship management
CN105511806B (zh) 2015-11-30 2018-09-07 华为技术有限公司 处理写请求的方法和移动终端
US9792051B2 (en) * 2016-02-24 2017-10-17 Samsung Electronics Co., Ltd. System and method of application aware efficient IO scheduler
US10592107B2 (en) * 2016-03-30 2020-03-17 EMC IP Holding Company LLC Virtual machine storage management queue
US10846140B2 (en) * 2016-08-29 2020-11-24 Vmware, Inc. Off-site backup of workloads for multi-tenant cloud computing system
US11886922B2 (en) 2016-09-07 2024-01-30 Pure Storage, Inc. Scheduling input/output operations for a storage system
JP2020504557A (ja) * 2017-01-09 2020-02-06 華為技術有限公司Huawei Technologies Co.,Ltd. メディアダウンリンク伝送制御方法及び関連するデバイス
CN111133010B (zh) 2017-09-29 2023-05-23 陶氏环球技术有限责任公司 用于改进溶解度的在金属上具有两个亚甲基三烷基硅配体的双-苯基-苯氧基聚烯烃催化剂
KR102590976B1 (ko) 2017-09-29 2023-10-19 다우 글로벌 테크놀로지스 엘엘씨 개선된 용해도를 위한 금속 상에 메틸렌트리알킬규소 리간드를 갖는 비스-페닐-페녹시 폴리올레핀 촉매
KR102031853B1 (ko) * 2018-07-18 2019-10-15 국방과학연구소 다중 중요도 시스템 위한 작업별 중요도 모드 전환 방법
RU2731321C2 (ru) 2018-09-14 2020-09-01 Общество С Ограниченной Ответственностью "Яндекс" Способ определения потенциальной неисправности запоминающего устройства
RU2714219C1 (ru) 2018-09-14 2020-02-13 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования передачи операций ввода/вывода
RU2718215C2 (ru) 2018-09-14 2020-03-31 Общество С Ограниченной Ответственностью "Яндекс" Система обработки данных и способ обнаружения затора в системе обработки данных
RU2714602C1 (ru) 2018-10-09 2020-02-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки данных
RU2721235C2 (ru) 2018-10-09 2020-05-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для маршрутизации и выполнения транзакций
RU2711348C1 (ru) 2018-10-15 2020-01-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки запросов в распределенной базе данных
RU2714373C1 (ru) * 2018-12-13 2020-02-14 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования выполнения операций ввода/вывода
RU2749649C2 (ru) 2018-12-21 2021-06-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования обработки операций ввода/вывода
RU2720951C1 (ru) 2018-12-29 2020-05-15 Общество С Ограниченной Ответственностью "Яндекс" Способ и распределенная компьютерная система для обработки данных
RU2746042C1 (ru) 2019-02-06 2021-04-06 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для передачи сообщения
US11307805B2 (en) 2020-05-29 2022-04-19 Seagate Technology Llc Disk drive controller incorporating task manager for reducing performance spikes
US11647420B2 (en) * 2021-02-18 2023-05-09 Charter Communications Operating, Llc Downlink and uplink data handling in a wireless device
KR20220145698A (ko) * 2021-04-22 2022-10-31 에스케이하이닉스 주식회사 PCIe 장치 및 그 동작 방법
CN117707988A (zh) * 2023-08-08 2024-03-15 荣耀终端有限公司 回收内存的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08228200A (ja) * 1994-11-29 1996-09-03 Compaq Computer Corp データ転送を含む動作を制御する際に使用するアービタ及びデータ転送を含む動作を調停するための方法
JPH10333954A (ja) * 1997-02-11 1998-12-18 Matsushita Electric Ind Co Ltd 優先順位付けされたディスクリクエストのリアルタイムスケジューリング

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5455934A (en) * 1993-03-23 1995-10-03 Eclipse Technologies, Inc. Fault tolerant hard disk array controller
US5708796A (en) * 1994-11-18 1998-01-13 Lucent Technologies Inc. Method of retrieving continuous and non-continuous media data from a file system
US5787482A (en) * 1995-07-31 1998-07-28 Hewlett-Packard Company Deadline driven disk scheduler method and apparatus with thresholded most urgent request queue scan window
US5875481A (en) 1997-01-30 1999-02-23 International Business Machines Corporation Dynamic reconfiguration of data storage devices to balance recycle throughput
US6079028A (en) * 1997-04-23 2000-06-20 Lucent Technologies Inc. Fault tolerant architectures for continuous media servers
US6286045B1 (en) * 1997-05-19 2001-09-04 Matchlogic, Inc. Information storage and delivery over a computer network using centralized intelligence to monitor and control the information being delivered
US5983227A (en) * 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
US5991825A (en) 1997-07-11 1999-11-23 International Business Machines Corporation System for handling missed revolution in a disk drive by aborting the execution of primary command and executing secondary command if a missed revolution occurs
US6023720A (en) * 1998-02-09 2000-02-08 Matsushita Electric Industrial Co., Ltd. Simultaneous processing of read and write requests using optimized storage partitions for read and write request deadlines
US6442648B1 (en) * 1998-09-03 2002-08-27 International Business Machines Corporation Method of and system for the dynamic scheduling of requests to access a storage system
US6330646B1 (en) * 1999-01-08 2001-12-11 Intel Corporation Arbitration mechanism for a computer system having a unified memory architecture
AU4016500A (en) * 1999-03-23 2000-10-09 Frankel & Company Control of server-originated dynamic digital signage at client site using automated data acquisition
US6378052B1 (en) * 1999-08-11 2002-04-23 International Business Machines Corporation Data processing system and method for efficiently servicing pending requests to access a storage system
US6629220B1 (en) * 1999-08-20 2003-09-30 Intel Corporation Method and apparatus for dynamic arbitration between a first queue and a second queue based on a high priority transaction type
US6535957B1 (en) 1999-11-09 2003-03-18 International Business Machines Corporation System bus read data transfers with bus utilization based data ordering
US6654851B1 (en) 2000-03-14 2003-11-25 International Business Machine Corporation System, apparatus, and method for using a disk drive for sequential data access
US6877049B1 (en) * 2002-05-30 2005-04-05 Finisar Corporation Integrated FIFO memory management control system using a credit value
US7197577B2 (en) * 2003-12-12 2007-03-27 International Business Machines Corporation Autonomic input/output scheduler selector

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08228200A (ja) * 1994-11-29 1996-09-03 Compaq Computer Corp データ転送を含む動作を制御する際に使用するアービタ及びデータ転送を含む動作を調停するための方法
JPH10333954A (ja) * 1997-02-11 1998-12-18 Matsushita Electric Ind Co Ltd 優先順位付けされたディスクリクエストのリアルタイムスケジューリング

Also Published As

Publication number Publication date
US20050044289A1 (en) 2005-02-24
US20070136496A1 (en) 2007-06-14
US7206866B2 (en) 2007-04-17
EP1508850A3 (en) 2015-03-18
EP1508850A2 (en) 2005-02-23
JP2005071353A (ja) 2005-03-17
KR20050020942A (ko) 2005-03-04
CN1617100A (zh) 2005-05-18
KR101086514B1 (ko) 2011-11-23
US7734837B2 (en) 2010-06-08

Similar Documents

Publication Publication Date Title
JP4597608B2 (ja) 連続媒体優先順位を意識した記憶装置スケジューラ
US8312229B2 (en) Method and apparatus for scheduling real-time and non-real-time access to a shared resource
JP5752267B2 (ja) 同時要求スケジューリング
US10908954B2 (en) Quality of service classes
US10223165B2 (en) Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment
JP4723260B2 (ja) ソースデバイスに対するリクエストをスケジューリングする装置及び方法
US8392633B2 (en) Scheduling requesters of a shared storage resource
US6434631B1 (en) Method and system for providing computer storage access with quality of service guarantees
US8001338B2 (en) Multi-level DRAM controller to manage access to DRAM
US7478179B2 (en) Input/output priority inheritance wherein first I/O request is executed based on higher priority
US20040230979A1 (en) Command scheduling in computer networks
US7089381B2 (en) Multiple storage element command queues
JP2004213625A (ja) プログラムに基づいた応答時間ベースの作業負荷分配技法
JP2002197046A (ja) ディスクi/oサブシステムのサービス品質に期限と優先順位とを同時に提供する方法
US8019915B2 (en) Method and device for controlling access to multiple applications
US8745630B2 (en) Dynamically allocating meta-data repository resources
JPH10240548A (ja) タスクスケジューリング装置及び方法
JP2002358259A (ja) 優先度制御機能を有するファイルサーバ、同サーバにおけるファイルアクセス方法及びファイルアクセスプログラム
CN106155810B (zh) 软件定义混合储存系统中工作负载感知的输入输出调度器
US20240329879A1 (en) Creating isolation between multiple domains in a hierarchical multi-tenant storage device
US20240329864A1 (en) Maintaining predictable latency among tenants
TWI509411B (zh) 軟體定義混合儲存系統中之工作負載感知的輸入/輸出調度器
Rumman Operating system support for multimedia: Survey
JP4979332B2 (ja) マルチプレクサおよび情報処理装置
JP4878979B2 (ja) マルチプレクサおよび情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100315

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4597608

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131001

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

LAPS Cancellation because of no payment of annual fees