JP4694595B2 - スリープキュー管理 - Google Patents
スリープキュー管理 Download PDFInfo
- Publication number
- JP4694595B2 JP4694595B2 JP2008157283A JP2008157283A JP4694595B2 JP 4694595 B2 JP4694595 B2 JP 4694595B2 JP 2008157283 A JP2008157283 A JP 2008157283A JP 2008157283 A JP2008157283 A JP 2008157283A JP 4694595 B2 JP4694595 B2 JP 4694595B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- time
- threads
- sleep queue
- dimension
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4825—Interrupt from clock, e.g. time of day
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Telephonic Communication Services (AREA)
Description
図3は、例示的2次元(2−D)スリープキュー300を示すブロック図である。スリープキュー300が使用されて、もはや指定された時間に実行中ではないか、または「スリープにされる」スレッドが追跡される。スレッドが割り込まれ、スリープにされるとき、このスレッドへの参照がスリープキューに挿入される。各スレッドは、パラメータを有し、パラメータを使用して、これがいつスリープキューから取り出され、したがって「再開」されるかが決定される。この実施例では、これらパラメータは、ウェイクアップ時間およびスレッド優先度を含む。
スレッドを図2の1次元のスリープキューに挿入するための従来の技術では、典型的には、他のプロセス/スレッドを、スリープキュースレッド挿入プロセス中に実行することができる。これにより、オペレーティングシステムが、所定の時間パラメータ内で、スリープキュースレッド挿入プロセス中に、実行する他のスレッドをスケジュールすることができる。(これは、スレッドをスリープキューに挿入するために要する時間全体が、非決定性であるか、または制限されていない(決定不可能)場合にもそうである)。しかし、このような従来の1次元スリープキュースレッド挿入技術は、図3の本発明の多次元スリープキュー300にスレッドを挿入するように設計されていない。
図10は、スレッドのグループをスリープキューから、制限のあるまたは決定性の時間において除去するための、例示的手順1000を示す流れ図である。ブロック1010で、この手順は、1または複数の各スレッドの指定されたウェイクアップ時間が終了したかどうかを決定する。(終了したウェイクアップ時間を有するスレッドを、後で実行のために実行キューに挿入するために、スリープキューから除去しなければならない。)ブロック1012で、1または複数のスレッドが、スリープキューから、実行キューに挿入するために除去される必要があると決定した後(ブロック1010)、この手順は、1または複数のスレッドを、スリープキューから、プロセッサが単一のノードデタッチオペレーションを実行するために要する時間において除去する。したがって、多次元スリープキューからのスレッドのグループ除去は、本質的に時間決定性である。
図11は、ノードのグループを実行キューに決定性の時間内で関連付けるための例示的実行キュー1100の態様を示すブロック図である。実行キューは、第1のデータフィールド1102を含み、これは第1の複数のスレッド1104を含む。各スレッド1104は、各々のスレッド優先度を含む。第1のデータフィールド内の各スレッド1104は、第1のデータフィールドにおける互いのスレッドに対して、セマンティックに基づいてソートされる。このセマンティックは、高い優先度を有するスレッドが、より低い優先度を有するスレッドが実行キューから除去される前に、実行キューから除去されることである。例えば、2の優先度を有するスレッド1104−2は、5の優先度を有するスレッド1104−3が実行のために除去される前に、実行のために除去される。
図12は、スレッドを図11の実行キュー1100から除去するための例示的手順1200を示す流れ図である。ブロック1210で、この手順は、スレッドを実行キューから実行するために除去する。上述のように、このスレッドを、図11のルートノード1104−2など、データフィールド1108−1における1または複数の他の2次ノードに付加されるルートノードにすることができ、または、ルートノード1104−1などのいかなる2次ノードにも付加されないノードにすることもできる。したがって、ブロック1212で、この手順は、除去されたノードが2次ノードに付加される(例えば、ルートノード1104−2が2次ノード1104−6に付加される)かどうかを決定する。そうでなかった場合、この手順が終了する。
図14は、実行キューを管理するための例示的システムおよび手順を実施することができる、適切なコンピューティング環境1400の一実施例を例示する。例示的コンピューティング環境1400は、適切なコンピューティング環境の一実施例でしかなく、実行キューを管理するための例示的システムおよび手順の使用または機能性の範囲に関していかなる限定をも示唆するように意図されるものではない。コンピューティング環境1400は、例示的コンピューティング環境1400において例示したコンポーネントのいずれか1つまたは組み合わせに関するいずれかの依存性または要件を有するものとして解釈されるべきではない。
実行キューを管理するための実施を一般に、プログラムモジュールなど、1または複数のコンピュータまたは他のデバイスによって実行されるコンピュータ実行可能命令に関連して記載することができる。プログラムモジュールは、典型的には、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれ、これらが特定のタスクを実行し、または特定の抽象データ型を実施する。プログラムモジュールの機能性は、典型的には、図14の様々な実施形態において示したように結合または分散させることができる。
実行キューを管理するための実施を、ある形式のコンピュータ読み取り可能な媒体に格納するか、またはそれを介して伝送することができる。コンピュータ読み取り可能な媒体は、コンピュータによってアクセスすることができるいかなる使用可能な媒体にすることもできる。例として、それだけに限定されるものではないが、コンピュータ読み取り可能な媒体には、「コンピュータ記憶媒体」および「通信媒体」が含まれる可能性がある。
システム排他的アクセスのために決定性の時間によりスリープキューを管理するための様々な実施について、構造的特徴および/または方法の運用に特定の言葉で述べたが、上述の特許請求の範囲において定義された、システム排他的アクセスアクセスのために制限のある時間により、スリープキューを管理するための記載の主題は、必ずしも記載した特定の特徴または運用に限定されるものでないことを理解されたい。むしろ、特定の特徴および運用は、特許請求の範囲に記載したこの主題を実施するための好ましい形式として開示される。
302 第1の次元
304 ノードまたはデータフィールド
306 ウェイクアップ時間によりソートされたスレッド
308 第2の次元
310 優先度に基づいてウェイクアップ時間内でソートされたスレッド
Claims (22)
- プロセッサとメモリとを備えたコンピュータシステムで実行される方法であって、複数のスレッドを含み、前記メモリに格納された多次元スリープキューを管理する方法であって、
前記複数のスレッドは、ウェイクアップ時間および優先度を有し、
前記プロセッサが、所定の時間に対して実行スレッドを前記多次元スリープキューに挿入するために、前記実行スレッドを識別することと、
前記識別することに応答して、(a)前記多次元スリープキューの第1の次元において前記所定の時間に等しいウェイクアップ時間を有するスレッドがないこと、および(b)前記多次元スリープキューの第2の次元において前記ウェイクアップ時間を有する異なるスレッドが1または複数あり、該1または複数の異なるスレッドの各々が前記実行スレッドの優先度より低いかまたは等しい優先度を有する場合に、前記実行スレッドを前記多次元スリープキューの第1の次元に挿入し、ウェイクアップ時間に基づいて第1の次元でソートすることと、
前記識別することに応答して、(c)前記多次元スリープキューの第1の次元において前記所定の時間に等しいウェイクアップ時間を有するスレッドがあること、または(d)前記多次元スリープキューの第2の次元において前記ウェイクアップ時間を有する異なるスレッドが1または複数あり、該1または複数の異なるスレッドの各々が前記実行スレッドの優先度より高い優先度を有する場合に、前記実行スレッドを前記多次元スリープキューの第2の次元に挿入し、優先度に基づいて第2の次元でソートすることと
を備えたことを特徴とする方法。 - 前記多次元スリープキューは、リアルタイム多次元スリープキューであることを特徴とする請求項1に記載の方法。
- 前記多次元スリープキューは、2次元スリープキューであることを特徴とする請求項1に記載の方法。
- 前記実行スレッドを前記多次元スリープキューに挿入することは、スレッドスケジューリングメカニズムが、単一のスレッドを前記多次元スリープキューから除去する時間に等しく、スレッドの数とは無関係な決定性の時間内で実行するために他のスレッドをスケジュールすることを可能にする方法で行われることを特徴とする請求項1に記載の方法。
- 前記多次元スリープキューは、スレッドのグループを備え、
前記方法は、前記スレッドのグループを前記多次元スリープキューから、単一のスレッドを前記多次元スリープキューから除去する時間に等しく、スレッドの数とは無関係な決定性の時間内で除去することをさらに備え、
前記グループ内の各スレッドは、同じウェイクアップ時間を有することを特徴とする請求項1に記載の方法。 - 前記第2の次元は、複数のスレッドを備え、各々のスレッドは、同じウェイクアップ時間を有することを特徴とする請求項1に記載の方法。
- 前記実行スレッドをソートすることは、
前記第1の次元において、前記所定の時間と同じウェイクアップ時間を有する異なるスレッドを識別することと、
前記異なるスレッドを識別することに応答して、
前記実行スレッドに対応する第1の優先度が、前記異なるスレッドに対応する第2の優先度より高いと決定することと、
前記第1の次元において前記異なるスレッドを、前記第1および第2の次元双方のメンバである前記実行スレッドに置き換え、前記置き換えられたスレッドは、前記第1および第2の次元に対して2次的な位置を有することと
をさらに備えたことを特徴とする請求項1に記載の方法。 - 前記実行スレッドをソートすることは、
前記第1の次元において、前記所定の時間と同じウェイクアップ時間を有する異なるスレッドを識別することと、
前記異なるスレッドを識別することに応答して、
前記実行スレッドに対応する第1の優先度が、前記異なるスレッドに対応する第2の優先度より低いと決定することと、
前記実行スレッドを前記スレッドの第2の次元に挿入して、前記実行スレッドが前記第1および第2の次元に対して2次的な位置を占有し、前記第1の優先度より低い優先度の第2の次元における異なるスレッドは、前記2次的な位置に続いて位置するようにすることと
をさらに備えたことを特徴とする請求項1に記載の方法。 - プロセッサとメモリとを備えたコンピュータシステムで実行され、複数のスレッドを含み、前記メモリに格納された多次元スリープキューを管理するためのコンピュータ実行可能命令を含むコンピュータ読み取り可能記憶媒体であって、
前記複数のスレッドは、ウェイクアップ時間および優先度を有し、
所定の時間に対して実行スレッドを前記多次元スリープキューに挿入するために、前記実行スレッドを識別することと、
前記識別することに応答して、(a)前記多次元スリープキューの第1の次元において前記所定の時間に等しいウェイクアップ時間を有するスレッドがないこと、および(b)前記多次元スリープキューの第2の次元において前記ウェイクアップ時間を有する異なるスレッドが1または複数あり、該1または複数の異なるスレッドの各々が前記実行スレッドの優先度より低いかまたは等しい優先度を有する場合に、前記実行スレッドを前記多次元スリープキューの第1の次元に挿入し、ウェイクアップ時間に基づいて第1の次元でソートすることと、
前記識別することに応答して、(c)前記多次元スリープキューの第1の次元において前記所定の時間に等しいウェイクアップ時間を有するスレッドがあること、または(d)前記多次元スリープキューの第2の次元において前記ウェイクアップ時間を有する異なるスレッドが1または複数あり、該1または複数の異なるスレッドの各々が前記実行スレッドの優先度より高い優先度を有する場合に、前記実行スレッドを前記多次元スリープキューの第2の次元に挿入し、優先度に基づいて第2の次元でソートすることと
を前記プロセッサに実行させる前記コンピュータ実行可能命令を格納することを特徴とするコンピュータ読み取り可能記憶媒体。 - 前記多次元スリープキューは、リアルタイム多次元スリープキューであることを特徴とする請求項9に記載のコンピュータ読み取り可能記憶媒体。
- 前記実行スレッドを前記多次元スリープキューに挿入することは、スレッドスケジューリングメカニズムが、単一のスレッドを前記多次元スリープキューから除去する時間に等しく、スレッドの数とは無関係な決定性の時間内で実行するために他のスレッドをスケジュールすることを可能にする方法で行われることを特徴とする請求項9に記載のコンピュータ読み取り可能記憶媒体。
- 前記多次元スリープキューは、スレッドのグループを備え、
前記コンピュータ実行可能命令は、前記スレッドのグループを前記多次元スリープキューから、単一のスレッドを前記多次元スリープキューから除去する時間に等しく、スレッドの数とは無関係な決定性の時間内で除去するための命令をさらに備え、
前記グループ内の各スレッドは、同じウェイクアップ時間を有することを特徴とする請求項9に記載のコンピュータ読み取り可能記憶媒体。 - 前記第2の次元は、複数のスレッドを備え、各々のスレッドは、同じウェイクアップ時間を有することを特徴とする請求項9に記載のコンピュータ読み取り可能記憶媒体。
- 前記実行スレッドをソートすることは、
前記第1の次元において、前記所定の時間と同じウェイクアップ時間を有する異なるスレッドを識別することと、
前記異なるスレッドを識別することに応答して、
前記実行スレッドに対応する第1の優先度が、前記異なるスレッドに対応する第2の優先度より高いと決定することと、
前記第1の次元において前記異なるスレッドを、前記第1および第2の次元双方のメンバである前記実行スレッドと置き換え、前記置き換えられたスレッドは、前記第1および第2の次元に対して2次的な位置を有することと
をさらに備えたことを特徴とする請求項9に記載のコンピュータ読み取り可能記憶媒体。 - 前記実行スレッドをソートすることは、
前記第1の次元において、前記所定の時間と同じウェイクアップ時間を有する異なるスレッドを識別することと、
前記異なるスレッドを識別することに応答して、
前記実行スレッドに対応する第1の優先度が、前記異なるスレッドに対応する第2の優先度より低いと決定することと、
前記実行スレッドを前記スレッドの第2の次元に挿入して、前記実行スレッドが前記第1および第2の次元に対して2次的な位置を占有し、前記第1の優先度より低い優先度の第2の次元における異なるスレッドは、前記2次的な位置に続いて位置するようにすることと
をさらに備えたことを特徴とする請求項9に記載のコンピュータ読み取り可能記憶媒体。 - 複数のスレッドを含む多次元スリープキューを管理するためのシステムであって、
コンピュータ実行可能命令および前記多次元スリープキューを含むメモリと、
前記メモリに動作可能に結合され、前記コンピュータ実行可能命令を実行するためのプロセッサとを備え、前記複数のスレッドは、ウェイクアップ時間および優先度を有し、前記コンピュータ実行可能命令は、
所定の時間に対して実行スレッドを前記多次元スリープキューに挿入するために、前記実行スレッドを識別するための命令と、
前記識別することに応答して、(a)前記多次元スリープキューの第1の次元において前記所定の時間に等しいウェイクアップ時間を有するスレッドがないこと、および(b)前記多次元スリープキューの第2の次元において前記ウェイクアップ時間を有する異なるスレッドが1または複数あり、該1または複数の異なるスレッドの各々が前記実行スレッドの優先度より低いかまたは等しい優先度を有する場合に、前記実行スレッドを前記多次元スリープキューの第1の次元に挿入し、ウェイクアップ時間に基づいて第1の次元でソートするための命令と、
前記識別することに応答して、(c)前記多次元スリープキューの第1の次元において前記所定の時間に等しいウェイクアップ時間を有するスレッドがあること、または(d)前記多次元スリープキューの第2の次元において前記ウェイクアップ時間を有する異なるスレッドが1または複数あり、該1または複数の異なるスレッドの各々が前記実行スレッドの優先度より高い優先度を有する場合に、前記実行スレッドを前記多次元スリープキューの第2の次元に挿入し、優先度に基づいて第2の次元でソートするための命令と
を含むことを特徴とするシステム。 - 前記多次元スリープキューは、リアルタイム多次元スリープキューであることを特徴とする請求項16に記載のシステム。
- 前記実行スレッドを前記多次元スリープキューに挿入するための前記命令は、スレッドスケジューリングメカニズムが、単一のスレッドを前記多次元スリープキューから除去する時間に等しく、スレッドの数とは無関係な決定性の時間内で実行するために他のスレッドをスケジュールすることを可能にする方法で行われることを特徴とする請求項16に記載のシステム。
- 前記多次元スリープキューは、スレッドのグループを備え、
前記コンピュータ実行可能命令は、前記スレッドのグループを前記多次元スリープキューから、単一のスレッドを前記多次元スリープキューから除去する時間に等しく、スレッドの数とは無関係な決定性の時間内で除去するための命令とをさらに備え、
前記グループ内の各スレッドは、同じウェイクアップ時間を有することを特徴とする請求項16に記載のシステム。 - 前記第2の次元は、複数のスレッドを備え、各々のスレッドは、同じウェイクアップ時間を有することを特徴とする請求項16に記載のシステム。
- 前記実行スレッドをソートするための前記命令は、
前記第1の次元において、前記所定の時間と同じウェイクアップ時間を有する異なるスレッドを識別するための命令と、
前記異なるスレッドを識別することに応答して、
前記実行スレッドに対応する第1の優先度が、前記異なるスレッドに対応する第2の優先度より高いと決定するための命令と、
前記第1の次元において前記異なるスレッドを、前記第1および第2の次元双方のメンバである前記新しいスレッドと置き換え、前記置き換えられたスレッドは、前記第1および第2の次元に対して2次的な位置を有するようにするための命令と
をさらに備えたことを特徴とする請求項16に記載のシステム。 - 前記実行スレッドをソートするための前記命令は、
前記第1の次元において、前記所定の時間と同じウェイクアップ時間を有する異なるスレッドを識別するための命令と、
前記異なるスレッドを識別することに応答して、
前記実行スレッドに対応する第1の優先度が、前記異なるスレッドに対応する第2の優先度より低いと決定するための命令と、
前記実行スレッドを前記スレッドの第2の次元に挿入して、前記実行スレッドが前記第1および第2の次元に対して2次的な位置を占有し、前記第1の優先度より低い優先度の第2の次元における異なるスレッドは、前記2次的な位置に続いて位置するようにするための命令と
をさらに備えたことを特徴とする請求項16に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/884,374 | 2001-06-18 | ||
US09/884,374 US7210146B2 (en) | 2001-06-18 | 2001-06-18 | Sleep queue management |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002177498A Division JP4205369B2 (ja) | 2001-06-18 | 2002-06-18 | スリープキュー管理 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009026302A JP2009026302A (ja) | 2009-02-05 |
JP4694595B2 true JP4694595B2 (ja) | 2011-06-08 |
Family
ID=25384478
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002177498A Expired - Fee Related JP4205369B2 (ja) | 2001-06-18 | 2002-06-18 | スリープキュー管理 |
JP2008157283A Expired - Fee Related JP4694595B2 (ja) | 2001-06-18 | 2008-06-16 | スリープキュー管理 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002177498A Expired - Fee Related JP4205369B2 (ja) | 2001-06-18 | 2002-06-18 | スリープキュー管理 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7210146B2 (ja) |
EP (1) | EP1271314B1 (ja) |
JP (2) | JP4205369B2 (ja) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7383549B1 (en) * | 1997-01-08 | 2008-06-03 | Broadcom Corporation | Processor sharing technique for communications and other data processing on a same processor |
US20050240699A1 (en) * | 2004-03-31 | 2005-10-27 | Yoder Michael E | Safe process deactivation |
GB2453284A (en) * | 2004-04-02 | 2009-04-01 | Symbian Software Ltd | Mechanism for notifying a kernel of a thread entering a critical section. |
US20060048160A1 (en) * | 2004-09-02 | 2006-03-02 | International Business Machines Corporation | Method, apparatus, and computer program product for providing a self-tunable parameter used for dynamically yielding an idle processor |
JP4144609B2 (ja) * | 2004-09-29 | 2008-09-03 | ソニー株式会社 | 情報処理装置、メモリ領域管理方法、並びにコンピュータ・プログラム |
US8032737B2 (en) | 2006-08-14 | 2011-10-04 | Marvell World Trade Ltd. | Methods and apparatus for handling switching among threads within a multithread processor |
US7904704B2 (en) * | 2006-08-14 | 2011-03-08 | Marvell World Trade Ltd. | Instruction dispatching method and apparatus |
US8484651B2 (en) * | 2007-05-04 | 2013-07-09 | Avaya Inc. | Distributed priority queue that maintains item locality |
US8316218B2 (en) * | 2008-02-01 | 2012-11-20 | International Business Machines Corporation | Look-ahead wake-and-go engine with speculative execution |
US8725992B2 (en) | 2008-02-01 | 2014-05-13 | International Business Machines Corporation | Programming language exposing idiom calls to a programming idiom accelerator |
US8880853B2 (en) | 2008-02-01 | 2014-11-04 | International Business Machines Corporation | CAM-based wake-and-go snooping engine for waking a thread put to sleep for spinning on a target address lock |
US8341635B2 (en) | 2008-02-01 | 2012-12-25 | International Business Machines Corporation | Hardware wake-and-go mechanism with look-ahead polling |
US8171476B2 (en) | 2008-02-01 | 2012-05-01 | International Business Machines Corporation | Wake-and-go mechanism with prioritization of threads |
US8452947B2 (en) * | 2008-02-01 | 2013-05-28 | International Business Machines Corporation | Hardware wake-and-go mechanism and content addressable memory with instruction pre-fetch look-ahead to detect programming idioms |
US8516484B2 (en) | 2008-02-01 | 2013-08-20 | International Business Machines Corporation | Wake-and-go mechanism for a data processing system |
US8015379B2 (en) * | 2008-02-01 | 2011-09-06 | International Business Machines Corporation | Wake-and-go mechanism with exclusive system bus response |
US8612977B2 (en) * | 2008-02-01 | 2013-12-17 | International Business Machines Corporation | Wake-and-go mechanism with software save of thread state |
US8250396B2 (en) * | 2008-02-01 | 2012-08-21 | International Business Machines Corporation | Hardware wake-and-go mechanism for a data processing system |
US8225120B2 (en) | 2008-02-01 | 2012-07-17 | International Business Machines Corporation | Wake-and-go mechanism with data exclusivity |
US8788795B2 (en) * | 2008-02-01 | 2014-07-22 | International Business Machines Corporation | Programming idiom accelerator to examine pre-fetched instruction streams for multiple processors |
US8640141B2 (en) | 2008-02-01 | 2014-01-28 | International Business Machines Corporation | Wake-and-go mechanism with hardware private array |
US8732683B2 (en) | 2008-02-01 | 2014-05-20 | International Business Machines Corporation | Compiler providing idiom to idiom accelerator |
US8312458B2 (en) | 2008-02-01 | 2012-11-13 | International Business Machines Corporation | Central repository for wake-and-go mechanism |
US8386822B2 (en) * | 2008-02-01 | 2013-02-26 | International Business Machines Corporation | Wake-and-go mechanism with data monitoring |
US8145849B2 (en) * | 2008-02-01 | 2012-03-27 | International Business Machines Corporation | Wake-and-go mechanism with system bus response |
US8127080B2 (en) | 2008-02-01 | 2012-02-28 | International Business Machines Corporation | Wake-and-go mechanism with system address bus transaction master |
US8145723B2 (en) * | 2009-04-16 | 2012-03-27 | International Business Machines Corporation | Complex remote update programming idiom accelerator |
US8886919B2 (en) | 2009-04-16 | 2014-11-11 | International Business Machines Corporation | Remote update programming idiom accelerator with allocated processor resources |
US8082315B2 (en) * | 2009-04-16 | 2011-12-20 | International Business Machines Corporation | Programming idiom accelerator for remote update |
US8230201B2 (en) * | 2009-04-16 | 2012-07-24 | International Business Machines Corporation | Migrating sleeping and waking threads between wake-and-go mechanisms in a multiple processor data processing system |
US8954968B1 (en) * | 2011-08-03 | 2015-02-10 | Juniper Networks, Inc. | Measuring by the kernel the amount of time a monitored thread spends in a queue in order to monitor scheduler delays in a computing device |
KR101822940B1 (ko) * | 2011-12-12 | 2018-01-29 | 엘지전자 주식회사 | 수행 시간에 기초하여 장치 관리 명령을 수행하는 방법 및 장치 |
US9274832B2 (en) * | 2013-02-07 | 2016-03-01 | Htc Corporation | Method and electronic device for thread scheduling |
US9798585B2 (en) | 2015-05-19 | 2017-10-24 | Oracle International Corporation | Context switching with reader-writer locks |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6609161B1 (en) * | 2000-06-01 | 2003-08-19 | Adaptec, Inc. | Two-dimensional execution queue for host adapters |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5274642A (en) * | 1992-06-05 | 1993-12-28 | Indra Widjaja | Output buffered packet switch with a flexible buffer management scheme |
JP3231101B2 (ja) * | 1992-10-28 | 2001-11-19 | 株式会社日立製作所 | タスクキュー管理方法 |
JPH06282447A (ja) * | 1993-03-29 | 1994-10-07 | Mitsubishi Electric Corp | 待ち行列管理方式 |
US6389031B1 (en) * | 1997-11-05 | 2002-05-14 | Polytechnic University | Methods and apparatus for fairly scheduling queued packets using a ram-based search engine |
US6370144B1 (en) * | 1997-11-05 | 2002-04-09 | Polytechnic University | Methods and apparatus for shaping queued packets using a two-dimensional RAM-based search engine |
US6724767B1 (en) * | 1998-06-27 | 2004-04-20 | Intel Corporation | Two-dimensional queuing/de-queuing methods and systems for implementing the same |
US6081507A (en) * | 1998-11-04 | 2000-06-27 | Polytechnic University | Methods and apparatus for handling time stamp aging |
US6789134B1 (en) * | 2000-06-01 | 2004-09-07 | Adaptec, Inc. | Dequeuing from a host adapter two-dimensional queue |
US6937561B2 (en) * | 2000-06-02 | 2005-08-30 | Agere Systems Inc. | Method and apparatus for guaranteeing data transfer rates and enforcing conformance with traffic profiles in a packet network |
US20020141427A1 (en) * | 2001-03-29 | 2002-10-03 | Mcalpine Gary L. | Method and apparatus for a traffic optimizing multi-stage switch fabric network |
US6883042B1 (en) * | 2001-04-25 | 2005-04-19 | Adaptec, Inc. | Method and structure for automatic SCSI command delivery using the packetized SCSI protocol |
-
2001
- 2001-06-18 US US09/884,374 patent/US7210146B2/en not_active Expired - Fee Related
-
2002
- 2002-05-06 EP EP02010061.6A patent/EP1271314B1/en not_active Expired - Lifetime
- 2002-06-18 JP JP2002177498A patent/JP4205369B2/ja not_active Expired - Fee Related
-
2008
- 2008-06-16 JP JP2008157283A patent/JP4694595B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6609161B1 (en) * | 2000-06-01 | 2003-08-19 | Adaptec, Inc. | Two-dimensional execution queue for host adapters |
Also Published As
Publication number | Publication date |
---|---|
US20020194250A1 (en) | 2002-12-19 |
EP1271314A2 (en) | 2003-01-02 |
EP1271314B1 (en) | 2018-08-08 |
JP2003044295A (ja) | 2003-02-14 |
JP4205369B2 (ja) | 2009-01-07 |
JP2009026302A (ja) | 2009-02-05 |
US7210146B2 (en) | 2007-04-24 |
EP1271314A3 (en) | 2008-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4694595B2 (ja) | スリープキュー管理 | |
JP3987384B2 (ja) | 実行キュー管理 | |
EP3008594B1 (en) | Assigning and scheduling threads for multiple prioritized queues | |
Rajkumar | Synchronization in real-time systems: a priority inheritance approach | |
US10089142B2 (en) | Dynamic task prioritization for in-memory databases | |
US20230185607A1 (en) | Hardware accelerated dynamic work creation on a graphics processing unit | |
US6418458B1 (en) | Object-oriented prioritized work thread pool | |
Prakash et al. | A nonblocking algorithm for shared queues using compare-and-swap | |
KR101086514B1 (ko) | 연속 매체 우선순위 인식 저장장치 스케줄러 | |
US6625635B1 (en) | Deterministic and preemptive thread scheduling and its use in debugging multithreaded applications | |
KR101686010B1 (ko) | 실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법 | |
US20050240924A1 (en) | Prerequisite-based scheduler | |
US6845504B2 (en) | Method and system for managing lock contention in a computer system | |
US7246353B2 (en) | Method and system for managing the execution of threads and the processing of data | |
JP2003044296A5 (ja) | ||
CN112764904A (zh) | 基于多任务***中防止低优先级任务饿死的方法 | |
CN113316767A (zh) | 处理器处的松弛度感知、动态优先级变化 | |
EP2840513B1 (en) | Dynamic task prioritization for in-memory databases | |
CA2465015A1 (en) | Context scheduling | |
KR101725408B1 (ko) | 실시간 운영체제의 태스크 스케줄링 방법 | |
US20230418667A1 (en) | Computing device for handling tasks in a multi-core processor, and method for operating computing device | |
Andersson et al. | A Tool for Satisfying Real-Time Requirements of Software Executing on ARINC 653 with Undocumented Multicore | |
CN115904744A (zh) | 线程持锁方法、装置、电子设备及计算机可读介质 | |
Pathan | Real-time scheduling on uni-and multiprocessors based on priority promotions | |
JP3931883B2 (ja) | ジョブスケジューリング方法、計算機システムおよびジョブスケジューリングプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101008 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110111 |
|
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: 20110218 |
|
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: 20110223 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140304 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |