Aller au contenu principal

Cours · L2

Systèmes d'exploitation — fondations

Progression du module

Points d’expérience : XPSérie de jours consécutifs : · —Progression du module : — / —compris

#Systèmes d'exploitation: fondations

Ce module de niveau L2 correspond au premier vrai face-à-face avec le noyau. L'objectif est d'apprendre à raisonner comme un développeur système: comprendre comment un processus naît, se synchronise, dialogue, écrit sur disque, occupe la mémoire et cède le processeur. Chaque unité est un cours complet, rédigé dans le même esprit que le module Programmation C: on part d'un comportement observable (une commande ps, un fichier qui reste bloqué, une latence réseau) et l'on remonte vers le mécanisme précis qui l'explique.

#Prérequis et objectifs

Prérequis recommandés: une familiarité avec le C (ou tout langage capable d'appeler le système) et avec le shell Unix (module Unix & Shell). Aucune connaissance de bas niveau n'est supposée au départ. À la fin du module, vous saurez:

  • décrire le cycle de vie d'un processus et maîtriser fork, exec, wait et les signaux;
  • protéger une section critique avec sémaphores et mutex, et reconnaître un interblocage;
  • expliquer le rôle des descripteurs, des inodes et du journal dans les entrées-sorties;
  • faire dialoguer deux processus par tubes, sockets Unix et sockets TCP;
  • expliquer la mémoire virtuelle, la pagination et le copy-on-write;
  • comparer les politiques d'ordonnancement et leurs compromis.

#Parcours du module

Le parcours évolue en profondeur. Les deux premiers chapitres posent les abstractions (rôle du noyau, processus, appels système). Les quatre suivants explorent les entrées-sorties et le système de fichiers Unix, jusqu'aux tubes nommés qui servent de premier laboratoire d'IPC. Les chapitres 7 et 8 ouvrent sur le réseau en gardant un pied dans le concret: adressage IP, sockets, serveurs concurrents. Enfin, la mémoire virtuelle et l'ordonnancement referment le module en montrant comment l'OS arbitre ce qui est souvent invisible.

  1. Introduction aux systèmes d'exploitation: rôle et architecture du noyau.
  2. Processus: création, remplacement, signaux, code de retour.
  3. Synchronisation entre processus: sections critiques, sémaphores, interblocage.
  4. Fichiers et système de fichiers Unix: descripteurs, inodes, journalisation.
  5. Tubes nommés: le laboratoire d'IPC minimal.
  6. Réseaux et sockets: adressage, cycle client-serveur, multiplexage.
  7. Gestion de la mémoire: pagination, layout, partage.
  8. Ordonnancement: politiques, CFS, threads.

#Méthode de travail

Le fil directeur reste la pratique. Pour chaque cours, un atelier court mais exigeant est proposé: instrumenter un fork, observer un verrou qui gèle un programme, démarrer un serveur TCP minimal. Ces travaux pratiques peuvent être intégrés directement dans les séances de TD ou servir de point de départ à des mini-projets. La progression recommandée est constante: observer un comportement avec les outils Unix, écrire un programme C minimal qui utilise le mécanisme, puis expliquer le résultat à partir des appels système et des structures du noyau.

#Le cours officiel dont ce module prolonge la matière

Ce module s'appuie sur l'UE SPUF201 « Système 1 : utilisation d'Unix et programmation shell » (Licence, portail Sciences et technologies, semestre 2, Université Côte d'Azur, campus Valrose). Sept chapitres de cours, six feuilles de travaux pratiques, des fiches de révision et quatre sujets d'épreuve constituent ce fonds.

  1. Introduction — composants d'un système informatique, historique du traitement par lots au temps partagé, responsabilités de ressources, structure en couches, catégories de fichiers.
  2. Fichiers et répertoires — arborescence, chemins, protections, liens durs et symboliques, jokers.
  3. Installation d'une distribution GNU/Linux — distributions, partitions et MBR, systèmes de fichiers, montage, administration, virtualisation.
  4. Réseaux, adresses, protocoles — graphe, Ethernet et MAC, classes IPv4 puis CIDR et IPv6, DNS, TCP, protocoles de communication, courrier électronique.
  5. Le shell — utilisation interactive, redirections, analyse de la ligne de commande, scripts, paramètres et substitutions.
  6. Les outils d'Unix — recherche d'information, utilitaires sur les processus et les fichiers, filtres et éditeurs.
  7. Connexion et communication — telnet, rlogin, rsh, SSH, fichiers distants, HTTP et HTML.

#Une précision de bonne foi sur le périmètre

Le cours SPUF201 est un cours d'utilisation d'Unix: il décrit les mécanismes et les outils qui les rendent observables, mais il n'étudie ni les algorithmes d'ordonnancement, ni la pagination, ni les sémaphores. Les chapitres Ordonnancement, Gestion de la mémoire et Synchronisation entre processus de ce module vont donc au-delà du cours officiel. Ils le signalent chacun en tête de page, et les annales ne leur empruntent aucun exercice: ce qui est évaluable se trouve dans le fonds SPUF201.

Plan du cours · 12 sections

Sections du cours