De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

En informática , la persistencia se refiere a la característica del estado de un sistema que sobrevive (persiste más que) el proceso que lo creó. Esto se logra en la práctica almacenando el estado como datos en el almacenamiento de datos informáticos . Los programas deben 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 del dispositivo de almacenamiento. [1] [2]

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

Persistencia ortogonal o transparente [ editar ]

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 desde y hacia el almacenamiento usando instrucciones específicas en un programa, lo que resulta en el uso de persistir como un verbo transitivo: al finalizar, el programa persiste los datos .

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

El término "persistente" fue introducido por primera vez por Atkinson y Morrison [1] en el sentido de persistencia ortogonal: usaron 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 [ editar ]

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 ahorro de 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 [ editar ]

Imágenes del sistema [ editar ]

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 usando 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 que se guardó su última imagen se pierden en el caso de una falla o apagado del sistema. Guardar una imagen para cada cambio individual consumiría demasiado tiempo para la mayoría de los sistemas, por lo que las imágenes no se utilizan como técnica de persistencia única para sistemas críticos.

Revistas [ editar ]

El uso de revistas es la segunda técnica de persistencia más sencilla. El 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.

En el inicio, 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.

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

Revistas son utilizados por diario los sistemas de archivos , sistemas prevalentes y los sistemas de gestión de bases de datos en los que también se les llama "los registros de transacciones" o "registros de rehacer".

Deficiencias : cuando los diarios se utilizan exclusivamente, el historial completo (potencialmente grande) de todos los eventos del sistema debe volver a aplicarse en cada inicio del sistema. Como resultado, las revistas a menudo se combinan con otras técnicas de persistencia.

Escrituras sucias [ editar ]

Esta técnica consiste en escribir en el almacenamiento solo aquellas partes del estado del sistema que se han modificado (están sucias) desde su última escritura. Las aplicaciones de edición de documentos sofisticadas, por ejemplo, usarán escrituras sucias para guardar solo aquellas partes de un documento que realmente se cambiaron desde la última vez que se guardó.

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

Capas de persistencia [ editar ]

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 base de datos subyacente .

Prevalencia del sistema [ editar ]

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) [ editar ]

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

Sistemas operativos persistentes [ editar ]

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

  • KeyKOS
  • EROS , el sucesor de KeyKOS
  • CapROS , revisiones de EROS
  • Coyotos , sucesor de EROS
  • Multics con su tienda de un solo nivel
  • Fantasma
  • IBM System / 38
  • Sistema operativo Grasshopper [1]
  • Lua OS
  • tahrpuppy-6.0.5

Ver también [ editar ]

  • Datos persistentes
  • Estructura de datos persistente
  • Identificador persistente
  • Memoria persistente
  • Copiar en escrito
  • CRUD
  • Objetos de datos de Java
  • API de persistencia de Java
  • Prevalencia del sistema
  • Ortogonalidad
  • Objeto de datos de servicio
  • Instantánea (almacenamiento de computadora)

Referencias [ editar ]

  1. ↑ a b Atkinson, MP ; Bailey, PJ; Chisholm, KJ; Cockshott, WP ; Morrison, R. (1983). "PS-algol: un lenguaje para la programación persistente" (pdf) . Actas de la 10ª Conferencia Nacional de Computación de Australia . X Conferencia Nacional de Computación de Australia. Melbourne, Australia. pag. 70–79.
  2. ^ Balzer, Stephanie (17 de noviembre de 2005). "Programación de objetos persistentes contratados" (PDF) . Universidad de Glasgow - Escuela de CS - Investigación . ETH Zürich. Archivado desde el original (PDF) el 31 de diciembre de 2006 . Consultado el 21 de septiembre de 2015 .