Reducing synchronization reliance in garbage collection marking

A technology of garbage collection and marking, applied in the direction of memory address/allocation/relocation, instrumentation, calculation, etc., which can solve problems such as increasing time and hindering user program performance

Pending Publication Date: 2021-09-10
MICROSOFT TECH LICENSING LLC
View PDF0 Cites 2 Cited by
  • Summary
  • Abstract
  • Description
  • Claims
  • Application Information

AI Technical Summary

Problems solved by technology

However, simply reducing the amount of time spent on garbage collection may also reduce the amount of memory reclaimed, and thus hinder the performance of user programs in other ways, for example, by increasing the amount of data exchanged between volatile and non-volatile memory devices time spent

Method used

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
View more

Image

Smart Image Click on the blue labels to locate them in the text.
Viewing Examples
Smart Image
  • Reducing synchronization reliance in garbage collection marking
  • Reducing synchronization reliance in garbage collection marking
  • Reducing synchronization reliance in garbage collection marking

Examples

Experimental program
Comparison scheme
Effect test

Embodiment Construction

[0022] overview

[0023] Many innovations transcend their origins, but understanding their origins can help one understand innovations more fully. In the present case, some of the teachings presented herein are motivated by the technical challenge of reducing the time spent doing garbage collection in a "stop everything" state, while still providing sufficient memory reclamation for user threads. This challenge leads to consideration of technical changes to characteristics such as garbage collection frequency / triggers, garbage collection and user thread execution concurrency, creation of garbage collectors and handling of floating garbage, and sweeping and compaction algorithms. For present purposes, however, the focus is narrow. The inventor contemplates a technical change that reduces the reliance of garbage collector code on certain relatively expensive synchronization instructions (e.g., compare-and-swap, compare-and-set) during the garbage collection marking phase, and ...

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
Login to view more

PUM

No PUM Login to view more

Abstract

Memory reclamation is tailored to avoid certain synchronization instructions, speeding concurrent garbage collection while preserving data integrity and availability. Garbage collection reclaims objects no longer in use, or other unused areas of memory. Pointers are partitioned into address portions holding address values and garbage collection portions having a special bit. Marking code writes only the garbage collection portions, setting the special bit as a mark reference, relocation candidate, etc. Mutator threads may concurrently mutate the entire pointer to update the address, but mutation does not cause incorrect reclamations or failure of operations such as relocation. Execution speed is increased by avoiding certain synchronization instructions in the garbage collector, and using different atomic writes instead. Mutators run in user or kernel address spaces. The garbage collector may enclose partitioned pointers and their use, to avoid runtime errors by code that expects references to be in a canonical nonpartitioned form.

Description

Background technique [0001] In computer programming, garbage collection (GC) helps provide automatic memory management. The "garbage" in question refers to memory space that has been allocated for use by a program, is no longer needed by that program, but is not yet available for use by other programs. The garbage collector attempts to identify these areas of memory so that they can be reclaimed for subsequent reallocation. [0002] Garbage collection can make programming easier by freeing the programmer from needing to manually free data objects that are no longer needed. Garbage collection also helps prevent some runtime errors, thereby enhancing network security by improving data integrity and availability. Many programming languages ​​require garbage collection, or allow garbage collection as an option. Some software development environments allow both garbage collection and manual memory management in a given program. [0003] Efficient implementation of garbage colle...

Claims

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
Login to view more

Application Information

Patent Timeline
no application Login to view more
Patent Type & Authority Applications(China)
IPC IPC(8): G06F12/02
CPCG06F2212/1024G06F12/0269G06F9/30021G06F12/0253G06F2212/1044
Inventor M·Z·史蒂芬斯P·H·杜思德
Owner MICROSOFT TECH LICENSING LLC
Who we serve
  • R&D Engineer
  • R&D Manager
  • IP Professional
Why Eureka
  • Industry Leading Data Capabilities
  • Powerful AI technology
  • Patent DNA Extraction
Social media
Try Eureka
PatSnap group products