Gestión de almacenamiento en un soporte de almacenamiento de datos portátil.
Procedimiento para gestión dinámica de recursos de memoria (50),
en el que una primera gestión de memoria(44) gestiona dinámicamente primeras porciones (A1, A2, ..., An) de los recursos de memoria (50) y una segundagestión de memoria (46) prevista para memorias de pila, independiente de la primera gestión de memoria (44),gestiona dinámicamente segundas porciones (B1, B2, ..., Bn) de los recursos de memoria (50) diferentes de lasprimeras porciones (A1, A2, ..., An), caracterizado porque
- los recursos de memoria (50) son los de un soporte de datos (10) portátil,
- dos dispositivos de gestión de memoria independientes (44, 46) de un sistema operativo (42) del soporte de datos(10) realizan la primera y la segunda gestión de memoria de tal modo que las primeras porciones (A1, A2, ..., An) ylas segundas porciones (B1, B2, ..., Bn) de los recursos de memoria volátiles (50) del soporte de datos (10) songestionadas dinámicamente de forma exclusiva por el primer (44) o el segundo dispositivo de gestión de memoria(46), respectivamente,
- el primer dispositivo de gestión de memoria (44) y el segundo dispositivo de gestión de memoria (46) estánintegrados en una máquina virtual de hilo de ejecución múltiple (multithread) del sistema operativo (42) y gestionandinámicamente los recursos de memoria (50) como componentes de una gestión de memoria libre de la máquinavirtual,
- la máquina virtual ejecuta al menos un hilo de ejecución (thread) y el primer dispositivo de gestión de memoria (44)gestiona dinámicamente primeras porciones (A1, A2, ..., An) de los recursos de memoria (50) para aquellos objetosdel hilo o hilos de ejecución (thread/threads) que son referenciados por otros objetos y/o que por su partereferencian otros objetos, y el segundo dispositivo de gestión de memoria (46) gestiona dinámicamente segundasporciones (B1, B2, ..., Bn) de los recursos de memoria (50) para memorias de pila de los objetos del hilo o hilos deejecución (thread/threads), y
- el segundo dispositivo de memoria (46) también gestiona dinámicamente segundas porciones (B1, B2, ..., Bn) delos recursos de memoria (50) para aquellos objetos del hilo o hilos de ejecución (thread/threads) que no sonreferenciados o que solo son referenciados desde una memoria de pila.
Tipo: Patente Europea. Resumen de patente/invención. Número de Solicitud: E09009988.
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-2404051_T3.pdf
Fragmento de la descripción:
Gestión de almacenamiento en un soporte de almacenamiento de datos portátil
La presente invención se refiere a un procedimiento para gestionar recursos de memoria en un soporte de datos portátil y a un soporte de datos con una gestión de memoria de este tipo,
Los recursos de memoria de una memoria volátil de un soporte de datos portátil son asignados por una gestión de memoria del soporte de datos a los procesos ejecutados de forma concurrente por un procesador o “hilos de ejecución (threads) ” (denominados “procesos de poco peso”) , pudiendo consistir un proceso en varios threads ejecutables a su vez de forma concurrente.
Para gestionar los recursos de memoria requeridos por un proceso o thread se conocen en particular las dos estructuras de memoria abstractas de “pila (stack) ” y “montículo (heap) ”. La “stack”, designada en adelante como memoria de pila, representa un área de memoria estructurada de cada proceso o thread ejecutado, asignada individualmente a dicho proceso o hilo (thread) . Sirve para almacenar variables locales, resultados intermedios o similares, y se gestiona mediante las, así llamadas, operaciones “push” (inserción) y “pop” (extracción) . Por regla general, la necesidad de memoria para la memoria de pila de procesos o threads ya se conoce durante la compilación del programa correspondiente. En cambio, el montículo o montón (heap) representa un área de memoria a la que se le pueden solicitar recursos de memoria durante el tiempo de ejecución de un proceso o thread, cuyo tamaño y momento de solicitud todavía no eran conocidos durante la compilación del programa. En principio, un único montículo (heap) es suficiente para gestionar los recursos de memoria solicitados por todos los procesos o threads. En este escenario, la gestión de memoria de un sistema operativo tiene la misión de proporcionar suficientes recursos de memoria físicos para las estructuras lógicas de la memoria de pila, por ejemplo en la memoria RAM volátil del soporte de datos.
En este contexto resulta ventajoso que la memoria física prevista para una memoria de pila sea esencialmente coherente, ya que de lo contrario no es posible aprovechar las ventajas de la estructura lógica simple de la memoria de pila. Sin embargo, en caso de un sistema operativo multithread (hilos de ejecución múltiples) , que puede ejecutar varios procesos/threads de forma concurrente, se plantea el problema de que a cada proceso/thread se le ha de asignar previamente un área de memoria constante para la memoria de pila correspondiente. Sobre todo en caso de aparatos con recursos de memoria limitados, como por ejemplo tarjetas chip o similares, esto conduce a un consumo de memoria innecesariamente alto, ya que en muy pocos casos todas las memorias de pila utilizan realmente la totalidad del área de memoria asignada.
Por ello, los recursos de memoria para las memorias de pila necesarias se gestionan de forma dinámica (es decir, las áreas de memoria se asignan y liberan sobre demanda, sin que se conozca previamente el momento de la solicitud y/o el tamaño solicitado) asignando a un proceso/thread un área de memoria para su memoria de pila únicamente cuando se genera el proceso/thread. Sin embargo esto implica una fragmentación progresiva de la memoria, ya que una memoria libre que en principio es suficientemente grande se va dividiendo con el paso del tiempo en numerosas secciones de memoria pequeñas, lo que impide asignar después grandes recursos de memoria coherentes.
Esta fragmentación de la memoria se puede eliminar mediante una “garbage collection” (recuperación de espacio inutilizado) , en la que por un lado primero se liberan las áreas de memoria asignadas que ya no son requeridas por los procesos/threads correspondientes y por otro lado se compactan al menos partes de la memoria, es decir, los recursos de memoria asignados se “aproximan entre sí” de tal modo que se forman de nuevo áreas de memoria coherentes más grandes. Sin embargo, por regla general la gestión de memoria del sistema operativo realiza la garbage collection de forma autónoma sin que puedan influir en ello los procesos/threads ejecutados. A causa de ello, un proceso/thread puede quedar interrumpido un tiempo excepcionalmente largo durante su ejecución, lo que resulta particularmente desventajoso en relación con los procesos/threads que han de satisfacer requisitos en tiempo real.
Por consiguiente, el objetivo de la invención consiste en proponer un procedimiento para la gestión dinámica de recursos de memoria que evite las desventajas anteriormente descritas.
El documento US 4.445.170 da a conocer un procedimiento para la gestión dinámica de recursos de memoria, en el que una primera gestión de memoria gestiona dinámicamente primeras porciones de los recursos de memoria y una segunda gestión de memoria, independiente de la primera gestión de memoria, gestiona dinámicamente segundas porciones de los recursos de memoria diferentes de las primeras porciones, de acuerdo con el preámbulo de la reivindicación 1. La primera gestión de memoria gestiona datos. La segunda gestión de memoria gestiona una memoria de pila (stack) .
El documento US 5.727.185 da a conocer un procedimiento para la gestión dinámica de la memoria libre de un sistema informático, en el que la memoria libe se divide en dos áreas de memoria lógica con diferentes condiciones de acceso. En las áreas de memoria están almacenados por ejemplo datos de usuario.
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 gestionar determinadas porciones de los recursos de memoria mediante una segunda gestión de memoria, diferente de la gestión de memoria usual, de tal modo que dichas porciones gestionadas de otro modo ya no están sometidas a la usual garbage collection. Por consiguiente, un procedimiento según la invención para la gestión dinámica de recursos de memoria de un soporte de datos se caracteriza porque una primera gestión de memoria gestiona dinámicamente primeras porciones de los recursos de memoria del soporte de datos y una segunda gestión de memoria, independiente de la primera gestión de memoria, gestiona dinámicamente segundas porciones de los recursos de memoria diferentes de las primeras porciones.
De este modo, por un lado se puede poner a disposición una segunda gestión de memoria que está adaptada especialmente a los requisitos de las segundas porciones de memoria o de los procesos/threads que las solicitan y que asegura siempre la disposición de recursos de memoria prácticamente en tiempo real. Por otro lado se descarga la garbage collection, dado que ésta ya no se ha de encargar de la depuración de toda la memoria, y se mejora el comportamiento del tiempo de ejecución de los procesos/threads ejecutados en el procesador del soporte de datos. Dado que tanto la primera como la segunda gestión de memoria gestionan las primeras y las segundas porciones, respectivamente, de forma dinámica, los recursos de memoria del soporte de datos se aprovechan eficazmente y se evita de forma fiable un derroche innecesario de recursos de memoria.
Para una mayor simplicidad y con el fin de facilitar la comprensión de la invención, se supone que la memoria lógica y la memoria física tienen el mismo espacio de dirección y por ello no se ha de hacer ninguna distinción entre memoria lógica y memoria física. Evidentemente, la presente invención también puede ser aplicada cuando los espacios de dirección de la memoria lógica y la memoria física son diferentes, por ejemplo porque la memoria lógica es mayor que la memoria física. Además, en adelante un proceso o un thread designa respectivamente un programa ejecutado o una parte de programa ejecutada, que ha sido cargado al menos parcialmente en la memoria física y que es ejecutado por el procesador del soporte de datos. Por lo tanto, siempre que no se indique otra cosa, en el contexto de la presente invención no se ha de hacer ninguna distinción entre procesos y threads.
El soporte de datos portátil según la invención incluye recursos de memoria, por ejemplo en forma de una memoria RAM volátil o similar, un procesador, un sistema operativo con un primer dispositivo de gestión de memoria para la gestión dinámica de los recursos de memoria, y al menos una aplicación ejecutable en el procesador como un proceso o como uno o más threads. De acuerdo con... [Seguir leyendo]
Reivindicaciones:
1. Procedimiento para gestión dinámica de recursos de memoria (50) , en el que una primera gestión de memoria (44) gestiona dinámicamente primeras porciones (A1, A2, ..., An) de los recursos de memoria (50) y una segunda gestión de memoria (46) prevista para memorias de pila, independiente de la primera gestión de memoria (44) , gestiona dinámicamente segundas porciones (B1, B2, ..., Bn) de los recursos de memoria (50) diferentes de las primeras porciones (A1, A2, ..., An) , caracterizado porque
- los recursos de memoria (50) son los de un soporte de datos (10) portátil,
-dos dispositivos de gestión de memoria independientes (44, 46) de un sistema operativo (42) del soporte de datos
(10) realizan la primera y la segunda gestión de memoria de tal modo que las primeras porciones (A1, A2, ..., An) y las segundas porciones (B1, B2, ..., Bn) de los recursos de memoria volátiles (50) del soporte de datos (10) son gestionadas dinámicamente de forma exclusiva por el primer (44) o el segundo dispositivo de gestión de memoria (46) , respectivamente,
-el primer dispositivo de gestión de memoria (44) y el segundo dispositivo de gestión de memoria (46) están integrados en una máquina virtual de hilo de ejecución múltiple (multithread) del sistema operativo (42) y gestionan dinámicamente los recursos de memoria (50) como componentes de una gestión de memoria libre de la máquina virtual,
-la máquina virtual ejecuta al menos un hilo de ejecución (thread) y el primer dispositivo de gestión de memoria (44) gestiona dinámicamente primeras porciones (A1, A2, ..., An) de los recursos de memoria (50) para aquellos objetos del hilo o hilos de ejecución (thread/threads) que son referenciados por otros objetos y/o que por su parte referencian otros objetos, y el segundo dispositivo de gestión de memoria (46) gestiona dinámicamente segundas porciones (B1, B2, ..., Bn) de los recursos de memoria (50) para memorias de pila de los objetos del hilo o hilos de ejecución (thread/threads) , y
-el segundo dispositivo de memoria (46) también gestiona dinámicamente segundas porciones (B1, B2, ..., Bn) de los recursos de memoria (50) para aquellos objetos del hilo o hilos de ejecución (thread/threads) que no son referenciados o que solo son referenciados desde una memoria de pila.
2. Procedimiento según la reivindicación 1, caracterizado porque los recursos de memoria (50) solicitados por un proceso durante su tiempo de ejecución son asignados por la primera gestión de memoria (44) como primeras porciones (A1, A2, ..., An) de los recursos de memoria (50) , y porque los recursos de memoria (50) solicitados para una memoria de pila del proceso son asignados por la segunda gestión de memoria (46) como segundas porciones (B1, B2, ..., Bn) .
3. Procedimiento según la reivindicación 2, caracterizado porque la segunda gestión de memoria (46) gestiona recursos de memoria (50) para la memoria de pila en forma de porciones (B1, B2, ..., Bn) de los recursos de memoria (50) de tamaño constante.
4. Procedimiento según la reivindicación 3, caracterizado porque la segunda gestión de memoria (46) gestiona recursos de memoria (50) para la memoria de pila en forma de porciones (B1, B2, ..., Bn) de los recursos de memoria (50) , cuyo tamaño corresponde al respectivo tamaño de un marco de método almacenado en la memoria de pila.
5. Procedimiento según una de las reivindicaciones 1 a 4, caracterizado porque el segundo dispositivo de gestión de memoria (46) transfiere al primer dispositivo de gestión de memoria (44) la gestión de las segundas porciones (B1, B2, ..., Bn) de los recursos de memoria (50) de un objeto no referenciado o referenciado únicamente desde una memoria de pila, cuando dicho objeto es referenciado por otro objeto.
6. Procedimiento según una de las reivindicaciones 1 a 5, caracterizado porque el segundo dispositivo de gestión de memoria (46) gestiona dinámicamente segundas porciones (B1, B2, ..., Bn) de los recursos de memoria (50) de un elemento nativo.
7. Soporte de datos portátil (10) , que incluye recursos de memoria (50) , un procesador (30) , un sistema operativo
(42) con un primer dispositivo de gestión de memoria (44) para la gestión dinámica de recursos de memoria (50) , y al menos una aplicación (64) ejecutable en el procesador (30) como un proceso, y un segundo dispositivo de gestión de memoria (46) del sistema operativo (42) independiente del primer dispositivo de gestión de memoria (44) , estando preparado el primer dispositivo de gestión de memoria (44) para gestionar dinámicamente primeras porciones (A1, A2, ..., An) de los recursos de memoria, y estando preparado el segundo dispositivo de gestión de memoria (46) para gestionar dinámicamente segundas porciones (B1, B2, ..., Bn) de los recursos de memoria (50) diferentes de las primeras porciones (A1, A2, ..., An) , caracterizado porque el primer (44) y el segundo dispositivo de gestión de memoria (46) están preparados para gestionar dinámicamente recursos de memoria (50) de acuerdo con un procedimiento según una de las reivindicaciones 1 a 6.
8. Soporte de datos (10) según la reivindicación 7, caracterizado porque está configurado como tarjeta chip, tarjeta multimedia segura, tarjeta de telefonía móvil o soporte de memoria 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 4445170 A [0008] • US 5727185 A [0009]
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 […]