Tripp et al., 2018 - Google Patents
FRC: a high-performance concurrent parallel deferred reference counter for C++Tripp et al., 2018
- Document ID
- 13392577152259721104
- Author
- Tripp C
- Hyde D
- Grossman-Ponemon B
- Publication year
- Publication venue
- Acm Sigplan Notices
External Links
Snippet
We present FRC, a high-performance concurrent parallel reference counter for unmanaged languages. It is well known that high-performance garbage collectors help developers write memory-safe, highly concurrent systems and data structures. While C++, C, and other …
- 239000003471 mutagenic agent 0 abstract description 19
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRICAL DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0269—Incremental or concurrent garbage collection, e.g. in real-time systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRICAL DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for programme control, e.g. control unit
- G06F9/06—Arrangements for programme control, e.g. control unit using stored programme, i.e. using internal store of processing equipment to receive and retain programme
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Programme synchronisation; Mutual exclusion, e.g. by means of semaphores; Contention for resources among tasks
- G06F9/524—Deadlock detection or avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRICAL DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRICAL DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformations of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
- G06F8/4442—Reducing the number of cache misses; Data prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRICAL DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for programme control, e.g. control unit
- G06F9/06—Arrangements for programme control, e.g. control unit using stored programme, i.e. using internal store of processing equipment to receive and retain programme
- G06F9/44—Arrangements for executing specific programmes
- G06F9/4421—Execution paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRICAL DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/30—Information retrieval; Database structures therefor; File system structures therefor
- G06F17/30067—File systems; File servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRICAL DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/30—Information retrieval; Database structures therefor; File system structures therefor
- G06F17/30286—Information retrieval; Database structures therefor; File system structures therefor in structured data stores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRICAL DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for programme control, e.g. control unit
- G06F9/06—Arrangements for programme control, e.g. control unit using stored programme, i.e. using internal store of processing equipment to receive and retain programme
- G06F9/30—Arrangements for executing machine-instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRICAL DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRICAL DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRICAL DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRICAL DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Michael et al. | Idempotent work stealing | |
Marathe et al. | Lowering the overhead of nonblocking software transactional memory | |
Natarajan et al. | Fast concurrent lock-free binary search trees | |
Harris | A pragmatic implementation of non-blocking linked-lists | |
Gramoli | More than you ever wanted to know about synchronization: Synchrobench, measuring the impact of the synchronization on concurrent algorithms | |
Howley et al. | A non-blocking internal binary search tree | |
Yang et al. | A wait-free queue as fast as fetch-and-add | |
Alistarh et al. | Threadscan: Automatic and scalable memory reclamation | |
Shun et al. | Reducing contention through priority updates | |
Brown et al. | Non-blocking interpolation search trees with doubly-logarithmic running time | |
Cohen et al. | Automatic memory reclamation for lock-free data structures | |
Dice et al. | Fast non-intrusive memory reclamation for highly-concurrent data structures | |
Merrifield et al. | Conversion: Multi-version concurrency control for main memory segments | |
Mathew et al. | HydraList: A scalable in-memory index using asynchronous updates and partial replication | |
Arbel et al. | Predicate rcu: An rcu for scalable concurrent updates | |
Ramachandran et al. | A fast lock-free internal binary search tree | |
Bronson et al. | Transactional predication: high-performance concurrent sets and maps for stm | |
Daloze et al. | Efficient and thread-safe objects for dynamically-typed languages | |
Baldassin et al. | Performance implications of dynamic memory allocators on transactional memory systems | |
Alistarh et al. | Forkscan: Conservative memory reclamation for modern operating systems | |
Arbel-Raviv et al. | Reuse, don't recycle: Transforming lock-free algorithms that throw away descriptors | |
Natarajan et al. | FEAST: a lightweight lock-free concurrent binary search tree | |
Tripp et al. | FRC: a high-performance concurrent parallel deferred reference counter for C++ | |
Aftandilian et al. | Asynchronous assertions | |
Gao et al. | Lock-free parallel and concurrent garbage collection by mark&sweep |