Matière
Programmation système
Description
Cette matière présente les principaux concepts manipulés par les systèmes d'exploitation sous l'angle de la programmation avec les primitives systèmes : fichiers et répertoires, gestion des périphériques, processus, droits, tubes et signaux. L'accent est mis sur la portabilité des applications au travers de l'utilisation de la norme POSIX. Travaux pratiques : programmation en langage C sous Linux.
Compétences requises
À l'entrée dans cette matière, un étudiant devrait savoir :
-
manipuler les notions avancées du langage C (structures de données dynamiques, pointeurs, opérateurs binaires, etc.)
-
transcrire des algorithmes en langage C
- lire et écrire des scripts shell
Compétences visées
À l'issue de ce cours, un étudiant saura :
-
utiliser les principaux appels système, permettant des interactions entre un programme et le système d'exploitation
-
écrire des programmes manipulant les objets mis à disposition par le système : processus, fichiers, répertoires, tubes, signaux.
-
optimiser l'utilisation des ressources système
-
faire interagir des programmes entre eux
Discipline(s)
- Informatique
Syllabus
-
Historique des systèmes d’exploitation
-
Introduction à la programmation système sous Unix et à la norme Posix
-
Primitives système pour l’accès aux fichiers et répertoires sous Unix
-
Introduction au principe de la multiprogrammation
-
Primitives système pour la gestion des processus sous Unix
-
Primitives système pour la gestion des tubes Posix
-
Introduction à la notion de programmation évenementielle / asynchrone
-
Interruptions et signaux
-
Primitives système pour la gestion des signaux Unix
Bibliographie
Bibliographie : R.W. Stevens, Advanced Programming in the UNIX Environment, Addison-Wesley