Systèmes avancés, M1

Plan

  1. Introduction, programmes, processus, ordonnanceur, appels système fork, _exit, wait, waitpid, execve. Paragraphe 3.1 du poly.
  2. Communication entre processus : fichiers. Cohérence, atomicité. Paragraphe 3.2 du poly.
  3. Opérations atomiques (O_CREAT, rename) et atomiques conditionnelles (O_EXCL, link). Le buffer cache, fsync. Lockfiles et flock. Paragraphe 3.2 du poly et paragraphe 3.7.1.
  4. Structures de données du noyau : i-nœud mémoire, entrée de la table de fichiers ouverts, descripteur de fichiers. Comportement du pointeur de position courante et des locks à travers fork. Redirections : dup, dup2. Tubes anonymes. Paragraphes 2.1, 3.4 et 3.3.
  5. Tubes nommés. Sockets de domaine Unix. Paragraphes 3.3.2 à 3.3.4.
  6. Protection mémoire. Mémoire virtuelle et applications. L'appel système mmap. Paragraphes 3.5 et 3.6.

Feuilles de TP

  1. fork, exec.
  2. Locks et lockfiles.
  3. Descripteurs de fichier à travers fork, redirections, tubes.
  4. Tubes nommés.

Projet

Le projet est la partie pratique de l'examen, et compte pour 50% de la note finale. Le sujet sera distribué la semaine du 25 février ou celle du 4 mars, selon l'avancement du cours.