Systèmes d'exploitation (SY5)

Description

Le but de ce cours est d'expliquer le rôle d'un système d'exploitation, et de maîtriser les mécanismes de base d'un système de type Unix, en particulier Linux (fichiers, processus et mémoire). Une partie du cours porte sur les structures de données et les algorithmes utilisés par Unix, une autre sur la programmation bas niveau (C POSIX).

Syllabus

Sujets centraux

  1. rôle d'un système d'exploitation, notions de processus, de fichier, d'appel système;
  2. entrées/sorties bas niveau sur fichier ordinaire;
  3. organisation du SGF, répertoires, inoeuds, attributs, types de fichiers, fichiers spéciaux, références, droits;
  4. parcours, consultation et modification d'arborescence;
  5. processus : états, implémentation, création, recouvrement, zombie, synchronisation avec `wait`;
  6. tables du système : table des processus, des ouvertures de fichiers, des inoeuds virtuels…
  7. flots standard, duplication de descripteurs, redirection;
  8. tubes (nommés ou anonymes) : caractéristiques, création, ouverture, lecture et écriture bloquantes, pipelines, fonctionnement en mode non bloquant;
  9. signaux : mécanisme général, envoi, comportement par défaut, modification du gestionnaire.

Sujets potentiellement traités

Pré-requis