====== Programmation système avancée ====== ===== Description ===== Le cours traite certains sujets avancés de programmation système UNIX, au-delà de ce qui est enseigné dans le cours de Systèmes d'exploitation en L3. ===== Syllabus ===== ==== Sujets centraux ==== - Verrous de fichiers - Les entrées/sorties bloquants et nonbloquants - Multiplexing - Mémoire partagée et projection de fichier en mémoire - Synchronisation de processus grâce aux variables ''mutex'' et ''condition'' - Signaux et handlers ==== Sujets potentiellement traités ==== * Rappel, si nécessaire, de certains sujets traités dans le cours de Systèmes d'exploitation de L3 : * les entrées/sorties de bas niveau * communication par pipe et fifo (tube anonymes et nommés) * redirections * création et gestion de processus, recouvrement * Sockets du domaine UNIX * Threads POSIX * Synchronisation de processus grâce aux sémaphores * Pseudo-terminaux * Processus demon * Files de messages POSIX * Complement C : ''setjmp'' et ''longjmp'' ===== Pré-requis ===== Bonne maîtrise du langage C (cours [[..:..:..:licence:2024-2025:ue:l2:lc4|Langage C]] en L2) et de bases de programmation système (cours [[..:..:..:licence:2024-2025:ue:l3:sy5|Systèmes d'exploitation]] en L3).