JP5859472B2 - プロセスの待ち行列を共有する複数のプロセッサを有する計算機、及び、プロセスディスパッチ処理方法 - Google Patents
プロセスの待ち行列を共有する複数のプロセッサを有する計算機、及び、プロセスディスパッチ処理方法 Download PDFInfo
- Publication number
- JP5859472B2 JP5859472B2 JP2013064808A JP2013064808A JP5859472B2 JP 5859472 B2 JP5859472 B2 JP 5859472B2 JP 2013064808 A JP2013064808 A JP 2013064808A JP 2013064808 A JP2013064808 A JP 2013064808A JP 5859472 B2 JP5859472 B2 JP 5859472B2
- Authority
- JP
- Japan
- Prior art keywords
- dispatch
- stack
- dispatcher
- context
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/524—Deadlock detection or avoidance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Retry When Errors Occur (AREA)
Description
Claims (8)
- プロセスの待ち行列である実行キューを共有する複数のプロセッサと、
プロセスのスタックが設定されるメモリと
を有し、
前記メモリに、前記複数のプロセッサにそれぞれ対応した複数のディスパッチャ用スタックが設定され、
前記複数のプロセッサの各々は、実行中のプロセスを切り替える処理であって、ディスパッチ入口処理、ディスパッチ本体処理及びディスパッチ出口処理で構成された処理であるプロセスディスパッチ処理を実行し、
前記ディスパッチ入口処理は、
(A)前記実行中のプロセスである切替え元プロセスのコンテキストを前記切替え元プロセスの保持しているスタックに保存する処理と、
(B)自プロセッサのディスパッチャ用スタックを獲得し、前記切替え元プロセスのスタックを解放し、前記獲得したディスパッチャ用スタックにディスパッチャ用コンテキストを保存する処理と
を含み、
前記ディスパッチ本体処理は、
(C)前記切替え元プロセスを前記実行キューに挿入する処理と、
(D)切替え先プロセスを前記実行キューから取り出す処理と
を含み、
前記ディスパッチ出口処理は、
(E)前記切替え先プロセスのスタックを獲得し、保持している前記ディスパッチャ用スタックを解放し、前記切替え先プロセスの前記獲得したスタックから前記切替え先プロセスのコンテキストを復元する処理、
を含む、
計算機。 - 前記ディスパッチ入口処理は、
前記(A)の処理の前に、前記ディスパッチ入口処理の呼び出し元アドレスを、前記切替え元のスタックに保存する処理と、
前記(B)の処理の後に、前記ディスパッチ本体処理を呼び出す処理と
を含み、
前記ディスパッチ本体処理は、
前記(D)の処理の後に、前記ディスパッチ出口処理を呼び出す処理
を含み、
前記ディスパッチ出口処理は、
前記(E)の処理の後に、前記切替え先プロセスの前記獲得したスタックに保存されているディスパッチ入口処理呼び出し元アドレスが示す呼び出し元へ復帰する処理
を含む、
請求項1記載の計算機。 - 前記ディスパッチャ用コンテキストは、前記ディスパッチ本体処理及び前記ディスパッチ出口処理の呼び出しのための情報である呼び出し用情報を含み、
前記呼び出し用情報は、前記ディスパッチ本体処理及び前記ディスパッチ出口処理のそれぞれのアドレスと、前記ディスパッチ本体処理及び前記ディスパッチ出口処理のそれぞれを呼び出す際の引数とを含む、
請求項1又は2記載の計算機。 - 前記複数のプロセッサの各々は、スタック内で最も後に参照された位置を示す情報であるスタックポインタを有しており、前記(A)の処理から前記(B)の処理に遷移する場合には、前記自プロセッサのスタックポインタを、前記ディスパッチャ用スタックの所定位置を指す情報に更新する、
請求項1乃至3のうちのいずれか1項に記載の計算機。 - プロセスの待ち行列であり複数のプロセッサにより共有される実行キューを使用してプロセッサの実行中のプロセスをそのプロセッサである対象プロセッサにより切り替えるプロセスディスパッチ処理の方法であって、
前記対象プロセッサは、ディスパッチ入口処理、ディスパッチ本体処理及びディスパッチ出口処理で構成されたプロセスディスパッチ処理のうち、
(A)前記実行中のプロセスである切替え元プロセスのコンテキストを、前記対象プロセッサが保持しているスタックに保存する処理と、
(B)前記対象プロセッサのディスパッチャ用スタックを獲得し、前記切替え元プロセスのスタックを前記対象プロセッサから解放し、前記獲得したディスパッチャ用スタックに前記対象プロセッサについてのディスパッチャ用コンテキストを保存する処理と
を含んだ前記ディスパッチ入口処理を実行し、
前記対象プロセッサは、前記プロセスディスパッチ処理のうち、
(C)前記切替え元プロセスを前記実行キューに挿入する処理と、
(D)切替え先プロセスを前記実行キューから取り出す処理と
を含んだ前記ディスパッチ本体処理を実行し、
前記対象プロセッサは、前記プロセスディスパッチ処理のうち、
(E)前記切替え先プロセスのスタックを前記対象プロセッサについて獲得し、保持している前記ディスパッチャ用スタックを前記対象プロセッサから解放し、前記切替え先プロセスの前記獲得したスタックから前記切替え先プロセスのコンテキストを前記対象プロセッサに復元する処理
を含んだ前記ディスパッチ出口処理を実行する、
プロセスディスパッチ処理方法。 - 前記ディスパッチ入口処理は、
前記(A)の処理の前に、前記ディスパッチ入口処理の呼び出し元アドレスを、前記切替え元のスタックに保存する処理と、
前記(B)の処理の後に、前記ディスパッチ本体処理を呼び出す処理と
を含み、
前記ディスパッチ本体処理は、
前記(D)の処理の後に、前記ディスパッチ出口処理を呼び出す処理
を含み、
前記ディスパッチ出口処理は、
前記(E)の処理の後に、前記切替え先プロセスの前記獲得したスタックに保存されているディスパッチ入口処理呼び出し元アドレスが示す呼び出し元へ復帰する処理
を含む、
請求項5記載のプロセスディスパッチ処理方法。 - 前記ディスパッチャ用コンテキストは、前記ディスパッチ本体処理及び前記ディスパッチ出口処理の呼び出しのための情報である呼び出し用情報を含み、
前記呼び出し用情報は、前記ディスパッチ本体処理及び前記ディスパッチ出口処理のそれぞれのアドレスと、前記ディスパッチ本体処理及び前記ディスパッチ出口処理のそれぞれを呼び出す際の引数とを含む、
請求項5又は6記載のプロセスディスパッチ処理方法。 - 前記(A)の処理から前記(B)の処理に遷移する場合には、前記対象プロセッサは、前記対象プロセッサのスタック内で最も後に参照された位置を示す情報であるスタックポインタを、前記ディスパッチャ用スタックの所定位置を指す情報に更新する、
請求項5乃至7のうちのいずれか1項に記載のプロセスディスパッチ処理方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2013064808A JP5859472B2 (ja) | 2013-03-26 | 2013-03-26 | プロセスの待ち行列を共有する複数のプロセッサを有する計算機、及び、プロセスディスパッチ処理方法 |
| US14/170,861 US9619277B2 (en) | 2013-03-26 | 2014-02-03 | Computer with plurality of processors sharing process queue, and process dispatch processing method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2013064808A JP5859472B2 (ja) | 2013-03-26 | 2013-03-26 | プロセスの待ち行列を共有する複数のプロセッサを有する計算機、及び、プロセスディスパッチ処理方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2014191468A JP2014191468A (ja) | 2014-10-06 |
| JP5859472B2 true JP5859472B2 (ja) | 2016-02-10 |
Family
ID=51622181
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2013064808A Expired - Fee Related JP5859472B2 (ja) | 2013-03-26 | 2013-03-26 | プロセスの待ち行列を共有する複数のプロセッサを有する計算機、及び、プロセスディスパッチ処理方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US9619277B2 (ja) |
| JP (1) | JP5859472B2 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10140157B2 (en) * | 2014-05-29 | 2018-11-27 | Apple Inc. | Multiple process scheduling of threads using process queues |
| US11343290B2 (en) | 2020-02-27 | 2022-05-24 | V Group Inc. | Methods and systems for facilitating context-to-call communications between communication points in multiple communication modes |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4318182A (en) * | 1974-04-19 | 1982-03-02 | Honeywell Information Systems Inc. | Deadlock detection and prevention mechanism for a computer system |
| US4394727A (en) * | 1981-05-04 | 1983-07-19 | International Business Machines Corporation | Multi-processor task dispatching apparatus |
| JPH0540742A (ja) * | 1991-08-07 | 1993-02-19 | Hitachi Ltd | 並列処理方法 |
| US5485626A (en) * | 1992-11-03 | 1996-01-16 | International Business Machines Corporation | Architectural enhancements for parallel computer systems utilizing encapsulation of queuing allowing small grain processing |
| US5884077A (en) * | 1994-08-31 | 1999-03-16 | Canon Kabushiki Kaisha | Information processing system and method in which computer with high load borrows processor of computer with low load to execute process |
| US5481719A (en) * | 1994-09-09 | 1996-01-02 | International Business Machines Corporation | Exception handling method and apparatus for a microkernel data processing system |
| US6728959B1 (en) | 1995-08-08 | 2004-04-27 | Novell, Inc. | Method and apparatus for strong affinity multiprocessor scheduling |
| US5826081A (en) * | 1996-05-06 | 1998-10-20 | Sun Microsystems, Inc. | Real time thread dispatcher for multiprocessor applications |
| US6289369B1 (en) * | 1998-08-25 | 2001-09-11 | International Business Machines Corporation | Affinity, locality, and load balancing in scheduling user program-level threads for execution by a computer system |
| JP3557947B2 (ja) * | 1999-05-24 | 2004-08-25 | 日本電気株式会社 | 複数のプロセッサで同時にスレッドの実行を開始させる方法及びその装置並びにコンピュータ可読記録媒体 |
| US6418540B1 (en) * | 1999-08-27 | 2002-07-09 | Lucent Technologies Inc. | State transfer with throw-away thread |
| US7373646B1 (en) * | 2003-04-04 | 2008-05-13 | Nortel Network Limited | Method and apparatus for sharing stack space between multiple processes in a network device |
| US20040244003A1 (en) * | 2003-05-30 | 2004-12-02 | Vidiator Enterprises Inc. | Apparatus and method for task scheduling for media processing |
| US7203822B2 (en) * | 2004-07-31 | 2007-04-10 | Hewlett-Packard Development Company, L.P. | Unprivileged context management |
| WO2006069484A1 (en) * | 2004-12-30 | 2006-07-06 | Intel Corporation | Methods and apparatuses to maintain multiple execution contexts |
| US7945911B1 (en) * | 2005-06-03 | 2011-05-17 | Oracle America, Inc. | Barrier synchronization method and apparatus for work-stealing threads |
| US20070101326A1 (en) * | 2005-10-27 | 2007-05-03 | Hewlett-Packard Development Company, L.P. | Dynamic change of thread contention scope assignment |
| US20070136403A1 (en) * | 2005-12-12 | 2007-06-14 | Atsushi Kasuya | System and method for thread creation and memory management in an object-oriented programming environment |
| US8010966B2 (en) * | 2006-09-27 | 2011-08-30 | Cisco Technology, Inc. | Multi-threaded processing using path locks |
| JP2008102847A (ja) * | 2006-10-20 | 2008-05-01 | Nec Corp | マルチスレッドプログラム処理方法及び装置 |
| JP2013190893A (ja) * | 2012-03-13 | 2013-09-26 | Rohm Co Ltd | マルチタスク処理装置 |
-
2013
- 2013-03-26 JP JP2013064808A patent/JP5859472B2/ja not_active Expired - Fee Related
-
2014
- 2014-02-03 US US14/170,861 patent/US9619277B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US20140298352A1 (en) | 2014-10-02 |
| JP2014191468A (ja) | 2014-10-06 |
| US9619277B2 (en) | 2017-04-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3425502B1 (en) | Task scheduling method and device | |
| JP4882005B2 (ja) | 仮想環境における最適化した割り込み送信 | |
| US9798595B2 (en) | Transparent user mode scheduling on traditional threading systems | |
| US20150095919A1 (en) | Methods and system for swapping memory in a virtual machine environment | |
| CN108064377B (zh) | 一种多系统共享内存的管理方法及装置 | |
| US8321874B2 (en) | Intelligent context migration for user mode scheduling | |
| US10459773B2 (en) | PLD management method and PLD management system | |
| JP2561801B2 (ja) | プロセス・スケジューリングの管理方法およびシステム | |
| JP2013506179A (ja) | 命令スレッドを組み合わせた実行の管理システムおよび管理方法 | |
| US20120284720A1 (en) | Hardware assisted scheduling in computer system | |
| CN103473135A (zh) | 虚拟化环境下自旋锁lhp现象的处理方法 | |
| CN110447012A (zh) | 协作虚拟处理器调度 | |
| JP5030647B2 (ja) | 複数処理ノードを含むコンピュータ・システムでプログラムをロードする方法、該プログラムを含むコンピュータ可読媒体、及び、並列コンピュータ・システム | |
| JP5859472B2 (ja) | プロセスの待ち行列を共有する複数のプロセッサを有する計算機、及び、プロセスディスパッチ処理方法 | |
| JPH06243112A (ja) | マルチプロセッサ装置 | |
| JP7196439B2 (ja) | 仮想化環境におけるデバイスへのアクセス方法 | |
| EP1820100B1 (en) | Efficient switching between prioritized tasks | |
| KR20070090649A (ko) | 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법 | |
| CN108958903B (zh) | 嵌入式多核中央处理器任务调度方法与装置 | |
| JP5678347B2 (ja) | Itシステムの構成方法、そのコンピュータプログラムおよびitシステム | |
| JP6358330B2 (ja) | 情報処理装置、情報処理システム、メモリ管理方法およびメモリ管理プログラム | |
| JP4026667B2 (ja) | マルチos構成方法 | |
| EP1693743A2 (en) | System, method and medium for using and/or providing operating system information to acquire a hybrid user/operating system lock | |
| JP2001236237A (ja) | マルチos構成方法 | |
| JP2021060707A (ja) | 同期制御システムおよび同期制御方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150424 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151014 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151020 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151116 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151201 |
|
| 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: 20151215 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151216 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5859472 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |