Eraser

Solo disponible en BuenasTareas
  • Páginas : 19 (4563 palabras )
  • Descarga(s) : 4
  • Publicado : 10 de abril de 2010
Leer documento completo
Vista previa del texto
ERASER: Una carrera de Datos Dinámico Detector de programas multihilo

Programación multihilo es difícil y propenso a errores. Es fácil cometer un error en
de sincronización que produce una carrera de datos, sin embargo, puede ser extremadamente difíciles de localizar este error
durante la depuración. Este artículo describe una nueva herramienta, llamada goma de borrar, para detectar de formadinámica los datos en las carreras de bloqueo basado en los programas de varios subprocesos. El borrador utiliza técnicas de reescritura binaria para supervisar cada referencia de memoria compartida y verificar que el comportamiento de bloqueo constante que se observa.
Se presentan varios estudios de casos, incluidos los cursos de pregrado y un motor de búsqueda web multiproceso, que demuestran laeficacia de este enfoque.
1. INTRODUCCIÓN 
Multithreading se ha convertido en una técnica de programación común. Más comerciales 
los sistemas operativos son compatibles con las discusiones, y las aplicaciones más populares como Microsoft Word, y Netscape Navigator son multiproceso. 
Desafortunadamente, la depuración de un programa de multiproceso puede ser difícil. 
Simples errores en lasincronización se puede producir en tiempo-dependiente de los datos carreras 
que puede llevar semanas o meses para rastrear. Por esta razón, muchos 
a los programadores se han resistido a utilizar hilos. Las dificultades con el uso de 
hilos están muy bien resumido por John Ousterhout.1 
En este artículo se describe una herramienta llamada Eraser, que detecta de forma dinámica 
carreras de los datos en losprogramas de varios subprocesos. Hemos implementado Borrador para 
Digital Unix y lo usó para detectar las carreras de datos en una serie de programas, 
que van desde el motor de búsqueda web de AltaVista de introducción a la programación de 
ejercicios escritos por estudiantes de pregrado. 
El trabajo previo en la detección de la carrera dinámica se basa en Lamport's happensbefore 
relación[Lamport 1978] y comprueba que los accesos a memoria en conflicto 
de hilos de diferentes están separados por los eventos de sincronización. Happensbefore 
algoritmos de manejar muchos estilos de la sincronización, pero esta generalidad, 
tiene un costo. Hemos destinado específicamente a la goma de borrar el bloqueo basado en 
sincronización utilizados en los modernos programas de multiproceso. Goma deborrar simplemente 
los controles que todos los accesos a memoria compartida seguir una disciplina de bloqueo consistente. 
Una disciplina de bloqueo es una política de programación que asegura la 
ausencia de carreras de datos. Por ejemplo, una disciplina de bloqueo sencilla, es exigir 
que cada variable compartida entre los hilos está protegido por una mutua 
bloqueo de la exclusión. Vamos aargumentar que para muchos programas de enfoque Borrador de 
la aplicación de una disciplina de bloqueo es más sencillo, más eficiente y más profundo 
en las carreras de captura que el enfoque basado en el pase-antes. Por lo que sabemos 
saber, Eraser es la primera herramienta de detección dinámica de la carrera que se aplicará a 
los servidores de producción de varios subprocesos.
El restode este artículo se organiza de la siguiente manera. Después de revisar
¿Qué es una Data Race y la descripción de la labor anterior en la detección de carrera,
Cerradura presente el algoritmo utilizado por ERASER, primero en un nivel alto y, a continuación a un nivel lo suficientemente bajo como para revelar los resultados principales de aplicación crítica técnicas. Por último, se describe laexperiencia que hemos tenido al utilizar el ERASER con una serie de programas multihilo.
ERASER no guarda relación con la herramienta del mismo nombre, construida por
Mellor-Crummey [1993] para la detección de datos de carreras en paralelo de memoria compartida Programas de Fortran, como parte de la programación ParaScope Medio Ambiente.
1.1 Definiciones
Una cerradura es un simple objeto que se...
tracking img