L'unité d'enseignement « UNIX: programmation système » est
une UE de niveau (300) spécialisation relevant de la licence d'informatique.
Elle possède un volume de 6 ECTS et
s'étend sur 7 semaines en alternance. Elle est placée sous la responsabilité de Guesne, edith.
Description
Cette unité présente les fonctionnalités et les mécanismes internes d'un système d'exploitation multi-tâches, au travers du cas du système UNIX. Les connaissances acquises au cours de cet enseignement permettront de développer des applications, écrites en langage de haut niveau, faisant directement appel au noyau du système, et notamment des applications client-serveur susceptibles de fonctionner au travers d'un réseau.
L'unité présente les fonctionnalités et les composants du système. Au travers de l'utilisation de l'API du système pour produire des réalisations logicielles pratiques, elle met l'accent sur le fonctionnement multitâches par la création de processus concurrents, la communication entre processus et la synchronisation; elle met aussi en évidence toute la puissance de la conception unificatrice du système de fichiers UNIX, en faisant opérer les redirections d'entrées/sorties aussi bien à destination d'un terminal que vers un fichier classique sur disque, un tube ou des sockets de communication entre machines distantes.
Préalables et buts pédagogiques
Bibliographie
Contenu indicatif par semaine
Fonctionnalités et composants d'un système d'exploitation: architecture du système UNIX (noyau, commandes externes, shells, librairies, API, ...); architecture du noyau UNIX.
Bases du fonctionnement multitâches: notion de processus; états d'un processus; table des descripteurs de processus; appels système de création et de gestion des processus.
Les signaux: appels systèmes; mécanismes et éléments des tables du système assurant la gestion des signaux.
Ordonnancement des processus: notion d'interruption; interruption d'horloge; algorithmes d'ordonnancement.
Système de gestion de fichiers: notion de fichier sous UNIX (fichiers réguliers sur disque, répertoires, terminaux, tubes, sockets); tables du système; appels système (open, close, read, write) et mécanismes sous-jacents; mécanisme de redirection des entrées/sorties.
Les tubes: implantation et propriétés spécifiques.
Mémoire hiérarchique, notion de cache: caches système pour l'optimisation des opérations d'entrée/sortie sur disque; caches utilisateur pour l'optimisation des lectures/écritures par les fonctions de la bibliothèque standard.
Gestion de la mémoire: mémoire virtuelle et pagination.
Les segments de mémoire partagés (IPC).
Les sémaphores (IPC).
Les sockets (communication locale du domaine UNIX, communication réseau du domaine INTERNET; mode connecté, mode datagrammes).