El asignador SLOB ( lista simple de bloques ) era uno de los tres asignadores de memoria disponibles en el kernel de Linux hasta la versión 6.3. [ 1 ] Los otros dos son SLAB ( asignador de bloques ) y SLUB . El asignador SLOB está diseñado para requerir poca memoria para su implementación y mantenimiento, para su uso en sistemas pequeños como sistemas embebidos. Desafortunadamente, una limitación importante del asignador SLOB es que sufre mucho de fragmentación externa .
SLOB utiliza actualmente un algoritmo de primer ajuste , que emplea el primer espacio de memoria disponible. En 2008, Linus Torvalds respondió en una lista de correo de Linux [ 2 ] sugiriendo el uso de un algoritmo de mejor ajuste , que busca el bloque de memoria que mejor se adapte a las necesidades. El algoritmo de mejor ajuste encuentra el espacio más pequeño que se ajusta a la cantidad requerida, evitando la pérdida de rendimiento, tanto por fragmentación como por consolidación de memoria.
Por defecto, el kernel de Linux utilizó un sistema de asignación SLAB hasta la versión 2.6.23, cuando la asignación SLUB se convirtió en la predeterminada. Cuando CONFIG_SLABse desactiva la bandera, el kernel vuelve a utilizar el asignador SLOB. [ 3 ] El asignador SLOB se utilizó en DSLinux en la consola portátil Nintendo DS .
Véase también
Referencias
- ↑ "Se ha publicado el kernel 6.4 [ LWN.net ] " .
- ↑ https://elixir.bootlin.com/linux/latest/source/mm/slob.c Documentación y código del asignador SLOB. Consultado el 12 de noviembre de 2010.
- ↑ https://lwn.net/Articles/157944/ slob: introducción del asignador SLOB. Consultado el 12 de noviembre de 2010.
- Algoritmos de gestión de memoria
- núcleo de Linux
- Stubs de Linux