De par le développement 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
- de comprendre les problèmes fondamentaux des systèmes concurrents
- et d'acquérir des notions de spécification de ces systèmes
Avoir le niveau licence informatique (L3).
Public concerné : Élèves ingénieurs, étudiants en master
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, “thread”, 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 :
* Expressions régulières et automates finis à états
* automates, automates synchronisés
* Preuve de programme:
* contrat de fonction, pré-post-conditions, invariants de boucles
* terminaison
* structures de Kripke, logiques temporelles
Cette UE apparaît dans les diplômes et certificats suivants :
| Tarif (1) : |
|---|
|
Vous pouvez consulter nos tarifs ici. |
| Date de début de cours : |
Les dates fournies sont d'ordre général à toutes les formations. Les cours pour cette formation peuvent potentiellement commencer un peu plus tard dans le semestre. |
| Annuel : |
|
Il s'étend de fin septembre / début octobre à début juillet (dates indicatives, renseignez-vous auprès de votre centre). |
| Semestre 1 : |
|
Il s'étend de fin septembre / début octobre à fin janvier / début février (dates indicatives, renseignez-vous auprès de votre centre). |
| Semestre 2 : |
|
Il s'étend de fin février / début mars à début juillet (dates indicatives, renseignez-vous auprès de votre centre). |
| Cours du soir : | |
|---|---|
|
Les cours commencent le plus souvent à 18h30 dans les centres. |
|
| Cours en journée : | |
|
Se renseigner auprès du centre pour connaître les horaires. |
|
| Cours en ligne : | |
|
les cours sont diffusés sous forme de séances numériques via une plateforme d’e-learning animées et tutorées par un enseignant. Des séances de regroupement en visio sont proposées. |
|
| Classe virtuelle (Formation à distance planifiée): | |
|
L'enseignant à distance intervient en direct et en visioconférence sur la plateforme d'e-learning. Il complète son intervention par des activités interactives (exercices échanges…) |
|
| Cours en ligne hybride : | |
|
Cette modalité associe des cours en ligne tutorées et des regroupements en présentiel ou en classes virtuelles obligatoires. |
|
| Cours hybrides : | |
|
Cette modalité mixe des cours en présentiel (en cours du soir ou en journée) et des cours en ligne. |
|
| Cours en ligne organisés par un autre centre CNAM Régional : |
|
|
Les cours sont diffusés sous forme de séances numériques via une plateforme d'e-learning animées et tutorées par un enseignant. |
|
| Formation co-modale : | |
|
Formation proposée en présentiel et à distance en simultané. L'auditeur a la possibilité de choisir de venir sur site pour suivre l'enseignement ou bien de suivre à distance. Les cours se déroulent en semaine généralement après 18h ou le samedi. |