Syllabus des cursus de Centrale Lille

Programmation système

Libellé du cours : Programmation système
Département d'enseignement : MIN / Mathématiques - Informatique
Responsable d'enseignement : Madame ISABELLE LE GLAZ
Langue d'enseignement : Français
Ects potentiels : 0
Grille des résultats :
Code et libellé (hp) : LA1_A_IF_MIN_PSY - Programmation systèmes

Equipe pédagogique

Enseignants : Madame ISABELLE LE GLAZ / Monsieur THOMAS BOURDEAUD HUY
Intervenants extérieurs (entreprise, recherche, enseignement secondaire) : divers enseignants vacataires

Résumé

Ce module permet de présenter les éléments de programmation système en C sous Linux. Notions liées à l’architecture d’un système d’exploitation monolithique et multitâches Notions nécessaires pour mettre en oeuvre les différentes technique de communication inter-processus sous UNIX, ainsi que la protection et le partage de ressources : -Processus & ordonnancement, création de processus fils, création de threads -Protection par mutex, sémaphores -Production/Consommation de ressources, Synchronisation, Exclusion mutuelle -Communication via signaux, mémoire partagée, tubes anonymes, tubes nommés, sémaphores anonymes, sémaphores nommés, boites aux lettres ● Séances 1 & 2 & 3 & 4 : Révisions des langage C, Shell + prise en main d'un RPI. Projet de développement en C sur RPI ● Séances 5 & 6 : Processus et signaux ● Séance 7 & 8 : Processus, threads, parallélisme et concurrence, mutex ● Séance 9 & 10 : Sémaphores ● Séance 11 & 12 : Mémoire partagée ● Séance 13 & 14 : Tubes et tubes nommés ● Séance 15 & 16 : Boites aux lettres

Objectifs pédagogiques

À l’issue du cours, l’élève sera capable de : ● comprendre les fondements de base des systèmes d’exploitation centralisés ● respecter les contraintes de la programmation système POSIX, dans un environnement UNIX ● appréhender un système par la programmation de ces composants : processus, appels systèmes - instruction/interruption, signaux, sémaphores, threads, … ● concevoir une application multi-processus ou multi-threads avec accès concurrents. Contribution du cours au référentiel de compétences ; à l’issue du cours, l’étudiant aura progressé dans : ● concevoir un système ● réaliser, développer un système ● mettre en place des protocoles de tests ● réaliser et exécuter des jeux de tests Connaissances travaillées: ● Vocabulaire de la programmation système ● Bonnes pratiques du développement système ● Gestion des processus ● Traitement des exceptions ● utilisation avancée des communications inter processus ● algorithmique ● programmation concurrente Compétences développées: ● Bonnes pratiques de développement ● réaliser du code propre ● réaliser des tests unitaires ● commenter son code ● Mettre en commun son code ● Développer une application communicante

Objectifs de développement durable

Modalités de contrôle de connaissance

Contrôle Continu / Contrôle Terminal
Commentaires: Compte-rendus de TP + Soutenance/rapport sur mini-projet + DS

Ressources en ligne

● Plateforme pédagogique de l’école

Pédagogie

Les séances alternent entre TD et TP. Chaque grand sujet est à réaliser sous forme d'un TD avec compte-rendu noté ( contrôle continu). En parallèle, les élèves doivent produire une application multi-processus, mettant en oeuvre au moins deux types de communication inter-processus et un partage et/ou synchronisation de ressources (travail noté sous forme de contrôle terminal, faisant l'objet d'une mini-soutenance technique + un compte-rendu).

Séquencement / modalités d'apprentissage

Nombre d'heures en CM (Cours Magistraux) : 0
Nombre d'heures en TD (Travaux Dirigés) : 32
Nombre d'heures en TP (Travaux Pratiques) : 28
Nombre d'heures en Séminaire : 0
Nombre d'heures en Demi-séminaire : 0
Nombre d'heures élèves en TEA (Travail En Autonomie) : 0
Nombre d'heures élèves en TNE (Travail Non Encadré) : 0
Nombre d'heures en CB (Contrôle Bloqué) : 0
Nombre d'heures élèves en PER (Travail PERsonnel) : 0
Nombre d'heures en Heures Projets : 0

Pré-requis

Programmation en langage C Shell / Linux

Nombre maximum d'inscrits

Remarques