Repositorio : https://github.com/RiedelNicolas/7542-Verificador_eBPF.
El presente trabajo tiene como objetivo implementar una versión simplificada de un verificador eBPF. Este verificador tiene como objetivo encontrar bucles en el código y/o instrucciones sin ejecutar.
Contiene una referencia a una instancia de mutex se utiliza como bloqueante para proteger los objetos compartidos.
Objeto compartido entre los threads, se guardan los resultados de los analisis de cada archivo.
Grafo dirigido, se utiliza para moderlar y posteriormente verificar si se encuentran ciclos y/o instrucciones sin ejecutar.
Abstraccion de una linea de codigo, se utiliza para guardar los datos parseados. Puede responder a los booleanos esJump, esRegular, y esRetorno. Esto facilita mucho para formar el grafo.
Modela el codigo recibido en un grafo. Contiene una instancia de parseador que es el encargado de leer el texto, en base a los datos obtenidos modela el grafo.
Nodos del grafo, contienen un ID que representan el numero de linea en el codigo. Conocen a sus nodos adyacentes.
Es el encargado de cargar el archivo de texto a una lista de Instrucciones.
Una pila protegida, contiene una instancia de mutex que protege las Race condition . Se utiliza como reservorio de los distintos archivos que toman los threads para analizar.
Implementacion de TDA Thread, fuertemente infulenciado por el del tutorial interactivo. Se utiliza como clase abstracta.
Clase principal del programa, se encarga de que todas interactuen. Es la encargada de instanciar los distintos Threads.
Clase heredada de Thread. Su flujo consiste en pedir un archivo a la pila compartida, analizarlo y cargar el resultado en el buzon repetido. Repite hasta que la cola este vacia.