CN102929711B - A kind of implementation method of real-time transactional memory of software - Google Patents

A kind of implementation method of real-time transactional memory of software Download PDF

Info

Publication number
CN102929711B
CN102929711B CN201210358174.6A CN201210358174A CN102929711B CN 102929711 B CN102929711 B CN 102929711B CN 201210358174 A CN201210358174 A CN 201210358174A CN 102929711 B CN102929711 B CN 102929711B
Authority
CN
China
Prior art keywords
task
queue
rollback
time
internal memory
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
Application number
CN201210358174.6A
Other languages
Chinese (zh)
Other versions
CN102929711A (en
Inventor
顾宗华
李红
王铸
张劲超
章明
吴朝晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201210358174.6A priority Critical patent/CN102929711B/en
Publication of CN102929711A publication Critical patent/CN102929711A/en
Application granted granted Critical
Publication of CN102929711B publication Critical patent/CN102929711B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

nullThe invention discloses the implementation method of a kind of real-time transactional memory of software,By defining maximum rollback number of times,Therefore the time performing transaction internal memory code can ensure that within the specific limits,And the obstruction that low priority task causes occurs in both cases,A kind of situation is that task is when just dispatch,Another kind of situation be to occur at task order to head of the queue be waken up when,But in both cases,The maximum obstruction time be all low priority task perform a transaction internal memory time (or submit to,Or rollback,Take in both the most time-consuming that),This maximum obstruction time is to elect from the maximum of all tasks carrying transaction internal memories lower than current task priority,Owing to the task quantity in queue is fixing,Therefore,The worst execution time of task the most just can limit within the specific limits.

Description

A kind of implementation method of real-time transactional memory of software
Technical field
The present invention relates to the embedded real-time operating system of computer realm, particularly to one for embedded A kind of implementation method of real time operating system real-time transactional memory of software.
Technical background
Embedded real time system refers to there is the strict operating system limited for the task process time.If appointed The process time of business exceedes the off period (deadline), may produce serious consequence.Real-time is divided into firmly In real time and soft in real time, in hard real-time system, if task run time time-out can produce the most serious after Really, in soft real-time system, then can have an impact, but will not be the most serious.
Transaction internal memory (Transactional Memory) is that in operating system, multitask exclusive reference shares number According to a kind of mode.In traditional operating system, it is achieved the method sharing data exclusive reference usually makes Ensure with spin lock (Spinlock).Under this implementation, task get shared Firstly the need of obtaining a lock before resource, if it detects that this lock is got by other tasks, The most just it is circulated till waiting until that this lock is released.This mode disadvantageously, if there is Multiple tasks accessing shared data simultaneously, then their access is that serial is carried out.Compare at data contention In the environment of fierceness, this mode compares poor efficiency.The implementation of transaction internal memory is the most different, task The existence of other tasks can't be detected before entering into critical zone, but be previously recorded entering critical zone The state of processor once, then carries out collision detection performing critical zone or performed critical zone when. If it occur that conflict, then just various states (value of depositor and the value of shared data etc.) are returned to Before entering into critical zone, then re-executing, this operation is called rollback.Without conflict, then Just being written to the content of amendment share in data, this operation is called submission.This mode and spin lock Difference is, when multiple task accessing shared data, multiple tasks can perform critical zone together, is one Plant parallel form.The environment that competition is fiercer (namely has a lot of task and accesses critical simultaneously District), transaction internal memory compares spin lock bigger advantage.The operation principle of transaction internal memory is referred to Fig. 1. The implementation of affairs can be divided into hardware transactional internal memory and software transaction internal memory, the most only considers software transaction Internal memory, also has, and process proposed herein can realize on uniprocessor, it is also possible at the ring of multiprocessor Realize under border.Realizing if in the environment of processor, task can only be run on the processor that it is affiliated, Can not move on other processors.
Transaction internal memory is mainly made up of two processes: collision detection and management (conflict detection and And version management (version management) management).Collision detection is responsible for detection in things The when that internal memory running, things internal memory with other clashes, and conflict management is responsible for occurring in conflict Which with the part of post processing conflict, if two transaction internal memories there occurs conflict, this part judge by Individual transaction internal memory continues to run with.The content of amendment is saved in daily record on being in fact by the operation logic of things internal memory In, the most again the content write of amendment is shared in data, if it occur that conflicted also if successfully have submitted And judged to need rollback by conflict management decision, then the content in abort log, then recover processor ring Border, or in turn, content original for shared data is saved in daily record, by daily record when of rollback Content recovery in shared data.These are all the parts that version management needs to be responsible for.
Having been described above, in real-time system, it is more serious that the operation time time-out of task may produce ratio Consequence.So generally in the realization of real-time system, it is necessary to ensure the predictability of task time.But In the realization of usual transaction internal memory, task perform critical zone when may rollback many times, Even unlimited rollback.This situation is unacceptable in real-time system.
Summary of the invention
For above-mentioned technological deficiency, the present invention proposes the implementation method of real-time transactional memory of software.
In order to solve above-mentioned technical problem, technical scheme is as follows:
The implementation method of real-time transactional memory of software, comprises the steps:
11) according to whether producing conflict between task, the conflict relationship figure between generation task, and according to this All tasks are divided into several queue by conflict relationship figure, and each task belongs to and can only belong to a queue; 12) adding a constant, described constant defines the maximum rollback number of times of task, if certain task rollback time This task beyond this constant, is then joined in its belonging queue by number, and the tail of the queue in this queue is carried out Queuing up, and task can enter into resting state, only when this task order to head of the queue when, this task is Can be waken up, then re-execute the code of transaction internal memory;
If once there being two tasks to clash, then process according to following two situation:
13) being aligned in head of the queue when one of them task, another one task is not in queue, then the most just The task rollback preferentially allowed not in queue, so guarantees that the task of head of the queue can be submitted to, if this task is returned When the number of times of rolling has reached the number of times that described constant specifies, then it will enter in the queue that it is affiliated Row is queued up, and enters into resting state, and wait wakes up up;
14) if two tasks all do not have in queue, then the priority according to which task is high, make priority high Tasks carrying, the then rollback of another task, and if having the rollback number of times of task to reach described constant During the number of times specified, then this task just joins the queue that it is affiliated.
Further, if on one processor, when a low priority task is carrying out transaction internal memory During code, if there being high-priority task to arrive, then this high-priority task needs to wait that low priority is appointed The transaction internal memory of business is submitted to or just can seize low priority task after rollback.
The beneficial effects of the present invention is: according to the method described above, the execution time of task can be divided into four portions Point: perform non-transactional memory part time, perform transaction internal memory code time (comprise the execution time, Rollback time and submission time), the queuing time in the blocking time of low priority task and queue.Perform non- The time of transaction internal memory part is constant, so being fixing.Owing to having defined maximum rollback number of times, Therefore the time performing transaction internal memory code can ensure that within the specific limits, and low priority task is made The obstruction become occurs in both cases, and a kind of situation is task when just dispatch, and another kind of situation is Occur task be aligned to head of the queue be waken up when, but in both cases, the maximum obstruction time is all It is that low priority task performs time of a transaction internal memory and (or submits to, or rollback, take both In the most time-consuming that), this maximum obstruction time is from all tasks lower than current task priority The maximum of execution transaction internal memory is elected.Owing to the task quantity in queue is fixing, therefore Task queuing time in queue is also fixing, its maximum be exactly all belong in this queue its His tasks carrying transaction internal memory and the temporal summation submitted to.Therefore, the worst execution time of task is also with regard to energy Enough restrictions are within the specific limits.
Accompanying drawing explanation
Fig. 1 (a) is the schematic diagram of spin lock;
Fig. 1 (b) is the schematic diagram of transaction internal memory;
Fig. 2 (a) is the conflict relationship figure of task;
Fig. 2 (b) is distribution queue figure;
Fig. 3 is metadata graph;
Fig. 4 is STM_Start flow chart;
Fig. 5 is STM_Read flow chart;
Fig. 6 is STM_Commit flow chart;
Fig. 7 is STM_Conflict flow chart.
Detailed description of the invention
Below in conjunction with the drawings and specific embodiments, the present invention is described further.
In this article, the most simply consider that a task comprises a transaction internal memory.Namely in affairs Deposit and link together with a task.So sometimes may use " task " replacement " in affairs Deposit ".Say the transaction internal memory rollback in the task that task rollback refers to herein.
TL2 is the transaction internal memory implementation that a kind of comparison is classical, and it is used in general operation system.Herein Summary of the invention be on the basis of this software transaction internal memory of TL2 improve a kind of real-time transactional memory of software. Due to this transaction internal memory realize relatively simple, therefore have employed it as realizing framework, and do thereon Some little changes.But thought herein is not limited to this software transaction internal memory.
(1) first, according to whether producing conflict one task conflict graph of a relation of picture between task.In figure Node is exactly task, if two tasks may produce conflict, then just the two node is drawn a limit. An example is given below, and as shown in table 1, if there being 5 tasks in system, and the data of task are visited Ask that content is the most as shown in table 1, then the conflict relationship figure between task can be drawn, as shown in Fig. 2 (a). It will be seen that owing to task T1 and T2 have accessed data a1, a2 simultaneously, and access the two variable Time the most at least one be to write, so T1 and T2 has connected a limit.And for variable a3, T1 and T2 Being to read, and T3 is to write, therefore T3 has connected a limit respectively with T1 and T2.And give another here Individual data structure is to realize real-time transactional memory of software, and this data structure is exactly shown in queue such as Fig. 2 (b). Every same UNICOM subgraph interior joint that is in all distributes in same queue, say, that every be in Two tasks inside one queue are all possible to produce conflict.This is a kind of conservative method, because Just have conflict between two nodes being only connected in the drawings, but two nodes in queue are likely Linked up by other nodes in figure, actually the two node not conflict itself.
The access content of table 1 task
Task Access content
T1 Read a1, read and write a2, read a3, read a4
T2 Write a1, read and write a2, read a3
T3 Write a3, write a4
T4 Read a5
T5 Write a5
(2) constant (MaxAbortNumber) and a queue are added.This constant defines appoints The maximum rollback number of times of business.If after this number of times of certain task rollback, then it will join its institute In the queue belonged to, the tail of the queue in this queue is ranked, and task can enter into resting state.Only Having when task order to head of the queue when, this task just can be waken up up, then by the upper task of being discharged to head of the queue Re-execute the code of transaction internal memory.If once having two tasks to clash, then to have following two Situation:
1. one of them task is aligned in head of the queue, and another one task is not in queue.The most at this time The most preferentially allow the task rollback of head of the queue, since it is desired that ensure task most rollback MaxAbortNumber time, institute Have to submit to successfully with the task of head of the queue.Another does not has the task in queue with regard to rollback, if this The number of times of business rollback has reached MaxAbortNumber time, then this task will enter into the queue that it is affiliated In rank, and enter into resting state, wait wakes up up.
If 2. two tasks all do not have in queue, then at this time conflict management strategy is accomplished by which is seen The priority of task is high, allows the tasks carrying that priority is high, so compares the demand meeting real-time system.And And if have the rollback number of times of task to reach MaxAbortNumber time, then this task just joins its institute The queue belonged to.
Two tasks the most not producing conflict all occur in the situation of head of the queue, and being because this situation is It is unlikely that.The queue division methods above carried according to Yin, every may produce conflict two Task is necessarily in inside same queue.
(3) also need to consider a problem, likely by Gao You tasks carrying transaction internal memory code when First level task preemption.If high-priority task is when certain low priority task runs transaction internal memory code Time is robbed and be account for it, and two tasks are on same processor, and at this time processor can not be given low excellent First level task, this low priority task can not rollback, high-priority task can not perform, thus backward Create deadlock.Generation in order to avoid this situation, it is proposed that the solution of a kind of " delay dispatching ". If on one processor, a low priority task is had to be carrying out transaction internal memory code, the most such as Fruit has high-priority task to arrive, then in this high-priority task needs the affairs of wait low priority task Low priority task just can be seized after depositing submission or rollback.Namely high-priority task multipotency is low Priority tasks blocks the time (no matter the result of this time is to submit to or rollback) performing a transaction internal memory.
Firstly, it is necessary to consider the metadata (Metadata) of transaction internal memory, they are to realize software transaction internal memory Some Data Structures.Just for adding an ObjectHeader on the basis of the metadata of TL2. Each sharing data objects has an ObjectHeader the most corresponding, and transaction internal memory is at accessing shared data When first have to access this ObjectHeader.If as it is shown on figure 3, ObjectHeader first The first place in territory is 0, then illustrate that it is not locked by other tasks, then its remaining position is exactly indication data Version number, this version number is used for judging that data are either with or without being modified.If 1, then this is described Data are pinned by other tasks, and at this time remaining is exactly the task pointer pointing to and pinning these data. This realize with TL2 is consistent.Second territory is directed to share the pointer of data.Territory below is one Individual visible reader's list (visible reader list), it can be seen which has appoint inside this list Do honest work and reading these shared data.Task for whole system has carried out a numbering, for each task For, simply use a bit to represent in visible reader list, such as task 1 corresponds to First bit, task 2 is corresponding to second bit, the most by that analogy.The variable of one 32 is permissible Represent 32 tasks, reason for this is that to save space.Why need to increase so one territory, It is because the task at head of the queue and may produce conflict and the rollback of " implicit expression " with other tasks.Can because having The data modification that head of the queue task was read the when of submission to by other tasks of energy, the task of such head of the queue is accomplished by Rollback, this situation is unallowed.So it is to be appreciated that data by which task were read.And have After this visibility list, avoid the need for reading daily record, it is only necessary to write daily record.
In general, software transaction internal memory has several relatively common API:STM_Start, STM_Read, STM_Write,STM_Commit,STM_Conflict。
STM_Start calls at first at every section of transaction internal memory code, and flow chart is as shown in Figure 4. First, if the rollback number of times of task has reached MaxAbortNumber, then just task is joined and it In corresponding queue, and task enters into sleep state, concedes processor.Without reaching MaxAbortNumber, then just carry out, with regard to following, the certain operations that transaction internal memory normally starts, such as preserve Buffer status, will write daily record and reset, by state initialization of transaction internal memory etc..
STM_Read and STM_Write is used in transaction internal memory read-write and shares the API of data.Fig. 5 shows Having shown the process of STM_Read, its input parameter is the pointer of current task and needs the address read, and returns Returning value is the content read, and it is all to need to use STM_Read that data are shared in the reading in transaction internal memory operates Carry out.The difference of the STM_Read in STM_Read and TL2 here is, it eliminates checking Current task the most effective process (namely detecting the address of reading either with or without being modified), because Other tasks are it can be seen that the address read of current task, if producing conflict, submitting to when that Business will be called STM_Conflict and be solved conflict.The most here the detection of conflict it is made without.Here The flow chart of STM_Write is not drawn, because its operation is substantially one with the operation in TL2 Sample, in addition to a bit, it needs to detect whether current task has been labeled as " abort ", as Fruit is, then it is accomplished by rollback, if not, then just carry out just according to common operation.Its In also have API, namely a STM_Abort, its effect is exactly the transaction internal memory of rollback appointed task, Primary operational is exactly version number and the content of registers recovering to share data, and by visible reader's list Corresponding positions clearing etc..
STM_Commit is used to submit to the API of transaction internal memory amendment content, and it is the end at transaction internal memory The API called.The process of STM_Commit is as shown in Figure 6.First time its process is more complicated, Go through and write daily record (write log), check and write the ObjectHeader that the address occurred in daily record is corresponding, first Checking whether ObjectHeader is locked, if locked, illustrating that other task is also writing this address. From ObjectHeader, the most just extract the pointer of competition task and call STM_Conflict Solve this conflict.Without being locked, then check in visible reader's list of ObjectHeader and be No existence competition task, if it has, extract the numbering of these tasks the most respectively out, and calls STM_Conflict solves conflict.If it is determined that current task can continue to, then just by iterator back Walk, continue to attempt to lock current task, be the most so recycled to competition task and perceived and be abandoned Meeting rollback also unlocks this object.If the judged result of STM_Conflict is to allow current task continue executing with, So attempt to lock next data object.Note, lock to object and record the version number before locking It it is the process of an atomicity.If STM_Conflict judges Current transaction internal memory rollback, then just terminate. If above-mentioned steps can be passed through, just the content write in daily record is write back to internal memory.Then will write in daily record Hold and unlock and enclose new version number, the ObjectHeader that namely amendment object is corresponding.Finally, as Really Current transaction internal memory is at head of the queue, then just remove this task from head of the queue, if queue also has element, Just wake up the next element in queue, the newest head of the queue element up.The concordance of queue operation is to use Spin lock ensures.
This API of STM_Conflict is used to process an API of conflict, namely realizes noted earlier Conflict management part.As it is shown in fig. 7, it is it is first determined whether wherein there is the rollback number of times of a task to reach Having arrived MaxAbortNumber, if reached, having illustrated that this task is in queue, then with regard to rollback another The transaction internal memory of individual task.If the rollback number of times of two transaction internal memories is all not reaching to MaxAbortNumber, The most just determining which task continues executing with according to priority, which rollback, this meets system in real time The demand of system, pays the utmost attention to high-priority task.If needing rollback to compete task, merely just will competition Task flagging is " abort ", does not directly invoke STM_Abort and goes rollback to compete task.Because competition It has been " abort " that task all can detect whether calling STM_Read or STM_Write when, If it is, its own will rollback.
According to the method described above, the execution time of task can be divided into four parts: performs non-transactional memory part Time, perform transaction internal memory code time (comprising execution time, rollback time and submission time), low Queuing time in the blocking time of priority tasks and queue.Owing to having defined maximum rollback number of times, Therefore the time performing transaction internal memory code can ensure that within the specific limits.And low priority task is made The obstruction become occurs in both cases, and a kind of situation is task when just dispatch, and another kind of situation is Occur task be aligned to head of the queue be waken up when, but in both cases, the maximum obstruction time is all Being the time of a low priority task transaction internal memory of execution, this maximum obstruction time is than current from all The maximum of the tasks carrying transaction internal memory that task priority is low is elected.Due to the task in queue Quantity is fixing, and therefore task queuing time in queue is also fixing, and its maximum is exactly queue In every other tasks carrying transaction internal memory and the temporal summation submitted to.Therefore, task the worst reaction time Between the most just can limit within the specific limits.
The above is only the preferred embodiment of the present invention, it is noted that common for the art Technical staff, without departing from the inventive concept of the premise, it is also possible to make some improvements and modifications, these Improvements and modifications also should be regarded as in scope.

Claims (2)

1. the implementation method of a real-time transactional memory of software, it is characterised in that comprise the steps:
11) according to whether producing conflict between task, the conflict relationship figure between generation task, and According to this conflict relationship figure, all tasks being divided into several queue, each task belongs to and can only belong to One queue;
12) adding a constant, described constant defines the maximum rollback number of times of task, if certain is appointed This task beyond this constant, is then joined in its belonging queue, in this queue by business rollback number of times Tail of the queue rank, and this task can enter into resting state, only when this task order is to head of the queue When, this task just can be waken up, and then re-executes the code of transaction internal memory;
If once there being two tasks to clash, then process according to following two situation:
13) being aligned in head of the queue when one of them task, another one task is not in queue, then The task rollback the most preferentially allowed not in queue, so guarantees that the task of head of the queue can be submitted to, as When the number of times of the fruit not task rollback in queue has reached the number of times that described constant specifies, then it will Entering in the queue that it is affiliated and rank, and enter into resting state, wait wakes up up;
14) if two tasks all do not have in queue, then the priority according to which task is high, allows excellent The tasks carrying that first level is high, the then rollback of another task, and if performing the rollback of task in rollback When number of times has reached the number of times that described constant specifies, then this task just joins the queue that it is affiliated.
The implementation method of a kind of real-time transactional memory of software the most according to claim 1, its feature exists In, if on one processor, when a low priority task is carrying out transaction internal memory code, If there being high-priority task to arrive, then this high-priority task needs to wait the thing of low priority task Business internal memory is submitted to or just can seize low priority task after rollback.
CN201210358174.6A 2012-09-24 2012-09-24 A kind of implementation method of real-time transactional memory of software Expired - Fee Related CN102929711B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210358174.6A CN102929711B (en) 2012-09-24 2012-09-24 A kind of implementation method of real-time transactional memory of software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210358174.6A CN102929711B (en) 2012-09-24 2012-09-24 A kind of implementation method of real-time transactional memory of software

Publications (2)

Publication Number Publication Date
CN102929711A CN102929711A (en) 2013-02-13
CN102929711B true CN102929711B (en) 2016-08-10

Family

ID=47644518

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210358174.6A Expired - Fee Related CN102929711B (en) 2012-09-24 2012-09-24 A kind of implementation method of real-time transactional memory of software

Country Status (1)

Country Link
CN (1) CN102929711B (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243097A (en) * 2015-09-11 2016-01-13 中国人民解放军63796部队 Method for determination and concurrent control of priority of real-time transactions in aerospace measurement and control database
CN109901913B (en) * 2017-12-11 2023-08-22 复旦大学 Multithread transaction storage programming model method capable of controlling repeated execution times
CN110275770B (en) * 2018-03-15 2023-09-22 阿里巴巴集团控股有限公司 Task balanced scheduling method, system, node and electronic equipment
CN110837411B (en) * 2019-11-08 2023-05-12 敏博科技(武汉)有限公司 Method and system for concurrent I/O scheduling in data server side partition
CN111158890A (en) * 2020-01-20 2020-05-15 北京一流科技有限公司 System and method for controlling task parallelism in task set
CN113360256A (en) * 2020-03-06 2021-09-07 烽火通信科技股份有限公司 Thread scheduling method and system based on control plane massive concurrent messages
CN114035928B (en) * 2021-11-26 2024-07-30 重庆富民银行股份有限公司 Distributed task allocation processing method
CN117076145B (en) * 2023-08-22 2024-02-23 电子科技大学 Safe and efficient STM synchronization method based on fine-granularity read-write lock

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7730491B2 (en) * 2005-08-30 2010-06-01 Intel Corporation Fair scalable reader-writer mutual exclusion
CN101510162B (en) * 2009-03-26 2011-11-02 浙江大学 Software transaction internal memory implementing method based on delaying policy
US20120005684A1 (en) * 2010-07-02 2012-01-05 Fiji Systems, Inc. Priority rollback protocol

Also Published As

Publication number Publication date
CN102929711A (en) 2013-02-13

Similar Documents

Publication Publication Date Title
CN102929711B (en) A kind of implementation method of real-time transactional memory of software
Wang et al. Mostly-optimistic concurrency control for highly contended dynamic workloads on a thousand cores
US8417897B2 (en) System and method for providing locale-based optimizations in a transactional memory
Ramadan et al. Dependence-aware transactional memory for increased concurrency
Ren et al. Lightweight locking for main memory database systems
US8438568B2 (en) Speculative thread execution with hardware transactional memory
Rossbach et al. TxLinux: Using and managing hardware transactional memory in an operating system
CN101452400B (en) Method and system for processing transaction buffer overflow in multiprocessor system
US7962923B2 (en) System and method for generating a lock-free dual queue
AU2016244128B2 (en) Processing database transactions in a distributed computing system
US8694706B2 (en) System and method for NUMA-aware locking using lock cohorts
JP5635620B2 (en) Performing mode switching in an infinite transactional memory (UTM) system
US8689221B2 (en) Speculative thread execution and asynchronous conflict events
US8775837B2 (en) System and method for enabling turbo mode in a processor
US20130290967A1 (en) System and Method for Implementing NUMA-Aware Reader-Writer Locks
US20120005530A1 (en) System and Method for Communication Between Concurrent Transactions Using Transaction Communicator Objects
US7945741B2 (en) Reservation required transactions
CN104487946A (en) Method, apparatus, and system for adaptive thread scheduling in transactional memory systems
JP2003044452A (en) Method and system for packaging synchronous memory barrier
Dhoked et al. An adaptive approach to recoverable mutual exclusion
Padhye et al. Scalable transaction management with snapshot isolation on cloud data management systems
CN109901913B (en) Multithread transaction storage programming model method capable of controlling repeated execution times
Kim et al. $ C\!\!-\!\! Lock $: Energy Efficient Synchronization for Embedded Multicore Systems
Ren et al. High-performance GPU transactional memory via eager conflict detection
Duan et al. Asymmetric memory fences: Optimizing both performance and implementability

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160810