JP5088754B2 - システム、方法、プログラムおよびコード生成装置 - Google Patents
システム、方法、プログラムおよびコード生成装置 Download PDFInfo
- Publication number
- JP5088754B2 JP5088754B2 JP2009288102A JP2009288102A JP5088754B2 JP 5088754 B2 JP5088754 B2 JP 5088754B2 JP 2009288102 A JP2009288102 A JP 2009288102A JP 2009288102 A JP2009288102 A JP 2009288102A JP 5088754 B2 JP5088754 B2 JP 5088754B2
- Authority
- JP
- Japan
- Prior art keywords
- exclusive
- lock
- task
- critical section
- execution unit
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/526—Mutual exclusion algorithms
- G06F9/528—Mutual exclusion algorithms by using speculative mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Description
12 プログラム格納部
14 コード生成部
16 実行部
22 第1タスク実行部
24 第2タスク実行部
26 ロック状態記憶部
28 排他実行部
30 非排他実行部
42 解析部
44 コンパイル部
1900 コンピュータ
2000 CPU
2010 ROM
2020 RAM
2030 通信インターフェイス
2040 ハードディスクドライブ
2050 フレキシブルディスク・ドライブ
2060 CD−ROMドライブ
2070 入出力チップ
2075 グラフィック・コントローラ
2080 表示装置
2082 ホスト・コントローラ
2084 入出力コントローラ
2090 フレキシブルディスク
2095 CD−ROM
Claims (12)
- タスク間の排他制御を行うシステムであって、
何れかのタスクが排他ロックを取得および解放したことに応じて値が更新される更新情報と、排他ロックを取得しているタスクを識別するタスク識別情報とを記憶するロック状態記憶部と、
排他ロックを取得して第1タスクに含まれるクリティカルセクションの処理を実行させ、前記第1タスクに含まれるクリティカルセクションの処理の後に排他ロックを解放するとともに前記更新情報を更新する排他実行部と、
排他ロックを取得せずに第2タスクに含まれるクリティカルセクションの処理を実行させ、第2タスクに含まれるクリティカルセクションの処理の前後において前記更新情報が変化していないことを条件として当該クリティカルセクションの処理が成功したと判定し、当該クリティカルセクションの処理が成功しない場合は当該クリティカルセクションの処理を繰り返し、当該クリティカルセクションの処理を所定回数以上繰り返しても成功しない場合、又は、当該クリティカルセクションの処理を開始してから所定時間経過しても成功しない場合に、排他ロックを取得して当該クリティカルセクションの処理を実行させる非排他実行部と、
を備えるシステム。 - 前記ロック状態記憶部は、何れかのタスクが排他ロックを取得しているか否かを示すロック情報を更に記憶し、
前記排他実行部は、
排他ロックを取得する場合、前記ロック状態記憶部から前記ロック情報を読出し、全てのタスクが排他ロックを解放していることを条件に、排他ロックを取得していることを示す前記ロック情報を前記ロック状態記憶部に書き込み、
排他ロックを解放する場合に、排他ロックを解放していることを示す前記ロック情報を前記ロック状態記憶部に書き込む
請求項1に記載のシステム。 - 前記ロック状態記憶部は、何れかのタスクが排他ロックを取得している場合に前記タスク識別情報を記憶し、全てのタスクが排他ロックを解放している場合に前記更新情報を記憶する記憶領域を有し、
前記排他実行部は、
排他ロックを取得する場合に、前記ロック状態記憶部から前記更新情報を読み出し、排他ロックを取得していることを示す前記ロック情報を前記ロック状態記憶部に書き込むと共に、前記更新情報に代えて前記第1タスクを識別する前記タスク識別情報を前記ロック状態記憶部に書き込み、
排他ロックを解放する場合に、排他ロックを解放していることを示す前記ロック情報を前記ロック状態記憶部に書き込むと共に、前記第1タスクを識別する前記タスク識別情報に代えて、排他ロックの取得において読み出した前記更新情報を更新した新たな前記更新情報を前記ロック状態記憶部に書き込む
請求項2に記載のシステム。 - 前記ロック状態記憶部は、同一のタスクによる排他ロックの取得の繰返し回数を示す再帰情報を記憶し、
前記排他実行部は、
排他ロックを取得する場合において、前記第1タスクが排他ロックを取得している場合、前記ロック状態記憶部に記憶された前記再帰情報の繰返し回数をインクリメントし、
排他ロックを解放する場合において、前記再帰情報の繰返し回数が0でない場合には、前記ロック状態記憶部に記憶された前記ロック情報および前記タスク識別情報を維持して、前記再帰情報の繰返し回数をデクリメントする
請求項3に記載のシステム。 - 前記ロック状態記憶部は、何れかのタスクが排他ロックを取得している場合に前記タスク識別情報および前記再帰情報を前記記憶領域に記憶し、全てのタスクが排他ロックを解放している場合に前記更新情報を前記記憶領域に記憶する請求項4に記載のシステム。
- 前記非排他実行部は、前記第2タスクに含まれるクリティカルセクションの処理の前後において、前記ロック状態記憶部に排他ロックを解放していることを示す前記ロック情報が記憶され、且つ、前記ロック状態記憶部に記憶された前記更新情報が変化していないことを条件として、クリティカルセクションの処理が成功したと判定する請求項2から5のいずれか1項に記載のシステム。
- 前記第2タスクに含まれるクリティカルセクションの処理は同一の処理を繰り返すループ処理を含み、
前記非排他実行部は、
排他ロックを取得せずに当該クリティカルセクションの処理を実行させる場合において、前記ループ処理の中で、当該クリティカルセクションの処理前から前記更新情報が変化したか確認し、
前記更新情報が変化した場合には前記第2タスクに含まれるクリティカルセクションの処理を失敗したと判定する
請求項1から6のいずれか1項に記載のシステム。 - 前記非排他実行部は、
排他ロックを取得せずに前記第2タスクに含まれるクリティカルセクションの処理を実行させる場合において、当該クリティカルセクションにはデータを読み出す参照先のアドレスを指定するポインタが含まれ、当該クリティカルセクションの処理中においてポインタの参照先へのアクセスに先立って、当該クリティカルセクションの処理前から前記更新情報が変化したか否かを確認し、
前記更新情報が変化した場合には前記第2タスクに含まれるクリティカルセクションの処理を失敗したと判定する
請求項1から7のいずれか1項に記載のシステム。 - 前記非排他実行部は、
前記第2タスクに含まれるクリティカルセクションの処理中においてポインタの参照先を取得してから前記更新情報が変化したか否かを確認し、
前記更新情報が変化していないことを条件として、取得したポインタの参照先をアクセスする
請求項8に記載のシステム。 - タスク間の排他制御を行う方法であって、
何れかのタスクが排他ロックを取得および解放したことに応じて値が更新される更新情報と、排他ロックを取得しているタスクを識別するタスク識別情報とを記憶するロック状態記憶部をメモリ上に実現するステップと、
排他ロックを取得して第1タスクに含まれるクリティカルセクションの処理を実行させ、前記第1タスクに含まれるクリティカルセクションの処理の後に排他ロックを解放するとともに前記更新情報を更新する排他実行ステップと、
排他ロックを取得せずに第2タスクに含まれるクリティカルセクションの処理を実行させ、第2タスクに含まれるクリティカルセクションの処理の前後において前記更新情報が変化していないことを条件として当該クリティカルセクションの処理が成功したと判定し、当該クリティカルセクションの処理が成功しない場合は当該クリティカルセクションの処理を繰り返し、当該クリティカルセクションの処理を所定回数以上繰り返しても成功しない場合、又は、当該クリティカルセクションの処理を開始してから所定時間経過しても成功しない場合に、排他ロックを取得して当該クリティカルセクションの処理を実行させる非排他実行ステップと、
を備える方法。 - コンピュータを、請求項1から9の何れか1項に記載のシステムとして機能させるためのプログラム。
- 請求項11のプログラムの実行コードを生成するコード生成装置。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009288102A JP5088754B2 (ja) | 2009-12-18 | 2009-12-18 | システム、方法、プログラムおよびコード生成装置 |
| US12/969,683 US9250980B2 (en) | 2009-12-18 | 2010-12-16 | System, method, program, and code generation unit |
| US14/979,217 US9904581B2 (en) | 2009-12-18 | 2015-12-22 | System, method, program, and code generation unit |
| US15/861,415 US10169092B2 (en) | 2009-12-18 | 2018-01-03 | System, method, program, and code generation unit |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009288102A JP5088754B2 (ja) | 2009-12-18 | 2009-12-18 | システム、方法、プログラムおよびコード生成装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2011128975A JP2011128975A (ja) | 2011-06-30 |
| JP5088754B2 true JP5088754B2 (ja) | 2012-12-05 |
Family
ID=44153017
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009288102A Expired - Fee Related JP5088754B2 (ja) | 2009-12-18 | 2009-12-18 | システム、方法、プログラムおよびコード生成装置 |
Country Status (2)
| Country | Link |
|---|---|
| US (3) | US9250980B2 (ja) |
| JP (1) | JP5088754B2 (ja) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5890194B2 (ja) * | 2012-02-17 | 2016-03-22 | Necプラットフォームズ株式会社 | 情報処理装置、及び、情報処理方法 |
| US8893137B2 (en) * | 2012-03-13 | 2014-11-18 | Cisco Technology, Inc. | Transaction-based shared memory protection for high availability environments |
| US9286137B2 (en) * | 2012-09-14 | 2016-03-15 | Intel Corporation | Achieving deterministic execution of time critical code sections in multi-core systems |
| US9304940B2 (en) * | 2013-03-15 | 2016-04-05 | Intel Corporation | Processors, methods, and systems to relax synchronization of accesses to shared memory |
| IN2013MU02701A (ja) * | 2013-08-19 | 2015-06-26 | Tata Consultancy Services Ltd | |
| US10642644B2 (en) * | 2016-06-27 | 2020-05-05 | Intel Corporation | Memory management method and apparatus |
| US10353766B2 (en) * | 2016-09-09 | 2019-07-16 | International Business Machines Corporation | Managing execution of computer tasks under time constraints |
| CN111221858B (zh) * | 2018-11-26 | 2023-07-04 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及设备 |
| CN110532099B (zh) * | 2019-08-30 | 2022-05-31 | 联想(北京)有限公司 | 资源隔离方法和装置以及电子设备和介质 |
| CN113254482A (zh) * | 2021-05-11 | 2021-08-13 | 苏州玩蜂软件科技有限公司 | 一种业务数据异步存储的方法、系统及介质 |
| CN117312341A (zh) * | 2023-09-27 | 2023-12-29 | 青岛高重信息科技有限公司 | 数据处理方法、装置、设备以及计算机存储介质 |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0267670A (ja) * | 1988-09-02 | 1990-03-07 | Hitachi Ltd | 複合データ処理装置および共有データ資源の管理方法 |
| US5293600A (en) * | 1990-04-06 | 1994-03-08 | International Business Machines Corporation | Counter and flux bit locking for very fast shared serialization of shared data objects |
| JPH05257792A (ja) * | 1992-03-13 | 1993-10-08 | Hitachi Ltd | 共通データアクセス方法および装置 |
| US6823511B1 (en) | 2000-01-10 | 2004-11-23 | International Business Machines Corporation | Reader-writer lock for multiprocessor systems |
| JP2001236221A (ja) | 2000-02-21 | 2001-08-31 | Keisuke Shindo | マルチスレッドを利用するパイプライン並列プロセッサ |
| US7120762B2 (en) * | 2001-10-19 | 2006-10-10 | Wisconsin Alumni Research Foundation | Concurrent execution of critical sections by eliding ownership of locks |
| WO2004068361A1 (ja) | 2003-01-27 | 2004-08-12 | Fujitsu Limited | 記憶制御装置、データキャッシュ制御装置、中央処理装置、記憶装置制御方法、データキャッシュ制御方法およびキャッシュ制御方法 |
| JP3646137B2 (ja) | 2003-03-25 | 2005-05-11 | 独立行政法人科学技術振興機構 | 命令発行方法及び装置、中央演算装置、命令発行プログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体 |
| JP2005182594A (ja) | 2003-12-22 | 2005-07-07 | Matsushita Electric Ind Co Ltd | コンピュータ及びプログラム |
| US7567963B2 (en) | 2004-06-28 | 2009-07-28 | Intel Corporation | Thread synchronization with lock inflation methods and apparatus for managed run-time environments |
| JP2006185232A (ja) * | 2004-12-28 | 2006-07-13 | Hitachi Ltd | 複数のプログラムの実行方法、プログラム変換方法及びこれを用いたコンパイラプログラム |
| JP2009508187A (ja) | 2005-08-01 | 2009-02-26 | サン・マイクロシステムズ・インコーポレーテッド | クリティカルセクションをトランザクション的に実行することによるロックの回避 |
| JP2007249634A (ja) | 2006-03-16 | 2007-09-27 | Nec Corp | ロック管理方法及びロック管理システム |
| JP2008267594A (ja) | 2007-03-23 | 2008-11-06 | Hitachi Metals Ltd | セルフピアスリベット及びこれを用いた接合方法 |
| JP2008257594A (ja) | 2007-04-06 | 2008-10-23 | Hitachi Ltd | 情報処理装置および情報処理方法 |
| US20100115502A1 (en) * | 2008-11-06 | 2010-05-06 | Jiva Azeem S | Post Processing of Dynamically Generated Code |
| US8341643B2 (en) * | 2010-03-29 | 2012-12-25 | International Business Machines Corporation | Protecting shared resources using shared memory and sockets |
-
2009
- 2009-12-18 JP JP2009288102A patent/JP5088754B2/ja not_active Expired - Fee Related
-
2010
- 2010-12-16 US US12/969,683 patent/US9250980B2/en not_active Expired - Fee Related
-
2015
- 2015-12-22 US US14/979,217 patent/US9904581B2/en active Active
-
2018
- 2018-01-03 US US15/861,415 patent/US10169092B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US10169092B2 (en) | 2019-01-01 |
| US20180136978A1 (en) | 2018-05-17 |
| US20110154343A1 (en) | 2011-06-23 |
| JP2011128975A (ja) | 2011-06-30 |
| US9250980B2 (en) | 2016-02-02 |
| US9904581B2 (en) | 2018-02-27 |
| US20160139960A1 (en) | 2016-05-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5088754B2 (ja) | システム、方法、プログラムおよびコード生成装置 | |
| CN101542437B (zh) | 软件事务性存储器操作的优化 | |
| US8028133B2 (en) | Globally incremented variable or clock based methods and apparatus to implement parallel transactions | |
| KR101354796B1 (ko) | 소프트웨어 트랜잭션 메모리 블록들을 포함하는 프로그램의컴파일을 위한 방법 | |
| US6854108B1 (en) | Method and apparatus for deterministic replay of java multithreaded programs on multiprocessors | |
| US9619281B2 (en) | Systems and methods for adaptive integration of hardware and software lock elision techniques | |
| JP5681473B2 (ja) | プログラムの最適化装置、最適化方法および最適化プログラム | |
| US20130086348A1 (en) | Lock-Clustering Compilation for Software Transactional Memory | |
| US20090187896A1 (en) | Compiler device, program, and recording medium | |
| US20080222198A1 (en) | Data processing apparatus, method and computer program product for reducing memory usage of an object oriented program | |
| JP2005529383A (ja) | シングルスレッドアプリケーションを支援する時間多重化推論的マルチスレッディング | |
| US8589899B2 (en) | Optimization system, optimization method, and compiler program | |
| US9766926B2 (en) | Method and system for optimizing parallel program execution based on speculation that an object written to is not shared | |
| KR101924747B1 (ko) | 유연성을 갖춘 메타데이터 구성 기법 | |
| JP5489884B2 (ja) | 命令実行装置、命令実行方法、及び命令実行プログラム | |
| US7539679B2 (en) | Information processing system and control | |
| EP3602307B1 (en) | Enabling breakpoints on entire data structures | |
| JP6245028B2 (ja) | 実行制御方法、実行制御プログラムおよび実行制御装置 | |
| JP5186334B2 (ja) | 変換装置、プログラムおよび変換方法 | |
| US20160371083A1 (en) | Lock Free Streaming of Executable Code Data | |
| US6311227B1 (en) | Procedure calling method | |
| US20030126305A1 (en) | Method and apparatus for efficient object sub-typing | |
| CN115167917A (zh) | Cobol程序扩展设备和方法 | |
| Hagemo | Java Coding Practices for Improved Application Performance |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111118 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111129 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120106 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120703 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120717 |
|
| 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: 20120814 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20120815 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120904 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150921 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |