发明名称 System and method for implementing reader-writer locks using hardware transactional memory
摘要 Transactional reader-writer locks may leverage available hardware transactional memory (HTM) to simplify the procedures of the reader-writer lock algorithm and to eliminate a requirement for type stable memory An HTM-based reader-writer lock may include an ordered list of client-provided nodes, each of which represents a thread that holds (or desires to acquire) the lock, and a tail pointer. The locking and unlocking procedures invoked by readers and writers may access the tail pointer or particular ones of the nodes in the list using various combinations of transactions and non-transactional accesses to insert nodes into the list or to remove nodes from the list. A reader or writer that owns a node at the head of the list (or a reader whose node is preceded in the list only by other readers' nodes) may access a critical section of code or shared resource.
申请公布号 US9342380(B2) 申请公布日期 2016.05.17
申请号 US201313784965 申请日期 2013.03.05
申请人 Oracle International Corporation 发明人 Dice David;Lev Yosef;Liu Yujie;Luchangco Victor M.;Moir Mark S.
分类号 G06F12/00;G06F9/52;G06F9/46 主分类号 G06F12/00
代理机构 Meyertons, Hood, Kivlin, Kowert & Goetzel, P.C. 代理人 Kowert Robert C.;Meyertons, Hood, Kivlin, Kowert & Goetzel, P.C.
主权项 1. A method, comprising: performing, by a computer: beginning execution of a multithreaded application that comprises one or more requests to acquire a shared reader-writer lock, wherein the shared reader-writer lock comprises a tail pointer and an ordered list of zero or more nodes, wherein the shared reader-writer lock controls access to a critical section of code or a shared resource by concurrently executing threads of the application;a given thread of the application inserting a node in the ordered list of nodes, wherein each node in the ordered list of nodes is owned by a respective thread that holds the shared reader-writer lock or that desires access to the critical section of code or the shared resource in a read-only mode or in a write mode, and wherein only one thread can hold the shared reader-writer lock in a write mode at a time;subsequent to said inserting, the given thread acquiring the shared reader-writer lock in a read-only mode or in a write mode; andsubsequent to said acquiring, the given thread releasing the shared reader-writer lock, wherein said releasing comprises removing the inserted node from the ordered list of nodes;wherein at least one of said inserting or said releasing comprises updating a value of the tail pointer within a hardware transaction that employs a hardware transactional memory (HTM), or modifying a field of at least one node in the ordered list of nodes within a hardware transaction that employs the HTM.
地址 Redwood City CA US
您可能感兴趣的专利