[Audio] Classe: ING AN3 GAP AIA 2025-2026 Enseignante: Judith Nouho.
[Audio] Objectifs du cours Ce cours vise à familiariser l'étudiant avec les concepts et les techniques fondamentales des systèmes d'exploitation. Il porte, notamment, sur l'étude des : différents modules du noyau du système d'exploitation (gestionnaires de processus, de fichiers, de la mémoire, de processeurs, des E/S…), interactions entre ces modules, problèmes liés à leurs implémentations, ainsi que les différentes solutions adoptées dans les systèmes modernes (UNIX, Linux, Windows). Au terme de ce cours, l'étudiant sera en mesure de : expliquer et analyser les différents modules du système d'exploitation (leurs fonctionnements et mises en œuvre), utiliser et/ou adapter les techniques et les services du système d'exploitation pour concevoir des codes plus fiables et plus performants 2.
[Audio] Plan du cours Chapitre1: Concepts généraux Chapitre 2: Gestion des processus Chapitre 3: Threads Chapitre 4: Communication interprocessus Chapitre 5: Synchronisation des processus Chapitre 6: Les moniteurs et interblocage Chapitre 7: Ordonnancement des processus Chapitre 8: Gestion de la mémoire réelle Chapitre 9: Mémoire virtuelle Chapitre 10: Système de fichier 3.
[Audio] CHAPITRE 1 Concepts généraux 4. CHAPITRE 1 Concepts généraux 4.
[Audio] Qu'est ce qu'un système d'exploitation ? Malgré les différences des points de vue forme, taille et type, les ordinateurs se composent de matériel et de logiciels. Matériel : Moniteur Bus 5.
[Audio] Qu'est ce qu'un système d'exploitation ? (2) Les logiciels : – les programmes système : les utilitaires (compilateurs, éditeurs, interpréteurs de commandes) ; le système d'exploitation – les programmes d'application 6.
[Audio] Qu'est ce qu'un système d'exploitation ? (3) Le système d'exploitation est un logiciel système qui: gère et contrôle les composants de l'ordinateur et fournit une base (machine virtuelle) sur laquelle seront construits les programmes d'application et les utilitaires : services = But : Développer des applications sans se soucier des détails de fonctionnement et de gestion du matériel. 7.
[Audio] Qu'est ce qu'un système d'exploitation ? (4) Fonctions principales Gestion des périphériques Gestion de la mémoire Gestion du processeur Gestion des processus et des threads Gestion des fichiers Protection et détection d'erreurs 8.
[Audio] Qu'est ce qu'un système d'exploitation ? (5) Trois concepts de base Processus : un programme en cours d'exécution, composé de : – code + données + pile d'exécution ; – un compteur ordinal, autres informations caractérisant son état. Fichiers : ensemble de blocs de données stockés sur le disque Mémoires virtuelles : espaces d'adressage virtuels des processus (créés par les compilateurs) de taille pouvant excéder celle de la mémoire physique. Partage de ressources 9.
[Audio] Interface avec le matériel Chaque composant (processeurs, mémoires et périphériques) de l'ordinateur a son propre code (câblé ou logiciel) qui assure son fonctionnement et les interactions avec les autres. Le système d'exploitation gère et coordonne l'ensemble de ces composants au moyen, notamment, de signaux interruptions. Les interruptions permettent au système d'exploitation de reprendre le contrôle : – Interruptions matérielles : Horloges (pour gérer l'allocation des processeurs) Périphériques (pour signaler la fin d'E/S) – Interruptions logicielles : Erreurs arithmétiques (division par zéro) Données non disponibles en mémoire (défaut de page) Appels système (invocation du système d'exploitation). 10.
[Audio] Interactions utilisateur/système Pour un utilisateur, le système d'exploitation apparaît comme un ensemble de procédures complexes visant à abstraire les détails de fonctionnement et de gestion du matériel. Bibliothèque des appels système = Les appels système peuvent être invoqués via un interpréteur de commandes, une interface graphique ou utilitaires. L'interpréteur de commandes (Interface utilisateur/système) : – est lancé dès la connexion au système ; – invite l'utilisateur à introduire une commande ; – récupère puis exécute la commande par combinaison d'appels système et d'outils (compilateurs, éditeurs de lien,…). – affiche les résultats ou les erreurs puis se met en attente de la commande suivante. 11.
[Audio] Interactions utilisateur/système (2) Cas d'UNIX 12.
[Audio] Interactions utilisateur/système (3) Shells d'UNIX Les interpréteurs de commandes d'UNIX (shells) permettent une composition séquentielle ou parallèle de commandes avec redirection des entrées/sorties des commandes. cat src1 src2 > fich; sort fich > dest cat src1 src2 | sort >dest 13.
[Audio] Interactions utilisateur/système (4) Shells d'UNIX Les interpréteurs de commandes UNIX (shells) offrent des structures de contrôle semblables à celles des langages de programmation classiques. Les programmes shell sont appelés script shell. jupiter% cat script1 set `ls` for i in $*do if [ -d $i ] then echo "$i est un répertoire" fi else if [ $i = "fich" ] then echo "fich trouvé. Affichage ? (o ou n) " read rep case $rep in o | O ) cat $i ;; n | N ) echo "pas de visualisation de fich" ;; * ) echo "réponse incorrecte" esac fi done 14.
[Audio] Interactions utilisateur/système (5) Appel système à partir d'un programme Le programme C suivant utilise les appels système open, write et read : //Ce progamme crée un fichier dans lequel, il copie les données lues à partir du clavier. #include // pour open, write et read #include #define taille 80 int main ( ) write(1, "Ouverture avec succès \n " , 30) ; // copier les données introduites à partir du clavier dans le fichier while ((nbcar = read(0, buf, taille)) > 0) if( write(fd, buf, nbcar) == -1) return –1 ; return 0 ; } 15.
[Audio] Appels système En général, les processeurs ont deux modes de fonctionnement : le mode superviseur (noyau, privilégié ou maître) : pour le système d'exploitation, où toutes les instructions sont autorisées. le mode utilisateur (esclave) : pour les programmes des utilisateurs et les utilitaires, où certaines instructions ne sont pas permises. Les processeurs sont dotés d'un bit de mode. Ces modes de fonctionnement assurent la protection du système d'exploitation contre les intrusions et les erreurs. Ce n'était pas le cas des systèmes mono-utilisateur (MS-DOS, MacOS) qui avaient un seul mode de fonctionnement (utilisateur). 16.
[Audio] Appels système (2) Un appel système consiste en une interruption logicielle (instruction TRAP) qui a pour rôle d'activer le système d'exploitation : changer le mode d'exécution pour passer du mode utilisateur au mode maître ; récupérer les paramètres et vérifier la validité de l'appel ; lancer l'exécution de la fonction demandée ; récupérer la (les) valeur(s) de retour ; retourner au programme appelant avec retour au mode utilisateur. 17.
[Audio] Appels système (3) Exemple 18. Appels système (3) Exemple 18.
[Audio] Appels système (4) Quelques appels système d'UNIX et Windows (Win 32 API). 19.
[Audio] Appels système (5) Gestion de processus Les appels systèmes permettent notamment : – la création, – la communication interprocessus, – la synchronisation et – l'arrêt des processus. 20.
[Audio] Appels système (6) Création et terminaison de processus Un processus peut créer un ou plusieurs processus fils qui, à leur tour, peuvent créer des processus fils (structure arborescente). Un processus peut être partitionné en plusieurs threads (processus légers) concurrents partageant un même environnement d'exécution. Les threads sont un moyen de raffiner et de diviser le travail normalement associé à un processus. 21.
[Audio] Appels système (7) Communication interprocessus - Segments de données partagés; - Fichiers; - Signaux; - Messages -> Tubes de communication (pipe) 22.
[Audio] Appels système (8) Synchronisation de processus Éviter l'accès simultané lecture/écriture ou écriture/écriture à une même donnée. 23.
[Audio] Appels système (9) Problème d'interblocage Attention : Partage de ressources interblocage 24.
[Audio] Appels système (10) Gestion de fichiers Un fichier est un ensemble de blocs sur le disque. 25.
[Audio] Appels système (11) Système de fichier Un système de fichiers est la partie du système d'exploitation qui se charge de gérer le stockage et la manipulation de fichiers sur une unité de stockage (disque, CD, disquette, partition,…). 26.
[Audio] Appels système (12) Création et manipulation de fichiers Les appels systèmes permettent de créer des fichiers, de les supprimer, de les ouvrir, de les lire, de les modifier et de récupérer leurs attributs… 27.
[Audio] Appels système (13) Répertoires Les fichiers sont regroupés dans des répertoires. Un répertoire peut contenir soit des fichiers, soit d'autres répertoires (structure arborescente). L'accès au fichier se fait en spécifiant le chemin d'accès (la liste des répertoires à traverser pour accéder au fichier). Un chemin d'accès est absolu si le point de départ est le répertoire racine. Un chemin d'accès est relatif si le point de départ est le répertoire courant. 28.
[Audio] Appels système (14) Répertoires 29. Appels système (14) Répertoires 29.
[Audio] Appels système (15) Création et manipulation de répertoires 30.
[Audio] Evolution du mode d'exploitation Traitement par lots Les programmes étaient écrits en Fortran ou en assembleur sur des cartes perforées. Ce mode d'exploitation nécessitait deux types de machines dont la plus puissante était réservée aux calculs et l'autre, moins chère, s'occupaient des périphériques lents. 31.
[Audio] Evolution du mode d'exploitation (2) Multiprogrammation et DMA Introduction des unités de disques permettant un accès direct. Transfert des travaux vers le disque dès leur arrivée dans la salle machine (spoole). La mémoire est organisée en un ensemble de partitions (1 travail/partition). Le système d'exploitation conserve en mémoire plusieurs travaux et gère le partage du processeur centrale et des périphériques entre les différents travaux chargés en mémoire(la multiprogrammation): 32.
[Audio] Evolution du mode d'exploitation (3) Multiprogrammation et DMA Allocation du processeur à un travail (premier arrivé, premier servi). Lorsque le travail demande une E/S, le processeur est alloué à un autre travail. A la fin de l'E/S, une interruption se produit et le système d'exploitation reprend le contrôle pour traiter l'interruption et lancer ou reprendre l'exécution d'un travail. Dès qu'un travail se termine, le système d'exploitation peut lancer le chargement, à partir du disque, d'un nouveau travail dans la partition libérée. 33.
[Audio] Evolution du mode d'exploitation (4) Multiprogrammation et DMA 34.
[Audio] Evolution du mode d'exploitation (5) Multiprogrammation et DMA Exemple : 35.
[Audio] Evolution du mode d'exploitation (6) Multiprogrammation et DMA Trois activités peuvent être donc menées en parallèle : – Le chargement d'un travail C en mémoire ; – L'exécution d'un travail B ; – L'édition des résultats d'un travail A. 36.
[Audio] Evolution du mode d'exploitation (7) Multiprogrammation et DMA La multiprogrammation nécessite des circuits de contrôle pour protéger chaque travail contre les intrusions et les erreurs des autres. 37.
[Audio] Evolution du mode d'exploitation (8) Va-et-vient (swapping) Les travaux en mémoire qui sont en attente (d'une E/S ou d'un événement) peuvent être retirés de la mémoire pour y charger d'autres prêts (en attente d'exécution). Ainsi durant l'exécution d'un travail, il peut subir plusieurs va-et-vient entre la mémoire et le disque (zone de swapping). 38.
[Audio] Evolution du mode d'exploitation (9) Temps partagé Le processeur est alloué, à tour de rôle, pendant un certain temps à chacun des travaux en attente d'exécution. Au bout ce temps, l'exécution du travail en cours est suspendue. Le processeur est alors alloué à un autre travail. Si plusieurs utilisateurs lancent à partir de leurs terminaux leurs programmes simultanément, ce mode d'exploitation donne l'impression que les programmes s'exécutent en parallèle (pseudo parallélisme). 39.
[Audio] Evolution du mode d'exploitation (10) Temps partagé 40.
[Audio] Evolution du mode d'exploitation (11) Mémoire virtuelle Le compilateur génère pour chaque programme un espace d'adressage virtuel dont la taille peut surpasser celle de la mémoire physique. À l'exécution, une partie de cet espace virtuel est en mémoire. Chargement au besoin 41.
[Audio] Evolution du mode d'exploitation (12) Exploitation en réseau (client/serveur) Chaque système d'exploitation est doté d'une interface réseau qui lui permet de communiquer avec d'autres machines. 42.
[Audio] Evolution du mode d'exploitation (13) Exploitation en distribué Les réseaux d'ordinateurs qui fonctionnent sous des systèmes d'exploitation distribués apparaissent aux yeux des utilisateurs comme une machine monoprocesseur. Le système d'exploitation distribué gère et contrôle l'ensemble des composants de tous les ordinateurs connectés (les processeurs, les mémoires, les disques, …). 43.
[Audio] Evolution du mode d'exploitation (14) Système d'exploitation temps réel Ce sont des systèmes spécialisés dans la conduite d'appareillages industriels ou dans la commande de processus où le temps joue un rôle critique (des contraintes temporelles strictes à respecter). L'exploitation met l'accent sur le temps de réponse (respect des contraintes temporelles imposées par l'environnement). 44.
[Audio] Evolution du mode d'exploitation (15) Structure d'UNIX 45.
[Audio] Evolution du mode d'exploitation (16) Structure de Windows 2000/XP 46.
[Audio] Lancement du système d'exploitation Booting (cas d'UNIX) Le programme de démarrage (amorce) vérifie le bon fonctionnement du matériel puis charge une partie du système d'exploitation à partir du disque (disquette ou CD) avant de lui donner le contrôle. Cette partie détermine les caractéristiques du matériel, effectue un certain nombre d'initialisations et crée le processus 0. Le processus 0 réalise d'autres initialisations (ex. le système de fichiers) puis crée deux processus : init de PID 1 et démon des pages de PID 2. 47.
[Audio] Quelques unités de mesure 48. Quelques unités de mesure 48.
[Audio] CHAPITRE 2 Gestion des processus 49. CHAPITRE 2 Gestion des processus 49.
[Audio] Gestion des processus Qu'est ce qu'un processus ? États d'un processus Hiérarchie des processus Gestion des processus sous UNIX/LINUX – Création de processus – Remplacement d'espace d'adressage – Attente de la fin d'un processus fils – Terminaison de processus – Partage de fichiers entre processus Gestion des processus sous Windows – Création de processus – Attente de la fin d'un processus fils – Terminaison de processus 50.