JP4418752B2 - データ処理システムにおいてスレッドを管理する方法と装置 - Google Patents
データ処理システムにおいてスレッドを管理する方法と装置 Download PDFInfo
- Publication number
- JP4418752B2 JP4418752B2 JP2004537251A JP2004537251A JP4418752B2 JP 4418752 B2 JP4418752 B2 JP 4418752B2 JP 2004537251 A JP2004537251 A JP 2004537251A JP 2004537251 A JP2004537251 A JP 2004537251A JP 4418752 B2 JP4418752 B2 JP 4418752B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- kernel
- user
- kernel thread
- stack
- 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
- 238000000034 method Methods 0.000 title claims description 58
- 230000007958 sleep Effects 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 6
- 230000002618 waking effect Effects 0.000 claims description 5
- 230000002452 interceptive effect Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 239000003550 marker Substances 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000007717 exclusion Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 210000000707 wrist Anatomy 0.000 description 2
- 230000005059 dormancy Effects 0.000 description 1
- 230000003287 optical 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
バス・システムと、
前記バス・システムに接続された通信装置と、
前記バス・システムに接続された記憶装置であって、前記記憶装置は1組の命令群を格納している、記憶装置と、
前記バス・システムに接続された処理装置であって、前記処理装置は前記1組の命令群を実行して、ユーザ・スレッドに関連付けられたカーネル・スレッドが前記ユーザ・スレッドによって不必要にされていることを検出し、前記カーネル・スレッドが不必要にされていることに応答して前記カーネル・スレッドに対して半切り離しを行うが、その際、前記スレッド用のデータはスタックを変更しない、処理装置と
を備えた
データ処理システム。
102 システム・ユニット
104 画像表示端末
106 キーボード
108 記憶装置
110 マウス
200 データ処理システム
202 プロセッサ
204 メイン・メモリ
206 PCIローカル・バス
208 PCIブリッジ
210 LANアダプタ
212 SCSIホスト・バス・アダプタ
214 拡張バス・インタフェース
216 音声アダプタ
218 グラフックス・アダプタ
219 音声/画像アダプタ
220 キーボード/マウス・アダプタ
222 モデム
224 メモリ
226 ハード・ディスク駆動装置
228 テープ駆動装置
230 CD−ROM駆動装置
300 ユーザ・スレッド
302 ユーザ・スレッド
304 ユーザ・スレッド
306 ユーザ・スレッド
308 ユーザ・スレッド
310 ユーザ空間
312 カーネル・スレッド
314 カーネル・スレッド
318 カーネル空間
320 ユーザ・スレッド・スタック群
322 切り離し済みリスト
324 Pスレッド・ライブラリ
326 カーネル・スレッド・スタック群
328 半切り離し済みリスト
400 エントリ
402 エントリ
406 リスト・ヘッド・マーカ
408 前ポインタ
410 次ポインタ
412 前ポインタ
414 次ポインタ
416 ポインタ
418 ポインタ
420 カーネル・スレッド
422 カーネル・スレッド
430 リスト・ヘッド・マーカ
432 カーネル・スレッド
434 次ポインタ
436 カーネル・スレッド
438 前ポインタ
440 前ポインタ
442 次ポインタ
450 アレイ
452 リスト・ヘッド・マーカ
454 ポインタ
456 ポインタ
458 ポインタ
460 カーネル・スレッド
462 カーネル・スレッド
464 カーネル・スレッド
Claims (7)
- データ処理システムにおいてスレッドを管理する方法であって、
前記データ処理システム中の処理ユニットによって、ユーザ・スレッドに関連付けられたカーネル・スレッドを検出するステップと、
前記処理ユニットによって、前記カーネル・スレッドが前記ユーザ・スレッドによって不必要にされていることを検出するステップと、
前記カーネル・スレッドが不必要にされていることに応答して、前記カーネル・スレッドを半切り離しリスト上に配置し、前記ユーザ・スレッドと同時に非実行状態にあるように設定することによって、前記処理ユニットによって、前記カーネル・スレッドに対して半切り離しを行うステップを有し、
前記カーネル・スレッドは、前記ユーザ・スレッドのユーザ・スタックとシグナル・マスクに関する情報を維持し、
前記カーネル・スレッドのためのデータは、前記ユーザ・スレッドが後で前記カーネル・スレッドを必要とする場合に、前記ユーザ・スレッドのためのデータとして前記ユーザ・スタック上にとどまり、
前記カーネル・スレッドのためのデータは、前記カーネル・スレッドを半切り離しするために、カーネル・スタックに対して前記データをコピーする必要なく、前記ユーザ・スタック上にとどまり、
前記カーネル・スレッドと前記ユーザ・スレッドは、前記データ処理システムのオペレーティング・システムにおいて実行され、
前記ユーザ・スレッドがスリープからウェイクアップすることに応答して、前記処理ユニットによって、前記半切り離しリストから前記カーネル・スレッドを除去するステップを有し、その際、前記カーネル・スレッドによる前記ユーザ・スレッドに対する再接続は不要である、
方法。 - 前記カーネル・スレッドと前記ユーザ・スレッドは、対話式実行オペレーティング・システムで実行される、
請求項1に記載の方法。 - 前記カーネル・スレッドが前記ユーザ・スレッドによって不必要にされていることを検出するステップと、前記半切り離しを行うステップは、ライブラリを使って実行される、
請求項1に記載の方法。 - 前記非実行可能状態が待機状態および休眠状態のうちの一方である、
請求項1に記載の方法。 - スレッドを管理するデータ処理システムであって、
バス・システムと、
前記バス・システムに接続された通信ユニットと、
前記バス・システムに接続されたメモリと、
ユーザ・スレッドに関連付けられたカーネル・スレッドを検出するための検出手段と、
前記カーネル・スレッドが前記ユーザ・スレッドによって不要とされることを判断するための判断手段と、
前記カーネル・スレッドが不要とされることに応答して、前記カーネル・スレッドを半切り離しリスト上に配置し、前記ユーザ・スレッドと同時に非実行状態になるように設定することによって、前記処理ユニットによって、前記カーネル・スレッドに対して半切り離しを行うための手段とを有し、
前記カーネル・スレッドは、前記ユーザ・スレッドのユーザ・スタックとシグナル・マスクに関する情報を維持し、
前記カーネル・スレッドのためのデータは、前記ユーザ・スレッドが後で前記カーネル・スレッドを必要とする場合に、前記ユーザ・スレッドのためのデータとして前記同一のユーザ・スタック上にとどまり、
前記カーネル・スレッドのためのデータは、前記カーネル・スレッドを半切り離しするために、カーネル・スタックに対して前記データをコピーする必要なく、前記ユーザ・スタック上にとどまり、
前記カーネル・スレッドと前記ユーザ・スレッドは、前記データ処理システムのオペレーティング・システムにおいて実行され、
前記ユーザ・スレッドがスリープからウェイクアップすることに応答して、前記処理ユニットによって、前記半切り離しリストから前記カーネル・スレッドを除去し、その際、前記カーネル・スレッドによる前記ユーザ・スレッドに対する再接続は不要である、
データ処理システム。 - 前記カーネル・スレッドと前記ユーザ・スレッドは、対話式実行オペレーティング・システムで実行される、
請求項5に記載のデータ処理システム。 - 前記非実行可能状態が待機状態および休眠状態のうちの一方である、
請求項5に記載のデータ処理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/246,889 US7275247B2 (en) | 2002-09-19 | 2002-09-19 | Method and apparatus for handling threads in a data processing system |
PCT/GB2003/003497 WO2004027599A2 (en) | 2002-09-19 | 2003-08-11 | Method and apparatus for handling threads in a data processing system |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2005539322A JP2005539322A (ja) | 2005-12-22 |
JP2005539322A5 JP2005539322A5 (ja) | 2009-06-04 |
JP4418752B2 true JP4418752B2 (ja) | 2010-02-24 |
Family
ID=31992385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004537251A Expired - Fee Related JP4418752B2 (ja) | 2002-09-19 | 2003-08-11 | データ処理システムにおいてスレッドを管理する方法と装置 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7275247B2 (ja) |
JP (1) | JP4418752B2 (ja) |
KR (1) | KR100745888B1 (ja) |
CN (1) | CN100356328C (ja) |
AU (1) | AU2003249094A1 (ja) |
BR (1) | BRPI0314853B1 (ja) |
CA (1) | CA2498050C (ja) |
TW (1) | TWI235953B (ja) |
WO (1) | WO2004027599A2 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8185895B2 (en) * | 2005-11-30 | 2012-05-22 | International Business Machines Corporation | Method, apparatus and program storage device for providing an anchor pointer in an operating system context structure for improving the efficiency of accessing thread specific data |
US8214834B2 (en) * | 2007-04-30 | 2012-07-03 | Hewlett-Packard Development Company, L.P. | Asynchronous wakeup mechanism that places reference to process on sleep queue if execution of copyout functionality is caused to sleep |
US20080307419A1 (en) * | 2007-06-06 | 2008-12-11 | Microsoft Corporation | Lazy kernel thread binding |
US20080313647A1 (en) * | 2007-06-18 | 2008-12-18 | Microsoft Corporation | Thread virtualization techniques |
US20080313656A1 (en) * | 2007-06-18 | 2008-12-18 | Microsoft Corporation | User mode stack disassociation |
TWI386814B (zh) * | 2007-12-31 | 2013-02-21 | Ind Tech Res Inst | 具動態工作管理能力之多處理器界面及其程式載卸方法 |
US8752057B1 (en) * | 2008-06-30 | 2014-06-10 | Emc Corporation | Techniques for synchronizing processing of at least two code threads |
US8473964B2 (en) | 2008-09-30 | 2013-06-25 | Microsoft Corporation | Transparent user mode scheduling on traditional threading systems |
US8321874B2 (en) * | 2008-09-30 | 2012-11-27 | Microsoft Corporation | Intelligent context migration for user mode scheduling |
DE102012104461A1 (de) | 2012-05-23 | 2013-12-12 | B. Braun Avitum Ag | Medizinisches Gerät zur extrakorporalen Blutbehandlung mit mehreren Sensoreinheiten |
US8930956B2 (en) * | 2012-08-08 | 2015-01-06 | International Business Machines Corporation | Utilizing a kernel administration hardware thread of a multi-threaded, multi-core compute node of a parallel computer |
US20150074436A1 (en) * | 2013-09-10 | 2015-03-12 | Nvidia Corporation | In-Kernel CPU Clock Boosting on Input Event |
US9411642B2 (en) | 2014-01-17 | 2016-08-09 | Nvidia Corporation | Using high priority thread to boost CPU clock rate |
US9594660B2 (en) * | 2014-03-27 | 2017-03-14 | International Business Machines Corporation | Multithreading computer system and program product for executing a query instruction for idle time accumulation among cores |
US9792232B2 (en) | 2015-11-16 | 2017-10-17 | International Business Machines Corporation | Techniques for queueing interrupts in a data processing system |
US10503576B2 (en) | 2016-02-19 | 2019-12-10 | International Business Machines Corporation | Maintaining core dump privacy during application fault handling |
US10331500B2 (en) | 2017-04-05 | 2019-06-25 | Cavium, Llc | Managing fairness for lock and unlock operations using operation prioritization |
US10248420B2 (en) | 2017-04-05 | 2019-04-02 | Cavium, Llc | Managing lock and unlock operations using active spinning |
US10895954B2 (en) * | 2017-06-02 | 2021-01-19 | Apple Inc. | Providing a graphical canvas for handwritten input |
CN115934372A (zh) * | 2023-03-09 | 2023-04-07 | 浪潮电子信息产业股份有限公司 | 一种数据处理方法、系统、设备及计算机可读存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5515538A (en) * | 1992-05-29 | 1996-05-07 | Sun Microsystems, Inc. | Apparatus and method for interrupt handling in a multi-threaded operating system kernel |
US5692193A (en) * | 1994-03-31 | 1997-11-25 | Nec Research Institute, Inc. | Software architecture for control of highly parallel computer systems |
US6732138B1 (en) * | 1995-07-26 | 2004-05-04 | International Business Machines Corporation | Method and system for accessing system resources of a data processing system utilizing a kernel-only thread within a user process |
US5812852A (en) * | 1996-11-14 | 1998-09-22 | Kuck & Associates, Inc. | Software implemented method for thread-privatizing user-specified global storage objects in parallel computer programs via program transformation |
US5950221A (en) * | 1997-02-06 | 1999-09-07 | Microsoft Corporation | Variably-sized kernel memory stacks |
US5872963A (en) * | 1997-02-18 | 1999-02-16 | Silicon Graphics, Inc. | Resumption of preempted non-privileged threads with no kernel intervention |
US5907702A (en) * | 1997-03-28 | 1999-05-25 | International Business Machines Corporation | Method and apparatus for decreasing thread switch latency in a multithread processor |
KR100280460B1 (ko) * | 1998-04-08 | 2001-02-01 | 김영환 | 데이터 처리 장치 및 이의 복수의 스레드 처리 방법 |
US6654781B1 (en) * | 1998-12-11 | 2003-11-25 | International Business Machines Corporation | Enhanced thread processing |
US6542920B1 (en) * | 1999-09-24 | 2003-04-01 | Sun Microsystems, Inc. | Mechanism for implementing multiple thread pools in a computer system to optimize system performance |
US6631462B1 (en) * | 2000-01-05 | 2003-10-07 | Intel Corporation | Memory shared between processing threads |
US6832266B1 (en) * | 2000-02-07 | 2004-12-14 | Sun Microsystems, Inc. | Simplified microkernel application programming interface |
US6931641B1 (en) * | 2000-04-04 | 2005-08-16 | International Business Machines Corporation | Controller for multiple instruction thread processors |
US6728722B1 (en) * | 2000-08-28 | 2004-04-27 | Sun Microsystems, Inc. | General data structure for describing logical data spaces |
-
2002
- 2002-09-19 US US10/246,889 patent/US7275247B2/en not_active Expired - Fee Related
-
2003
- 2003-06-26 TW TW092117489A patent/TWI235953B/zh not_active IP Right Cessation
- 2003-08-11 AU AU2003249094A patent/AU2003249094A1/en not_active Abandoned
- 2003-08-11 KR KR1020057002791A patent/KR100745888B1/ko not_active IP Right Cessation
- 2003-08-11 BR BRPI0314853A patent/BRPI0314853B1/pt active IP Right Grant
- 2003-08-11 CN CNB038221942A patent/CN100356328C/zh not_active Expired - Fee Related
- 2003-08-11 JP JP2004537251A patent/JP4418752B2/ja not_active Expired - Fee Related
- 2003-08-11 WO PCT/GB2003/003497 patent/WO2004027599A2/en active Application Filing
- 2003-08-11 CA CA2498050A patent/CA2498050C/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CA2498050A1 (en) | 2004-04-01 |
US7275247B2 (en) | 2007-09-25 |
JP2005539322A (ja) | 2005-12-22 |
BRPI0314853B1 (pt) | 2016-03-22 |
AU2003249094A8 (en) | 2004-04-08 |
AU2003249094A1 (en) | 2004-04-08 |
KR100745888B1 (ko) | 2007-08-02 |
TWI235953B (en) | 2005-07-11 |
CN1735865A (zh) | 2006-02-15 |
US20040060049A1 (en) | 2004-03-25 |
WO2004027599A2 (en) | 2004-04-01 |
CN100356328C (zh) | 2007-12-19 |
BR0314853A (pt) | 2005-08-09 |
KR20050058362A (ko) | 2005-06-16 |
CA2498050C (en) | 2010-07-27 |
TW200409020A (en) | 2004-06-01 |
WO2004027599A3 (en) | 2005-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4418752B2 (ja) | データ処理システムにおいてスレッドを管理する方法と装置 | |
US7734881B2 (en) | Adapting RCU for real-time operating system usage | |
US9342350B2 (en) | System for selecting a task to be executed according to an output from a task control circuit | |
US7337444B2 (en) | Method and apparatus for thread-safe handlers for checkpoints and restarts | |
US9892481B2 (en) | CPU/GPU synchronization mechanism | |
US20090037927A1 (en) | Apparatus and method for direct switching of software threads | |
EP0727728A1 (en) | Computer system power management | |
JP5244160B2 (ja) | 複数の命令シーケンサでのスレッド実行に基づく命令セットのためのメカニズム | |
US8793697B2 (en) | Method and system for scheduling requests in a portable computing device | |
JPWO2009022371A1 (ja) | タスク処理装置 | |
JP4127848B2 (ja) | タスク処理装置 | |
JP2008108075A (ja) | タスク切替え制御方法及びコンピュータシステム | |
CN102754080B (zh) | 多核处理器系统、中断程序、以及中断方法 | |
US20080307419A1 (en) | Lazy kernel thread binding | |
US20080313652A1 (en) | Notifying user mode scheduler of blocking events | |
WO2007094460A1 (ja) | 並列処理装置及び排他制御方法 | |
JP2008269597A (ja) | タスク処理装置 | |
JP2022107229A (ja) | 情報処理装置、制御方法及び制御プログラム | |
CN115599540A (zh) | 一种多线程调用系统及方法 | |
JP2006228074A (ja) | マルチタスクシステムおよびマルチタスク制御方法 | |
JPH06259383A (ja) | 割込み制御方法及び割込み制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060711 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20090206 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090415 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20090415 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090415 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090512 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20090430 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090707 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090901 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091026 |
|
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: 20091124 |
|
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: 20091130 |
|
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: 20121204 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121204 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131204 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |