En informàtica, la coalescència és una part de la gestió de memòria en què es fusionen dos blocs adjacents lliures de memòria d'ordinador.

La coalescència redueix la fragmentació externa mitjançant la fusió de blocs lliures adjacents; es pot fer amb rapidesa sobre blocs lliures o amb diferiment fins que la pressió d'assignació ho requereixi.

En l'assignació de blocs amics, la coalescència és eficient perquè cada bloc lliure té un amic determinat de manera única; quan tots dos són lliures, es fusionen per formar un bloc més gran.

Alguns assignadors (per exemple, slab) eviten la coalescència reutilitzant objectes de la mateixa mida de les memòries cau, canviant flexibilitat per velocitat i fragmentació reduïda.

Quan un programa ja no requereix certs blocs de memòria, aquests blocs de memòria es poden alliberar. Sense la coalescència, aquests blocs de memòria es mantenen separats entre si en la seva mida original sol·licitada, fins i tot si estan l'un al costat de l'altre. Si una sol·licitud posterior de memòria especifica una mida que no es pot complir amb un nombre enter d'aquests blocs alliberats (potencialment de mida desigual), aquests blocs veïns no es poden assignar per a aquesta sol·licitud. La coalescència alleuja aquest problema establint els blocs veïns de memòria alliberada perquè siguin contigus sense límits, de manera que una part o la totalitat es pugui assignar per a la sol·licitud.

Entre altres tècniques, la coalescència s'utilitza per reduir la fragmentació externa, però no és totalment efectiva. La coalescència es pot fer tan bon punt s'alliberen els blocs, o es pot ajornar fins més tard (conegut com a coalescència diferida ), o potser no es farà en absolut.

La coalescència i tècniques relacionades (per exemple, la compactació) són utilitzades pels gestors de memòria i alguns recol·lectors d'escombraries per recuperar espai i reduir la fragmentació externa.

Referències

Bibliografia Free-Space Management (OSTEP) – textbook chapter covering fragmentation, splitting, and coalescing (PDF). Doug Lea’s malloc (dlmalloc) notes – allocator design details including split/merge (coalescing) How to Access Global Memory Efficiently in CUDA C/C++ Kernels – article by Mark Harris at NVIDIA (global memory coalescing).

Enllaços externs – overview of dynamic storage allocation (coalescing, fragmentation, policies). .Performance Considerations: Memory Coalescing in CUDA – slides from NVIDIA's GPU Teaching Kit (memory coalescing). Categoria:Memòria informàtica Categoria:Terminologia informàtica