Gestión de memoria en un soporte de datos portátil.
Procedimiento en un soporte de datos portátil (10) con una memoria volátil (50) y una gestión de memoriadinámica (50) de una zona de memoria heap (51) de la memoria volátil (50),
en el que la gestión de memoria (44)puede llevar a cabo una depuración automática de la zona de memoria heap (51) para proporcionar memoria libre, yen el que la gestión de memoria (44), durante una ejecución de una operación de proceso con tiempo de ejecucióncrítico en el soporte de datos (10), desactiva la depuración automática de memoria (S1) y, a petición de la operaciónde proceso (S2), proporciona memoria libre dentro de un intervalo de tiempo que no influye negativamente en laejecución de la operación de proceso con tiempo de ejecución crítico (S3-S12), caracterizado porque la memorialibre solicitada se proporciona incluyendo una zona de memoria (52, 61) fuera de la zona de memoria heap (51) (S2-S12), y porque la memoria libre solicitada se pone a disposición en la zona de memoria heap (51) mediantetransferencia de un objeto de memoria (S7-S8) a una zona de memoria (52) de la memoria volátil (50) diferente de lazona de memoria heap (51), o a una zona de memoria (61) de una memoria (60) del soporte de datos (10) diferentede la memoria volátil (50) (S3-S12).
Tipo: Patente Europea. Resumen de patente/invención. Número de Solicitud: E09009987.
Solicitante: GIESECKE & DEVRIENT GMBH.
Nacionalidad solicitante: Alemania.
Dirección: PRINZREGENTENSTRASSE 159 81677 MUNCHEN ALEMANIA.
Inventor/es: KRAMPOSTHUBER,GEORG.
Fecha de Publicación: .
Clasificación Internacional de Patentes:
- G06F12/02 FISICA. › G06 CALCULO; CONTEO. › G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › G06F 12/00 Acceso, direccionamiento o asignación en sistemas o arquitecturas de memoria (entrada digital a partir de, o salida digital hacia soportes de registro, p. ej. hacia unidades de almacenamiento de disco G06F 3/06). › Direccionamiento o asignación; Traslado (secuenciación de direcciones de programa G06F 9/00; disposiciones para seleccionar una dirección en una memoria digital G11C 8/00).
PDF original: ES-2407632_T3.pdf
Fragmento de la descripción:
Gestión de memoria en un soporte de datos portátil
La presente invención se refiere a un procedimiento para la gestión dinámica de una zona de memoria heap (montón) o memoria dinámica de un soporte de datos portátil, y a un soporte de datos portátil con una gestión de memoria de este tipo.
Los soportes de datos portátiles, por ejemplo tarjetas chip, tarjetas de telefonía móvil o similares disponen de pocos recursos de memoria volátil debido a su diseño, por ejemplo en una memoria de trabajo RAM volátil, a la que una gestión de memoria del soporte de datos le asigna los procesos correspondientes ejecutados de forma concurrente. La memoria libre requerida por un proceso durante el tiempo de ejecución se pone a disposición de éste en una zona de memoria heap lo más coherente posible de la memoria volátil, y la memoria ya no requerida por un proceso se libera para que a continuación esté disposición de otros procesos como memoria libre. Por consiguiente, los procesos concurrentes compiten por la memoria libre limitada de la zona de memoria heap.
La asignación y liberación continua de memoria libre por la gestión de memoria implica una fragmentación progresiva de la zona de memoria heap, pero ésta se puede evitar con una desfragmentación o compactación. Por otro lado es necesario encontrar y liberar en la zona de memoria heap aquellos objetos de memoria que ya no son requeridos por los procesos correspondientes.
Normalmente, estas dos tareas son realizadas por una depuración automática (“Garbage Collection” -recuperación de espacio inutilizado) de la zona de memoria heap, que es ejecutada regularmente o en caso necesario por la gestión de memoria del soporte de datos. Sin embargo, dado que el alcance de la depuración de memoria depende entre otras cosas del tamaño y el grado de fragmentación de la zona de memoria heap, por regla general no se puede prever el momento ni la duración de la depuración de memoria. La depuración de memoria también puede interrumpir la ejecución de un proceso, por ejemplo cuando un proceso requiere memoria libre que previamente se ha de obtener mediante una depuración de memoria. Una interrupción imprevisible de este tipo de la ejecución de un proceso no es deseable, sobre todo en caso de procesos con operaciones con tiempos de ejecución críticos, como por ejemplo en la comunicación de un soporte de datos portátil con un dispositivo de lectura o similares. Sin embargo, estas situaciones se producen a menudo en las zonas de memoria heap limitadas de los soportes de datos portátiles, de modo que en estos casos se requieren frecuentes depuraciones de memoria.
En este contexto, el documento US 2001/0023478 A1 da a conocer una depuración de memoria interrumpible, que puede continuar y finalizar después de la interrupción recurriendo a informaciones de estado de la depuración de memoria interrumpida. El documento WO 2005/045683 también da a conocer una depuración de memoria que puede interrumpirse, pero ésta se puede ejecutar por secciones, por ejemplo dentro del intervalo de tiempo de respuesta disponible para la respuesta a una instrucción externa. De este modo se evitan errores de comunicación debidos a demoras de respuesta. Sin embargo, esta interrupción y continuación de una depuración de memoria requiere estructuras y procesos de gestión especiales, que suponen una carga adicional para los recursos limitados de un soporte de datos portátil.
Además, el documento DE 10040974 A1 da a conocer una ampliación virtual de una zona de memoria de pila volátil de un soporte de datos portátil mediante la transferencia de objetos de la memoria de pila a una memoria no volátil. Pero esto no soluciona el problema del retardo de operaciones de proceso con tiempos de ejecución críticos por una depuración de memoria en la zona de memoria heap.
El documento WO 99/64955 A1 da a conocer un procedimiento de garbage collection que se desarrolla en una memoria heap, en el que la memoria heap se expande y contrae dinámicamente, es decir aumenta y disminuye de tamaño, correspondientemente al espacio de memoria necesario.
El documento US 2007/0192388 A1 da a conocer un procedimiento para la depuración de memoria en el que solo se realiza una garbage collection de una memoria heap una vez ejecutados los hilos (threads [operaciones de proceso]) en tiempo real, correspondientemente al preámbulo de la reivindicación 1.
Por consiguiente, el objetivo de la presente invención consiste en proponer un procedimiento para la gestión dinámica de una zona de memoria heap, que evite las desventajas de la depuración automática de memoria arriba mencionadas.
Este objetivo se resuelve según la invención mediante un procedimiento y un soporte de datos portátil con las características indicadas en las reivindicaciones independientes. Las reivindicaciones subordinadas a éstas describen configuraciones ventajosas y perfeccionamientos de la invención.
La presente invención se basa en la idea fundamental de suspender o desactivar la depuración automática de memoria en el soporte de datos durante el tiempo de ejecución de una operación de proceso con tiempo de ejecución crítico, de tal modo que la depuración de memoria no se inicie durante el tiempo de ejecución de la operación de proceso correspondiente. Durante la desactivación de la depuración de memoria, si la operación de proceso correspondiente requiere memoria libre con un tamaño que no puede ser proporcionado de momento por la zona de memoria heap, la memoria libre requerida se proporciona de otro modo (es decir, no mediante una depuración de memoria) en un intervalo de tiempo tan corto que no influye negativamente en el comportamiento de tiempo de ejecución de la operación de proceso con tiempo de ejecución crítico. En particular, la memoria libre es asignada a la operación de proceso con tiempo de ejecución crítico en un intervalo de tiempo más corto que el que sería posible mediante la depuración de memoria.
Esta puesta a disposición de memoria libre en un plazo breve para operaciones de proceso con tiempos de ejecución críticos, en un modo de tiempo de ejecución optimizado alternativo a la depuración automática de memoria usual, está configurada en particular de tal modo que la memoria libre requerida puede ser ponerse a disposición en un intervalo de tiempo previsible con suficiente exactitud, de modo que, en cuanto la operación de proceso con tiempo de ejecución crítico transmite una petición de memoria libre, ya existe la seguridad de que la asignación puede tener lugar a tiempo de modo que no resulte perjudicado el comportamiento de tiempo de ejecución de la operación de proceso.
A diferencia de la depuración automática de memoria, que puede conducir a interrupciones (en gran medida imprevisibles) de una operación de proceso, ya que la duración de la interrupción depende de parámetros en los que no se puede influir sin más, como por ejemplo el tamaño de la zona de memoria heap a depurar, el grado de fragmentación o los objetos de memoria que ya no son necesarios, el intervalo de tiempo para la proporcionar memoria libre en el marco del modo de tiempo de ejecución optimizado está por debajo de un umbral crítico a partir del cual es de esperar un perjuicio del comportamiento de tiempo de ejecución de una operación de proceso con tiempo de ejecución crítico. Esto no implica ningún gasto de gestión especial para la gestión de memoria o para un sistema operativo del soporte de datos.
Un procedimiento según la invención en un soporte de datos portátil con una zona de memoria heap gestionada dinámicamente en una memoria volátil, en el que una gestión de memoria para proporcionar memoria libre puede llevar a cabo una depuración automática de la zona de memoria heap, consiste en las siguientes etapas:
- desactivación de la depuración automática de la zona de memoria heap mediante la gestión de memoria durante la realización de una operación de proceso con tiempo de ejecución crítico por un procesador del soporte de datos, y activación de un modo de tiempo de ejecución optimizado;
- puesta a disposición de memoria libre para la operación de proceso con tiempo de ejecución crítico sin influir negativamente en la ejecución de la operación de proceso con tiempo de ejecución crítico, si la operación de proceso emite una petición de memoria libre en el marco del modo de tiempo de ejecución optimizado;
- desactivación del modo de tiempo de ejecución optimizado y activación de la depuración automática de memoria una vez finalizada la operación de proceso con tiempo de ejecución crítico.
Correspondientemente, un soporte de datos según... [Seguir leyendo]
Reivindicaciones:
1. Procedimiento en un soporte de datos portátil (10) con una memoria volátil (50) y una gestión de memoria dinámica (50) de una zona de memoria heap (51) de la memoria volátil (50) , en el que la gestión de memoria (44) puede llevar a cabo una depuración automática de la zona de memoria heap (51) para proporcionar memoria libre, y en el que la gestión de memoria (44) , durante una ejecución de una operación de proceso con tiempo de ejecución crítico en el soporte de datos (10) , desactiva la depuración automática de memoria (S1) y, a petición de la operación de proceso (S2) , proporciona memoria libre dentro de un intervalo de tiempo que no influye negativamente en la ejecución de la operación de proceso con tiempo de ejecución crítico (S3-S12) , caracterizado porque la memoria libre solicitada se proporciona incluyendo una zona de memoria (52, 61) fuera de la zona de memoria heap (51) (S2-S12) , y porque la memoria libre solicitada se pone a disposición en la zona de memoria heap (51) mediante transferencia de un objeto de memoria (S7-S8) a una zona de memoria (52) de la memoria volátil (50) diferente de la zona de memoria heap (51) , o a una zona de memoria (61) de una memoria (60) del soporte de datos (10) diferente de la memoria volátil (50) (S3-S12) .
2. Procedimiento según la reivindicación 1, caracterizado porque la memoria libre solicitada se proporciona en una zona de memoria de pila (52) de la memoria volátil (50) .
3. Procedimiento según la reivindicación 2, caracterizado porque la memoria libre solicitada se proporciona mediante la transferencia de un objeto de memoria a una zona de memoria (61) de la memoria permanente (60) del soporte de datos (10) (S7-S8) .
4. Procedimiento según una de las reivindicaciones 1 a 3, caracterizado porque la memoria libre solicitada solo se proporciona mediante la transferencia de un objeto de memoria (S7-S8) cuando la memoria libre coherente presente en un espacio de memoria (52) de la memoria volátil (50) diferente de la zona de memoria heap (51) , o en una zona de memoria (61) de una memoria (60) del soporte de datos (10) diferente de la memoria volátil (50) , es menor que la memoria libre solicitada (S4) .
5. Procedimiento según una de las reivindicaciones 1 a 4, caracterizado porque se selecciona un objeto de memoria a transferir tan grande como sea posible (S5) , preferentemente un objeto de memoria cuyo tamaño corresponde a un múltiplo del tamaño de una página de memoria de la zona de memoria (52) de la memoria volátil
(50) diferente de la zona de memoria heap (51) , o de la zona de memoria (61) de una memoria (60) del soporte de datos (10) diferente de la memoria volátil (50) .
6. Procedimiento según una de las reivindicaciones 1 a 5, caracterizado porque la memoria libre que queda en la zona de memoria heap (51) después de proporcionar la memoria libre solicitada se marca para poder proporcionar memoria libre en caso de otra petición de memoria libre por una operación de proceso con tiempo de ejecución crítico.
7. Procedimiento según una de las reivindicaciones 1 a 6, caracterizado porque en la zona de memoria (52) de la memoria volátil (50) diferente de la zona de memoria heap (51) , o en una zona de memoria (61) de una memoria
(60) del soporte de datos (10) diferente de la memoria volátil (50) , se establece una estructura de memoria heap de tal modo que un objeto de memoria transferido perteneciente a un proceso está disponible para la posterior ejecución del proceso.
8. Procedimiento según una de las reivindicaciones 1 a 7, caracterizado porque la gestión de memoria (44) reconoce (S1) una operación de proceso con tiempo de ejecución crítico a ejecutar y a continuación desactiva la depuración automática de memoria hasta haberse ejecutado la operación de proceso con tiempo de ejecución crítico.
9. Procedimiento según una de las reivindicaciones 1 a 8, caracterizado porque un proceso de sistema o aplicación ordena a la gestión de memoria (44) la desactivación de la depuración automática de memoria.
10. Soporte de datos portátil (10) que incluye un procesador (30) , una memoria volátil (50) , un sistema operativo (42) con una gestión de memoria (44) , y al menos una aplicación (64) ejecutable como proceso en el procesador (30) , estando configurada la gestión de memoria (44) para llevar a cabo una depuración automática de una zona de memoria heap (51) de la memoria volátil (50) con el fin de proporcionar memoria libre, y estando configurada también la gestión de memoria para desactivar la depuración automática de memoria durante una ejecución de una operación de proceso con tiempo de ejecución crítico por el procesador (30) y para, al recibir una petición de memoria libre de la operación de proceso, proporcionar memoria libre dentro de un intervalo de tiempo que no influye negativamente en la ejecución de la operación de proceso con tiempo de ejecución crítico, caracterizado porque la gestión de memoria (44) está configurada además de tal modo que la memoria libre solicitada se proporciona incluyendo una zona de memoria (52, 61) fuera de la zona de memoria heap (51) (S2-S12) , y porque la memoria libre solicitada se proporciona en la zona de memoria heap (51) mediante transferencia de un objeto de memoria (S7-S8) a una zona de memoria (52) de la memoria volátil (50) diferente de la zona de memoria heap (51) ,
o a una zona de memoria (61) de una memoria (60) del soporte de datos (10) diferente de la memoria volátil (50) (S3-S12) .
11. Soporte de datos (10) según la reivindicación 10, caracterizado porque la gestión de memoria (44) está preparada para ejecutar un procedimiento según una de las reivindicaciones 1 a 9.
12. Soporte de datos (10) según la reivindicación 10 u 11, caracterizado porque está configurado como tarjeta chip, tarjeta Java, tarjeta multimedia segura, tarjeta de telefonía móvil o medio de almacenamiento USB.
REFERENCIAS CITADAS EN LA DESCRIPCIÓN
La lista de referencias citada por el solicitante lo es solamente para utilidad del lector, no formando parte de los documentos de patente europeos. Aún cuando las referencias han sido cuidadosamente recopiladas, no pueden excluirse errores u omisiones y la OEP rechaza toda responsabilidad a este respecto.
Documentos de patente citados en la descripción
•US 20010023478 A1 [0005] • WO 9964955 A1 [0007]
•WO 2005045683 A [0005] • US 20070192388 A1 [0008]
•DE 10040974 A1 [0006]
Patentes similares o relacionadas:
Almacenamiento de datos gráficos comprimidos en ancho de banda, del 6 de Noviembre de 2019, de QUALCOMM INCORPORATED: Un procedimiento, que comprende: almacenar, mediante al menos un procesador, una pluralidad de datos gráficos comprimidos en ancho de banda en una pluralidad respectiva […]
Método de procesado de datos, aparato de almacenamiento, disco de estado sólido y sistema de almacenamiento, del 28 de Agosto de 2019, de HUAWEI TECHNOLOGIES CO., LTD.: Un método de procesado de datos, aplicado a un sistema de almacenamiento, en donde el sistema de almacenamiento comprende un anfitrión, un controlador y un […]
Gestión de memoria automática que usa una unidad de gestión de memoria, del 24 de Julio de 2019, de aicas GmbH: Método implementado por ordenador , para actuar sobre un módulo automático de gestión de memoria en un sistema informático que tiene una memoria de acceso […]
Uso de compresión de memoria para reducir la carga de compromiso de memoria, del 6 de Mayo de 2019, de Microsoft Technology Licensing, LLC: Un método de reducir una cantidad de compromiso de memoria para un programa en un dispositivo de cálculo , comprendiendo el método: determinar […]
Controlador de acceso a memoria, sistemas y procedimientos para optimizar los tiempos de acceso a memoria, del 9 de Enero de 2019, de QUALCOMM INCORPORATED: Un controlador de memoria , que comprende: un controlador configurado para acceder al menos a una ubicación de memoria correspondiente […]
Sistema de gestión de datos y método, del 30 de Noviembre de 2018, de LIFESCAN SCOTLAND LIMITED: Un sistema de gestión de datos que comprende: - una primera sección de memoria no volátil dividida en una pluralidad de ubicaciones […]
Método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT, nodo y sistema, del 21 de Noviembre de 2018, de HUAWEI TECHNOLOGIES CO., LTD.: Un método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT que comprende un primer nodo de almacenamiento y un segundo […]
Método de gestión de la asignación de memoria flash en un token electrónico, del 27 de Diciembre de 2017, de GEMALTO SA: Un método para gestionar la asignación de memoria flash en un token electrónico (ET), disponiendo dicho token (ET) de una memoria (ME) que comprende […]