Systèmes d'exploitation

Se connecter pour s'inscrire

Présentation du cours

Relier les notions de processus, mémoire, fichiers et appels système à un programme C observé et testé.

  1. Public cible

    Débutants, étudiants et professionnels qui souhaitent acquérir une pratique structurée dans ce domaine.

  2. Objectifs

    Comprendre les notions essentielles et les appliquer dans un projet vérifiable.

  3. Prérequis

    Aucune connaissance préalable n’est strictement obligatoire ; les prérequis détaillés sont précisés dans les ateliers.

  4. Niveau

    Tous niveaux

  5. Ressources

    • Documentation officielle et références citées dans les ateliers.
    • Exercices, examens et projet de synthèse du catalogue.
  6. Validation des compétences

    La validation repose sur les évaluations actives et les livrables pratiques du cours.

  7. Besoins techniques

    Un ordinateur, un navigateur et les outils indiqués dans le premier atelier sont suffisants pour commencer.

Exercices, examens et projets

Modèle et processus

Exercice

Atelier systèmes

Manipuler processus, mémoire et fichiers avec un programme C.

Obligatoire Consulter
Examen

Examen systèmes

Évaluer les notions de processus, mémoire, fichiers et appels système.

Obligatoire Consulter
Projet

Projet systèmes

Réaliser un programme système robuste et documenté.

Livrables :

  • Code source
  • Tests
  • Documentation
Obligatoire Consulter

Mémoire et fichiers

Exercice

Atelier systèmes

Manipuler processus, mémoire et fichiers avec un programme C.

Obligatoire Consulter
Examen

Examen systèmes

Évaluer les notions de processus, mémoire, fichiers et appels système.

Obligatoire Consulter
Projet

Projet systèmes

Réaliser un programme système robuste et documenté.

Livrables :

  • Code source
  • Tests
  • Documentation
Obligatoire Consulter

Systèmes d’exploitation

Comprendre comment un système d’exploitation gère les processus, la mémoire, les fichiers et les périphériques, puis relier ces notions à un programme C.

À la fin du cours

  • Décrire les rôles du noyau et des processus.
  • Comprendre mémoire virtuelle, threads et appel système.
  • Manipuler fichiers, permissions et entrées-sorties.
  • Écrire un petit programme C observé avec des outils système.

Organisation

Le cours suit processus, mémoire, fichiers et observation système.

Prérequis : Bases de programmation C et de ligne de commande.

Processus et concurrence

Un processus possède son espace mémoire et ses ressources. Le noyau ordonnancement les processus, gère leur cycle de vie et les communications entre eux.

Les threads partagent la mémoire et nécessitent une synchronisation. Comprendre la différence permet d’éviter les conditions de course et les interblocages.

fork() → waitpid() → lecture des descripteurs → terminaison contrôlée
Point de contrôle : Le programme indique son PID, son état et la raison de sa terminaison.

Mémoire et appel système

La pile contient les variables locales et les appels ; le tas contient les allocations dynamiques. Vérifier les erreurs d’allocation et libérer les ressources.

Un appel système bascule en mode privilégié. Observer les entrées, sorties et codes d’erreur permet de comprendre le comportement réel du processus.

int fd = open("data.txt", O_RDONLY); read(fd, buffer, sizeof buffer); close(fd);
Point de contrôle : Aucune ressource ouverte ou zone allouée n’est oubliée sur le chemin nominal et les erreurs.

Fichiers et permissions

Un chemin décrit l’emplacement logique d’une ressource. Les permissions, propriétaire et masques déterminent qui peut lire ou modifier un fichier.

Écrire de façon atomique, vérifier les erreurs et éviter de suivre un lien inattendu dans un contexte de sécurité. La suppression et le renommage doivent être explicites.

umask(022); open("config.txt", O_WRONLY | O_CREAT | O_TRUNC, 0640);
Point de contrôle : Le fichier créé possède les permissions documentées et ne contient pas de secret en clair.

Observer et reproduire

Utiliser ps, top, strace, lsof et les journaux pour comprendre le comportement. Observer avant de modifier : le diagnostic doit être reproductible.

Préparer un petit laboratoire avec un programme C, des entrées connues et des erreurs attendues. Le livrable doit expliquer ce que le programme démontre.

Méthode

  1. Compiler avec les avertissements.
  2. Exécuter un cas nominal.
  3. Provoquer une erreur.
  4. Comparer les traces et l’état.
Point de contrôle : Le programme est compilé, exécuté, observé et ses erreurs sont documentées.

Livrables et validation

Le livrable doit montrer une compréhension personnelle, des choix explicités et une vérification par un cas de test ou une procédure reproductible.

  • Un mini-programme C commenté par étapes.
  • Un protocole de compilation et d’exécution.
  • Des observations de processus, mémoire et fichiers.
  • Une analyse d’une erreur et de sa correction.
Critère de réussite : Le cours est validé lorsque le programme compile, produit le résultat attendu et que son comportement système est expliqué par des traces.

Publié le 09/05/2025