Applications concurrentes : conception et outils de validation (ACCOV)

Code UE : NFP103-NMD

  • Cours + travaux pratiques
  • 6 crédits

Responsable national

Kamel BARKAOUI

Responsable opérationnel

Kamel BARKAOUI

Public et conditions d'accès

Avoir le niveau licence informatique (L3).
Public concerné : Élèves ingénieurs, étudiants en master

Objectifs pédagogiques

De par le développement des technologies Web, des langages de programmation concurrente, des outils de programmation réseau et celui des processeurs multi-cœurs, le calcul concurrent est aujourd'hui omniprésent dans la construction de systèmes comme les systèmes d'exploitation, les systèmes distribués et les systèmes temps réel. Cependant, la conception de tels systèmes et la preuve de leur correction sont des tâches très difficiles.
Ce cours a pour objectif :
- d'acquérir une connaissance pratique des "bons" patrons de la programmation concurrente (Java)
- de comprendre les problèmes fondamentaux des systèmes concurrents
- et de s'initier à des méthodes et techniques de vérification automatique de ces  systèmes (model-checking, logiques temporelles) 

Compétences visées

conception, programmation et validation d'applications concurrents fiables

Structuration des applications concurrentes
Contrôle de concurrence dans les systèmes transactionnels, les systèmes d'information répartis, les applications temps réel.

Les paradigmes de la concurrence et les archétypes de programmation ('design patterns').
Exclusion mutuelle, élection, producteur consommateur, lecteurs rédacteurs, client-serveur, "peer to peer", problèmes liés aux pannes, diffusion atomique ordonnée, inter-blocage, famine, équité, terminaison.
Mécanismes de bases (processus, sémaphores, moniteurs, la classe "thread" et les méthodes "synchronized" dans Java, tâches et objets protégés dans ADA95, communication synchrone et asynchrone, messages, boîtes aux lettres, invocation à distance, rendez-vous). Modularité et objets concurrents.
 
Spécification et vérification de propriétés de systèmes concurrents
Aperçu des méthodes de spécification : automates, automates synchronisés, réseaux de Petri, structures de Kripke, logiques temporelles.
Techniques d'analyse : analyse structurelle (réseaux de Petri), model-checking (Logique temprelle). Utilisation d' outils (open source) de simulation et de vérification : Spin, Design/CPN.

  • M. Ben-Ari : Principles of Concurrent and Distributed Programming , Addison-Wesley, 2006.
  • Brian Goetz : Programmation concurrente en Java. Éditions Pearson Education , Collection Référence, 2009
  • S. Haddad & al : Ed Lavosier 2006

Cette UE apparaît dans les diplômes et certificats suivants

Chargement du résultat...
Patientez
Type
Intitulé
Equipe pédagogique
Modalité(s) / Lieu(x)
Code
Equipe pédagogique Informatique
Equipe pédagogique Informatique
Modalité(s) / Lieu(x)
  • Enseignée en formation présentielle et/ou partiellement à distance : Bretagne, Grand Est, Hauts de France, Ile-de-France (sans Paris), Liban, Midi-Pyrénées, Normandie, Nouvelle Aquitaine, Paris
  • Equipe pédagogique Informatique
    Modalité(s) / Lieu(x)
  • Enseignée en formation présentielle et/ou partiellement à distance : Bretagne, Ile-de-France (sans Paris), Paris
  • Equipe pédagogique Informatique
    Equipe pédagogique Informatique
    Modalité(s) / Lieu(x)
  • Enseignée en formation présentielle et/ou partiellement à distance : Paris
  • Type Intitulé Equipe pédagogique Modalité(s) / Lieu(x) Code

    Contact

    EPN05 - Informatique
    2 rue Conté
    75003 Paris
    Tel :01 40 27 22 58
    Swathi Rajaselvam

    Centre(s) d'enseignement proposant cette formation