Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.

Documents pareils
Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Service d'installation et de démarrage de la solution de stockage réseau HP StoreEasy 1000/3000

CAHIER DES CHARGES D IMPLANTATION

Vérification et Validation

Chapitre I : le langage UML et le processus unifié

ERESI : une plate-forme d'analyse binaire au niveau noyau. The ERESI team

Télécom Nancy Année

IBM Rational Application Developer pour WebSphere Software V8.5 accélère le développement d'applications de haute qualité.

Machines virtuelles Cours 1 : Introduction

Annexe : La Programmation Informatique

Communications performantes par passage de message entre machines virtuelles co-hébergées

Exercices INF5171 : série #3 (Automne 2012)

IRL : Simulation distribuée pour les systèmes embarqués

MASTER 2 MENTION DROIT DE L'ENTREPRISE, PARCOURS DROIT BANCAIRE ET FINANCIER

Projet Active Object

Résumé CONCEPTEUR, INTEGRATEUR, OPERATEUR DE SYSTEMES CRITIQUES

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Conception des systèmes répartis

Introduction aux systèmes temps réel. Iulian Ober IRIT

2. Activités et Modèles de développement en Génie Logiciel

La Certification de la Sécurité des Automatismes de METEOR

Programmation d'agents intelligents Vers une refonte des fils de raisonnement. Stage de fin d'études Master IAD 2006

CLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES. Jean GASSINO, Jean-Yves HENRY. Rapport IPSN/Département d'évaluation de sûreté N 280

T. Gasc 1,2,3, F. De Vuyst 1, R. Motte 3, M. Peybernes 4, R. Poncet 5

Métriques de performance pour les algorithmes et programmes parallèles

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P

Poursuivre ses études à l'université de Rouen Masters professionnels en Informatique et en Mathématiques. UFR Sciences et Techniques /18

DUT. Informatique, orientation Imagerie Numérique. Domaine : Sciences, Technologies, Santé. Mention : Informatique

ÉCONOMIE ET GESTION LYCÉES TECHNOLOGIQUE ET PROFESSIONNEL

Activité 1 : Création et Clonage d'une première machine virtuelle Linux OpenSuSE.

Conduite et Gestion de Projet - Cahier des charges

Cadre formel pour la modélisation de la gestion des processus métier par une équipe médicale interdisciplinaire

SOUTIEN INFORMATIQUE DEP 5229

Technologie SDS (Software-Defined Storage) de DataCore

Nom-Projet MODELE PLAN DE MANAGEMENT DE PROJET

FILIERE CULTURELLE. Adjoint territorial du patrimoine de 1 ère classe

DUT Informatique, orientation Imagerie Numérique

Licences Windows Server 2012 R2 dans le cadre de la virtualisation

TRAAM STI Acquisition et exploitations pédagogiques des données sur un système pédagogique

Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

Laboratoire de Haute Sécurité. Télescope réseau et sécurité des réseaux

La technologie Java Card TM

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

GOOGLE, OUTILS EN LIGNE

Service de réplication des données HP pour la gamme de disques Continuous Access P9000 XP

Stratégie de sécurité grâce au logiciel libre. Frédéric Raynal Cédric Blancher

Université de Haute Alsace. Domaine. Sciences Humaines et Sociales. MASTER Mention Éducation, Formation, Communication UHA, ULP, Nancy 2

INGENIERIE DES SYSTEMES INFORMATIQUES - PARCOURS : MOBILITE ET CLOUD COMPUTING

IMO - Informatique, modélisation et optimisation

Processus de Développement Logiciel

Nouveautés FDS Pour créer des équipements 2D et les publier à partir d'autocad

Conception de circuits numériques et architecture des ordinateurs

RECAPITULATIF ACTE DE CANDIDATURE. Document à conserver

La carte à puce. Jean-Philippe Babau

Analyse de performance, monitoring

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Le programme détaillé. Salle A07 Salle A06 Salle A04. Initiation à DirectX. Création de Mods Minecraft

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Bloc 1 U. E. Automobile H/an CR Quadrimestres

Qualité du logiciel: Méthodes de test

Initiation au HPC - Généralités

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

Master Informatique Aix-Marseille Université

Enquête 2014 de rémunération globale sur les emplois en TIC

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Programmation Orientée Objet

Raisonnement par récurrence Suites numériques

Questions et réponses

IODAA. de l 1nf0rmation à la Décision par l Analyse et l Apprentissage / 21

MASTER MANAGEMENT STRATEGIE, SPECIALITE CONSULTANT EN MANAGEMENT, ORGANISATION, STRATÉGIE

SYSTÈME DE GESTION DE FICHIERS

Master Information et communication spécialité Produits et services multimédia

portnox pour un contrôle amélioré des accès réseau Copyright 2008 Access Layers. Tous droits réservés.

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Anticiper pour avoir une innovation d'avance : le leitmotiv de Pierre Jouniaux, entrepreneur du big data!

H Management et ingénierie Hygiène Sécurité Environnement -HSE- industriels

INTRODUCTION. Daniel KROB Ecole Polytechnique & CNRS Chaire «Ingénierie des systèmes complexes» Palaiseau Cedex dk@lix.polytechnique.

Intelligence Inventive & Mapping des réseaux de Recherche. Expernova & Active Innovation Management GFII 5 Mars 2015

Machines Virtuelles. et bazard autour. Rémi Forax

Brique BDL Gestion de Projet Logiciel

Les Partenaires de IBM Rational

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Parcours Management de projet et innovation

Le génie logiciel. maintenance de logiciels.

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Stages ISOFT : UNE SOCIETE INNOVANTE. Contact : Mme Lapedra, stage@isoft.fr

Le Framework.Net. Introduction. Pourquoi.Net?

4.2 Unités d enseignement du M1

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Master (filière Réseau) Parcours Recherche: Systèmes Informatiques et Réseaux (RTS)

WEA Un Gérant d'objets Persistants pour des environnements distribués

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Assurance. Souscription. Encadrement d'un réseau salarié

Modules du DUT Informatique proposés pour des DCCE en 2014/2015

L enquête a été effectuée en ligne entre janvier et mars 2013 auprès des diplômés de la promotion Le taux de réponse est de 61%.

Sécurisation du stockage de données sur le Cloud Michel Kheirallah

Méthodes de développement. Analyse des exigences (spécification)

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Transcription:

Proposition de stage de BAC+4 ou BAC+5 Pro ou Recherche Etude comparative des outils de vérification d'algorithmes parallèles Logiciels (LSL), localisé à Palaiseau (Essonne), développe les outils d'aide à la validation et à la vérification de logiciels et de systèmes matériels/logiciels. L'un des nos outils, nommé Frama-C (http://frama-c.com), permet d'utiliser l'analyse statique pour calculer les valeurs possibles des variables à chaque point de programme, trouver des menaces d'erreurs à l'exécution, prouver des propriétés du programme, etc. Ce stage vise à étudier différents outils de vérification de programmes parallèles tels que TLA+, VERISOFT, VCC, ainsi que la preuve manuelle à l'aide de logiques adaptées, éventuellement aidée par un assistant de preuve interactive comme Coq. Le travail consistera à essayer les différents outils, comprendre leur fonctionnement et comparer leurs fonctionnalités sur différents exemples de programmes, ou plus généralement, d'algorithmes parallèles. Les exemples seront composés d'algorithmes connus dans la littérature, en commençant par les exemples de programmes qui ont été précédemment vérifié avec l'un des outils. Il faudra modéliser les algorithmes dans les formalismes adaptés aux différents outils et comparer les capacités de vérification à l'aide des outils et par la preuve manuelle. Un deuxième axe de travail comprendra la vérification des algorithmes d'anaxagoros, un hyperviseur de Cloud développé au CEA LIST. En se basant sur les résultats de la première partie du stage, nous allons formellement vérifier un ou plusieurs algorithmes d'anaxagoros à l'aide des outils étudiés. Ce stage permettra au stagiaire de découvrir divers outils et méthodes de vérification de programmes parallèles et les technologies utilisées, les appliquer à la vérification d'études de cas réels, et d'acquérir ainsi des compétences en vérification de plus en plus demandées par les entreprises. Il existe des possibilités de continuer en thèse au CEA après le stage. Très bonnes connaissances en génie logiciel et méthodes formelles. Un goût prononcé pour les mathématiques et le raisonnement formel. Langage C, notions en systèmes d'exploitation souhaitées. Encadrement : Nikolay Kosmatov, Matthieu Lemerre (CEA LIST), Frédéric Loulergue (LIFO)

Proposition de stage de BAC+5 Pro ou Recherche Développement d'un simulateur de parallélisme pour la vérification d'algorithmes parallèles dans Frama-C Logiciels (LSL), localisé à Palaiseau (Essonne), développe les outils d'aide à la validation et à la vérification de logiciels et de systèmes matériels/logiciels. L'un des nos outils, nommé Frama-C (http://frama-c.com), permet d'utiliser l'analyse statique pour calculer les valeurs possibles des variables à chaque point de programme, trouver des menaces d'erreurs à l'exécution, prouver des propriétés du programme, etc. Dans Frama-C, un programme C peut être spécifié ou annoté, c'est-à-dire, contenir des propriétés à vérifier (son contrat, ou sa spécification) exprimées dans un langage de spécification formelle. Un des greffons de Frama-C, nommé WP, permet de prouver qu'un programme spécifié respecte sa spécification. La version actuelle de Frama-C ne permet pas directement de vérifier un programme parallèle dont certaines fonctions peuvent être exécutées par plusieurs fils (threads) en même temps. Cependant, cette exécution parallèle peut être parfois simulée par un programme séquentiel avec une spécification adaptée. Ce stage vise à développer un générateur de simulateurs de parallélisme permettant de vérifier, sous certaines conditions, que le programme respecte sa spécification. On pourra utiliser des variables dupliquées (ou des variables ghost) pour représenter l'état de chacun des threads, afin de pouvoir exprimer les propriétés globales de tout le système. Ensuite, le greffon de preuve WP pour les programmes séquentiels pourra être appliqué. Ensuite, le prototype développé sera utilisé pour prouver des algorithmes de programmes parallèles connus dans la littérature ou issu d'une étude de cas réelle. Ce stage permettra au stagiaire de découvrir des méthodes de vérification de programmes, les appliquer à la vérification d'études de cas réels, et d'acquérir ainsi des compétences en vérification de plus en plus demandées par les entreprises. Il existe des possibilités de continuer en thèse au CEA après le stage. Très bonnes connaissances en génie logiciel et méthodes formelles. Bonne maîtrise des langages OCAML et C. Encadrement : Nikolay Kosmatov, Matthieu Lemerre

Proposition de stage de BAC+4 ou BAC+5 Pro ou Recherche Vérification combinée par preuve et test structurel d'un module critique d'hyperviseur de Cloud Logiciels (LSL), localisé à Saclay (Essonne), développe les outils d'aide à la validation et à la vérification de logiciels et de systèmes matériels/logiciels. L'un des nos outils, nommé Frama-C, permet d'utiliser l'analyse statique pour calculer les valeurs des possibles des variables à chaque point de programme, trouver des menaces d'erreurs à l'exécution, prouver des propriétés du programme, etc. Un autre outil, nommé PathCrawler, permet de générer des cas de test et de les exécuter afin d'activer tous les chemins d'exécution possibles d'un programme C. Il utilise une instrumentation fine du programme sous test, le traduit vers un ensemble de contraintes et applique une stratégie spécifique de parcours et de résolution de contraintes à l'aide d'un solveur de contraintes. Un prototype d'hyperviseur de Cloud sécurisé appelé Anaxagoros a été développé par un autre laboratoire du CEA LIST. Ce stage vise à vérifier des algorithmes extraits des composants critiques de systèmes d'exploitation (ou d'hyperviseurs de Cloud) à l'aide des méthodes formelles (preuve de programmes, analyse de valeurs) et de test structurel. Un des composants critiques à vérifier, le service de mémoire virtuelle, permet d'allouer la mémoire dynamiquement, créer, modifier et détruire des objets systèmes tels que les domaines, les threads, etc. Un autre exemple de module critique nécessitant une vérification formelle est le module de contrôle d'accès basé sur un mécanisme de capacités. Les algorithmes seront spécifiés et prouvés à l'aide des greffons de preuve de Frama-C. Le prototype Anaxagoros sera utilisé comme point de départ des travaux. Le test structurel avec PathCrawler sera utilisé pour la validation des parties du code qui ne pourront pas être entièrement prouvées. Ce stage permettra au stagiaire de découvrir divers outils de vérification de logiciels et les technologies utilisées, les appliquer à la vérification d'un cas d'étude réel, et d'acquérir ainsi des compétences de plus en plus demandées par les entreprises. Il existe des possibilités de continuer en thèse au CEA après le stage. Très bonnes connaissances en génie logiciel, un goût pour les mathématiques et la logique. Langage C, notions en architecture et systèmes d'exploitation souhaités. Encadrement : Nikolay Kosmatov, Matthieu Lemerre [1] F. Loulergue, F. Gava, N. Kosmatov, M. Lemerre, Towards Verified Cloud Computing Environments, In HPCS, pages 91-97, IEEE, 2012 [2] M. Lemerre, N.Kosmatov, C.Alec. Verified secure kernels and hypervisors for the cloud. In C&ESAR 2012, pages 89-104, France, 2012

Proposition de stage niveau bac+5 Analyse statique pour optimiser un générateur de code Mots-clés : analyse statique, génération de code, spécication formelle, runtime assertion checking Cadre prépondérant qui mène ses recherches en partenariat avec les grands acteurs industriels du nucléaire, de l'automobile, de l'aéronautique, de la défense et du médical pour étudier et développer des solutions innovantes adaptées à leurs besoins. Au sein du CEA LIST, le Laboratoire de Sûreté des Logiciels (LSL), localisé à Saclay (Essonne, 91), développe des outils d'aide à la validation et à la vérication de logiciels et de systèmes matériels/logiciels, tout particulièrement dans le domaine des systèmes embarqués critiques. L'un des nos outils, nommé Frama-C (http://frama-c.com), est une plate-forme logicielle facilitant le développement d'outils d'analyses de programmes C. Le stage se déroulera au sein de l'équipe de R&D développant Frama-C. Objectifs Chaque programme C analysé par Frama-C peut être annoté par des spécications formelles, écrites dans un langage appelé ACSL [1]. Frama-C ore alors diérentes techniques de vérication pour garantir que le programme satisfait sa spécication. Une des techniques a pour but de traduire une sous-classe des annotations ACSL celles dites exécutables en instructions C intégrées au programme sous analyse [2]. Cette transformation permet d'obtenir un nouveau programme C dont la correction vis-à-vis de sa spécication est vériée dynamiquement, pendant son exécution : cette technique est appelée le runtime assertion checking. Une des dicultés principales de cette transformation réside dans la prise en compte du modèle mémoire du langage C an d'être en mesure de traduire correctement, par exemple, l'expression ACSL \valid(p) qui permet de spécier que le pointeur p est valide (i.e. non nul et accédant à une zone mémoire licite). Ainsi, un accès à un tableau hors limites (e.g. avec un indice trop grand), ou à une zone mémoire allouée dynamiquement et ensuite libérée, serait invalide. Pour ce faire, la transformation instrumente notamment le programme initial pour collecter ses allocations, dé-allocations et initialisations via des appels de fonctions vers une bibliothèque C dédiée préalablement développée [3]. Cette instrumentation est néanmoins très invasive. Pour la rendre plus légère et moins couteuse en temps et en mémoire, une analyse statique ot de données a été développée de façon à n'instrumenter que les opérations sur la mémoire réellement requises. Cette analyse demeure néanmoins perfectible. Le but du stage est de dénir une nouvelle analyse plus précise que celle existante, de la formaliser et de prouver sa correction. Il faudra également l'implémenter en OCaml dans un greon Frama-C. [1] P. Baudin, J.-C. Filliâtre, C. Marché, B. Monate, Y. Moy, and V. Prevosto. ACSL : ANSI/ISO C Specication Language, version 1.7, 2013. http://frama-c.com/acsl.html. [2] M. Delahaye, N. Kosmatov, and J. Signoles. Common specication language for static and dynamic analysis of C programs. In Symposium on Applied Computing (SAC'13), pages 12301235, 2013. [3] N. Kosmatov, G. Petiot, and J. Signoles. An optimized memory monitoring for runtime assertion checking of C programs. In International Conference on Runtime Verication (RV 2013), volume 8174 of LNCS, pages 167182. Springer, September 2013. Candidatures Maîtriser les langages C et OCaml est nécessaire pour ce stage. Avoir des connaissances en analyse de programmes est un plus. Contacts : Julien Signoles et Nikolaï Kosmatov (prenom.nom@cea.fr) Les délais administratifs de recrutement au CEA étant de 2 à 3 mois minimum, merci de prendre contact le plus tôt possible.

Proposition de stage Pro niveau bac+5 Monitoring optimisé pour la détection des erreurs de mémoire dans les programmes C Mots-clés : allocation dynamique, validité des pointeurs, vérification des programmes C, spécification formelle, runtime assertion checking Cadre prépondérant qui mène ses recherches en partenariat avec les grands acteurs industriels du nucléaire, de l automobile, de l aéronautique, de la défense et du médical pour étudier et développer des solutions innovantes adaptées à leurs besoins. Au sein du CEA LIST, le Laboratoire de Sûreté des Logiciels (LSL), localisé à Saclay (Essonne, 91), développe des outils d aide à la validation et à la vérification de logiciels et de systèmes matériels/logiciels, tout particulièrement dans le domaine des systèmes embarqués critiques. L un des nos outils, nommé FRAMA-C (http://frama-c.com), est une plate-forme logicielle facilitant le développement d outils d analyses de programmes C. Le stage se déroulera au sein de l équipe de R&D développant FRAMA-C. Objectifs Chaque programme C analysé par FRAMA-C peut être annoté par des spécifications formelles, écrites dans un langage appelé ACSL [1]. FRAMA-C offre alors différentes techniques de vérification pour garantir que le programme satisfait sa spécification. Une des techniques a pour but de traduire une sous-classe des annotations ACSL celles dites exécutables en instructions C intégrées au programme sous analyse [2]. Cette transformation permet d obtenir un nouveau programme C dont la correction vis-à-vis de sa spécification est vérifiée dynamiquement, pendant son exécution : cette technique est appelée le runtime assertion checking. Une des difficultés principales de cette transformation réside dans la prise en compte du modèle mémoire du langage C. Par exemple, un accès à un tableau hors limites (e.g. avec un indice trop grand), ou à une zone mémoire allouée dynamiquement et ensuite libérée, serait invalide en C. Une bibliothèque (env. 1000 lignes de code C) a été développée [3] pour collecter les allocations, dé-allocations et initialisations effectuées par le programme C et contrôler ensuite la validité (et d autres propriétés) des accès mémoires. Ce stage vise à développer une extension de la bibliothèque qui intégrera de nouvelles fonctionnalités pour une meilleure détection de certaines erreurs. Notamment, des tentatives d utilisation d une zone mémoire libérée et réallouée à nouveau, ou des décalages de pointeur dans un autre bloc en dehors du bloc mémoire initial, ou des accès à cheval entre deux blocs mémoire seront pris en compte. Un deuxième axe des travaux serait l intégration des techniques de monitoring récentes consistant à surveiller la validité de la mémoire grâce à une copie (shadow page) avec des accès fortement optimisés qui pourront améliorer les performances de la bibliothèques. Ce stage sera l occasion d acquérir une bonne expérience de développement pointu en C ainsi qu une expertise en gestion de la mémoire et détection des anomalies. Candidatures Une bonne maîtrise du langage C, notamment en gestion de la mémoire. Connaissances en vérification de programmes seraient un plus. Les délais administratifs de recrutement au CEA étant de 2 à 3 mois minimum, merci de prendre contact le plus tôt possible. Contacts : Nikolai Kosmatov et Julien Signoles (prenom.nom@cea.fr) [1] P. Baudin, J.-C. Filliâtre, C. Marché, B. Monate, Y. Moy, and V. Prevosto. ACSL : ANSI/ISO C Specification Language, version 1.7, 2013. http://frama-c.com/acsl.html. [2] M. Delahaye, N. Kosmatov, and J. Signoles. Common specification language for static and dynamic analysis of C programs. In Symposium on Applied Computing (SAC 13), pages 1230 1235, 2013. [3] N. Kosmatov, G. Petiot, and J. Signoles. An optimized memory monitoring for runtime assertion checking of C programs. In International Conference on Runtime Verification (RV 2013), pages 167 182, 2013.