Most modern processors include hardware performance counters: architectural registers that allow engineers to monitor a process execution with high accuracy.Data collected adopting these tools allow an in depth analysis of a process architectural performance while keeping into account the complexity of modern CPUs, that use hierarchical caches, simultaneous multi-threading and out-of-order execution. By analyzing counter-based information we can inspect a process execution's impact over the whole CPU architecture as well as over the single functional unit.However performance monitoring counters can be used for purposes beyond the simple performance analysis of a process. The main goal of this thesis is to classify different processes according to their runtime behaviour measured by Performance Monitoring Counters.In this thesis we present a new approach for creating a process signature, which takes into account the whole execution of the target task. This is different from state-of-the-art proposals which leverage those performance bound to the execution of a specific piece of code. In this thesis, we provide a broader solution for characterizing a generic process execution, without looking into its code and assuming the task as a black box.In order to achieve this goal, we have modified the Linux kernel to provide an automatic mechanism for gathering performance data of a target process. The collected statistics are then elaborated to build up a process performance signature, which is used to train a support vector machine for classification purposes. The effectiveness of our approach is demonstrated by the high accuracy of the trained classification algorithm when tested on new performance data. The support vector machine is then inserted in the operating system, to provide in-kernel classification of generic processes running on the system.

La maggior parte dei processori moderni include contatori hardware di performance (PMC): speciali registri che permettono di monitorare l'esecuzione di un processo con alta accuratezza. I dati raccolti utilizzando questi strumenti consentono di fare un'analisi approfondita delle prestazioni architetturali di un processo, tenendo conto della compessità delle moderne CPU, che usano gerarchie di memoria, multithreading simultaneo ed esecuzione fuori ordine. Analizzando queste informazioni possiamo ispezionare l'impatto dell'esecuzione di un processo sia sull'intera CPU sia sulla singola unità funzionale.Tuttavia questi contatori hardware possono essere usati per scopi ben più complessi della semplice analisi di prestazioni. L'obbiettivo di questa tesi è quello di classificare diversi processi in base al loro comportamento dinamico, monitorato utilizzado i PMC. In questa tesi introduciamo un nuovo modo di generare una 'firma' di un processo attraverso le sue prestazioni, utilizzando come informazione l'intera esecuzione del processo. Questa idea è diversa rispetto allo stato dell'arte, che invece prende in considerazione solo quelle prestazioni legate all'esecuzione di una parte specifica del codice. In questa tesi forniamo una soluzione più generale per classificare l'esecuzione di un generico processo, senza studiare il suo codice e assumendo il processo come una 'scatola nera'.Per raggiungere questo obbiettivo abbiamo modificato il kernel di Linux perchè possa fornire un meccanismo automatico per collezionare le prestazioni di un processo. Le statistiche così raccolte sono quindi elaborate per creare la firma del processo, che viene poi utilizzata per allenare una Support Vector Machine con obbiettivo la classificazione. La validità di quanto proposto trova riscontro nell'alta accuratezza del nostro algoritmo di classificazione quando viene testato con nuovi dati. La SVM viene infine inserita nel sistema operativo, perchè possa eseguire la classificazione all'interno del kernel per generici processi eseguiti nel sistema.

A machine learning methodology based on performance monitoring counters for process classification

BRUNATO, ANDREA
2016/2017

Abstract

Most modern processors include hardware performance counters: architectural registers that allow engineers to monitor a process execution with high accuracy.Data collected adopting these tools allow an in depth analysis of a process architectural performance while keeping into account the complexity of modern CPUs, that use hierarchical caches, simultaneous multi-threading and out-of-order execution. By analyzing counter-based information we can inspect a process execution's impact over the whole CPU architecture as well as over the single functional unit.However performance monitoring counters can be used for purposes beyond the simple performance analysis of a process. The main goal of this thesis is to classify different processes according to their runtime behaviour measured by Performance Monitoring Counters.In this thesis we present a new approach for creating a process signature, which takes into account the whole execution of the target task. This is different from state-of-the-art proposals which leverage those performance bound to the execution of a specific piece of code. In this thesis, we provide a broader solution for characterizing a generic process execution, without looking into its code and assuming the task as a black box.In order to achieve this goal, we have modified the Linux kernel to provide an automatic mechanism for gathering performance data of a target process. The collected statistics are then elaborated to build up a process performance signature, which is used to train a support vector machine for classification purposes. The effectiveness of our approach is demonstrated by the high accuracy of the trained classification algorithm when tested on new performance data. The support vector machine is then inserted in the operating system, to provide in-kernel classification of generic processes running on the system.
BARENGHI, ALESSANDRO
ING - Scuola di Ingegneria Industriale e dell'Informazione
21-dic-2017
2016/2017
La maggior parte dei processori moderni include contatori hardware di performance (PMC): speciali registri che permettono di monitorare l'esecuzione di un processo con alta accuratezza. I dati raccolti utilizzando questi strumenti consentono di fare un'analisi approfondita delle prestazioni architetturali di un processo, tenendo conto della compessità delle moderne CPU, che usano gerarchie di memoria, multithreading simultaneo ed esecuzione fuori ordine. Analizzando queste informazioni possiamo ispezionare l'impatto dell'esecuzione di un processo sia sull'intera CPU sia sulla singola unità funzionale.Tuttavia questi contatori hardware possono essere usati per scopi ben più complessi della semplice analisi di prestazioni. L'obbiettivo di questa tesi è quello di classificare diversi processi in base al loro comportamento dinamico, monitorato utilizzado i PMC. In questa tesi introduciamo un nuovo modo di generare una 'firma' di un processo attraverso le sue prestazioni, utilizzando come informazione l'intera esecuzione del processo. Questa idea è diversa rispetto allo stato dell'arte, che invece prende in considerazione solo quelle prestazioni legate all'esecuzione di una parte specifica del codice. In questa tesi forniamo una soluzione più generale per classificare l'esecuzione di un generico processo, senza studiare il suo codice e assumendo il processo come una 'scatola nera'.Per raggiungere questo obbiettivo abbiamo modificato il kernel di Linux perchè possa fornire un meccanismo automatico per collezionare le prestazioni di un processo. Le statistiche così raccolte sono quindi elaborate per creare la firma del processo, che viene poi utilizzata per allenare una Support Vector Machine con obbiettivo la classificazione. La validità di quanto proposto trova riscontro nell'alta accuratezza del nostro algoritmo di classificazione quando viene testato con nuovi dati. La SVM viene infine inserita nel sistema operativo, perchè possa eseguire la classificazione all'interno del kernel per generici processi eseguiti nel sistema.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
ABrunatoThesis.pdf

non accessibile

Descrizione: Last Final Version
Dimensione 2.04 MB
Formato Adobe PDF
2.04 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/137500