“Conocimiento Hardware>CPUs

¿Cómo gestiona el asignador de losa de la asignación de memoria en los sistemas operativos?

2014/12/7
Un asignador de losa es un algoritmo de asignación de memoria utilizado en los núcleos de sistemas operativos (y a veces en otros sistemas que requieren gestión de memoria de alto rendimiento) para administrar eficientemente la memoria para los objetos del núcleo. A diferencia de los asignadores más simples como el sistema de amigos o una lista gratuita simple, tiene como objetivo minimizar la fragmentación interna y externa y mejorar el rendimiento al almacenar en caché las estructuras de datos utilizadas con frecuencia.

Así es como funciona:

1. Caches: El asignador de losa divide la memoria en cachés. Cada caché se dedica a un tipo específico de objeto de núcleo (por ejemplo, inodos, sockets, buffers de red). Esto es clave para su eficiencia.

2. losas: Dentro de cada caché, la memoria se divide aún más en losas. Una losa es un bloque contiguo de memoria lo suficientemente grande como para contener varias instancias del tipo de objeto asociado con ese caché. El tamaño de una losa se elige para que coincida con el tamaño del objeto más cualquier relleno necesario (para alineación).

3. Creación de objetos: Cuando se necesita un nuevo objeto de un tipo en particular, el asignador primero verifica el caché asociado con ese tipo de objeto.

4. Listas gratuitas: Dentro de cada losa, hay una lista gratuita que contiene punteros a los objetos disponibles. Cuando se solicita un objeto, el asignador verifica primero esta lista gratuita. Si se encuentra un objeto libre, simplemente se toma de la lista, minimizando la sobrecarga de asignación.

5. Asignación de losa: Si la lista gratuita dentro de una losa está vacía, el asignador podría tomar una losa completamente nueva del grupo de memoria general del sistema.

6. Gestión de losa: Las losas pueden estar en uno de varios estados:

* lleno: Todos los objetos en la losa están en uso.

* parcial: Algunos objetos están en uso y otros son gratuitos.

* vacío: Todos los objetos son gratuitos.

7. Reutilización y desasisionada: Cuando ya no se necesita un objeto, se devuelve a la lista gratuita de su losa, lo que lo hace inmediatamente disponible para su reutilización. Las losas vacías a menudo se devuelven al grupo de memoria del sistema para conservar la memoria.

8. Minimizar la fragmentación: Al dedicar las losas a tipos de objetos específicos y reutilizar losas, el asignador de losas reduce drásticamente la fragmentación interna (espacio desperdiciado dentro de los bloques asignados) y la fragmentación externa (espacio desperdiciado entre bloques asignados). Debido a que los tamaños de objetos se conocen de antemano, no hay necesidad de buscar y dividir.

Ventajas del asignador de losa:

* velocidad: Asignación y desastre muy rápida debido al uso gratuito de la lista y un tiempo de búsqueda mínimo.

* Fragmentación reducida: Utiliza eficientemente la memoria evitando la fragmentación.

* eficiencia de caché: Reduce la fallas de caché manteniendo los objetos relacionados juntos en losas.

* escalabilidad: Maneja un alto número de asignaciones de objetos y desacoplaciones de manera eficiente.

Desventajas del asignador de losa:

* Subpente de memoria: Cada caché y losa tiene alguna sobrecarga en términos de estructuras de gestión (listas gratuitas, metadatos).

* Complejidad: Más complejo de implementar que los asignadores más simples.

* Costo de configuración inicial: La creación e inicialización de cachés y losas consume algún tiempo inicialmente.

En resumen, el asignador de losas es una técnica sofisticada de gestión de memoria particularmente adecuada para las necesidades de los núcleos del sistema operativo donde el rendimiento y el uso eficiente de la memoria son críticos, especialmente para objetos pequeños con frecuencia asignados y desacatados. Se logra un buen equilibrio entre la velocidad y la eficiencia de la memoria al evitar los problemas de fragmentación de métodos más simples.

CPUs
¿Cuál es el controlador o procesador más rápido por qué?
¿Qué es el die y la oblea en los componentes de la CPU?
Cómo dar formato a una CPU manualmente con Windows XP
¿Cuál es la CPU más rápida que haya hecho?
Cómo reemplazar una placa base y CPU Dell
¿Capacidad máxima de disco duro que un procesador puede abordar?
¿Qué significa un procesador de escritorio?
¿Cuál es un posible síntoma para fallar en la CPU?
Conocimiento de la computadora © http://www.ordenador.online