Descriptif
Les systèmes d'exploitation se retrouvent sur la plupart des ordinateurs, de la carte à puce au supercalculateur, en passant par les systèmes embarqués, smartphones, ordinateurs de bureau, mainframes... Quel que soit l'ordinateur, le rôle du système d'exploitation est de permettre un partage des resources (processeur, mémoire, périphériques) entre les différentes tâches du système, et d'offrir une interface de programmation facilitant l'accès à ces resources. Le but de ce cours est de présenter à l'élève les principales abstractions fournies par un système d'exploitation, et lui apprendre à les utiliser, voire implanter.Objectifs pédagogiques
Au terme de ce cours, l'étudiant doit être capable : - d'expliquer le rôle des fonctionnalités fournies par un système d'exploitation : facilitation et partage sécurisé de l'accès aux ressources ; - d'utiliser voire implanter les principales abstractions fournies par un système d'exploitation : threads, synchronisation, passage de message, processus, politique d'ordonnancement, protection mémoire, contrôle d'accès, appels systèmes, systèmes de fichier, virtualisation ; - de développer des logiciels bas-niveau en C, tels que pilotes de périphériques dans un OS, shells, ou plus généralement programmation sur machine nue.
21 heures en présentiel