SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
Introduzione       Analisi          Risultati offline             Risultati in Valgrind   Conclusione



                       Universit` degli Studi di Trieste
                                a
                                    Facolt` di Ingegneria
                                          a
                     Corso di Laurea Triennale in Ingegneria Informatica




               Monitoraggio di applicazioni software
                  mediante modelli di Markov

                 Laureando Riccardo Cecolin           Relatore Prof. Enzo Mumolo
Introduzione            Analisi       Risultati offline         Risultati in Valgrind   Conclusione



Problema

       Riconoscere a che programma appartiene un processo in
       esecuzione utilizzando il workload generato dal processo per:

               verificare i processi in esecuzione per monitorare il
               software autorizzato
               classificare i processi per ottimizzare l’allocazione di
               risorse in un sistema operativo
                                                        H0 ≡ il processo
               P(H0 )                                   corrisponde al
               P(H1 )             Θ                     programma dichiarato
                                                        H1 ≡ il processo non
                                                        corrisponde
Introduzione         Analisi     Risultati offline   Risultati in Valgrind   Conclusione



Soluzione proposta


    Rappresentare il workload di un
    processo con la sequenza di accessi in
    memoria (indirizzi) ed analizzarlo con
    strumenti di elaborazione dei segnali


               Identificare un insieme di programmi dal workload
               significativo
               Trovare la metodologia pi` efficace per l’estrazione del
                                         u
               workload
               Effettuarne la classificazione da un punto di vista
               statistico (modelli di Markov nascosti)
Introduzione      Analisi      Risultati offline   Risultati in Valgrind   Conclusione



Workload analizzati

        Spec CPU2006: suite di benchmark standard
       per il calcolo delle prestazioni di cpu e memoria

       Caratteristiche:
           elevato carico su cpu e memoria
           I/O trascurabile
           risultati confrontabili con altri metodi

       400.perl, 401.bzip2, 403.gcc, 429.mcf, 445.gobmk,
       456.hmmer, 456.sjeng, 462.quantum, 464.h264ref,
       471.omnetpp, 473.astar, 483.xalanc
Introduzione       Analisi      Risultati offline   Risultati in Valgrind   Conclusione



Modalit` di estrazione
       a

        Valgrind: instrumentation framework sul quale ` possibile
                                                      e
       sviluppare tool di analisi dinamica

       Sviluppate due estensioni per Valgrind:
       tracebin
       Genera tracce di indirizzi in formati ascii e binario
       memorizzabili su disco

       tracehmm
       Genera la traccia ed effettua tutto il processo di classificazione
       in memoria
       Interfaccia e automazione via script Ruby.
Introduzione      Analisi    Risultati offline   Risultati in Valgrind   Conclusione



Analisi hmm e reti neurali




       Due modalit` di analisi:
                  a
           modelli di Markov nascosti
           reti neurali feed forward, back-propagation
Introduzione          Analisi      Risultati offline    Risultati in Valgrind   Conclusione



Risultati offline HMM
               Parametri ottimali di centroidi, stati trovati tramite prove
               estese: 64 centroidi, 12 stati
               Riconoscimento vicino al 100% per 8 tracce, 4 benchmark
Introduzione          Analisi       Risultati offline    Risultati in Valgrind   Conclusione



Risultati offline reti neurali
               Testati diversi valori per n◦ di neuroni di input, neuroni hidden
               Riconoscimento non sempre possibile per 8 tracce,4
               benchmark




       tracebin
       Generati ∼ 400 GB di tracce per i benchmark Spec
Introduzione    Analisi      Risultati offline      Risultati in Valgrind   Conclusione



Sviluppo di tool in Valgrind

 Instrumentazione:                             tracehmm
      selezionare le istruzioni che
      accedono in memoria
      registrarci delle callback
      riempire buffer di indirizzi
      effettuare l’analisi

 Sviluppate librerie di
 quantizzazione vettoriale, hidden
 markov models importabili
 all’interno di Valgrind: senza
 dipendenze da glibc, libm...
Introduzione      Analisi     Risultati offline   Risultati in Valgrind   Conclusione



Verifica su 12 benchmark

       Test di verifica: 12 benchmark, 30 esecuzioni: ∼ 80%




       tracehmm
       Esecuzione dei test molto pi` rapida rispetto ai test offline
                                   u
Introduzione      Analisi     Risultati offline   Risultati in Valgrind   Conclusione



Classificazione su 12 benchmark

       Test di classificazione: 12 benchmark, 30 esecuzioni: 80%
       prendendo sottoinsiemi di tracce con correlazione bassa: +90%
Introduzione      Analisi     Risultati offline    Risultati in Valgrind   Conclusione



Conclusione

       Il sistema funziona
       Il workload dei processi pu` essere descritto mediante HMM
                                  o

       Applicazioni
        Monitoraggio e sicurezza                Allocazione di risorse
             whitelist                               sistemi operativi
             blacklist                               virtualizzazione
       Implementazione:
           utilizzando sw in user space, Intel Pin
           effettuando modifiche al MM del kernel Linux
           utilizzando API di software di virtualizzazione

Más contenido relacionado

Destacado

Cumar Simone - Implementazione su gpu di un sistema per l'interazione multimo...
Cumar Simone - Implementazione su gpu di un sistema per l'interazione multimo...Cumar Simone - Implementazione su gpu di un sistema per l'interazione multimo...
Cumar Simone - Implementazione su gpu di un sistema per l'interazione multimo...Simone_Cumar
 
Monitoraggio di applicazioni software mediante modelli di Markov
Monitoraggio di applicazioni software mediante modelli di MarkovMonitoraggio di applicazioni software mediante modelli di Markov
Monitoraggio di applicazioni software mediante modelli di Markovrkjp
 
Valgrind tutorial
Valgrind tutorialValgrind tutorial
Valgrind tutorialSatabdi Das
 
Valgrind debugger Tutorial
Valgrind debugger TutorialValgrind debugger Tutorial
Valgrind debugger TutorialAnurag Tomar
 

Destacado (6)

Sysprog 12
Sysprog 12Sysprog 12
Sysprog 12
 
Cumar Simone - Implementazione su gpu di un sistema per l'interazione multimo...
Cumar Simone - Implementazione su gpu di un sistema per l'interazione multimo...Cumar Simone - Implementazione su gpu di un sistema per l'interazione multimo...
Cumar Simone - Implementazione su gpu di un sistema per l'interazione multimo...
 
Monitoraggio di applicazioni software mediante modelli di Markov
Monitoraggio di applicazioni software mediante modelli di MarkovMonitoraggio di applicazioni software mediante modelli di Markov
Monitoraggio di applicazioni software mediante modelli di Markov
 
Valgrind tutorial
Valgrind tutorialValgrind tutorial
Valgrind tutorial
 
Valgrind debugger Tutorial
Valgrind debugger TutorialValgrind debugger Tutorial
Valgrind debugger Tutorial
 
Valgrind
ValgrindValgrind
Valgrind
 

Similar a Monitoraggio di applicazioni software mediante modelli di Markov - slides

Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiPietro Corona
 
Presentazione understand
Presentazione understandPresentazione understand
Presentazione understandLuigi La Torre
 
Presentazione: uno studio sull'efficacia di checker automatici per la moderni...
Presentazione: uno studio sull'efficacia di checker automatici per la moderni...Presentazione: uno studio sull'efficacia di checker automatici per la moderni...
Presentazione: uno studio sull'efficacia di checker automatici per la moderni...Idriss Riouak
 
Semi-Active Replication Protocol
Semi-Active Replication ProtocolSemi-Active Replication Protocol
Semi-Active Replication ProtocolPaolo Maresca
 
Summary of “The Case for Writing Network Drivers in High-Level Programming La...
Summary of “The Case for Writing Network Drivers in High-Level Programming La...Summary of “The Case for Writing Network Drivers in High-Level Programming La...
Summary of “The Case for Writing Network Drivers in High-Level Programming La...LeonardoIurada
 
Benchmarking - Architettura degli Elaboratori - AA 2010/2011 - UNICAM
Benchmarking - Architettura degli Elaboratori - AA 2010/2011 - UNICAMBenchmarking - Architettura degli Elaboratori - AA 2010/2011 - UNICAM
Benchmarking - Architettura degli Elaboratori - AA 2010/2011 - UNICAMNicola Paoletti
 
Hadoop [software architecture recovery]
Hadoop [software architecture recovery]Hadoop [software architecture recovery]
Hadoop [software architecture recovery]gioacchinolonardo
 
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...Davide Bravin
 
Qualità del Software
Qualità del SoftwareQualità del Software
Qualità del SoftwareYeser Rema
 
Thesis Presentation - Presentazione Tesi
Thesis Presentation - Presentazione TesiThesis Presentation - Presentazione Tesi
Thesis Presentation - Presentazione TesiMarco Meoni
 
High Level Synthesis Using Esterel
High Level Synthesis Using EsterelHigh Level Synthesis Using Esterel
High Level Synthesis Using EsterelAlberto Minetti
 
Reporting framework
Reporting frameworkReporting framework
Reporting frameworkSimone Tiso
 
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...Francesco Komauli
 
Gestione corsi con TYPO3
Gestione corsi con TYPO3Gestione corsi con TYPO3
Gestione corsi con TYPO3Ivano Luberti
 
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Present...
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Present...Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Present...
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Present...MicheleDamian
 
Slide Project Software Engineer
Slide Project Software EngineerSlide Project Software Engineer
Slide Project Software Engineerguestf4963
 
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPNetbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPGiorgio Cefaro
 

Similar a Monitoraggio di applicazioni software mediante modelli di Markov - slides (20)

Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzati
 
Presentazione understand
Presentazione understandPresentazione understand
Presentazione understand
 
Presentazione: uno studio sull'efficacia di checker automatici per la moderni...
Presentazione: uno studio sull'efficacia di checker automatici per la moderni...Presentazione: uno studio sull'efficacia di checker automatici per la moderni...
Presentazione: uno studio sull'efficacia di checker automatici per la moderni...
 
Semi-Active Replication Protocol
Semi-Active Replication ProtocolSemi-Active Replication Protocol
Semi-Active Replication Protocol
 
Summary of “The Case for Writing Network Drivers in High-Level Programming La...
Summary of “The Case for Writing Network Drivers in High-Level Programming La...Summary of “The Case for Writing Network Drivers in High-Level Programming La...
Summary of “The Case for Writing Network Drivers in High-Level Programming La...
 
Benchmarking - Architettura degli Elaboratori - AA 2010/2011 - UNICAM
Benchmarking - Architettura degli Elaboratori - AA 2010/2011 - UNICAMBenchmarking - Architettura degli Elaboratori - AA 2010/2011 - UNICAM
Benchmarking - Architettura degli Elaboratori - AA 2010/2011 - UNICAM
 
Hadoop SAR
Hadoop SARHadoop SAR
Hadoop SAR
 
Hadoop [software architecture recovery]
Hadoop [software architecture recovery]Hadoop [software architecture recovery]
Hadoop [software architecture recovery]
 
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
 
Qualità del Software
Qualità del SoftwareQualità del Software
Qualità del Software
 
Hadoop analyzerJR
Hadoop analyzerJRHadoop analyzerJR
Hadoop analyzerJR
 
Thesis Presentation - Presentazione Tesi
Thesis Presentation - Presentazione TesiThesis Presentation - Presentazione Tesi
Thesis Presentation - Presentazione Tesi
 
High Level Synthesis Using Esterel
High Level Synthesis Using EsterelHigh Level Synthesis Using Esterel
High Level Synthesis Using Esterel
 
Reporting framework
Reporting frameworkReporting framework
Reporting framework
 
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
 
Gestione corsi con TYPO3
Gestione corsi con TYPO3Gestione corsi con TYPO3
Gestione corsi con TYPO3
 
Database Data Aggregator
Database Data AggregatorDatabase Data Aggregator
Database Data Aggregator
 
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Present...
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Present...Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Present...
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Present...
 
Slide Project Software Engineer
Slide Project Software EngineerSlide Project Software Engineer
Slide Project Software Engineer
 
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPNetbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
 

Monitoraggio di applicazioni software mediante modelli di Markov - slides

  • 1. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione Universit` degli Studi di Trieste a Facolt` di Ingegneria a Corso di Laurea Triennale in Ingegneria Informatica Monitoraggio di applicazioni software mediante modelli di Markov Laureando Riccardo Cecolin Relatore Prof. Enzo Mumolo
  • 2. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione Problema Riconoscere a che programma appartiene un processo in esecuzione utilizzando il workload generato dal processo per: verificare i processi in esecuzione per monitorare il software autorizzato classificare i processi per ottimizzare l’allocazione di risorse in un sistema operativo H0 ≡ il processo P(H0 ) corrisponde al P(H1 ) Θ programma dichiarato H1 ≡ il processo non corrisponde
  • 3. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione Soluzione proposta Rappresentare il workload di un processo con la sequenza di accessi in memoria (indirizzi) ed analizzarlo con strumenti di elaborazione dei segnali Identificare un insieme di programmi dal workload significativo Trovare la metodologia pi` efficace per l’estrazione del u workload Effettuarne la classificazione da un punto di vista statistico (modelli di Markov nascosti)
  • 4. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione Workload analizzati Spec CPU2006: suite di benchmark standard per il calcolo delle prestazioni di cpu e memoria Caratteristiche: elevato carico su cpu e memoria I/O trascurabile risultati confrontabili con altri metodi 400.perl, 401.bzip2, 403.gcc, 429.mcf, 445.gobmk, 456.hmmer, 456.sjeng, 462.quantum, 464.h264ref, 471.omnetpp, 473.astar, 483.xalanc
  • 5. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione Modalit` di estrazione a Valgrind: instrumentation framework sul quale ` possibile e sviluppare tool di analisi dinamica Sviluppate due estensioni per Valgrind: tracebin Genera tracce di indirizzi in formati ascii e binario memorizzabili su disco tracehmm Genera la traccia ed effettua tutto il processo di classificazione in memoria Interfaccia e automazione via script Ruby.
  • 6. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione Analisi hmm e reti neurali Due modalit` di analisi: a modelli di Markov nascosti reti neurali feed forward, back-propagation
  • 7. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione Risultati offline HMM Parametri ottimali di centroidi, stati trovati tramite prove estese: 64 centroidi, 12 stati Riconoscimento vicino al 100% per 8 tracce, 4 benchmark
  • 8. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione Risultati offline reti neurali Testati diversi valori per n◦ di neuroni di input, neuroni hidden Riconoscimento non sempre possibile per 8 tracce,4 benchmark tracebin Generati ∼ 400 GB di tracce per i benchmark Spec
  • 9. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione Sviluppo di tool in Valgrind Instrumentazione: tracehmm selezionare le istruzioni che accedono in memoria registrarci delle callback riempire buffer di indirizzi effettuare l’analisi Sviluppate librerie di quantizzazione vettoriale, hidden markov models importabili all’interno di Valgrind: senza dipendenze da glibc, libm...
  • 10. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione Verifica su 12 benchmark Test di verifica: 12 benchmark, 30 esecuzioni: ∼ 80% tracehmm Esecuzione dei test molto pi` rapida rispetto ai test offline u
  • 11. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione Classificazione su 12 benchmark Test di classificazione: 12 benchmark, 30 esecuzioni: 80% prendendo sottoinsiemi di tracce con correlazione bassa: +90%
  • 12. Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione Conclusione Il sistema funziona Il workload dei processi pu` essere descritto mediante HMM o Applicazioni Monitoraggio e sicurezza Allocazione di risorse whitelist sistemi operativi blacklist virtualizzazione Implementazione: utilizzando sw in user space, Intel Pin effettuando modifiche al MM del kernel Linux utilizzando API di software di virtualizzazione