Les systèmes Multi-threading (multi-tâche) : Comment éviter les pièges afin de profiter des avantages de ces architectures

Séminaires





Accueil du site > fr > Séminaires > Séminaires - historique 2016 > Les systèmes Multi-threading (multi-tâche) : Comment éviter les pièges afin de (...)
Lundi 23 mai 14:00-18:00Toulouse (31)
Le but de ce séminaire est de découvrir les avantages que le multi-threading peut apporter à vos applications. Vous découvrirez les méthodes pour concevoir des applications parallèles, les sujets abordés inclus comment identifier les parallélismes dans une application, éviter les pièges et erreurs potentiels.
Dans certains cas, les programmes utilisant des threads sont plus rapides que des programmes architecturés plus classiquement : ces systèmes s’adressent autant aux architectures mono-processeurs que multi-processeur. Le partage de ressources entre threads permet une communication plus efficace entre les différents threads d’un processus qu’entre deux processus distincts. La programmation utilisant des threads est toutefois plus rigoureuse que la programmation séquentielle. L’accès à certaines ressources partagées doit être restreint par le programme lui-même, pour éviter que l’état d’un processus ne devienne temporairement incohérent, tandis qu’un autre thread va avoir besoin de consulter cette portion de l’état du processus.
Il est donc obligatoire de mettre en place des mécanismes de synchronisation (à l’aide de sémaphores, par exemple), tout en conservant à l’esprit que l’utilisation de la synchronisation peut aboutir à des situations d’interblocage si elle est mal utilisée. La complexité des programmes utilisant des threads est aussi nettement plus grande que celle des programmes déférant séquentiellement le travail à faire à plusieurs processus plus simples (la complexité est similaire dans le cas de plusieurs processus travaillant en parallèle). Cette complexité accrue, lorsqu’elle est mal gérée lors de la phase de conception ou de mise en œuvre d’un programme, peut conduire à de multiples problèmes.

Intervenant : Mr Frédéric CAMPS - LAAS-CNRS

PROGRAMME

13H45-14H00 : Accueil

14H00 – 15H 45 : Les Systèmes en Multi-threading (I)

  • Introduction
    - concept, avantage / inconvénient, définition, mémoires d’un programme, machine à état, performance.
  • Normalisation et mise en œuvre
    - POSIX
    - mise en œuvre en C, mise en œuvre en C++, mise en œuvre en Java
    - thread et temps réel
    - IPC inter-process communication : mémoire partagée, tube & tube nommé
    - priorité, design patterns, choix d’un OS

15h45 – 16h15 : Pause Café

16H15 – 17H 30 : Les Systèmes en Multi-threading (II)

  • Multithreading et concurrence
    - gestion de la concurrence
    - synchronisation : mutex, sémaphore,
    - section critique : protocole d’entrée et sortie
    - variable atomique, opération atomique, exclusion mutuelle matériel.
    - structure lecteur/écrivain, attente passive/active
    - algorithme de Peterson
  • Analyse
    - introduction réseau de Pétri
  • Parallélisation massive
    - introduction OpenMP

17H30- 18H00 Retour d’expériences – Conclusions/Questions

INFORMATIONS PRATIQUES

Date et Lieu :
  • Lundi 23 mai 2016 de 14H00-18H00
  • LAAS/CNRS – 7, avenue du Colonel Roche - TOULOUSE

Prix : Les frais liés à l’organisation de ce séminaire sont pris en charge par CAP’TRONIC.

Contact : Richard SALVETAT au 05 61 33 78 68 - salvetat@captronic.fr

Inscription obligatoire
Inscription séminaire : Les systèmes Multi-threading (multi-tâche) du 19/04/16 à Toulouse
[Obligatoire] :
[Obligatoire] :
:
:
:
Crédits © JESSICA FRANCE 2005 - 2016
Le programme CAP’TRONIC est financé par le Ministère de l’Economie et des Finances.