stringtranslate.com

Persistencia (informática)

En informática , la persistencia se refiere a la característica de estado de un sistema que sobrevive (persiste más que) al proceso que lo creó. En la práctica, esto se logra almacenando el estado como datos en un almacenamiento de datos informático . Los programas tienen que transferir datos hacia y desde dispositivos de almacenamiento y deben proporcionar asignaciones desde las estructuras de datos del lenguaje de programación nativo a las estructuras de datos de los dispositivos de almacenamiento. [1] [2]

Los programas de edición de imágenes o los procesadores de texto , por ejemplo, logran la persistencia del estado guardando sus documentos en archivos .

Persistencia ortogonal o transparente

Se dice que la persistencia es " ortogonal " o "transparente" cuando se implementa como una propiedad intrínseca del entorno de ejecución de un programa. Un entorno de persistencia ortogonal no requiere ninguna acción específica por parte de los programas que se ejecutan en él para recuperar o guardar su estado .

La persistencia no ortogonal requiere que los datos se escriban y lean hacia y desde el almacenamiento mediante instrucciones específicas en un programa, lo que da como resultado el uso de persistir como verbo transitivo: al finalizar, el programa conserva los datos .

La ventaja de los entornos de persistencia ortogonal son programas más simples y menos propensos a errores. [ cita necesaria ]

El término "persistente" fue introducido por primera vez por Atkinson y Morrison [1] en el sentido de persistencia ortogonal: utilizaron un adjetivo en lugar de un verbo para enfatizar la persistencia como una propiedad de los datos, a diferencia de una acción imperativa realizada por un programa. . El uso del verbo transitivo "persistir" (que describe una acción realizada por un programa) es una formación posterior.

Adopción

La persistencia ortogonal se adopta ampliamente en sistemas operativos para hibernación y en sistemas de virtualización de plataformas como VMware y VirtualBox para guardar estado.

Los lenguajes prototipo de investigación como PS-algol , Napier88 , Fibonacci y pJama demostraron con éxito los conceptos junto con las ventajas para los programadores.

Técnicas de persistencia

Imágenes del sistema

El uso de imágenes del sistema es la estrategia de persistencia más simple. La hibernación del portátil es un ejemplo de persistencia ortogonal que utiliza una imagen del sistema porque no requiere ninguna acción por parte de los programas que se ejecutan en la máquina. Un ejemplo de persistencia no ortogonal utilizando una imagen del sistema es un programa de edición de texto simple que ejecuta instrucciones específicas para guardar un documento completo en un archivo.

Deficiencias : Requiere suficiente RAM para mantener todo el estado del sistema. Los cambios de estado realizados en un sistema después de guardar su última imagen se pierden en caso de falla o apagado del sistema. Guardar una imagen para cada cambio llevaría demasiado tiempo para la mayoría de los sistemas, por lo que las imágenes no se utilizan como única técnica de persistencia para los sistemas críticos.

Revistas

El uso de diarios es la segunda técnica de persistencia más simple. El registro en diario es el proceso de almacenar eventos en un registro antes de que cada uno se aplique a un sistema. Estos registros se denominan diarios.

Al iniciar, se lee el diario y cada evento se vuelve a aplicar al sistema, evitando la pérdida de datos en caso de falla o apagado del sistema.

Todo el historial "Deshacer/Rehacer" de los comandos de usuario en un programa de edición de imágenes, por ejemplo, cuando se escriben en un archivo, constituye un diario capaz de recuperar el estado de una imagen editada en cualquier momento.

Los diarios son utilizados por los sistemas de archivos de registro por diario , los sistemas predominantes y los sistemas de gestión de bases de datos , donde también se les denomina "registros de transacciones" o "registros de rehacer".

Deficiencias : cuando se utilizan exclusivamente los diarios, se debe volver a aplicar el historial completo (potencialmente extenso) de todos los eventos del sistema en cada inicio del sistema. Como resultado, los diarios suelen combinarse con otras técnicas de persistencia.

escrituras sucias

Esta técnica consiste en escribir en el almacenamiento sólo aquellas partes del estado del sistema que han sido modificadas (están sucias) desde su última escritura. Las aplicaciones sofisticadas de edición de documentos, por ejemplo, utilizarán escrituras sucias para guardar sólo aquellas partes de un documento que realmente se modificaron desde la última vez que se guardaron.

Deficiencias: esta técnica requiere que los cambios de estado sean interceptados dentro de un programa. Esto se logra de una manera no transparente al requerir llamadas API de almacenamiento específicas o de una manera transparente con la transformación automática del programa . Esto da como resultado un código que es más lento que el código nativo y más complicado de depurar.

Capas de persistencia

Cualquier capa de software que facilite que un programa persista en su estado se denomina genéricamente capa de persistencia. La mayoría de las capas de persistencia no lograrán la persistencia directamente sino que utilizarán un sistema de gestión de bases de datos subyacente .

Prevalencia del sistema

La prevalencia del sistema es una técnica que combina imágenes del sistema y diarios de transacciones, mencionados anteriormente, para superar sus limitaciones.

Deficiencias: Un sistema predominante debe tener suficiente RAM para mantener todo el estado del sistema.

Sistemas de gestión de bases de datos (DBMS)

Los DBMS utilizan una combinación de las técnicas de escritura sucia y registro de transacciones mencionadas anteriormente. Proporcionan no sólo persistencia sino también otros servicios como consultas, auditoría y control de acceso.

Sistemas operativos persistentes

Los sistemas operativos persistentes son sistemas operativos que permanecen persistentes incluso después de una falla o un apagado inesperado. Los sistemas operativos que emplean esta capacidad incluyen

Ver también

Referencias

  1. ^ ab Atkinson, diputado ; Bailey, PJ; Chisholm, KJ; Cockshott, WP ; Morrison, R. (1983). "PS-algol: un lenguaje para programación persistente" (PDF) . Actas de la décima conferencia nacional australiana de informática . Décima Conferencia Nacional Australiana de Computación. Melbourne, Australia. págs. 70–79.
  2. ^ Balzer, Stephanie (17 de noviembre de 2005). "Programación de objetos persistentes contratados" (PDF) . Universidad de Glasgow - Escuela de informática - Investigación . ETH Zúrich. Archivado desde el original (PDF) el 31 de diciembre de 2006 . Consultado el 21 de septiembre de 2015 .