JP7346649B2 - 同期制御システムおよび同期制御方法 - Google Patents
同期制御システムおよび同期制御方法 Download PDFInfo
- Publication number
- JP7346649B2 JP7346649B2 JP2022062393A JP2022062393A JP7346649B2 JP 7346649 B2 JP7346649 B2 JP 7346649B2 JP 2022062393 A JP2022062393 A JP 2022062393A JP 2022062393 A JP2022062393 A JP 2022062393A JP 7346649 B2 JP7346649 B2 JP 7346649B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- lock object
- microkernel
- threads
- wait
- 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.)
- Active
Links
Images
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 JP2022079764A (ja) | 2022-05-26 |
JP7346649B2 true 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 (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 (3)
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上プロセス間通信方法 |
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 (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
---|---|
JP7054688B2 (ja) | 2022-04-14 |
JP2021060707A (ja) | 2021-04-15 |
JP2022079764A (ja) | 2022-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10241831B2 (en) | Dynamic co-scheduling of hardware contexts for parallel runtime systems on shared machines | |
Bonachea et al. | GASNet Specification, v1. 8.1 | |
US7962923B2 (en) | System and method for generating a lock-free dual queue | |
US6823511B1 (en) | Reader-writer lock for multiprocessor systems | |
US8954986B2 (en) | Systems and methods for data-parallel processing | |
US7373640B1 (en) | Technique for dynamically restricting thread concurrency without rewriting thread code | |
US5867704A (en) | Multiprocessor system shaving processor based idle state detection and method of executing tasks in such a multiprocessor system | |
US7246167B2 (en) | Communication multiplexor using listener process to detect newly active client connections and passes to dispatcher processes for handling the connections | |
JP2866241B2 (ja) | コンピュータシステムおよびスケジューリング方法 | |
US20050240930A1 (en) | Parallel processing computer | |
US20020046230A1 (en) | Method for scheduling thread execution on a limited number of operating system threads | |
JPH03161859A (ja) | リクエスト管理方法及びアクセス制御システム | |
US20050188177A1 (en) | Method and apparatus for real-time multithreading | |
US10331500B2 (en) | Managing fairness for lock and unlock operations using operation prioritization | |
US7765548B2 (en) | System, method and medium for using and/or providing operating system information to acquire a hybrid user/operating system lock | |
US10445096B2 (en) | Managing lock and unlock operations using traffic prioritization | |
JP7346649B2 (ja) | 同期制御システムおよび同期制御方法 | |
US8578380B1 (en) | Program concurrency control using condition variables | |
US20080134187A1 (en) | Hardware scheduled smp architectures | |
CN115408117A (zh) | 协程运行方法、装置、计算机设备和存储介质 | |
Takada et al. | A novel approach to multiprogrammed multiprocessor synchronization for real-time kernels | |
US6701429B1 (en) | System and method of start-up in efficient way for multi-processor systems based on returned identification information read from pre-determined memory location | |
JP7042105B2 (ja) | プログラム実行制御方法および車両制御装置 | |
Fukuoka et al. | An efficient inter-node communication system with lightweight-thread scheduling | |
EP1262870A1 (en) | Use of an atomic swap instruction for a shared queue |
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 |