Skip to content

robertoxmed/c_memory_monitor

Repository files navigation

##Temps Réel en multi-coeurs: problème de contention mémoire

Louisa Bessad: [email protected]

Roberto Medina: [email protected]

Description

La description du projet peut être lue ici.

Le projet a pour but l'analyse de l'impact de la mémoire partagée sur les processeurs multicoeurs. Le processeur en question doit exécuter une tâche temps-réel et d'autres tâches considérées comme attaquantes.

Pour arriver à étudier ce phénomène on utilise la librairie PAPI.

C'est recommandé d'installer les librairies correspondantes avec make install-libs avec le tarball du projet PAPI. Mais la librairie (libpapi.a et libpapi32.a sont dans le projet)

Prérequis

Pour avoir une meilleure isolation du processus temps-réel et des attaquants, on utilise le paramètre isolcpus = 1, 2, 3 sur le noyau Linux (passé à travers GRUB au démarrage).

Le wrappeur et le scheduler vont faire que la tâche temps-réel s'exécute sur le deuxième coeur du processeur.
Le scheduler s'assure que les tâches attanquantes vont sur les autres coeurs.

Un coeur doit être libre pour que l'OS puisse l'utiliser.

Compilation et éxécution

Compilation du projet

Pour compiler le projet:
git clone https://github.com/robertoxmed/psar.git
make

Lancer le wrapper avec des arguments

Le wrapper nécessite des droits de super utilisateur pour pouvoir attacher le set d'événements à un seul coeur.

sudo ./bin/papi_wrapper bin/rt_task nb_attaquants

Pour avoir de l'aide sur le wrapper:

./bin/papi_wrapper -h

Lancer le scheduler avec des arguments

Le scheduler, comme le wrappeur, nécessite des droits de super utilisateur pour pouvoir attacher le set d'événements à un seul coeur. Il se charge aussi de lancer les tâches attaquantes. Par défaut la tâche temp-réel va effectuer 20'000.000 d'itérations.

sudo ./bin/papi_scheduler bin/rt_task nb_attaquants

Pour avoir de l'aide sur le scheduler:

./bin/papi_scheduler -h

Comportement du CPU:

Exemple d'éxécution

Schéma du Scheduler

Schema scheduler

Performance du Scheduler Perfomance Scheduler

About

Memory contention study for multi-core architectures

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published