En computación, una violación de almacenamiento es una falla de hardware o software que ocurre cuando una tarea intenta acceder a un área de almacenamiento de la computadora a la que no se le permite acceder.
Tipos de violación de almacenamiento
La violación de almacenamiento puede consistir, por ejemplo, en leer, escribir o liberar almacenamiento que no es propiedad de la tarea. Un tipo común de violación de almacenamiento se conoce como desbordamiento del búfer de pila, donde un programa intenta exceder los límites establecidos para su pila de llamadas . También puede referirse a un intento de modificación de la memoria "propiedad" de otro subproceso donde hay una protección de memoria incompleta (o nula).
Evitación de violaciones de almacenamiento
Las violaciones de almacenamiento pueden ocurrir 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; estas infracciones se pueden reducir habilitando funciones como la protección del almacenamiento y el aislamiento de transacciones .
Detección de infracciones de almacenamiento
Las infracciones de almacenamiento pueden ser difíciles de detectar, ya que un programa a menudo puede ejecutarse durante un período de tiempo después de la infracción antes de que se bloquee. Por ejemplo, un puntero a un área de memoria liberada se puede retener y luego reutilizar, lo que provoca un error. Como resultado, los esfuerzos se enfocan en detectar violaciones a medida que ocurren, en lugar de más tarde cuando se observa el problema.
En sistemas como CICS, las infracciones de almacenamiento a veces se detectan (por el kernel de CICS ) mediante el uso de "firmas", que se pueden probar 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 comprobación de límites de software para evitar estos sucesos.
Algunos programas de software de depuración también detectarán violaciones durante las pruebas.
Causas comunes
- Un subíndice descontrolado que conduce al uso ilegal de la modificación de la referencia durante el tiempo de ejecución.
- Discrepancia en el diseño de vinculación 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
Ver también
Referencias
- ^ "Biblioteca de depuración Malloc" . Dmalloc: depuración de la biblioteca de Malloc . Consultado el 26 de abril de 2017 .
- IBM . "CICS Transaction Server para z / OS, Versión 3 Release 2 Information Center" . 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 infracciones de almacenamiento