JP2022079764A - 同期制御システムおよび同期制御方法 - Google Patents
同期制御システムおよび同期制御方法 Download PDFInfo
- Publication number
- JP2022079764A JP2022079764A JP2022062393A JP2022062393A JP2022079764A JP 2022079764 A JP2022079764 A JP 2022079764A JP 2022062393 A JP2022062393 A JP 2022062393A JP 2022062393 A JP2022062393 A JP 2022062393A JP 2022079764 A JP2022079764 A JP 2022079764A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- lock object
- threads
- microkernel
- processor cores
- 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 48
- 230000001360 synchronised effect Effects 0.000 title claims abstract description 20
- 230000008569 process Effects 0.000 description 32
- 230000005540 biological transmission Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000007430 reference method Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000007616 round robin method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Multi Processors (AREA)
Abstract
Description
本実施形態に係るコンピュータシステムは、図1に示すようなコンピュータを備えている。このコンピュータは、CPU10と、主記憶装置14と、補助記憶装置(図示せず)と、を備えている。
]の要素に当該プロセッサコア11において次に起床されるべきスレッド30に係るスレッド情報を格納すればよい。
待ち要求処理は、イベントの終了待ちを行うスレッド30からの要求を受けて、当該スレッド30を制御するマイクロカーネル21(当該スレッド30が実行されているプロセッサコア11に割り当てられたマイクロカーネル21)によって実行される処理である。この待ち要求処理について、図3に示すフローを参照しながら説明する。
待ち解除要求送信処理は、同期に係るイベントを終了したスレッド30からの要求を受けて、当該スレッド30を制御するマイクロカーネル21(当該スレッド30が実行されているプロセッサコア11に割り当てられたマイクロカーネル21)によって実行される処理である。すなわち、ロックオブジェクト35を解放して、次のスレッド30に実行権を明け渡すべく実行される処理である。この待ち解除要求送信処理について、図4に示すフローを参照しながら説明する。
待ち解除要求受信処理は、上記した待ち解除のメッセージを受信したマイクロカーネル21(起床するスレッド30が実行されているプロセッサコア11に割り当てられたマイクロカーネル21)によって実行される処理である。この待ち解除要求受信処理について、図5に示すフローを参照しながら説明する。
まず、図5に示すステップS300において、マイクロカーネル21が、上記した待ち解除のメッセージを受信する。そして、ステップS305に進む。
ステップS320では、起床するスレッド30のステータスを「実行可能状態」に移行する。そして、ステップS325に進む。
ステップS325では、起床するスレッド30をディスパッチし、「実行状態」に移行させる。以上で、処理が終了する。
次に、上記した待ち要求処理において、スレッド30およびマイクロカーネル21間でどのようなやり取りが発生するのかを、図6に示すシーケンス図を用いて説明する。この図6では、スレッドAが、何らかのイベント待ちとなる様子を示している。例えば、スレッドAが、ミューテックスの獲得に失敗して待ち状態となる場合などである。
次に、上記した待ち解除要求送信処理および待ち解除要求受信処理において、スレッド30およびマイクロカーネル21間でどのようなやり取りが発生するのかを、図7に示すシーケンス図を用いて説明する。この図7では、ロックオブジェクト35に係る実行権が、第2プロセッサコア11bで実行中のスレッドBから、第1プロセッサコア11aで実行中のスレッドAへと受け渡される様子を示している。例えば、スレッドBがミューテックスを解放したことにより、スレッドAがミューテックスを獲得する場合などである。
本実施形態は上記の通りであり、割り当てられたプロセッサコア11にかかわらずすべてのスレッド30がアクセス可能な共有資源のロックオブジェクト35を備え、このロックオブジェクト35は、複数のプロセッサコア11ごとに、次に起床されるべきスレッド30のスレッド識別子を格納可能である。そして、ロックオブジェクト35により待ち状態となったスレッド30の待ち状態の解除を行うときには、当該ロックオブジェクト35を検索して次に起床する待ち状態のスレッド30のスレッド識別子を取得し、当該スレッド識別子を使用したメッセージングによりスレッド30を実行可能状態に移行させるようにしている。このため、最低限のメッセージング回数でスレッド30間の同期を制御することができる。
11 プロセッサコア
11a 第1プロセッサコア
11b 第2プロセッサコア
14 主記憶装置
15 共有メモリ
20 オペレーティングシステム
21 マイクロカーネル
21a 第1マイクロカーネル
21b 第2マイクロカーネル
30 スレッド
31 第1グループ
32 第2グループ
35 ロックオブジェクト
Claims (12)
- 複数のプロセッサコアを搭載したコンピュータ上で実行され、前記複数のプロセッサコアごとにスレッドのスケジューリングを行うマイクロカーネルを配置した同期制御システムであって、
異なるプロセッサコアまたは同一のプロセッサコアに割り当てられたスレッド間での同期処理を実行するための共有資源であり、割り当てられた前記プロセッサコアにかかわらずすべてのスレッドがアクセス可能なロックオブジェクトを備え、
前記ロックオブジェクトは、前記複数のプロセッサコアごとに1つずつの、次に起床されるべきスレッドのスレッド情報を格納可能であり、
任意のスレッドが前記ロックオブジェクトを解放するときに、当該ロックオブジェクトに格納されたスレッド情報から所定の待ち解除ポリシーに従って起床するスレッドを決定した後に、前記任意のスレッドを管理するマイクロカーネルから前記起床するスレッドを管理するマイクロカーネルへ待ち解除のメッセージを直接送信する、同期制御システム。 - 前記ロックオブジェクトは、前記複数のプロセッサコア数分の配列であるスレッド情報格納配列を含み、
前記スレッド情報格納配列に、前記スレッド情報を格納する、請求項1記載の同期制御システム。 - 前記スレッド情報格納配列の各要素のサイズは、CPUが不可分操作可能な最大ビット数を超えないように設定されている、請求項2記載の同期制御システム。
- スレッドを制御するためにスレッドごとに生成されるスレッド制御ブロックを備え、
前記ロックオブジェクトにより待ち状態となったスレッドに係る前記スレッド制御ブロックには、同じロックオブジェクトにより待ち状態となったスレッド群を管理するための待ち管理キューが登録される、請求項1~3のいずれか1項に記載の同期制御システム。 - 前記メッセージは、オペレーティングが備えるメッセージング機能を使用して送信される、請求項1~4のいずれか1項に記載の同期制御システム。
- 前記ロックオブジェクトは、同期を必要とするイベントごとに動的に生成可能である、請求項1~5のいずれか1項に記載の同期制御システム。
- 複数のプロセッサコアを搭載したコンピュータ上で、前記複数のプロセッサコアごとにスレッドのスケジューリングを行うマイクロカーネルを配置して実行される同期制御方法であって、
異なるプロセッサコアまたは同一のプロセッサコアに割り当てられたスレッド間での同期処理を実行するための共有資源であり、割り当てられた前記プロセッサコアにかかわらずすべてのスレッドがアクセス可能なロックオブジェクトを生成するステップと、
前記ロックオブジェクトによりスレッドが待ち状態となったときに、前記ロックオブジェクトに当該スレッドのスレッド情報を登録するステップと、
任意のスレッドが前記ロックオブジェクトを解放するときに、当該ロックオブジェクトに格納されたスレッド情報から所定の待ち解除ポリシーに従って起床するスレッドを決定した後に、前記任意のスレッドを管理するマイクロカーネルから前記起床するスレッドを管理するマイクロカーネルへ待ち解除のメッセージを直接送信するステップと、
を備え、
前記ロックオブジェクトには、前記複数のプロセッサコアごとに1つずつの、次に起床されるべきスレッドのスレッド情報を格納可能である、同期制御方法。 - 前記ロックオブジェクトは、前記複数のプロセッサコア数分の配列であるスレッド情報格納配列を含み、
前記ロックオブジェクトによりスレッドが待ち状態となったときに、当該スレッドが実行されているプロセッサコアの番号に対応した前記スレッド情報格納配列の要素に当該スレッドのスレッド情報を格納する、請求項7記載の同期制御方法。 - 前記スレッド情報格納配列の各要素のサイズは、CPUのビット数を超えないように設定されている、請求項8記載の同期制御方法。
- スレッドを制御するためにスレッドごとに生成されるスレッド制御ブロックを備え、
前記ロックオブジェクトによりスレッドが待ち状態となったときに、当該スレッドに係る前記スレッド制御ブロックに、同じロックオブジェクトにより待ち状態となったスレッド群を管理するための待ち管理キューが登録される、請求項7~9のいずれか1項に記載の同期制御方法。 - 前記メッセージは、オペレーティングが備えるメッセージング機能を使用して送信される、請求項7~10のいずれか1項に記載の同期制御方法。
- 前記ロックオブジェクトは、同期を必要とするイベントごとに動的に生成可能である、請求項7~11のいずれか1項に記載の同期制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022062393A JP7346649B2 (ja) | 2019-10-04 | 2022-04-04 | 同期制御システムおよび同期制御方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019183481A JP7054688B2 (ja) | 2019-10-04 | 2019-10-04 | 同期制御システムおよび同期制御方法 |
JP2022062393A JP7346649B2 (ja) | 2019-10-04 | 2022-04-04 | 同期制御システムおよび同期制御方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019183481A Division JP7054688B2 (ja) | 2019-10-04 | 2019-10-04 | 同期制御システムおよび同期制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022079764A true JP2022079764A (ja) | 2022-05-26 |
JP7346649B2 JP7346649B2 (ja) | 2023-09-19 |
Family
ID=75380138
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019183481A Active JP7054688B2 (ja) | 2019-10-04 | 2019-10-04 | 同期制御システムおよび同期制御方法 |
JP2022062393A Active JP7346649B2 (ja) | 2019-10-04 | 2022-04-04 | 同期制御システムおよび同期制御方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019183481A Active JP7054688B2 (ja) | 2019-10-04 | 2019-10-04 | 同期制御システムおよび同期制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (2) | JP7054688B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7350807B2 (ja) | 2021-07-01 | 2023-09-26 | イーソル株式会社 | メッセージ送受信方法およびオペレーティングシステム |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07160645A (ja) * | 1993-12-02 | 1995-06-23 | Fujitsu Ltd | マルチプロセッサシステムにおける共通資源排他制御方法 |
JPH1185546A (ja) * | 1997-09-12 | 1999-03-30 | Hitachi Ltd | 異種os上プロセス間通信方法 |
JP2011232956A (ja) * | 2010-04-27 | 2011-11-17 | Clarion Co Ltd | コンピュータシステムとプログラム |
JP2013168103A (ja) * | 2012-02-17 | 2013-08-29 | Nec Computertechno Ltd | 情報処理装置、及び、情報処理方法 |
WO2013175858A1 (ja) * | 2012-05-23 | 2013-11-28 | 日本電気株式会社 | ロック管理システム、ロック管理方法およびロック管理用プログラム |
JP2015164052A (ja) * | 2015-04-15 | 2015-09-10 | イーソル株式会社 | マルチコアプロセッサの制御プログラム、電子機器及び制御方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6094037B2 (ja) | 2012-02-24 | 2017-03-15 | カシオ計算機株式会社 | 撮像装置、撮像方法及び撮像プログラム |
-
2019
- 2019-10-04 JP JP2019183481A patent/JP7054688B2/ja active Active
-
2022
- 2022-04-04 JP JP2022062393A patent/JP7346649B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07160645A (ja) * | 1993-12-02 | 1995-06-23 | Fujitsu Ltd | マルチプロセッサシステムにおける共通資源排他制御方法 |
JPH1185546A (ja) * | 1997-09-12 | 1999-03-30 | Hitachi Ltd | 異種os上プロセス間通信方法 |
JP2011232956A (ja) * | 2010-04-27 | 2011-11-17 | Clarion Co Ltd | コンピュータシステムとプログラム |
JP2013168103A (ja) * | 2012-02-17 | 2013-08-29 | Nec Computertechno Ltd | 情報処理装置、及び、情報処理方法 |
WO2013175858A1 (ja) * | 2012-05-23 | 2013-11-28 | 日本電気株式会社 | ロック管理システム、ロック管理方法およびロック管理用プログラム |
JP2015164052A (ja) * | 2015-04-15 | 2015-09-10 | イーソル株式会社 | マルチコアプロセッサの制御プログラム、電子機器及び制御方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2021060707A (ja) | 2021-04-15 |
JP7346649B2 (ja) | 2023-09-19 |
JP7054688B2 (ja) | 2022-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11550627B2 (en) | Hardware accelerated dynamic work creation on a graphics processing unit | |
US7373640B1 (en) | Technique for dynamically restricting thread concurrency without rewriting thread code | |
US7650602B2 (en) | Parallel processing computer | |
EP2473914B1 (en) | Hardware-based scheduling of graphics processor unit (gpu) work | |
US7962923B2 (en) | System and method for generating a lock-free dual queue | |
US20090271796A1 (en) | Information processing system and task execution control method | |
EP1934737B1 (en) | Cell processor methods and apparatus | |
EP2284703B1 (en) | Scheduling of tasks in a parallel computer system according to defined policies | |
US20170344398A1 (en) | Accelerator control device, accelerator control method, and program storage medium | |
US7765548B2 (en) | System, method and medium for using and/or providing operating system information to acquire a hybrid user/operating system lock | |
US10095627B2 (en) | Method and system for efficient communication and command system for deferred operation | |
US10445096B2 (en) | Managing lock and unlock operations using traffic prioritization | |
JP7346649B2 (ja) | 同期制御システムおよび同期制御方法 | |
US20080134187A1 (en) | Hardware scheduled smp architectures | |
US9201688B2 (en) | Configuration of asynchronous message processing in dataflow networks | |
US11507506B2 (en) | Method and system for efficient communication and command system for deferred operation | |
CN117112169A (zh) | 一种面向异构多核系统的资源管理方法 | |
CN116860465A (zh) | 实现同步锁的方法及相关设备 | |
CN117370042A (zh) | 用于核间远程调用的方法、嵌入式多核系统和存储介质 | |
Khushu et al. | Scheduling and Synchronization in Embedded Real-Time Operating Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220404 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230323 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230411 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230515 |
|
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: 20230829 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230906 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7346649 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |