JP2008518337A - 多数のプロセッサをグレースフルに処理するアトミック命令なしリード・コピー・アップデートの猶予時間検出 - Google Patents
多数のプロセッサをグレースフルに処理するアトミック命令なしリード・コピー・アップデートの猶予時間検出 Download PDFInfo
- Publication number
- JP2008518337A JP2008518337A JP2007538381A JP2007538381A JP2008518337A JP 2008518337 A JP2008518337 A JP 2008518337A JP 2007538381 A JP2007538381 A JP 2007538381A JP 2007538381 A JP2007538381 A JP 2007538381A JP 2008518337 A JP2008518337 A JP 2008518337A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- token
- indicator
- data element
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000008569 process Effects 0.000 title claims description 33
- 238000001514 detection method Methods 0.000 title abstract description 9
- 238000012545 processing Methods 0.000 claims abstract description 182
- 238000004590 computer program Methods 0.000 claims abstract description 7
- 230000007246 mechanism Effects 0.000 claims description 25
- 230000015654 memory Effects 0.000 claims description 21
- 230000009471 action Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 6
- 230000007717 exclusion Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 claims description 4
- 230000000644 propagated effect Effects 0.000 claims description 3
- 239000006185 dispersion Substances 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/52—Indexing scheme relating to G06F9/52
- G06F2209/522—Manager
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
- Y10S707/99957—Garbage collection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Processing (AREA)
Abstract
【解決手段】 共有データ要素への既存の参照が除去されるまで共有データ要素の除去を据え置くことが必要なリード・コピー・アップデート・サブシステム又は他の処理環境において、アトミック命令なしに猶予時間を検出するための方法、システム、及びコンピュータ・プログラム製品である。猶予時間の検出は、データ要素へのアクセスを共有する処理エンティティ間で循環されるトークンを確立することを含む。トークンが処理エンティティ間を周回するたびに、猶予時間が経過する。各々の処理エンティティと関連付けられた分散インジケータが、いずれかの共有データ要素に関する除去処理を行う必要があるかどうかを示す。分散インジケータは、各々の処理エンティティがトークン処理を行う前に、各々の処理エンティティにおいて処理される。トークン処理は、分散インジケータによって保証されたときだけ行われる。このようにして、分散インジケータがこうした処理を保証しないときは、不要なトークン処理を回避することができる。
【選択図】 図9
Description
Claims (16)
- 共有データ要素への既存の参照が除去されるまで前記共有データ要素の除去を据え置くための猶予時間を検出する方法であって、
前記共有データ要素へのアクセスを共有する処理エンティティ間で循環されるトークンを確立するステップと、
前記トークンが前記処理エンティティ間を周回したときに、前記猶予時間が経過したと判断するステップと、
前記処理エンティティによって共有される前記共有データ要素又は他のデータ要素に関する除去処理を行う必要があるかどうかを示す分散インジケータを、前記処理エンティティの各々と関連付けるステップと、
前記処理エンティティにおいてトークン処理を行う前に、前記処理エンティティの各々において前記分散インジケータを処理するステップと、
前記分散インジケータによって保証されたときだけ、前記処理エンティティにおいてトークン処理を行うステップと、
を含み、
前記分散インジケータがこうした処理を保証しないときは、不要なトークン処理を回避することが可能な方法。 - 前記分散インジケータの各々は、前記処理エンティティの1つと関連付けられたキャッシュ・メモリにローカル変数として格納される、請求項1に記載の方法。
- 前記分散インジケータは、前記処理エンティティによって共有されるデータ要素を除去するための保留要求を有する前記処理エンティティの数、又は、前記処理エンティティによって共有されるデータ要素を除去するための保留要求の数を表す、請求項1に記載の方法。
- 前記分散インジケータは、前記処理エンティティによって共有されるデータ要素を除去するための保留要求を有する前記処理エンティティを特定するビットマップを表す、請求項1、請求項2、又は請求項3に記載の方法。
- 前記処理エンティティのうちの1つにおける前記分散インジケータの1つに生じた変化が、前記処理エンティティのうちの他の処理エンティティに伝搬される、請求項1〜4のいずれか1つの請求項に記載の方法。
- 前記処理エンティティのうちの第1の処理エンティティにおける前記分散インジケータの1つの値が、前記処理エンティティのうちの前記第1の処理エンティティにおけるデータ要素除去要求行為を反映させるため必要に応じて調整される、前記処理エンティティの隣接する第2の処理エンティティにおける前記分散インジケータのうちの第2の分散インジケータの値を反映する、請求項1〜5のいずれか1つの請求項に記載の方法。
- 前記分散インジケータの前記処理は、前記トークンの循環を保証するために前記処理エンティティのうちの1つにおいてしきい数の保留データ要素除去要求が存在するかどうかを判断すること、又は、前記処理エンティティのうちの1つにおいていずれかの保留データ要素除去要求が存在するかどうかを判断することを含む、請求項1〜6のいずれか1つの請求項に記載の方法。
- リード・コピー・アップデート相互排他技術の一部として実装され、前記共有データ要素の除去は、前記処理エンティティにおいてコールバックを登録することによって実行され、前記分散インジケータは、リード・コピー・アップデート・サブシステムにおけるコールバック行為を反映する分散コールバック・インジケータである、請求項1〜7のいずれか1つの請求項に記載の方法。
- 1つ又は複数のプロセッサ、メモリ、及び、前記1つ又は複数のプロセッサと前記メモリとの間の通信経路を有し、前記プロセッサのうちの1つによる共有データ要素の除去を、前記プロセッサのうちの他のプロセッサによって維持される前記共有データ要素への既存の参照が除去されるまで据え置くための猶予時間を検出するように適合されたデータ処理システムであって、
前記プロセッサ間で循環されるトークンと、
前記トークンを循環させ、前記プロセッサ間を周回する前記トークンにより前記猶予時間が経過したかどうかを判断するように適合された、前記プロセッサの各々と関連付けられたトークン・マニピュレータと、
前記プロセッサによって共有される前記共有データ要素又は他のデータ要素に関する除去処理を行う必要があるかどうかを示す、前記プロセッサの各々と関連付けられた分散インジケータと、
前記トークン・マニピュレータによるトークン処理の前に前記分散インジケータを処理するように適合された、前記プロセッサの各々と関連付けられた分散インジケータ処理機構と、
前記分散インジケータによって保証されたときだけ、前記トークン・マニピュレータが前記プロセッサにおいてトークン処理を行うことができるようにさらに適合された、前記分散インジケータ処理機構と、
を備え、
前記分散インジケータがこうした処理を保証しないときは、不要なトークン処理を回避することが可能なデータ処理システム。 - 共有データ要素への既存の参照が除去されるまで前記共有データ要素の除去を据え置くための猶予時間を検出するコンピュータ・プログラム製品であって、
1つ又は複数のデータ記憶媒体と、
前記共有データ要素へのアクセスを共有する処理エンティティ間で循環されるトークンを確立すること、
前記トークンが前記処理エンティティ間を周回したときに、前記猶予時間が経過したと判断すること、
前記処理エンティティによって共有される前記共有データ要素又は他のデータ要素に関する除去処理を行う必要があるかどうかを示す分散インジケータを、前記処理エンティティの各々と関連付けること、
前記処理エンティティにおいてトークン処理を行う前に、前記処理エンティティの各々において前記分散インジケータを処理すること、及び、
前記分散インジケータによって保証されたときだけ、前記処理エンティティにおいてトークン処理を行うこと、
によって動作するようにデータ処理プラットフォームをプログラムするための、前記データ記憶媒体に記録される手段と、
を含み、
前記分散インジケータがこうした処理を保証しないときは、不要なトークン処理を回避することが可能なコンピュータ・プログラム製品。 - 前記プログラム手段は、リード・コピー・アップデート・サブシステムのコンピュータ・プログラム製品の一部として実装され、前記共有データ要素の除去は、前記処理エンティティにおいてコールバックを登録することによって実行され、前記分散インジケータは、前記リード・コピー・アップデート・サブシステムにおけるコールバック行為を反映する分散コールバック・インジケータである、請求項21に記載のコンピュータ・プログラム製品。
- 保留コールバックをいつ実行することができるかを判断するために、リード・コピー・アップデート・サブシステムにおいて猶予時間を検出する方法であって、
データ要素へのアクセスを共有するプロセッサの組の各々に静止状態カウンタを実装するステップと、
前記静止状態カウンタによって維持されるカウント値の不連続として猶予時間トークンを確立するステップと、
前記トークンが前記プロセッサの組の間を周回して前記プロセッサの1つに戻ったときに、前記プロセッサの前記1つにおいて前記猶予時間が経過したと判断するステップと、
前記コールバックを処理する必要があるかどうかを示す分散コールバック・インジケータを、前記プロセッサの各々と関連付けられたキャッシュ・メモリ内のローカル変数として関連付けるステップと、
前記プロセッサにおいてトークン処理を行う前に、前記プロセッサの各々において前記分散コールバック・インジケータを処理するステップと、
前記分散コールバック・インジケータによって保証されたときだけ、前記プロセッサにおいてトークン処理を行うステップと、
を含み、
前記分散コールバック・インジケータがこうした処理を保証しないときは、不要なトークン処理を回避することが可能な方法。 - 1つ又は複数のプロセッサ、メモリ、及び、前記1つ又は複数のプロセッサと前記メモリとの間の通信経路を有し、保留コールバックをいつ実行することができるかを判断するために猶予時間を検出するように適合されたリード・コピー・アップデート・サブシステムを含むデータ処理システムであって、
- 共有データ要素への既存の参照が除去されるまで前記共有データ要素の除去を据え置くための猶予時間を検出する方法であって、
前記共有データ要素へのアクセスを共有する処理エンティティ間で循環されるトークンを確立するステップと、
前記トークンが前記処理エンティティ間を周回したときに、前記猶予時間が経過したと判断するステップと、
前記処理エンティティによって共有されるデータ要素を除去するための保留要求を有する前記処理エンティティの数を表す分散インジケータを、前記処理エンティティの各々と関連付けるステップと、
前記処理エンティティにおいてトークン処理を行う前に、前記処理エンティティの各々において前記分散インジケータを処理するステップであって、前記処理は、前記処理エンティティの隣接する1つにおける前記分散インジケータの値に従って前記分散インジケータを修正することを含み、前記分散インジケータの修正は、(1)現在の猶予時間と関連付けられた除去要求が存在し、前の猶予時間と関連付けられた除去要求が存在しないかどうかに応じて行われ、この場合には前記分散インジケータを増加させ、(2)現在の猶予時間と関連付けられた除去要求が存在せず、前の猶予時間と関連付けられた除去要求が存在したかどうかに応じて行われ、この場合には前記分散インジケータを減少させ、又は、(3)現在の猶予時間と前の猶予時間の両方について除去要求が存在するかどうか、若しくは、現在の猶予時間と前の猶予時間の両方について除去要求が存在しないかどうかに応じて行われ、この場合には前記分散インジケータは同じままである、ステップと、
前記分散インジケータによって保証されたときだけ、前記処理エンティティにおいてトークン処理を行うステップと、
を含み、
前記分散インジケータがこうした処理を保証しないときは、不要なトークン処理を回避することが可能な方法。 - 共有データ要素への既存の参照が除去されるまで前記共有データ要素の除去を据え置くための猶予時間を検出する方法であって、
前記共有データ要素へのアクセスを共有する処理エンティティ間で循環されるトークンを確立するステップと、
前記トークンが前記処理エンティティ間を周回したときに、前記猶予時間が経過したと判断するステップと、
前記処理エンティティによって共有されるデータ要素を除去するための保留要求の総数を表す分散インジケータを、前記処理エンティティの各々と関連付けるステップと、
前記処理エンティティにおいてトークン処理を行う前に、前記処理エンティティの各々において前記分散インジケータを処理するステップであって、前記処理は、前記処理エンティティの隣接する1つにおける前記分散インジケータの値に従って前記分散インジケータを修正することを含み、前記値の修正は、現在の猶予時間の間に追加された除去要求の数と以前の猶予時間の間に処理された除去要求の数との間の差に応じて行われる、ステップと、
前記分散インジケータによって保証されたときだけ、前記処理エンティティにおいてトークン処理を行うステップと、
を含み、
前記分散インジケータがこうした処理を保証しないときは、不要なトークン処理を回避することが可能な方法。 - 共有データ要素への既存の参照が除去されるまで前記共有データ要素の除去を据え置くための猶予時間を検出する方法であって、
前記共有データ要素へのアクセスを共有する処理エンティティ間で循環されるトークンを確立するステップと、
前記トークンが前記処理エンティティ間を周回したときに、前記猶予時間が経過したと判断するステップと、
前記処理エンティティによって共有されるデータ要素を除去するための保留要求を有する前記処理エンティティのビットマップを表す分散インジケータを、前記処理エンティティの各々と関連付けるステップと、
前記処理エンティティにおいてトークン処理を行う前に、前記処理エンティティの各々において前記分散インジケータを処理するステップであって、前記処理は、前記処理エンティティの隣接する1つにおける前記分散インジケータの値に従って前記分散インジケータを修正することと、(1)現在の猶予時間と関連付けられた除去要求が存在するかどうかに応じて、評価している処理エンティティに対応するビットを1に設定するか、又は、(2)現在の猶予時間と関連付けられた除去要求が存在しないかどうかに応じて、評価している処理エンティティに対応するビットを0に設定することとを含む、ステップと、
前記分散インジケータによって保証されたときだけ、前記処理エンティティにおいてトークン処理を行うステップと、
を含み、
前記分散インジケータがこうした処理を保証しないときは、不要なトークン処理を回避することが可能な方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/974,514 US7454581B2 (en) | 2004-10-27 | 2004-10-27 | Read-copy update grace period detection without atomic instructions that gracefully handles large numbers of processors |
PCT/EP2005/055240 WO2006045704A1 (en) | 2004-10-27 | 2005-10-13 | Read-copy update grace period detection without atomic instructions that gracefully handles large numbers of processors |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2008518337A true JP2008518337A (ja) | 2008-05-29 |
JP2008518337A5 JP2008518337A5 (ja) | 2008-08-14 |
JP4551452B2 JP4551452B2 (ja) | 2010-09-29 |
Family
ID=35989206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007538381A Expired - Fee Related JP4551452B2 (ja) | 2004-10-27 | 2005-10-13 | 多数のプロセッサをグレースフルに処理するアトミック命令なしリード・コピー・アップデートの猶予時間検出 |
Country Status (8)
Country | Link |
---|---|
US (2) | US7454581B2 (ja) |
EP (1) | EP1836571B1 (ja) |
JP (1) | JP4551452B2 (ja) |
KR (1) | KR100910821B1 (ja) |
CN (1) | CN101142551B (ja) |
AT (1) | ATE426853T1 (ja) |
DE (1) | DE602005013578D1 (ja) |
WO (1) | WO2006045704A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010033556A (ja) * | 2008-07-24 | 2010-02-12 | Internatl Business Mach Corp <Ibm> | 非プリエンプタブルなデータ参照者に影響する共用データ要素の更新動作の後に猶予期間の低電力検出のための方法、システム及びコンピュータ・プログラム |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7454581B2 (en) * | 2004-10-27 | 2008-11-18 | International Business Machines Corporation | Read-copy update grace period detection without atomic instructions that gracefully handles large numbers of processors |
KR100763526B1 (ko) * | 2005-12-12 | 2007-10-04 | 한국전자통신연구원 | 애플리케이션 컨텍스트 관리 장치 및 방법 |
US7664786B2 (en) * | 2005-12-12 | 2010-02-16 | Electronics And Telecommunications Research Institute | Apparatus and method for managing application context |
US7353346B2 (en) * | 2006-03-24 | 2008-04-01 | International Business Machines Corporation | Read-copy-update (RCU) operations with reduced memory barrier usage |
JP5103807B2 (ja) * | 2006-06-30 | 2012-12-19 | 富士通株式会社 | 制御プログラム、制御方法、情報処理装置及び情報処理システム |
US8495641B2 (en) * | 2007-06-29 | 2013-07-23 | International Business Machines Corporation | Efficiently boosting priority of read-copy update readers while resolving races with exiting and unlocking processes |
US8706706B2 (en) * | 2007-09-13 | 2014-04-22 | International Business Machines Corporation | Fast path for grace-period detection for read-copy update system |
US8055918B2 (en) * | 2008-04-03 | 2011-11-08 | International Business Machines Corporation | Optimizing preemptible read-copy update for low-power usage by avoiding unnecessary wakeups |
US7953778B2 (en) * | 2008-05-20 | 2011-05-31 | International Business Machines Corporation | Efficient support of consistent cyclic search with read-copy update and parallel updates |
US8020160B2 (en) * | 2008-07-28 | 2011-09-13 | International Business Machines Corporation | User-level read-copy update that does not require disabling preemption or signal handling |
US7953708B2 (en) * | 2008-07-28 | 2011-05-31 | International Business Machines Corporation | Optimizing grace period detection for preemptible read-copy update on uniprocessor systems |
US8195893B2 (en) * | 2008-11-03 | 2012-06-05 | International Business Machines Corporation | Eliminating synchronous grace period detection for non-preemptible read-copy update on uniprocessor systems |
US8065489B1 (en) | 2009-03-31 | 2011-11-22 | Symantec Corporation | Method and apparatus for managing concurrent access among computers to a bitmap stored on disk storage |
US8185704B2 (en) * | 2009-09-02 | 2012-05-22 | International Business Machines Corporation | High performance real-time read-copy update |
US9459963B2 (en) * | 2009-09-03 | 2016-10-04 | International Business Machines Corporation | Safely rolling back transactions in a transactional memory system with concurrent readers |
US8407503B2 (en) | 2010-09-27 | 2013-03-26 | International Business Machines Corporation | Making read-copy update free-running grace period counters safe against lengthy low power state sojourns |
US9189413B2 (en) | 2011-06-20 | 2015-11-17 | International Business Machines Corporation | Read-copy update implementation for non-cache-coherent systems |
US8615771B2 (en) | 2011-06-20 | 2013-12-24 | International Business Machines Corporation | Effective management of blocked-tasks in preemptible read-copy update |
US9250978B2 (en) | 2011-06-27 | 2016-02-02 | International Business Machines Corporation | Asynchronous grace-period primitives for user-space applications |
JP5772458B2 (ja) * | 2011-09-29 | 2015-09-02 | 富士通株式会社 | データ管理プログラム、ノード、および分散データベースシステム |
US8661005B2 (en) | 2011-12-08 | 2014-02-25 | International Business Machines Corporation | Optimized deletion and insertion for high-performance resizable RCU-protected hash tables |
US9009122B2 (en) | 2011-12-08 | 2015-04-14 | International Business Machines Corporation | Optimized resizing for RCU-protected hash tables |
US9256476B2 (en) | 2011-12-10 | 2016-02-09 | International Business Machines Corporation | Expedited module unloading for kernel modules that execute read-copy update callback processing code |
CN102609313B (zh) * | 2012-01-13 | 2014-04-02 | 汉柏科技有限公司 | 多核系统资源延迟回收锁的实现方法及系统 |
US9003420B2 (en) | 2012-05-18 | 2015-04-07 | International Business Machines Corporation | Resolving RCU-scheduler deadlocks |
US8938631B2 (en) | 2012-06-30 | 2015-01-20 | International Business Machines Corporation | Energy efficient implementation of read-copy update for light workloads running on systems with many processors |
US8874535B2 (en) | 2012-10-16 | 2014-10-28 | International Business Machines Corporation | Performance of RCU-based searches and updates of cyclic data structures |
US8924655B2 (en) | 2013-02-04 | 2014-12-30 | International Business Machines Corporation | In-kernel SRCU implementation with reduced OS jitter |
US8972801B2 (en) | 2013-02-04 | 2015-03-03 | International Business Machines Corporation | Motivating lazy RCU callbacks under out-of-memory conditions |
US9348765B2 (en) | 2013-03-14 | 2016-05-24 | International Business Machines Corporation | Expediting RCU grace periods under user mode control |
US9244844B2 (en) | 2013-03-14 | 2016-01-26 | International Business Machines Corporation | Enabling hardware transactional memory to work more efficiently with readers that can tolerate stale data |
US9396226B2 (en) | 2013-06-24 | 2016-07-19 | International Business Machines Corporation | Highly scalable tree-based trylock |
US9389925B2 (en) | 2013-12-03 | 2016-07-12 | International Business Machines Corporation | Achieving low grace period latencies despite energy efficiency |
US9720836B2 (en) | 2015-05-11 | 2017-08-01 | International Business Machines Corporation | Preemptible-RCU CPU hotplugging while maintaining real-time response |
US9552236B2 (en) | 2015-05-12 | 2017-01-24 | International Business Machines Corporation | Tasks—RCU detection of tickless user mode execution as a quiescent state |
US9886329B2 (en) * | 2015-06-25 | 2018-02-06 | International Business Machines Corporation | Scalable RCU callback offloading |
US9965432B2 (en) | 2015-10-02 | 2018-05-08 | International Business Machines Corporation | Handling CPU hotplug events in RCU without sleeplocks |
US10140131B2 (en) | 2016-08-11 | 2018-11-27 | International Business Machines Corporation | Shielding real-time workloads from OS jitter due to expedited grace periods |
US10353748B2 (en) | 2016-08-30 | 2019-07-16 | International Business Machines Corporation | Short-circuiting normal grace-period computations in the presence of expedited grace periods |
US10282230B2 (en) | 2016-10-03 | 2019-05-07 | International Business Machines Corporation | Fair high-throughput locking for expedited grace periods |
US10146577B2 (en) | 2016-12-11 | 2018-12-04 | International Business Machines Corporation | Enabling real-time CPU-bound in-kernel workloads to run infinite loops while keeping RCU grace periods finite |
US10372510B2 (en) | 2017-03-15 | 2019-08-06 | International Business Machines Corporation | Using expedited grace periods to short-circuit normal grace-period computations |
US11055271B2 (en) | 2017-11-13 | 2021-07-06 | International Business Machines Corporation | Funnel locking for sleepable read-copy update |
US10983840B2 (en) | 2018-06-21 | 2021-04-20 | International Business Machines Corporation | Consolidating read-copy update types having different definitions of a quiescent state |
US10268610B1 (en) | 2018-08-16 | 2019-04-23 | International Business Machines Corporation | Determining whether a CPU stalling a current RCU grace period had interrupts enabled |
US10831542B2 (en) | 2018-10-01 | 2020-11-10 | International Business Machines Corporation | Prevent counter wrap during update-side grace-period-request processing in tree-SRCU implementations |
US10613913B1 (en) | 2018-10-06 | 2020-04-07 | International Business Machines Corporation | Funnel locking for normal RCU grace period requests |
US11386079B2 (en) | 2019-06-26 | 2022-07-12 | International Business Machines Corporation | Replacing preemptible RCU with an augmented SRCU implementation |
US10977042B2 (en) | 2019-07-26 | 2021-04-13 | International Business Machines Corporation | Using expedited RCU grace periods to avoid out-of-memory conditions for offloaded RCU callbacks |
US11321147B2 (en) | 2019-08-29 | 2022-05-03 | International Business Machines Corporation | Determining when it is safe to use scheduler lock-acquiring wakeups to defer quiescent states in real-time preemptible read-copy update |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4685082A (en) | 1985-02-22 | 1987-08-04 | Wang Laboratories, Inc. | Simplified cache with automatic update |
US5442758A (en) | 1993-07-19 | 1995-08-15 | Sequent Computer Systems, Inc. | Apparatus and method for achieving reduced overhead mutual exclusion and maintaining coherency in a multiprocessor system utilizing execution history and thread monitoring |
US6311289B1 (en) | 1998-11-03 | 2001-10-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Explicit state copy in a fault tolerant system using a remote write operation |
US6490671B1 (en) * | 1999-05-28 | 2002-12-03 | Oracle Corporation | System for efficiently maintaining translation lockaside buffer consistency in a multi-threaded, multi-processor virtual memory system |
US6405201B1 (en) | 1999-12-02 | 2002-06-11 | Sun Microsystems, Inc. | Method and apparatus for reducing network traffic for remote file append operations |
US6502165B1 (en) | 1999-12-03 | 2002-12-31 | International Business Machines Corporation | Balanced access to data volumes with redundant copies stored in data storage libraries |
CN1114874C (zh) * | 2000-05-15 | 2003-07-16 | 倚天资讯股份有限公司 | 利用双向无线传输进行软件更新的方法及其系统 |
US6502170B2 (en) | 2000-12-15 | 2002-12-31 | Intel Corporation | Memory-to-memory compare/exchange instructions to support non-blocking synchronization schemes |
US20030110232A1 (en) * | 2001-12-11 | 2003-06-12 | International Business Machines Corporation | Distributing messages between local queues representative of a common shared queue |
US7454581B2 (en) * | 2004-10-27 | 2008-11-18 | International Business Machines Corporation | Read-copy update grace period detection without atomic instructions that gracefully handles large numbers of processors |
-
2004
- 2004-10-27 US US10/974,514 patent/US7454581B2/en not_active Expired - Fee Related
-
2005
- 2005-10-13 JP JP2007538381A patent/JP4551452B2/ja not_active Expired - Fee Related
- 2005-10-13 CN CN2005800294377A patent/CN101142551B/zh not_active Expired - Fee Related
- 2005-10-13 KR KR1020077009206A patent/KR100910821B1/ko not_active IP Right Cessation
- 2005-10-13 EP EP05803288A patent/EP1836571B1/en not_active Not-in-force
- 2005-10-13 DE DE602005013578T patent/DE602005013578D1/de active Active
- 2005-10-13 WO PCT/EP2005/055240 patent/WO2006045704A1/en active Application Filing
- 2005-10-13 AT AT05803288T patent/ATE426853T1/de not_active IP Right Cessation
-
2008
- 2008-07-02 US US12/167,099 patent/US7689789B2/en not_active Expired - Fee Related
Non-Patent Citations (7)
Title |
---|
CSND200401003002, 山本高志、岩本俊弘, "カーネル2.6のすべて Part 2 カーネルの実力検証", 日経Linux, 20030908, 第5巻,第10号, pp.47−51, JP, 日経BP社 * |
CSND200500441016, 高橋浩和, "Linuxカーネル2.6解読室 第5回 同期と排他", UNIX USER, 20041001, 第13巻,第10号, pp.119−134, JP, ソフトバンクパブリッシング株式会社 * |
JPN5007018718, Paul E. McKenney et al., "Read Copy Update", Proceedings of Ottawa Linux Symposium 2002, 20020629, pp.339−343 * |
JPN5007018720, Andrea Arcangeli et al., "Using Read−Copy−Update Techniques for System V IPC in the Linux 2.5 Kernel", Proceedings of the FREENIX Track: 2003 USENIX Annual Technical Conference, 20030609, pp.297−309, US * |
JPN5007018721, Ben Gamsa et al., "Tornado: Maximizing Locality and Concurrency in a Shared Memory. Multiprocessor Operating System", Proceedings of the 3rd Symposium on Operating Systems Design and Implementation (OSDI ’99), 19990222, pp.87−100, US * |
JPN6010020621, 山本高志、岩本俊弘, "カーネル2.6のすべて Part 2 カーネルの実力検証", 日経Linux, 20030908, 第5巻,第10号, pp.47−51, JP, 日経BP社 * |
JPN6010020635, 高橋浩和, "Linuxカーネル2.6解読室 第5回 同期と排他", UNIX USER, 20041001, 第13巻,第10号, pp.119−134, JP, ソフトバンクパブリッシング株式会社 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010033556A (ja) * | 2008-07-24 | 2010-02-12 | Internatl Business Mach Corp <Ibm> | 非プリエンプタブルなデータ参照者に影響する共用データ要素の更新動作の後に猶予期間の低電力検出のための方法、システム及びコンピュータ・プログラム |
Also Published As
Publication number | Publication date |
---|---|
KR100910821B1 (ko) | 2009-08-04 |
JP4551452B2 (ja) | 2010-09-29 |
US7689789B2 (en) | 2010-03-30 |
US20060123100A1 (en) | 2006-06-08 |
CN101142551B (zh) | 2010-05-05 |
ATE426853T1 (de) | 2009-04-15 |
EP1836571B1 (en) | 2009-03-25 |
US20080288749A1 (en) | 2008-11-20 |
EP1836571A1 (en) | 2007-09-26 |
CN101142551A (zh) | 2008-03-12 |
KR20070064646A (ko) | 2007-06-21 |
US7454581B2 (en) | 2008-11-18 |
WO2006045704A1 (en) | 2006-05-04 |
DE602005013578D1 (de) | 2009-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4551452B2 (ja) | 多数のプロセッサをグレースフルに処理するアトミック命令なしリード・コピー・アップデートの猶予時間検出 | |
US7734879B2 (en) | Efficiently boosting priority of read-copy update readers in a real-time data processing system | |
US8495641B2 (en) | Efficiently boosting priority of read-copy update readers while resolving races with exiting and unlocking processes | |
US7395383B2 (en) | Realtime-safe read copy update with per-processor read/write locks | |
US7904436B2 (en) | Realtime-safe read copy update with lock-free readers | |
US7953708B2 (en) | Optimizing grace period detection for preemptible read-copy update on uniprocessor systems | |
US8020160B2 (en) | User-level read-copy update that does not require disabling preemption or signal handling | |
JP2500101B2 (ja) | 共用変数の値を更新する方法 | |
US20080082532A1 (en) | Using Counter-Flip Acknowledge And Memory-Barrier Shoot-Down To Simplify Implementation of Read-Copy Update In Realtime Systems | |
US7472228B2 (en) | Read-copy update method | |
US8881153B2 (en) | Speculative thread execution with hardware transactional memory | |
US8438571B2 (en) | Thread speculative execution and asynchronous conflict | |
US10282230B2 (en) | Fair high-throughput locking for expedited grace periods | |
US9940290B2 (en) | Handling CPU hotplug events in RCU without sleeplocks | |
US20180046521A1 (en) | Shielding Real-Time Workloads From OS Jitter Due To Expedited Grace Periods | |
Anderson et al. | Efficient object sharing in quantum-based real-time systems | |
JP6637450B2 (ja) | トランザクションにおけるレジスタの動的なセーブ | |
Tomar | Dynamic prediction based scheduling for tm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080627 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080627 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20100315 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20100330 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100420 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20100506 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100506 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100616 |
|
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: 20100706 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20100706 |
|
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: 20100709 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130716 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |