Le CNAM en Région Centre
Conservatoire National des Arts et Métiers
Se former avec le CNAM
Se former au CNAM de la Région Centre
Se former au CNAM de la Région Centre
Rechercher une Unité d'enseignement par code
CNAM Centre, Unité d'enseignement Systèmes informatiques et applications concurrentes proposée par le CNAM de La Région Centre
Rechercher une formation par Domaine/Pôle d'activité
CNAM Centre, Unité d'enseignement Systèmes informatiques et applications concurrentes proposée par le CNAM de La Région Centre
Rechercher une formation par niveauAccueil du site Internet du CNAM
Rechercher une formation par niveau
CNAM Centre, Unité d'enseignement Systèmes informatiques et applications concurrentes proposée par le CNAM de La Région Centre
CNAM
Le CNAM en région CentreLe CNAM en région Centre
Actualités / agenda du CNAM en région CentreActualités / agenda du CNAM en région Centre
Se formerSe former
Formations Entreprises et ProfessionnellesFormations Entreprises et Professionnelles
Offres de stagesOffres de stages
Organisations professionnellesOrganisations professionnelles
CNAM Centre
Coordonnées du CNAM de la Région Centre Centre Régional du CNAM
Centre d'enseignement d'Orléans
21 bis, rue Eugène Vignat
45000 Orléans

Tél : 02.38.62.34.21
Fax : 02.38.62.46.19

Centre d'enseignement de Bourges
61 av. de Lattre de Tassigny
18000 Bourges
Tél : 02.48.23.80.89
Fax : 02.48.23.80.28

Centre d'enseignement de Tours
Lycée Grandmont
6 av. de Sévigné
37200 Tours
Tél : 02.47.27.57.59
Fax : 02.47.28.94.40

Actualités du CNAM en flux RSS 2.0   Site Réalisé par Force-interactive.com
Systèmes informatiques et applications concurrentes
 Code : NFP137
 Nombre de crédit : 6
 Descriptif de l'unité d'enseignement

Public concerné et conditions d’accès

connaissances de la programmation et des systèmes informatiques vues en premier cycle du Cnam ou équivalent

Finalités de l’unité d’enseignement

Objectifs pédagogiques :

Permettre de comprendre les principaux paradigmes et "patterns" de la programmation concurrente qui sont utilisés dans les systèmes informatiques et les applications. Obtenir des bases pour des compétences en : évolution des systèmes informatiques, ouverture et interfaçage des systèmes, programmation d'applications comportant des processus coopérants, locaux ou distants (applications temps réel, applications réparties... ).

Capacité et compétences acquises :

Obtenir des bases pour des compétences en : programmation d'applications comportant des processus coopérants, locaux ou distants (applications temps réel, applications réparties... ), exploitation des systèmes centralisés et répartis, évolution des systèmes informatiques, ouverture et interfaçage des systèmes.

Organisation

Description des heures d’enseignements

CT : 60 heures

Modalités de validation :

examen
dossier de projet

Contenu de la formation

Programmation concurrente pour les systèmes et les applications
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, Linus, 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, langage Ada95.
Synchronisation par mémoire commune. Mécanismes élémentaires d'exclusion mutuelle. Sémaphore, moniteurs (aperçu), objets protégés de ADA95 (aperçu), méthodes synchronisées de JAVA.
Programmation de la synchronisation par "design patterns" avec des sémaphores (ou objets protégés ADA95). 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.
Synchronisation par messages. Cas d'UNIX et de LINUX. Boîte aux lettres. Client-serveur. Rendez-vous ADA. "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 (Grafcet pour le temps réel), 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.

Introduction. Actualité de la programmation concurrente, utilité, difficultés, développements. 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, Linus, 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. Interblocage. Détection et prévention de l'interblocage. Prévention statique (classes ordonnées) et prévention dynamique (algorithme du banquier). 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 applicationsAnalyse 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)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, langage Ada95. Synchronisation par mémoire commune. Mécanismes élémentaires d'exclusion mutuelle. Sémaphore, moniteurs (aperçu), objets protégés de ADA95 (aperçu), méthodes synchronisées de JAVA. Programmation de la synchronisation par "design patterns" avec des sémaphores (ou objets protégés ADA95). 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. Synchronisation par messages. Cas d'UNIX et de LINUX. Boîte aux lettres. Client-serveur. Rendez-vous ADA. "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. Présenter les principales abstractions utiles : compteurs abstraits, assertions, automates synchronisés (Grafcet pour le temps réel), 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

Auteur

Titre

C. KAISER

polycopié et documents en ligne http://deptinfo.cnam.fr/Enseignement/CycleProbatoire/SRI/Systemes/

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

S. BOUZEFRANE

Les systèmes d’exploitation, Unix, Linux et Windows XP, avec C et Java, Dunod 2003 (566 pages), ISBN : 2100071890

M. DIVAY

Unix et les systèmes d'exploitation, Dunod 2000 (344 pages)

A. SILBERSCHATZ, P. GALVIN, G. GAGNE

Principes appliqués des systèmes d'exploitation, avec Java, Vuibert 2001 (800 pages)

A.S. TANENBAUM

A. Silberschatz, P. Galvin, G. Gagne

A. SILBERSCHATZ, P. GALVIN

Principes des systèmes d'exploitation, 4e édition, Addison-Wesley 1994 (772 pages)

CROCUS

livre disponible gratuitement sur le serveur de la bibliothèque numérique du CNAM à l’URL http://cnum.cnam.fr

C KAISER

documentation en ligne http://deptinfo.cnam.fr/Enseignement/CycleSpecialisation/ACCOV/