Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione
Universita degli Studi di TriesteFacolta di Ingegneria
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 inesecuzione utilizzando il workload generato dal processo per:
verificare i processi in esecuzione per monitorare ilsoftware autorizzato
classificare i processi per ottimizzare l’allocazione dirisorse in un sistema operativo
P(H0)P(H1) ≶ Θ
H0 ≡ il processocorrisponde alprogramma dichiarato
H1 ≡ il processo noncorrisponde
Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione
Soluzione proposta
Rappresentare il workload di unprocesso con la sequenza di accessi inmemoria (indirizzi) ed analizzarlo construmenti di elaborazione dei segnali
Identificare un insieme di programmi dal workloadsignificativo
Trovare la metodologia piu efficace per l’estrazione delworkload
Effettuarne la classificazione da un punto di vistastatistico (modelli di Markov nascosti)
Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione
Workload analizzati
Spec CPU2006: suite di benchmark standardper 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
Modalita di estrazione
Valgrind: instrumentation framework sul quale e possibilesviluppare tool di analisi dinamica
Sviluppate due estensioni per Valgrind:
tracebin
Genera tracce di indirizzi in formati ascii e binariomemorizzabili su disco
tracehmm
Genera la traccia ed effettua tutto il processo di classificazionein memoria
Interfaccia e automazione via script Ruby.
Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione
Analisi hmm e reti neurali
Due modalita di analisi:
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 proveestese: 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,4benchmark
tracebin
Generati ∼ 400 GB di tracce per i benchmark Spec
Introduzione Analisi Risultati offline Risultati in Valgrind Conclusione
Sviluppo di tool in Valgrind
Instrumentazione:
selezionare le istruzioni cheaccedono in memoria
registrarci delle callback
riempire buffer di indirizzi
effettuare l’analisi
Sviluppate librerie diquantizzazione vettoriale, hiddenmarkov models importabiliall’interno di Valgrind: senzadipendenze da glibc, libm...
tracehmm
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 piu rapida rispetto ai test offline
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 puo essere descritto mediante HMM
Applicazioni
Monitoraggio e sicurezza
whitelistblacklist
Allocazione di risorse
sistemi operativivirtualizzazione
Implementazione:
utilizzando sw in user space, Intel Pin
effettuando modifiche al MM del kernel Linux
utilizzando API di software di virtualizzazione