JP2005539322A - データ処理システムにおいてスレッドを管理する方法と装置 - Google Patents
データ処理システムにおいてスレッドを管理する方法と装置 Download PDFInfo
- Publication number
- JP2005539322A JP2005539322A JP2004537251A JP2004537251A JP2005539322A JP 2005539322 A JP2005539322 A JP 2005539322A JP 2004537251 A JP2004537251 A JP 2004537251A JP 2004537251 A JP2004537251 A JP 2004537251A JP 2005539322 A JP2005539322 A JP 2005539322A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- kernel
- user
- semi
- kernel thread
- 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
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)
Abstract
【解決手段】 まず、ユーザ・スレッドに関連付けられたカーネル・スレッドが前記ユーザ・スレッドによって不必要にされていることを検出する。次いで、前記カーネル・スレッドが不必要にされていることに応答して、前記カーネル・スレッドに対して半切り離しを行う。その際、前記スレッド用のデータはスタックを変更しない。
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 (11)
- データ処理システムにおいてスレッドを管理する方法であって、
ユーザ・スレッドに関連付けられたカーネル・スレッドが前記ユーザ・スレッドによって不必要にされていることを検出するステップと、
前記カーネル・スレッドが不必要にされていることに応答して、前記カーネル・スレッドに対して半切り離しを行うステップであって、前記スレッド用のデータはスタックを変更しない、ステップと
を備えた
方法。 - さらに、
前記カーネル・スレッドを半切り離し済みリストに配置するステップと、 前記カーネル・スレッドを前記ユーザ・スレッドと並行的に非実行可能状態に置くステップと
を備えた、
請求項1に記載の方法。 - さらに、
前記ユーザ・スレッドが休眠からウェイクするのに応答して、前記カーネル・スレッドを前記半切り離し済みリストから除去するステップであって、前記ユーザ・スレッドへの再取り付けは不要である、ステップ
を備えた、
請求項2に記載の方法。 - さらに、
前記ユーザ・スレッドが休眠状態からウェイクするのに応答して、第2のカーネル・スレッドに対して半切り離しではなく切り離しを行うか否かを判断するステップと、
前記第2のカーネル・スレッドが切り離されるのに応答して、前記ユーザ・スレッドに前記第2のカーネル・スレッドを取り付けるステップと
を備えた、
請求項2に記載の方法。 - 前記非実行可能状態が待機状態および休眠状態のうちの一方である、
請求項2に記載の方法。 - スレッドを管理するデータ処理システムであって、
ユーザ・スレッドに関連付けられたカーネル・スレッドが前記ユーザ・スレッドによって不必要にされていることを検出する検出手段と、
前記カーネル・スレッドが不必要にされていることに応答して、前記カーネル・スレッドに対して半切り離しを行う半切り離し手段であって、前記スレッド用のデータはスタックを変更しない、半切り離し手段と
を備えた
データ処理システム。 - さらに、
前記カーネル・スレッドを半切り離し済みリストに配置する第1の配置手段と、
前記カーネル・スレッドを前記ユーザ・スレッドと並行的に非実行可能状態に置く第2の配置手段と
を備えた、
請求項6に記載の方法。 - さらに、
前記ユーザ・スレッドが休眠からウェイクするのに応答して、前記カーネル・スレッドを前記半切り離し済みリストから除去する除去手段であって、前記ユーザ・スレッドへの再取り付けは不要である、除去手段
を備えた、
請求項7に記載の方法。 - さらに、
前記ユーザ・スレッドが休眠状態からウェイクするのに応答して、第2のカーネル・スレッドに対して半切り離しではなく切り離しを行うか否かを判断する判断手段と、
前記第2のカーネル・スレッドが切り離されるのに応答して、前記ユーザ・スレッドに前記第2のカーネル・スレッドを取り付ける取り付け手段と
を備えた、
請求項7に記載の方法。 - 前記非実行可能状態が待機状態および休眠状態のうちの一方である、
請求項7に記載の方法。 - スレッドを管理する、コンピュータ読み取り可能な媒体中のコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は請求項1〜6のうちの1項に記載の方法を実行する命令群を備えている、
コンピュータ・プログラム製品。
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 true JP2005539322A (ja) | 2005-12-22 |
JP2005539322A5 JP2005539322A5 (ja) | 2009-06-04 |
JP4418752B2 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 |
US9852091B2 (en) | 2015-11-16 | 2017-12-26 | International Business Machines Corporation | Techniques for handling interrupts in a processing unit using virtual processor thread groups and software stack levels |
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 CA CA2498050A patent/CA2498050C/en not_active Expired - Lifetime
- 2003-08-11 JP JP2004537251A patent/JP4418752B2/ja not_active Expired - Fee Related
- 2003-08-11 BR BRPI0314853A patent/BRPI0314853B1/pt active IP Right Grant
- 2003-08-11 KR KR1020057002791A patent/KR100745888B1/ko not_active IP Right Cessation
- 2003-08-11 CN CNB038221942A patent/CN100356328C/zh not_active Expired - Fee Related
- 2003-08-11 AU AU2003249094A patent/AU2003249094A1/en not_active Abandoned
- 2003-08-11 WO PCT/GB2003/003497 patent/WO2004027599A2/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
BR0314853A (pt) | 2005-08-09 |
KR100745888B1 (ko) | 2007-08-02 |
TWI235953B (en) | 2005-07-11 |
US20040060049A1 (en) | 2004-03-25 |
AU2003249094A8 (en) | 2004-04-08 |
US7275247B2 (en) | 2007-09-25 |
BRPI0314853B1 (pt) | 2016-03-22 |
KR20050058362A (ko) | 2005-06-16 |
CA2498050A1 (en) | 2004-04-01 |
TW200409020A (en) | 2004-06-01 |
WO2004027599A3 (en) | 2005-04-21 |
AU2003249094A1 (en) | 2004-04-08 |
CN1735865A (zh) | 2006-02-15 |
JP4418752B2 (ja) | 2010-02-24 |
CA2498050C (en) | 2010-07-27 |
WO2004027599A2 (en) | 2004-04-01 |
CN100356328C (zh) | 2007-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4418752B2 (ja) | データ処理システムにおいてスレッドを管理する方法と装置 | |
US5692204A (en) | Method and apparatus for computer system power management | |
US7734881B2 (en) | Adapting RCU for real-time operating system usage | |
JP4119945B2 (ja) | タスク処理装置 | |
US9892481B2 (en) | CPU/GPU synchronization mechanism | |
US20090037927A1 (en) | Apparatus and method for direct switching of software threads | |
US8793697B2 (en) | Method and system for scheduling requests in a portable computing device | |
JP5260962B2 (ja) | 複数の命令シーケンサでのスレッド実行に基づく命令セットのためのメカニズム | |
JP4127848B2 (ja) | タスク処理装置 | |
JPWO2009022371A1 (ja) | タスク処理装置 | |
US20030005251A1 (en) | Managing latencies in accessing memory of computer systems | |
JP2008108075A (ja) | タスク切替え制御方法及びコンピュータシステム | |
US20080313652A1 (en) | Notifying user mode scheduler of blocking events | |
US20080307419A1 (en) | Lazy kernel thread binding | |
WO2007094460A1 (ja) | 並列処理装置及び排他制御方法 | |
WO2023206693A1 (zh) | 系统休眠方法及装置、系统唤醒方法及装置 | |
JP2008269597A (ja) | タスク処理装置 | |
JP2022107229A (ja) | 情報処理装置、制御方法及び制御プログラム | |
CN115599540A (zh) | 一种多线程调用系统及方法 | |
Hong et al. | New Scheme of Implementing Real-Time Linux | |
JPH06259383A (ja) | 割込み制御方法及び割込み制御装置 | |
JPH02120938A (ja) | データ処理方法 | |
JPS6393065A (ja) | コ・プロセツサid変換方式 |
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 | Written amendment |
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 | Written amendment |
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 | Written amendment |
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 | Written amendment |
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 |