JP2011128975A - システム、方法、プログラムおよびコード生成装置 - Google Patents
システム、方法、プログラムおよびコード生成装置 Download PDFInfo
- Publication number
- JP2011128975A JP2011128975A JP2009288102A JP2009288102A JP2011128975A JP 2011128975 A JP2011128975 A JP 2011128975A JP 2009288102 A JP2009288102 A JP 2009288102A JP 2009288102 A JP2009288102 A JP 2009288102A JP 2011128975 A JP2011128975 A JP 2011128975A
- 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.)
- 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
- 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; 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/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
Abstract
【解決手段】何れかのタスクが排他ロックを取得および解放したことに応じて値が更新される更新情報と、排他ロックを取得しているタスクを識別するタスク識別情報とを記憶するロック状態記憶部26と、排他ロックを取得して第1タスクに含まれるクリティカルセクションの処理を実行させ、第1タスクに含まれるクリティカルセクションの処理の後に排他ロックを解放するとともに更新情報を更新する排他実行部28と、排他ロックを取得せずに第2タスクに含まれるクリティカルセクションの処理を実行させ、第2タスクに含まれるクリティカルセクションの処理の前後において更新情報が変化していないことを条件として当該クリティカルセクションの処理が成功したと判定する非排他実行部30とを備える。
【選択図】図2
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 (14)
- タスク間の排他制御を行うシステムであって、
何れかのタスクが排他ロックを取得および解放したことに応じて値が更新される更新情報と、排他ロックを取得しているタスクを識別するタスク識別情報とを記憶するロック状態記憶部と、
排他ロックを取得して第1タスクに含まれるクリティカルセクションの処理を実行させ、前記第1タスクに含まれるクリティカルセクションの処理の後に排他ロックを解放するとともに前記更新情報を更新する排他実行部と、
排他ロックを取得せずに第2タスクに含まれるクリティカルセクションの処理を実行させ、第2タスクに含まれるクリティカルセクションの処理の前後において前記更新情報が変化していないことを条件として当該クリティカルセクションの処理が成功したと判定する非排他実行部と、
を備えるシステム。 - 前記ロック状態記憶部は、何れかのタスクが排他ロックを取得しているか否かを示すロック情報を更に記憶し、
前記排他実行部は、
排他ロックを取得する場合、前記ロック状態記憶部から前記ロック情報を読出し、全てのタスクが排他ロックを解放していることを条件に、排他ロックを取得していることを示す前記ロック情報を前記ロック状態記憶部に書き込み、
排他ロックを解放する場合に、排他ロックを解放していることを示す前記ロック情報を前記ロック状態記憶部に書き込む
請求項1に記載のシステム。 - 前記ロック状態記憶部は、何れかのタスクが排他ロックを取得している場合に前記タスク識別情報を記憶し、全てのタスクが排他ロックを解放している場合に前記更新情報を記憶する記憶領域を有し、
前記排他実行部は、
排他ロックを取得する場合に、前記ロック状態記憶部から前記更新情報を読み出し、排他ロックを取得していることを示す前記ロック情報を前記ロック状態記憶部に書き込むと共に、前記更新情報に代えて前記第1タスクを識別する前記タスク識別情報を前記ロック状態記憶部に書き込み、
排他ロックを解放する場合に、排他ロックを解放していることを示す前記ロック情報を前記ロック状態記憶部に書き込むと共に、前記第1タスクを識別する前記タスク識別情報に代えて、排他ロックの取得において読み出した前記更新情報を更新した新たな前記更新情報を前記ロック状態記憶部に書き込む
請求項2に記載のシステム。 - 前記ロック状態記憶部は、同一のタスクによる排他ロックの取得の繰返し回数を示す再帰情報を記憶し、
前記排他実行部は、
排他ロックを取得する場合において、前記第1タスクが排他ロックを取得している場合、前記ロック状態記憶部に記憶された前記再帰情報の繰返し回数をインクリメントし、
排他ロックを解放する場合において、前記再帰情報の繰返し回数が0でない場合には、前記ロック状態記憶部に記憶された前記ロック情報および前記タスク識別情報を維持して、前記再帰情報の繰返し回数をデクリメントする
請求項3に記載のシステム。 - 前記ロック状態記憶部は、何れかのタスクが排他ロックを取得している場合に前記タスク識別情報および前記再帰情報を前記記憶領域に記憶し、全てのタスクが排他ロックを解放している場合に前記更新情報を前記記憶領域に記憶する請求項4に記載のシステム。
- 前記非排他実行部は、前記第2タスクに含まれるクリティカルセクションの処理の前後において、前記ロック状態記憶部に排他ロックを解放していることを示す前記ロック情報が記憶され、且つ、前記ロック状態記憶部に記憶された前記更新情報が変化していないことを条件として、クリティカルセクションの処理が成功したと判定する請求項2から5のいずれかに記載のシステム。
- 前記非排他実行部は、前記第2タスクによるクリティカルセクションの処理が所定条件に達しても成功しない場合に、排他ロックを取得して第2タスクに含まれるクリティカルセクションの処理を実行させる請求項1から6のいずれかに記載のシステム。
- 前記非排他実行部は、
排他ロックを取得せずに前記第2タスクに含まれるクリティカルセクションの処理を実行させる場合において、当該クリティカルセクションの処理に含まれるループ処理の中で、当該クリティカルセクションの処理前から前記更新情報が変化したか確認し、
前記更新情報が変化した場合には前記第2タスクに含まれるクリティカルセクションの処理を失敗したと判定する
請求項1から7のいずれかに記載のシステム。 - 前記非排他実行部は、
排他ロックを取得せずに前記第2タスクに含まれるクリティカルセクションの処理を実行させる場合において、当該クリティカルセクションの処理中においてポインタの参照先へのアクセスに先立って、当該クリティカルセクションの処理前から前記更新情報が変化したか否かを確認し、
前記更新情報が変化した場合には前記第2タスクに含まれるクリティカルセクションの処理を失敗したと判定する
請求項1から8のいずれかに記載のシステム。 - 前記非排他実行部は、
前記第2タスクに含まれるクリティカルセクションの処理中においてポインタの参照先を取得してから前記更新情報が変化したか否かを確認し、
前記更新情報が変化していないことを条件として、取得したポインタの参照先をアクセスする
請求項9に記載のシステム。 - 前記非排他実行部は、前記第2タスクに含まれるクリティカルセクションの処理において条件判断をした結果、タスク間で共有される共有変数に書き込みをする場合に、当該クリティカルセクションの処理前から前記更新情報が変化していないことを確認した上で、前記条件判断の後かつ前記共有変数の書き込み前に排他ロックを取得する請求項1から10のいずれかに記載のシステム。
- タスク間の排他制御を行う方法であって、
何れかのタスクが排他ロックを取得および解放したことに応じて値が更新される更新情報と、排他ロックを取得しているタスクを識別するタスク識別情報とを記憶するロック状態記憶部をメモリ上に実現するステップと、
排他ロックを取得して第1タスクに含まれるクリティカルセクションの処理を実行させ、前記第1タスクに含まれるクリティカルセクションの処理の後に排他ロックを解放するとともに前記更新情報を更新する排他実行ステップと、
排他ロックを取得せずに第2タスクに含まれるクリティカルセクションの処理を実行させ、第2タスクに含まれるクリティカルセクションの処理の前後において前記更新情報が変化していないことを条件として当該クリティカルセクションの処理が成功したと判定する非排他実行ステップと、
を備える方法。 - コンピュータを、請求項1から11の何れかに記載のシステムとして機能させるためのプログラム。
- 請求項13のプログラムの実行コードを生成するコード生成装置。
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 true JP2011128975A (ja) | 2011-06-30 |
JP5088754B2 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) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013168103A (ja) * | 2012-02-17 | 2013-08-29 | Nec Computertechno Ltd | 情報処理装置、及び、情報処理方法 |
JP2014182795A (ja) * | 2013-03-15 | 2014-09-29 | Intel Corp | 共有メモリへのアクセスの同期を緩和するプロセッサ、方法及びシステム |
JP2015038724A (ja) * | 2013-08-19 | 2015-02-26 | タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited | 状態遷移経路の算出によるスリープ・ウェークアッププロトコル検証のための方法およびシステム |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 | 联想(北京)有限公司 | 资源隔离方法和装置以及电子设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0267670A (ja) * | 1988-09-02 | 1990-03-07 | Hitachi Ltd | 複合データ処理装置および共有データ資源の管理方法 |
JPH05257792A (ja) * | 1992-03-13 | 1993-10-08 | Hitachi Ltd | 共通データアクセス方法および装置 |
JP2006185232A (ja) * | 2004-12-28 | 2006-07-13 | Hitachi Ltd | 複数のプログラムの実行方法、プログラム変換方法及びこれを用いたコンパイラプログラム |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
JP4180569B2 (ja) | 2003-01-27 | 2008-11-12 | 富士通株式会社 | 記憶制御装置、データキャッシュ制御装置、中央処理装置、記憶装置制御方法、データキャッシュ制御方法およびキャッシュ制御方法 |
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 |
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
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0267670A (ja) * | 1988-09-02 | 1990-03-07 | Hitachi Ltd | 複合データ処理装置および共有データ資源の管理方法 |
JPH05257792A (ja) * | 1992-03-13 | 1993-10-08 | Hitachi Ltd | 共通データアクセス方法および装置 |
JP2006185232A (ja) * | 2004-12-28 | 2006-07-13 | Hitachi Ltd | 複数のプログラムの実行方法、プログラム変換方法及びこれを用いたコンパイラプログラム |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013168103A (ja) * | 2012-02-17 | 2013-08-29 | Nec Computertechno Ltd | 情報処理装置、及び、情報処理方法 |
JP2014182795A (ja) * | 2013-03-15 | 2014-09-29 | Intel Corp | 共有メモリへのアクセスの同期を緩和するプロセッサ、方法及びシステム |
US9304940B2 (en) | 2013-03-15 | 2016-04-05 | Intel Corporation | Processors, methods, and systems to relax synchronization of accesses to shared memory |
JP2016207232A (ja) * | 2013-03-15 | 2016-12-08 | インテル・コーポレーション | 共有メモリへのアクセスの同期を緩和するプロセッサ、方法、システム、及びプログラム |
US10235175B2 (en) | 2013-03-15 | 2019-03-19 | Intel Corporation | Processors, methods, and systems to relax synchronization of accesses to shared memory |
JP2015038724A (ja) * | 2013-08-19 | 2015-02-26 | タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited | 状態遷移経路の算出によるスリープ・ウェークアッププロトコル検証のための方法およびシステム |
Also Published As
Publication number | Publication date |
---|---|
JP5088754B2 (ja) | 2012-12-05 |
US20160139960A1 (en) | 2016-05-19 |
US20110154343A1 (en) | 2011-06-23 |
US9904581B2 (en) | 2018-02-27 |
US20180136978A1 (en) | 2018-05-17 |
US10169092B2 (en) | 2019-01-01 |
US9250980B2 (en) | 2016-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5088754B2 (ja) | システム、方法、プログラムおよびコード生成装置 | |
JP5284103B2 (ja) | ソフトウェアトランザクショナルメモリ動作の最適化 | |
US6854108B1 (en) | Method and apparatus for deterministic replay of java multithreaded programs on multiprocessors | |
TWI566180B (zh) | 一種動態創建可附加和可拆除二進位檔案的系統和方法 | |
US8438468B2 (en) | Annotation management | |
CN101194230A (zh) | 具有对共享资源的访问协调的转换程序代码的方法和设备 | |
CN103999036A (zh) | 在支持事务的计算机体系结构中使用异常进行代码专业化的方法和系统 | |
US9690564B2 (en) | Runtime detection of software configurations and upgrades | |
US20130151524A1 (en) | Optimized Resizing For RCU-Protected Hash Tables | |
US9766926B2 (en) | Method and system for optimizing parallel program execution based on speculation that an object written to is not shared | |
EP3602307B1 (en) | Enabling breakpoints on entire data structures | |
JP5489884B2 (ja) | 命令実行装置、命令実行方法、及び命令実行プログラム | |
US8589899B2 (en) | Optimization system, optimization method, and compiler program | |
JP2007532990A (ja) | ヘルパーサブスレッドを含むスレッドの実行の明示的ソフトウェア制御のための方法及び構造 | |
KR20170127060A (ko) | 유연성을 갖춘 메타데이터 구성 기법 | |
CN112579291A (zh) | 一种基于StateDB的智能合约并行运行系统及并行运行方法 | |
US8185885B2 (en) | Providing recovery data for program code | |
JP6245028B2 (ja) | 実行制御方法、実行制御プログラムおよび実行制御装置 | |
US20160371083A1 (en) | Lock Free Streaming of Executable Code Data | |
JP5186334B2 (ja) | 変換装置、プログラムおよび変換方法 | |
CN104166633B (zh) | 用于存储器访问保护的方法和系统 | |
JP3988740B2 (ja) | 並列処理装置、命令再試行方法、およびプログラム | |
US20230315611A1 (en) | Bug-detection assisting device, bug-detection assisting method, and bug-detection assisting program | |
JP2021196824A (ja) | アプリケーション起動プログラム,情報処理装置及びアプリケーション起動方法 | |
CN116088897A (zh) | 更新应用程序配置文件的方法、系统、设备及存储介质 |
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 |