En informática, una violación de almacenamiento es un fallo de hardware o software que ocurre cuando una tarea intenta acceder a un área de almacenamiento de la computadora a la que no tiene permitido acceder.
Tipos de violación de almacenamiento
La violación de almacenamiento puede consistir, por ejemplo, en leer, escribir o liberar almacenamiento que no pertenece a la tarea. Un tipo común de violación de almacenamiento se conoce como desbordamiento de búfer de pila , en el que un programa intenta superar los límites establecidos para su pila de llamadas . También puede referirse a un intento de modificación de la memoria "que pertenece" a otro subproceso en el que la protección de memoria es incompleta (o inexistente).
Prevención de violaciones de almacenamiento
Pueden ocurrir violaciones de almacenamiento en sistemas de transacciones como CICS en circunstancias en las que es posible escribir en un almacenamiento que no es propiedad de la transacción; dichas violaciones se pueden reducir habilitando funciones como la protección del almacenamiento y el aislamiento de transacciones .
Detección de violaciones de almacenamiento
Las violaciones de almacenamiento pueden ser difíciles de detectar, ya que un programa puede ejecutarse durante un período de tiempo después de la violación antes de bloquearse. Por ejemplo, un puntero a un área de memoria liberada puede conservarse y reutilizarse más tarde, lo que provoca un error. Como resultado, los esfuerzos se centran en detectar las violaciones cuando ocurren, en lugar de más tarde, cuando se observa el problema.
En sistemas como CICS, las violaciones de almacenamiento a veces se detectan (por el kernel de CICS ) mediante el uso de "firmas", que pueden probarse para ver si se han superpuesto.
Se puede utilizar una biblioteca de tiempo de ejecución alternativa para detectar mejor las violaciones de almacenamiento, a costa de una sobrecarga adicional. [1] Algunos lenguajes de programación utilizan la verificación de límites de software para evitar que esto ocurra.
Algunos programas de depuración de programas también detectarán violaciones durante las pruebas.
Causas comunes
- Un subíndice descontrolado que conduce al uso ilegal de la modificación de referencia durante el tiempo de ejecución.
- No hay coincidencia en el diseño del enlace entre los elementos llamados y los que llaman.
- Uso de memoria previamente liberada (y en ocasiones ya reasignada).
Ejemplos de software que detecta violaciones de almacenamiento
- Intertest originalmente de Online Software International, más tarde Computer Associates
Véase también
Referencias
- ^ "Biblioteca de depuración de Malloc". Dmalloc - Biblioteca de depuración de Malloc . Consultado el 26 de abril de 2017 .
- IBM . "Centro de información de CICS Transaction Server para z/OS, versión 3, versión 2". IBM . Consultado el 20 de octubre de 2008 .
- Guía de determinación de problemas de CICS
Enlaces externos
- https://plus.google.com/u/1/collection/wUwasB Material de marketing para otros productos que detectan violaciones de almacenamiento