GithubHelp home page GithubHelp logo

7542-verificador_ebpf's Introduction

7542-Verificador_eBPF

Nicolás Riedel

Padrón : 102130

Trabajo :

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.

Clases desarrolladas :

Bloquear

Contiene una referencia a una instancia de mutex se utiliza como bloqueante para proteger los objetos compartidos.

BuzonResultados

Objeto compartido entre los threads, se guardan los resultados de los analisis de cada archivo.

Grafo

Grafo dirigido, se utiliza para moderlar y posteriormente verificar si se encuentran ciclos y/o instrucciones sin ejecutar.

Instruccion

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.

Modelador

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.

Nodo

Nodos del grafo, contienen un ID que representan el numero de linea en el codigo. Conocen a sus nodos adyacentes.

Parseador

Es el encargado de cargar el archivo de texto a una lista de Instrucciones.

PilaProtegida

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.

Thread

Implementacion de TDA Thread, fuertemente infulenciado por el del tutorial interactivo. Se utiliza como clase abstracta.

VerificadorEBFP

Clase principal del programa, se encarga de que todas interactuen. Es la encargada de instanciar los distintos Threads.

VerificadorThread

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.

Diagrama de Clases

diagramaDeClases

Diagrama de secuencia, verificar archivos.

Diagrama de secuencia

Diagrama de secuencia, como se modela el grafo.

7542-verificador_ebpf's People

Contributors

riedelnicolas avatar

Watchers

 avatar

7542-verificador_ebpf's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.