0 calificaciones0% encontró este documento útil (0 votos)
12 vistas3 páginas
El documento describe las extensiones realizadas al kernel de Linux para implementar una "Zona Aproximada" de memoria. Esto permite asignar de forma dinámica datos no críticos a una porción de memoria DRAM con menor frecuencia de actualización para ahorrar energía. Se define un indicador GFP_APPROXIMATE que intenta asignar estas páginas y se implementa un asignador personalizado. El hardware se configura con 4 zonas incluyendo ZONE_NORMAL, ZONE_DMA, ZONE_MOVIBLE y la nueva ZONE_APPROXIMATE,
El documento describe las extensiones realizadas al kernel de Linux para implementar una "Zona Aproximada" de memoria. Esto permite asignar de forma dinámica datos no críticos a una porción de memoria DRAM con menor frecuencia de actualización para ahorrar energía. Se define un indicador GFP_APPROXIMATE que intenta asignar estas páginas y se implementa un asignador personalizado. El hardware se configura con 4 zonas incluyendo ZONE_NORMAL, ZONE_DMA, ZONE_MOVIBLE y la nueva ZONE_APPROXIMATE,
El documento describe las extensiones realizadas al kernel de Linux para implementar una "Zona Aproximada" de memoria. Esto permite asignar de forma dinámica datos no críticos a una porción de memoria DRAM con menor frecuencia de actualización para ahorrar energía. Se define un indicador GFP_APPROXIMATE que intenta asignar estas páginas y se implementa un asignador personalizado. El hardware se configura con 4 zonas incluyendo ZONE_NORMAL, ZONE_DMA, ZONE_MOVIBLE y la nueva ZONE_APPROXIMATE,
Unidad Profesional Interdisciplinaria de Ingeniería y Ciencias Sociales y
Administrativas Licenciatura en Ciencias de la Informática
Tarea 3: "Introducing Approximate Memory"
Carrera : Licenciatura En Ciencias De La Informática
Materia : Sistemas Operativos Alumno : Feria Hernández Daniel Shalom Profesor : Hermes Francisco Montes Casiano Secuencia: 3CM32 RESUMEN Zonas de Memoria: Las páginas físicas son las unidades básicas de la memoria del kernel de Linux y no trata todas las páginas de la misma manera, sino que las agrupa en zonas similares para realizar su seguimiento. Dentro de las zonas se encuentran: ZONE_DMA : DMA puede usar páginas dentro de esta zona hardware. ZONE_DMA32 : esta zona es como ZONE DMA pero puede ser accedido solo por dispositivos de 32 bits. ZONA_NORMAL : las páginas dentro de ZONA NORMAL son mapeadas directamente por el núcleo. ZONE_HIGHMEM : esta zona corresponde a la memoria alta y no está directamente mapeado por el núcleo. ZONA_MOVIBLE : a diferencia de las zonas de memoria descritas anteriormente, la zona móvil no tiene un rango físico específico, pero las páginas dentro de esta zona provienen de otras zonas de memoria El alcance de esta zona virtual es para evitar la fragmentación de la memoria. Asignadores: Todas las interfaces proporcionadas por el núcleo para asignar memoria se basan en un algoritmo de bajo nivel con granularidad de tamaño de página, llamado Binary Buddy Allocator. La memoria física se divide en potencia de dos bloques de tamaño, cuando un bloque del tamaño solicitado no está disponible, un el bloque se divide en dos partes y el proceso es iterativo repetido hasta que se produzca un bloque del tamaño solicitado. En el kernel de Linux, la rutina central del asignador de amigos se recibe como parámetro, entre otros, una máscara de bits (llamada gfp mask), que es un conjunto de indicadores que permiten al núcleo determinar el comportamiento del asignador. Estas banderas permiten especificar la zona para la asignación, indicando que el núcleo debe asignar memoria de la zona solicitada si es posible. El asignador considera la zona especificada en la máscara gfp como una indicación y, en algunos casos, dependiendo de la memoria real políticas de utilización y equilibrio, la solicitud podría ser satisfecha seleccionando páginas que pertenecen a zonas jerárquicamente más altas. KERNEL MEMORY MANAGEMENT EXTENSIÓN Creación de zona aproximada: permite que el núcleo para administrar un conjunto de páginas de memoria que se seleccionarán cuando se solicitan asignaciones aproximadas de memoria. De hecho, a una porción de memoria física donde se le ha permitido una cierta cantidad de probabilidad de corrupción de datos para ahorrar energía. la memoria física podría ser, por ejemplo, bancos DRAM con frecuencia de actualización reducida, de acuerdo con esta política, cuando una solicitud de asignación es programada, el kernel de Linux comprueba si la zona seleccionada es adecuada para satisfacer la solicitud; si la zona no es adecuada, el núcleo. El asignador vuelve a una zona jerárquicamente más alta. En otras palabras, si una asignación solicita la ZONA APROXIMADA región, pero las páginas de memoria en esta zona no están disponibles, la solicitud sería satisfecha por uno de los superiores jerárquicamente zonas (por ejemplo, ZONA NORMAL). Esto resultaría en el almacenamiento datos aproximados en memoria exacta y cancelar energía posible ahorro, pero la funcionalidad de la aplicación no sería comprometida. Finalmente, se requiere otro paso para completar la creación de ZONA APROXIMADA: la asociación de una dirección física alcance a esta zona. Este paso, así como el diseño de cada zona de memoria, depende de la arquitectura, por lo que podemos diferentes tamaños y diseños de zona de memoria aproximada, dependiendo de la arquitectura. Asignación aproximada de memoria: El siguiente paso es implementar un asignador personalizado para asignar dinámicamente datos no críticos en ZONE APPROXIMATE, las funciones internas proporcionadas por el kernel para asignar páginas de memoria obtener una máscara de banderas que permite controlar el comportamiento del asignador. Para poder especificar la ZONA APROXIMADA como favorita zona para la asignación, hemos definido un indicador de gfp específico llamado APROXIMADO DE GFP: cuando se establece este indicador, el núcleo intenta asignar memoria usando páginas APROXIMADAS DE ZONA. Otro mecanismo importante de optimización dentro del núcleo que debe tenerse en cuenta es la política de asignación justa. De acuerdo con esta política, el núcleo intenta equilibrar la asignación y solicita entrelazarse entre zonas habilitadas, evitando que una zona está saturada antes que otras zonas. Hardware setup: En particular, dado que en esta arquitectura solo se pueden habilitar cuatro zonas de memoria al mismo tiempo, definimos ZONA NORMAL, ZONA DMA, ZONA MOVIBLE y ZONA APROXIMADA, en esta configuración, la memoria DRAM real (exacta) cubre la dirección ZONE NORMAL y ZONE APPROXIMATE espacios. Allocation tests: Estos registros provienen de el comando dmesg y muestra que ZONA APROXIMADA se ha creado correctamente: nuestra zona es la última zona de memoria del núcleo, después de ZONE DMA y ZONE NORMAL, y se asigna en la memoria física.