Processing

Please wait...

Settings

Settings

Goto Application

1. WO2017167061 - PARALLEL MARKING PROCESSING METHOD AND DEVICE FOR GARBAGE COLLECTION

Publication Number WO/2017/167061
Publication Date 05.10.2017
International Application No. PCT/CN2017/077446
International Filing Date 21.03.2017
IPC
G06F 12/02 2006.01
GPHYSICS
06COMPUTING; CALCULATING OR COUNTING
FELECTRIC DIGITAL DATA PROCESSING
12Accessing, addressing or allocating within memory systems or architectures
02Addressing or allocation; Relocation
CPC
G06F 12/0253
GPHYSICS
06COMPUTING; CALCULATING; COUNTING
FELECTRIC DIGITAL DATA PROCESSING
12Accessing, addressing or allocating within memory systems or architectures
02Addressing or allocation; Relocation
0223User address space allocation, e.g. contiguous or non contiguous base addressing
023Free address space management
0253Garbage collection, i.e. reclamation of unreferenced memory
G06F 12/0269
GPHYSICS
06COMPUTING; CALCULATING; COUNTING
FELECTRIC DIGITAL DATA PROCESSING
12Accessing, addressing or allocating within memory systems or architectures
02Addressing or allocation; Relocation
0223User address space allocation, e.g. contiguous or non contiguous base addressing
023Free address space management
0253Garbage collection, i.e. reclamation of unreferenced memory
0269Incremental or concurrent garbage collection, e.g. in real-time systems
G06F 2009/45583
GPHYSICS
06COMPUTING; CALCULATING; COUNTING
FELECTRIC DIGITAL DATA PROCESSING
9Arrangements for program control, e.g. control units
06using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
44Arrangements for executing specific programs
455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
45533Hypervisors; Virtual machine monitors
45558Hypervisor-specific management and integration aspects
45583Memory management, e.g. access or allocation
G06F 2212/1024
GPHYSICS
06COMPUTING; CALCULATING; COUNTING
FELECTRIC DIGITAL DATA PROCESSING
2212Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
10Providing a specific technical effect
1016Performance improvement
1024Latency reduction
G06F 2212/1044
GPHYSICS
06COMPUTING; CALCULATING; COUNTING
FELECTRIC DIGITAL DATA PROCESSING
2212Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
10Providing a specific technical effect
1041Resource optimization
1044Space efficiency improvement
G06F 2212/657
GPHYSICS
06COMPUTING; CALCULATING; COUNTING
FELECTRIC DIGITAL DATA PROCESSING
2212Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
65Details of virtual memory and virtual address translation
657Virtual address space management
Applicants
  • 阿里巴巴集团控股有限公司 ALIBABA GROUP HOLDING LIMITED
  • 吴哲锋 WU, Zhefeng [CN]/[CN] (US)
  • 杨江华 YANG, Jianghua [CN]/[CN] (US)
Inventors
  • 吴哲锋 WU, Zhefeng
  • 杨江华 YANG, Jianghua
Agents
  • 北京国昊天诚知识产权代理有限公司 CO-HORIZON INTELLECTUAL PROPERTY INC.
Priority Data
201610187840.229.03.2016CN
Publication Language Chinese (ZH)
Filing Language Chinese (ZH)
Designated States
Title
(EN) PARALLEL MARKING PROCESSING METHOD AND DEVICE FOR GARBAGE COLLECTION
(FR) PROCÉDÉ ET DISPOSITIF DE TRAITEMENT PARALLÈLE DE MARQUAGE POUR RÉCUPÉRATION DE FRAGMENTS
(ZH) 用于垃圾回收的并行标记处理方法及装置
Abstract
(EN)
A marking method and device for garbage collection, wherein the method comprises: traversing, according to a corresponding relationship between a memory block in a virtual machine heap and N marked threads, a first object in the virtual machine heap, wherein N is an integer greater than 1, a memory volume occupied by the N marked threads is pre-configured, and each of the marked threads at least comprises: one private stack (101); pushing a first pointer of a first object being currently processed onto a private stack of a marked thread corresponding to a memory block where the first object is located, and performing, according to a push state of the first pointer, first marking processing on the first object (102); after traversing of the first object is completed, sending a thread initiation instruction to the N marked threads, such that the N marked threads are able to synchronously perform marking processing for garbage collection according to the push state of the first pointer in the respective private stacks of the N marked threads (103). In the present invention, parallel marking processing of multiple threads can be realized using limited internal memory, improving the overall garbage collection performance.
(FR)
L'invention concerne un procédé et dispositif de marquage pour récupération de fragments, le procédé comportant les étapes consistant à: parcourir, d'après une relation de correspondance entre un bloc de mémoire dans un amas de machines virtuelles et N fils marqués, un premier objet dans l'amas de machines virtuelles, N étant un entier supérieur à 1, un volume de mémoire occupé par les N fils marqués étant préconfiguré, et chacun des fils marqués comportant au moins: une pile privée (101); insérer un premier pointeur d'un premier objet actuellement en cours de traitement sur une pile privée d'un fil marqué correspondant à un bloc de mémoire où est situé le premier objet, et effectuer, en fonction d'un état d'insertion du premier pointeur, un premier traitement de marquage sur le premier objet (102); après avoir achevé le parcours du premier objet, envoyer une instruction de déclenchement de fil aux N fils marqués, de telle façon que les N fils marqués pussent effectuer de façon synchrone un traitement de marquage pour récupération de fragments en fonction de l'état d'insertion du premier pointeur dans les piles privées respectives des N fils marqués (103). Dans la présente invention, un traitement parallèle de marquage de fils multiples peut être réalisé en utilisant une mémoire interne limitée, améliorant les performances d'ensemble de récupération de fragments.
(ZH)
一种用于垃圾回收的标记方法及装置,通过根据虚拟机堆中的内存块与N个标记线程的对应关系,遍历所述虚拟机堆中的第一对象,其中,N为大于1的整数,N个标记线程占用的内存容量是预先设置的,每个标记线程至少包括:1个私有栈(101);将当前处理的第一对象的第一指针压入与该第一对象所在的内存块对应的标记线程的私有栈,根据所述第一指针的压入情况对所述第一对象进行第一标记处理(102);对所述第一对象遍历完成后,向所述N个标记线程发送线程启动指令,以使所述N个标记线程根据各自私有栈中所述第一指针的压入情况,同步进行用于垃圾回收的标记处理(103)。由此,利用有限的内存实现多线程的并行标记处理,提高整个垃圾回收的性能。
Latest bibliographic data on file with the International Bureau