Vous êtes sur la page 1sur 2

- Sciences et technologies de l'information et de la communication - UE - 2010-2011

SMB137 - Systèmes informatiques et


applications concurrentes
Ivan BOULE

Informations extraites
de BDO le 9/9/2010
Public concerné et conditions d'accès
élèves avec les connaissances de la programmation et des systèmes informatiques vues en premier cycle
du Cnam ou équivalent

Finalités de l'unité d'enseignement


SMB137
Objectifs pédagogiques :
Permettre de comprendre les principaux paradigmes et "patterns" de la programmation concurrente
Contacts
qui sont utilisés dans les systèmes informatiques et les applications. Obtenir des bases pour Responsable national
des compétences en : compréhension du fonctionnement des systèmes informatiques, modernes, Ivan BOULE
programmation d'applications comportant des processus coopérants, locaux ou distants (applications Contact à Paris
temps réel, applications réparties... ). Accès 12 2 40
Capacités et compétences visées : Chaire de systèmes enfouis et
Obtenir des bases pour des compétences en : programmation d'applications comportant des processus embarqués
coopérants, locaux ou distants (applications temps réel, applications réparties... ), programmation des 292 Rue Saint Martin
applications centralisées et réparties, évolution des systèmes informatiques, ouverture et interfaçage des 75003 Paris
systèmes. Tél : 01 40 27 26 81
Fax : 01 58 80 86 53
Organisation
Meriem Bouabdellah
Nombre de crédits enseignements ECTS meriem.bouabdellah@cnam.fr
6 ECTS Informations
complémentaires
Contenu de la formation http://deptinfo.cnam.fr/new/
Programmation concurrente pour les systèmes et les applications infos.php?ue=NFP137
Introduction. Actualité de la programmation concurrente, utilité, difficultés, développements.
Rappel sur la gestion cooperative et concurrente des ressources partagées entre utilisateurs ou
processus.
Concurrence dans la machine virtuelle fournie à l'utilisateur par le système d'exploitation. Processus et
environnement d'exécution. Espace d'adressage : exemple d'Unix et Linux.
Le système fournissant des services communs et une plate-forme commune. Gestion des processus et
partage des ressources. Structures de systèmes. Introduction et exemples sur l'allocation des ressources.
Mesure de charge, d'occupation de l'espace d' adressage.
Ordonnancement des processeurs, (Exemples : Unix, Linux, Chorus, Temps réel). Ordonnancement des
transferts disques.
Gestion de mémoire. Allocation. Placement par zone, par page. Mémoire virtuelle paginée. Ecroulement.
Stratégies globales d'allocation de ressources. Localité, espace de travail.
Fiabilité de la concurrence Interblocage
Interblocage. Détection et prévention de l'interblocage. Prévention statique (classes ordonnées) et
prévention dynamique (algorithme du banquier).
Paradigmes et "patterns" de la concurrence
Présentation des principaux paradigmes (et "patterns") de la concurrence tels qu'ils résultent de
l'expérience des communautés systèmes d'exploitation, systèmes et applications temps réel, systèmes
et applications embarqués, systèmes et applications répartis : exclusion mutuelle, producteurs-
consommateurs, lecteurs-rédacteurs, dîner des philosophes. Système centralisé ou réparti. Exemples
d'utilisation dans des applications
Concurrence et environnement d'exécution
Analyse des contraintes que la programmation concurrente apporte pour l'environnement d'exécution :
gestion des processus (process, threads, tasks), des variables locales, globales et persistantes (piles,
tas), de la protection (espaces d'adressages séparés, segmentation), de la communication (canaux,
mémoire virtuelle partagée)
Programmation des paradigmes et "patterns"
Présentation des solutions dans les principaux systèmes et langages utilisés : API systèmes (sémaphores,
mutex, conditions, signaux, normes Posix), langage Java.
Synchronisation par mémoire commune. Mécanismes élémentaires d'exclusion mutuelle. Sémaphore,
moniteurs (aperçu), méthodes synchronisées de JAVA.
Programmation de la synchronisation par "design patterns" avec des sémaphores. Propriétés, coopération
entre processus, producteurs-consommateurs. Lecteurs-rédacteurs, dîner des philosophes. Les
techniques de programmation. Sémaphores privés. Allocation de mémoire. Solutions en programmation
par objets.

Fiche informative sans valeur contractuelle


- Sciences et technologies de l'information et de la communication - UE - 2010-2011

Synchronisation par messages. Cas d'UNIX et de LINUX. Boîte aux lettres. Client-serveur. "Design
patterns" pour les paradigmes.
Synchronisation par messages dans les systèmes répartis. Ordre partiel causal, ordre total à la Lamport,
algorithme réparti d'exclusion mutuelle.
Formalisation, Validation, Performances
Présenter les principales abstractions utiles : compteurs abstraits, assertions, automates synchronisés ;
relation d'ordre entre événements.
Aperçu sur les besoins de validation et de performance des programmes concurrents.
Présentation formelle de la détection et de la prévention de l'interblocage.

Bibliographie
Auteurs Titre
M. DIVAY Unix et les systèmes d'exploitation, Dunod 2000 (344 pages)
R. H. CARVER , KUO- Modern Multithreading Wiley 2005 (465 pages)
CHUNG TAI
B. LECUSSAN documents en ligne http://deptinfo.cnam.fr/new/spip.php?
rubrique222
A.S. TANENBAUM Operating System Concepts 7th Edition 2005 920 pages
CROCUS livre disponible gratuitement sur le serveur de la bibliothèque
numérique du CNAM à l'URL http://cnum.cnam
S. BOUZEFRANE Les systèmes d'exploitation, Unix, Linux et Windows XP, avec C et
Java, Dunod 2003 (566 pages), ISBN : 2100071890
C. COQUERY Exercices de systèmes et réseaux informatiques B (polycopiés
du CNAM) , Il est aussi à : http://deptinfo.cnam.fr/Enseignement/
CycleProbatoire/SRI_B
C KAISER doc. en ligne http://deptinfo.cnam.fr/Enseignement/
CycleSpecialisation/ACCOV/

Fiche informative sans valeur contractuelle