Cours Systmes dexploitation_Djotio 2024-2025.pdf
Document Details
Uploaded by FuturisticPiccolo172
École nationale supérieure polytechnique de Yaoundé
Full Transcript
Systèmes d’exploitation Année 2024-2025 Prof Dr, Ing Thomas Djotio Ndié Assistant: PhD Student Juslin Kutche About Me My name : Thomas Djotio Ndié Current position: Associate Professor (Maître de Conférences des Universités), Univer...
Systèmes d’exploitation Année 2024-2025 Prof Dr, Ing Thomas Djotio Ndié Assistant: PhD Student Juslin Kutche About Me My name : Thomas Djotio Ndié Current position: Associate Professor (Maître de Conférences des Universités), University of Yaoundé 1 Founder of Yowyob Inc. Ltd (https://yowyob.com) Computer Engineer since June 1997 Master with thesis in Computer (2001-2002) Two breaks in the professional sector : 1997-2000 and 2002-2004 Doctorat/PhD en computer engineering (Dec 2004-Sept 2008, 26) 2016-2018 Alexander von Humboldt fellow Research areas: Wireless Access Network and udiquitious Networking (Sensor; MANET, ADOHC; Since Jan 2008, Lecturer-Researcher at the National Advanced School of Engineering of the University of Yaounde 1 3 professionnal certificats : Cisco (CCNA) en Dec. 2003, MCP on Microsoft Exchange April 2003 (Microsoft Exchange, ComPTIA Security + Feb. 2005. 01 post-doc and 02 Guest research in MADYNES and Nancy, an Inria Project-Team, France. 01 Post-Doc Franhofer Fokus / UBRS in Germany LIRIMA’s Research Team-Leader: IoT4D & MASECNESS in partnership with Madynes, an Inria Project-Team, France Author of Kit SuiteManager an Enterprise Management Software: Accountability-Commercial-Stock- Cash-Payrol Guest Lecturer at UATM (African Universty of Technology and Management) at Cotonou / Benin Supervisor of then of PhD Student and more of Masters’ Student A suivre : présentation générale du cours Questions? Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 2 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 Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 3 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 1. Activités pratiques Installation de linux Ubuntu Les principales commandes La gestion des fichiers La programmation en C Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 4 Liste des projets 1. Système de gestion de tâches : Concevoir une application qui permet aux utilisateurs de planifier et de gérer des tâches en utilisant des mécanismes de synchronisation comme les sémaphores et les mutex. 2. Application de virtualisation : Concevoir une application qui permet de créer et de gérer des machines virtuelles, en explorant les concepts de virtualisation et d'isolation des ressources. 3. Simulateur de planification de processus : Créer un simulateur qui montre comment différents algorithmes de planification (FCFS, SJF, Round Robin) affectent l'exécution des processus. 4. Exploration des appels système : Développer un outil qui permet de tracer les appels système effectués par une application, illustrant comment les applications interagissent avec le noyau. 5. Moniteur de ressources système : Concevoir une application qui surveille l'utilisation des ressources système (CPU, mémoire, disque) et affiche des statistiques en temps réel. Type projet: individuel, Thème: au choix Langage de programmation: C ou C++. Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 5 CHAPITRE 1 Concepts généraux Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 6 Systèmes d'exploitation (SE) Definition: Un SE, ou logiciel système, ou Operating System (OS), est un logiciel qui, dans un appareil électronique, pilote les dispositifs matériels et reçoit des instructions de l'utilisateur ou d'autres logiciels (ou applications). Ces applications doivent être adaptés à un SE. Il permet: – Une utilisation simple et efficace des ressources d’un ordinateur en simplifiant la vie des utilisateurs et des programmeurs et une – une gestionefficace des ressources de la machine Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 7 Qu’est ce qu’un système d’exploitation? Pour être plus precis…. Le SE permet ainsi de "dissocier" les programmes et le matériel pour simplifier la gestion des ressources et offrir à l'utilisateur une IHM simplifiée afin de lui permettre de s'affranchir de la complexité de la machine physique. On peut dire qu’un SE est un « executive Manager » de la partie du système informatique qui gère tout le matériel et tout les logiciel. Pour être spécifique il contrôle chaque fichier, chaque périphérique, chaque section de la mémoire centrale et chaque nanoseconde du temps processeur. Il contrôle celui qui peut utiliser l’ordinateur et comment. Pour être plus court c’est lui le boss de l’ordinateur. Ainsi, lorsqu’un utilisateur envoie une commande à l’ordinateur, le SE doit s’assurer que cette commande doit être exécutée, sinon il doit lui renvoyer une erreur lui expliquant la raison de l’échec de sa requête. Ceci ne signifie pas nécessairement que qu’un SE doit exécuter une commande ou renvoyer un message d’erreur. Mais il contrôle la partie du système qui réalise cette tâche. Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 8 Composant d’un SE Le SE est composé d'un ensemble de logiciels permettant de gérer les interactions avec le matériel. On distingue généralement : Le noyau (en anglais kernel) représentant les fonctions fondamentales du système d'exploitation telles que la gestion de la mémoire, des processus, des fichiers, des entrées-sorties principales, et des fonctionnalités de communication. L'interpréteur de commande (en anglais shell, traduisez «coquille» par opposition au noyau) permettant la communication avec le système d'exploitation par l'intermédiaire d'un langage de commandes, afin de permettre à l'utilisateur de piloter les périphériques en ignorant tout des caractéristiques du matériel qu'il utilise, de la gestion des adresses physiques, etc. Le système de fichiers (en anglais «file system», noté FS), permettant d'enregistrer les fichiers dans une arborescence. Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 9 Systèmes d'exploitation: A quoi ça sert? 1/6 Abstraction: simplifier la vie des utilisateurs et des programmeurs Cacher la complexité des machines pour l'utilisateur afin d'utiliser la machine sans savoir ce qui est derrière Abstraction du terme « Machine » selon Coy : machine réelle = Unité centrale + périphériques machine abstraite = machine réelle + système d'exploitation machine utilisable = machine abstraite + applications Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 10 Systèmes d'exploitation: A quoi ça sert? 2/6 Organiser l’accès au ressources et partage des ressources Plusieurs programmes exécutés simultanément Plusieurs utilisateurs qui utilisent l’ordinateur simultanément Protéger l’intégrité du système Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 11 Systèmes d'exploitation: A quoi ça sert? 3/6 Simplifier l’accès au matériel Système « dessine une ligne » d’exploitation Pilotes « commande n°4A2 avec les registres 73 et 0C » Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 12 Systèmes d'exploitation: A quoi ça sert? 4/6 Partage des ressources – le processeur Chacun son tour… Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 13 Systèmes d'exploitation: A quoi ça sert? 5/6 Partage des ressources – le processeur et la mémoire Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 14 Systèmes d'exploitation: A quoi ça sert? 6/6 Partage des ressources – la mémoire Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 15 Systèmes d'exploitation: exemples Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 Systèmes d'exploitation: Où le trouve t’on ? Systèmes d'exploitation Où le trouve t’on ? PC de bureau 2011 2012 2013 2014 Pr Dr, Eng Thomas DJOTIO NDIE 18 SE 3GI ENSP- 2024-2025 ww.netmarketshare.com/operating-system-market-share.aspx?qprid=8&qpcustomd=0 Systèmes d'exploitation Où le trouve t’on ? Serveur de bureau Année 2012 Pr Dr, Eng Thomas DJOTIO NDIE 19 SE 3GI ENSP- 2024-2025 Systèmes d'exploitation: Divers Types Mono utilisateur Multi utilisateurs Peuvent supporter plusieurs sessions en même temps Localement / à distance (terminal, ssh, bureau à distance, …) Sécurisation des données Droits d’utilisation des programmes Login Type: – Administrateur (« root ») – Groupes – Utilisateurs pour gérer les droits Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 20 Systèmes d'exploitation: Divers Types Mono tâche : Ex : MS-DOS Ces systèmes n’offrent pas un partage de ressources. Ils sont autonomes. n’offrent pas non plus la gestion des travaux ni la gestion des utilisateurs. fournissent un ensemble de commandes de manipulation de fichier et d’exécution de programme. Par exemple, MS-DOS au départ conçu pour la gestion de l’espace disque a évolué vers de fonctionnalités plus élaborées. Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 21 Systèmes d'exploitation: Divers Types Traitement par lots (Batch processing) Le Batch Processing consiste à lancer les trains de travaux ou Job. On veut utiliser le processeur au temps ou il est le moins encombré Un utilisateurs donne plusieurs commandes (« Jobs ») dans une queue d'éxécution de programmes Entièrement séquentielle p.ex. pour faire plusieurs calculs pendant la nuit Le JCL (Job Conrol Language) permet d’indiquer tout ce que vous pouvez indiquer au lancement. Il existe dans de environnement Mainframe. p.ex. autoexec.bat Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 22 Systèmes d'exploitation: Divers Types Multi tâches « coopératif » Chaque processus doit explicitement permettre à une autre tâche de s’exécuter. Inconvénients : Processus en cours bloqué = système bloqué Partage des ressources dépend de la programmation du processus. Windows 3.x Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 23 Systèmes d'exploitation: Divers Types Multi tâches « préemptif » le processeur signale au système d’exploitation que le processus en cours d’exécution doit être mis en pause pour permettre l’exécution d’un autre processus. Sauvegarde de l’état (compteur ordinal, registres) File d’attente Restauration du contexte d’exécution Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 24 Systèmes d'exploitation: Divers Types Systèmes Multi-utilisateurs (« time-sharing ») Ils ont pour but de partager équitablement l’unité centrale à plusieurs utilisateurs et leur permettre de travailler avec un ordinateur en même temps connexion par – via le terminal de l'ordinateur lui-même – à distance (telnet, ssh, ftp,...) donner l'impression à chaque utilisateur qu'il est seul Ceci à cause des interruptions entrées/sorties et horloge qui permettent de découper le temps en fragment de temps égal qui sont attribués de manière cyclique à plusieurs utilisateurs exige une gestion des droits – de fichiers (pour éviter la destruction des fichiers etc.) – de processus Exemple : TSO (Time Sharing Option) sur IBM Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 25 Systèmes d'exploitation: Divers Types Systèmes Multi-tache (Multitasking) Un système d'exploitation est dit «multi-tâche» lorsque plusieurs «tâches» (également appelées processus) peuvent être exécutées simultanément Assurer l'éxécution de plusieurs programmes en meme temps (c-à-d. plusieurs processus) Chaque processus a besoin du processeur – situation concurrente – solution: « scheduling » Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 26 Systèmes d'exploitation: Divers Types Définitions: Systèmes distribués / Repartis Ils sont conçus pour permettre le partage de ressources sur un ensemble de sites géographiquement distribués entre plusieurs utilisateurs. Les données seront stockées sur plusieurs installations informatiques connectées en réseau. doit permettre l'éxecution d'un seul programme sur plusieurs machines distribuer les processus et les remettre ensemble pour gros calculs, p.ex. inversion de grandes matrices Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 27 Systèmes d'exploitation: Divers Types Multi processeurs Le multiprocessing est une technique consistant à faire fonctionner plusieurs processeurs en parallèle afin d'obtenir une puissance de calcul plus importante que celle que obtenue avec un processeur haut de gamme ou bien afin d'augmenter la disponibilité du système (en cas de panne d'un processeur). système avec plusieurs processeurs en parallèle ⇒ vrai multi-tâches ⇒ Autant de processus que processeurs en même temps En fait : Puissance de calcul plus importante disponibilité du système (en cas de panne d'un processeur) SMP (Symmetric Multiprocessing) : architecture dans laquelle tous les processeurs accèdent à un espace mémoire partagé. Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 28 Systèmes d'exploitation: Divers Types Systèmes Temps reels ou systems réactifs Un système est qualifié de temps réels si le système de temps de réponse est 0. Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 81 Mode communication: Le modèle du Producteur et du Consommateur On constate que la communication se déroule en suivant les règles ci-après. 1. Il faut qu’il y ait exclusion mutuelle au niveau du message, c'est-à-dire un consommateur ne peut prélever un message que le producteur est entrain de déposer dans le tampon. 2. Un producteur ne peut déposer un message dans le tampon si celui-ci est plein. Il doit attendre. 3. Le consommateur doit prélever tout message une fois et une seule. 4. Si le producteur est attente parce que le tampon est plein, il doit être prévenu lorsque cette condition cesse d’être vraie. Il doit en être de même pour le consommateur pour un tampon vide. Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 82 Mode communication: Le modèle du Producteur et du Consommateur Résolution du problème nplein : nombre de message en attente de prélèvement. nvide : nombre d’emplacement vide dans le tampon vide. Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 83 Mode communication: Le modèle du Producteur et du Consommateur L’activité du producteur / consommateur devient Initinatialisation : – nvide = n – nplein = 0 Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 84 Mode communication: Le modèle du Producteur et du Consommateur L’activité du consommateur devient Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 2024-2025 85 Mode communication: Le modèle du Producteur et du Consommateur nplein fich; sort fich > dest cat src1 src2 | sort >dest Pr Dr, Eng Thomas DJOTIO NDIE 101 SE 3GI ENSP- 2024-2025 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" Pr Dr, Eng Thomas DJOTIO NDIE 102 esac SE 3GI ENSP- 2024-2025 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 ( ) { int fd , nbcar; char buf[taille] ; fd = open( "fich", O_CREAT| O_WRONLY) ; // créer un fichier if(fd==-1) { write(2, "Erreur d’ouverture \n", 25) ; return –1 ; } 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) Pr Dr, Eng Thomas DJOTIO NDIE if( write(fd, buf, nbcar) == -1) 103 SE 3GI ENSP- 2024-2025 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). Pr Dr, Eng Thomas DJOTIO NDIE 104 SE 3GI ENSP- 2024-2025 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. Pr Dr, Eng Thomas DJOTIO NDIE 105 SE 3GI ENSP- 2024-2025 Appels système (3) Exemple Pr Dr, Eng Thomas DJOTIO NDIE 106 SE 3GI ENSP- 2024-2025 Appels système (4) Quelques appels système d’UNIX et Windows (Win 32 API). Pr Dr, Eng Thomas DJOTIO NDIE 107 SE 3GI ENSP- 2024-2025 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. Pr Dr, Eng Thomas DJOTIO NDIE 108 SE 3GI ENSP- 2024-2025 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. Pr Dr, Eng Thomas DJOTIO NDIE 109 SE 3GI ENSP- 2024-2025 Appels système (7) Communication interprocessus - Segments de données partagés; - Fichiers; - Signaux; - Messages -> Tubes de communication (pipe) Pr Dr, Eng Thomas DJOTIO NDIE 110 SE 3GI ENSP- 2024-2025 Appels système (8) Synchronisation de processus Éviter l’accès simultané lecture/écriture ou écriture/écriture à une même donnée. Pr Dr, Eng Thomas DJOTIO NDIE 111 SE 3GI ENSP- 2024-2025 Appels système (9) Problème d’interblocage Attention : Partage de ressources interblocage Pr Dr, Eng Thomas DJOTIO NDIE 112 SE 3GI ENSP- 2024-2025 Appels système (10) Gestion de fichiers Un fichier est un ensemble de blocs sur le disque. Pr Dr, Eng Thomas DJOTIO NDIE 113 SE 3GI ENSP- 2024-2025 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,…). Pr Dr, Eng Thomas DJOTIO NDIE 114 SE 3GI ENSP- 2024-2025 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… Pr Dr, Eng Thomas DJOTIO NDIE 115 SE 3GI ENSP- 2024-2025 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. Pr Dr, Eng Thomas DJOTIO NDIE 116 SE 3GI ENSP- 2024-2025 Appels système (14) Répertoires Pr Dr, Eng Thomas DJOTIO NDIE 117 SE 3GI ENSP- 2024-2025 Appels système (15) Création et manipulation de répertoires Pr Dr, Eng Thomas DJOTIO NDIE 118 SE 3GI ENSP- 2024-2025 CHAPITRE 4 (follow) A bit of practical Pr Dr, Eng Thomas DJOTIO NDIE 119 SE 3GI ENSP- 2024-2025 Creating a New Process - fork() #Include #Include #include #include void main() { pid_t pid; pid = fork(); if (pid == -1) { fprintf(stderr, "fork failed\n"); exit(-1); } if (pid == 0) { printf(“I am the parent \n"); exit(0); } if (pid > 0) { printf(“I am the childl, my pid is %d\n", pid); exit(0); Pr Dr, Eng Thomas DJOTIO NDIE } 120 SE 3GI ENSP- 2024-2025 Pr Dr, Eng Thomas DJOTIO NDIE 121 SE 3GI ENSP- 2024-2025 Points to Note fork() is called once … … but it returns twice!! – Once in the parent and – Once in the child – See example1.c Fork() basically duplicates the parent process image – Both processes are exactly the same after the fork() call. Are there any dependence between the two processes? – Provide a way to distinguish the parent and the child. Pr Dr, Eng Thomas DJOTIO NDIE 122 SE 3GI ENSP- 2024-2025 Points to Note How to distinguish parent and child?? – Return value in child = 0 – Return value in parent = process id of child – See example2.c What about the data in the program? – See example6.c. Return value of -1 indicates error in all UNIX system calls – another UNIX convention Is it true: All processes are created by fork() in UNIX? Pr Dr, Eng Thomas DJOTIO NDIE 123 SE 3GI ENSP- 2024-2025 Wait System Call in C // C program to demonstrate working of wait() #include #include #include int main() { if (fork()== 0) printf("HC: hello from child\n"); else { printf("HP: hello from parent\n"); wait(NULL); printf("CT: child has terminated\n"); } printf("Bye\n"); Pr Dr, Eng Thomas DJOTIO NDIE return 0; 124 SE 3GI ENSP- 2024-2025 Processus d’UNIX Chaque processus a un numéro d’identification unique (PID). L’appel system getpid() permet de récupérer le PID du processus : int getpid(); Chaque processus a un père, à l’exception du premier processus créé (structure arborescente). S’il perd son père (se termine), il est tout de suite adopté par le processus init de PID 1. L’appel système getppid() permet de récupérer le PID de son processus père. Un processus père s’exécute en concurrence avec ses fils (exécution asynchrone). Un processus fils peut partager certaines ressources (mémoire, fichiers) avec son processus père ou avoir ses propres ressources. Le processus père peut contrôler l’usage des ressources partagées. Le processus père peut avoir une certaine autorité sur ses processus fils. Il peut les suspendre, les détruire (appel système kill), attendre leur terminaison (appel système wait) mais ne peut pas les renier. La création de processus est réalisée par duplication de l’espace d’adressage et de certaines tables du processus créateur (l’appel système fork). La duplication facilite la création et le partage de ressources. Le fils hérite des résultats déjà calculés par le père. Un processus peut remplacer son codePrexécutable Dr, Eng Thomaspar un NDIE DJOTIO autre (appel système exec). 125 SE 3GI ENSP- 2024-2025 Processus d’UNIX (2) : Processus shell (très simplifié) Pr Dr, Eng Thomas DJOTIO NDIE 126 SE 3GI ENSP- 2024-2025 Processus d’UNIX (3) : Cas d’UNIX : Lancement de la commande ls à partir du shell Pr Dr, Eng Thomas DJOTIO NDIE 127 SE 3GI ENSP- 2024-2025 Processus d’UNIX (4) : Création de processus (appel système fork) La création de processus sous UNIX est réalisée au moyen de l’appel système : fork(); L’appel système fork : – associe un numéro d’identification (le PID du processus); – ajoute puis initialise une entrée dans la table des processus (PCB). Certaines entités comme les descripteurs de fichiers ouverts, le répertoire de travail courant, la valeur d’umask, les limites des ressources sont copiées du processus parent; – duplique l’espace d’adressage du processus effectuant l’appel à fork (pile+données); – duplique la table des descripteurs…. La valeur de retour est : – 0 pour le processus créé (fils). – le PID du processus fils pour le processus créateur (père). – négative si la création de processus a échoué (manque d’espace mémoire ou le nombre maximal de créations autorisées est atteint). Au retour de la fonction fork, l’exécution des processus père et fils se poursuit, en temps partagé, à partir de l’instruction qui suit fork. Pr Dr, Eng Thomas DJOTIO NDIE Le père et le fils ont chacun leur propre image mémoire mais ils partagent certaines 128 SE 3GI ENSP- 2024-2025 Processus d’UNIX (5) : Création de processus (appel système fork) Pr Dr, Eng Thomas DJOTIO NDIE 129 SE 3GI ENSP- 2024-2025 Processus d’UNIX (6) Création de processus : Exemple 1 // programme tfork.c : appel système fork() #include // pour le type pid_t #include // pour fork #include // pour perror, printf int a=20; int main ( ) { pid_t x ; // création d’un fils switch (x = fork()) { case –1 : perror("le fork a échoué !") ; break ; case 0 : printf("ici processus fils, le PID %d.\n ", getpid()) ; a+=10; break ; default : printf(" ici processus père, le PID %d. \n", getpid()) ; a+=100; } // les deux processus exécutent ce qui suit printf("Fin du Process %d. avec a = %d\n", getpid(),a ) ; return 0 ; Pr Dr, Eng Thomas DJOTIO NDIE } 130 SE 3GI ENSP- 2024-2025 Processus d’UNIX (7) Création de processus : Exemple 1 (exécution) Pr Dr, Eng Thomas DJOTIO NDIE 131 SE 3GI ENSP- 2024-2025 Processus d’UNIX (8) Création de processus : Exemple 2 Pr Dr, Eng Thomas DJOTIO NDIE 132 SE 3GI ENSP- 2024-2025 Processus d’UNIX (9) Création de processus : Exemple 2 (exécution) Pr Dr, Eng Thomas DJOTIO NDIE 133 SE 3GI ENSP- 2024-2025 Processus d’UNIX (10) Création de processus : Exemple 2 sans l’instruction sleep Pr Dr, Eng Thomas DJOTIO NDIE 134 SE 3GI ENSP- 2024-2025 Processus d’UNIX (11) Remplacement d’espace d’adressage Appel système exec Le système UNIX offre une famille d’appels système exec qui permettent à un processus de remplacer son code exécutable par un autre spécifié par path ou file. int execl(const char *path, const char *argv, …….); int execlp(const char *file, const char *argv, …….); int execv(const char *path, char *const argv[]); int execvp(const char *file, char *const argv[]); Ces appels permettent d’exécuter de nouveaux programmes. Le processus conserve, notamment, son PID, l’espace mémoire alloué, sa table de descripteurs de fichiers et ses liens parentaux (processus fils et père). En cas de succès de l’appel système exec, l’exécution de l’ancien code est abandonnée au profit du nouveau. Pr l’exécution En cas d’échec, le processus poursuit Dr, Eng ThomasdeDJOTIO son NDIE code à partir de l’instruction qui suit 135 SE 3GI ENSP- 2024-2025 l’appel (il n’y a pas eu de remplacement de code). Processus d’UNIX (12) Remplacement d’espace d’adressage (2) Appel système exec : Exemple 3 Pr Dr, Eng Thomas DJOTIO NDIE 136 SE 3GI ENSP- 2024-2025 Processus d’UNIX (13) Attente de la fin d’un processus fils : appel système wait Les appels système wait(…) et waitpid(…) permettent à un processus père d’attendre ou de vérifier la terminaison d’un de ses fils : – int wait (int * status); – int waitpid( int pid, int * status, int options); wait et waitpid retournent : – le PID du fils qui vient de se terminer, – -1 en cas d’erreur (le processus n’a pas de fils). – des informations concernant la terminaison du fils, dans le paramètre status. Ces informations peuvent être récupérées au moyen de macros telles que : WIFEXITED(status) : fin normale avec exit WIFSIGNALED(status) : tué par un signal WIFSTOPPED(status) : stopé temporairement WEXITSTATUS(status) : valeur de retour du processus fils ( exit(valeur)) wait(status) et waitpid(-1,status,0) bloquent le processus appelant jusqu’à ce que l’un quelconque des fils du processus se termine. waitpid(pid, status,0) avec pid>0, bloque le processus appelant jusqu’à ce que son fils pid se termine. Pr Dr, Eng Thomas DJOTIO NDIE 137 SE 3GI ENSP- 2024-2025 waitpid(pid, status, WNOHANG) vérifie seulement la terminaison, retourne 0 en cas de non terminaison (pas d’attente). Processus d’UNIX (14) Attente de la fin d’un processus fils : exemple 4 Pr Dr, Eng Thomas DJOTIO NDIE 138 SE 3GI ENSP- 2024-2025 Processus d’UNIX (15) Attente de la fin d’un processus fils : exemple 5 Pr Dr, Eng Thomas DJOTIO NDIE 139 SE 3GI ENSP- 2024-2025 Processus d’UNIX (16) Terminaison de processus Un processus se termine par une demande d’arrêt volontaire (appel système exit) ou par un arrêt forcé provoqué par un autre processus (appel système kill) ou une erreur. void exit(int vstatus); Lorsqu’un processus fils se termine : – son état de terminaison est enregistré dans son PCB, – la plupart des autres ressources allouées au processus sont libérées. – le processus passe à l’état zombie (). Son PCB et son PID sont conservés jusqu’à ce que son processus père ait récupéré cet état de terminaison. Les appels système wait(status) et waitpid.(pid, status, option) permettent au processus père de récupérer, dans le paramètre status, cet état de terminaison. Que se passe-t-il si le père meurt avant de récupérer ces informations? Pr Dr, Eng Thomas DJOTIO NDIE 140 SE 3GI ENSP- 2024-2025 Processus d’UNIX (17) Terminaison de processus Pr Dr, Eng Thomas DJOTIO NDIE 141 SE 3GI ENSP- 2024-2025 Processus d’UNIX (18) Terminaison de processus : exemple 6 Pr Dr, Eng Thomas DJOTIO NDIE 142 SE 3GI ENSP- 2024-2025 Processus d’UNIX (19) Terminaison de processus : exemple 7 Pr Dr, Eng Thomas DJOTIO NDIE 143 SE 3GI ENSP- 2024-2025 Processus d’UNIX (20) Partage de fichiers entre processus père et fils Le fork duplique la table des descripteurs de fichiers du processus père. Pr Dr, Eng Thomas DJOTIO NDIE 144 SE 3GI ENSP- 2024-2025 Exercice Déterminez ce qui sera affiché à l'exécution de ce programme : Pr Dr, Eng Thomas DJOTIO NDIE 145 SE 3GI ENSP- 2024-2025 CHAPITRE 8: Gestion de la mémoire réelle Pr Dr, Eng Thomas DJOTIO NDIE 146 SE 3GI ENSP- 2024-2025 Gestion de la mémoire réelle Généralités Système monoprogrammé – Organistation de la mémoire et protection du SE – Les overlays (segments de recouvrement) Système multiprogrammé – Partitions fixes – Partitions variables État de la mémoire : Politiques de placement et de libération d’espace Pr Dr, Eng Thomas DJOTIO NDIE 147 SE 3GI ENSP- 2024-2025 Généralités L’espace d’adressage d’un processus est généré par le compilateur et l’éditeur de liens. Pr Dr, Eng Thomas DJOTIO NDIE 148 SE 3GI ENSP- 2024-2025 Généralités (2) Espace d’adressage linéaire Pr Dr, Eng Thomas DJOTIO NDIE 149 SE 3GI ENSP- 2024-2025 Généralités (3) Espace d’adressage non linéaire : plusieurs segments Pr Dr, Eng Thomas DJOTIO NDIE 150 SE 3GI ENSP- 2024-2025 Généralités (4) Rôle du gestionnaire de la mémoire Toute instruction ou donnée de l’espace d’adressage doit être chargée en mémoire centrale (principale, physique) avant d’être traitée par un processeur. Le gestionnaire de la mémoire est le composant du système d’exploitation qui se charge de gérer l’allocation d’espace mémoire aux processus à exécuter : 🡨 Comment organiser la mémoire ? (une ou plusieurs partitions, le nombre et la taille des partitions fixes ou variables au cours du temps). 🡨 Faut-il allouer une zone contiguë à chaque processus à charger en mémoire ? Faut-il allouer tout l’espace nécessaire à l’exécution du processus entier ? (politique d’allocation). 🡨 Comment mémoriser l’état de la mémoire? Parmi les parties libres en mémoire, lesquelles allouées au processus? (politique de placement) 🡨 S’il n’y a pas assez d’espace en mémoire, doit-on libérer de l’espace en retirant des parties ou des processus entiers? Si oui lesquels ? (politique de remplacement). 🡨 Les adresses figurant dans les instructions sont-elles relatives? Si oui, comment les convertir en adresses physiques. 🡨 Si plusieurs processus peuvent être résident en mémoire, comment assurer la protection des processus (éviter qu’un processus soit altéré par un autre? Pr Dr, Eng Thomas DJOTIO NDIE 151 SE 3GI ENSP- 2024-2025 Généralités (5): Exigences Efficacité : la mémoire doit être allouée équitablement et à moindre coût tout en assurant une meilleure utilisation des ressources (mémoire, processeurs et disque). Protection : Les processus ne peuvent pas se corrompre. Transparence : Chacun des processus doit ignorer l’existence des autres en mémoire. Relocation : la possibilité de déplacer un processus en mémoire (lui changer de place). Pr Dr, Eng Thomas DJOTIO NDIE 152 SE 3GI ENSP- 2024-2025 Système monoprogrammé Organisation de la mémoire Pr Dr, Eng Thomas DJOTIO NDIE 153 SE 3GI ENSP- 2024-2025 Système monoprogrammé (2) Protection (cas de b) Pour protéger le code et les données du SE des programmes des utilisateurs, on utilise un registre limite qui indique la limite de la zone réservée aux utilisateurs. Chaque adresse référencée par un processus est comparée avec le registre limite. Pr Dr, Eng Thomas DJOTIO NDIE 154 SE 3GI ENSP- 2024-2025 Système monoprogrammé (3) Overlays (segments de recouvrement) Pour permettre l’exécution de processus dont la taille dépasse celle de la mémoire, on offrait la possibilité à l'utilisateur de : 🡨 Diviser son programme en plusieurs sections (segments de recouvrement : overlays), 🡨 Gérer le chargement et le retrait des sections du programme de la mémoire. Inconvénients : – Cela complique la tâche aux programmeurs. – Mauvaise utilisation des ressources. Pr Dr, Eng Thomas DJOTIO NDIE 155 SE 3GI ENSP- 2024-2025 Système monoprogrammé (3) Overlays (segments de recouvrement) Pr Dr, Eng Thomas DJOTIO NDIE 156 SE 3GI ENSP- 2024-2025 Système multiprogrammé La mémoire est partagée entre le système d'exploitation et plusieurs processus. Optimisation du taux d'utilisation du processeur en réduisant notamment les attentes sur des entrées-sorties. Deux préoccupations: 🡨 Comment permettre efficacement la cohabitation de plusieurs processus ? 🡨 Comment assurer leur protection ? Pr Dr, Eng Thomas DJOTIO NDIE 157 SE 3GI ENSP- 2024-2025 Système multiprogrammé (2) Pr Dr, Eng Thomas DJOTIO NDIE 158 SE 3GI ENSP- 2024-2025 Système multiprogrammé (3) avec Partitions fixes La mémoire réservée aux utilisateurs est divisée en un ensemble de partitions. Le nombre et la taille des partitions sont fixés à l'avance (lors du chargement du système). Les partitions peuvent être égales ou non. La choix du nombre et de la taille des partitions dépend du niveau de multiprogrammation voulu. On peut avoir une file par partition ou une file globale. L’unité d’allocation est une partition. Pr Dr, Eng Thomas DJOTIO NDIE 159 SE 3GI ENSP- 2024-2025 Système multiprogrammé (4) avec partitions fixes Pr Dr, Eng Thomas DJOTIO NDIE 160 SE 3GI ENSP- 2024-2025 Système multiprogrammé avec partitions fixes : (5) Translation d’adresse et protection Comme on ne peut prévoir dans quelle partiton sera chargé un processus, les adresses attribuées par le compilateur et l’éditeur de liens aux instructions et aux données d’un programme doivent être relatives à une adresse 0. Ces adresses relatives seront ensuite translatées en adresse physiques. La translation peut se faire lors du chargement du processus (utilisée dans OS/360 d’IBM. Les adresses relatives sont remplacées par des adresses absolues (en ajoutant à chaque fois l’adresse de début de la partition). Cette solution n’est pas intéressante car en remplaçant les adresses relatives en adresses absolues, il ne sera plus possible de déplacer le processus. Pr Dr, Eng Thomas DJOTIO NDIE 161 SE 3GI ENSP- 2024-2025 Système multiprogrammé avec partitions fixes (6) Translation d’adresse et protection Pour éviter la translation d’adresse au cours du chargement d’un processus, une autre solution consiste à doter la machine de 2 registres spéciaux : – Le registre de base ; – Le registre limite. Quand un processus est élu (par l’ordonnanceur), le SE charge dans le registre de base l’adresse absolue du début de sa partition et dans le registre limite la longueur de la partition. Durant l’exécution d’une instruction, chaque adresse relative référencée par l’instruction est vérifiée en la comparant avec le contenu du registre limite, afin d’interdire tout accès en dehors de la partition courante. Les adresses physiques sont obtenues en ajoutant le contenu du registre de base aux adresses relatives. Avantage : le processus peut être déplacé en mémoire. Pr Dr, Eng Thomas DJOTIO NDIE 162 SE 3GI ENSP- 2024-2025 Système multiprogrammé avec partitions fixes (7) Translation d’adresse et protection Pr Dr, Eng Thomas DJOTIO NDIE 163 SE 3GI ENSP- 2024-2025 Système multiprogrammé avec partitions fixes (8) Problème : Fragmentation interne Pr Dr, Eng Thomas DJOTIO NDIE 164 SE 3GI ENSP- 2024-2025 Système multiprogrammé avec partitions variables (9) Initialement, l’espace mémoire réservée aux utilisateurs constitue une seule partition. Quand un nouveau processus doit être chargé, on lui alloue une zone contiguë de taille suffisamment grande pour le contenir. Le nombre et les tailles des partitions varient au cours du temps. Cette forme d'allocation conduit éventuellement à l'apparition de trous trop petits pour les allouer à d’autres processus : c'est la fragmentation externe Solutions: 🡨 Compactage (coûteux et exige que les processus soient relocalisables) 🡨 Allocation discontinue. Pr Dr, Eng Thomas DJOTIO NDIE 165 SE 3GI ENSP- 2024-2025 Système multiprogrammé avec partitions variables (10) Exemple Pr Dr, Eng Thomas DJOTIO NDIE 166 SE 3GI ENSP- 2024-2025 Système multiprogrammé avec partitions variables (11) Exemple (suite) Pr Dr, Eng Thomas DJOTIO NDIE 167 SE 3GI ENSP- 2024-2025 Système multiprogrammé avec partitions variables (12) Compactage de mémoire (opération coûteuse) Pr Dr, Eng Thomas DJOTIO NDIE 168 SE 3GI ENSP- 2024-2025 État de la mémoire Pour gérer l'allocation et la libération de l'espace mémoire, le gestionnaire doit : – Connaître l'état de la mémoire : Tables de bits, Listes chaînées. – Avoir une politique de placement et de récupération d’espace. Premier ajustement Meilleur ajustement Pire ajustement Par subdivision Pr Dr, Eng Thomas DJOTIO NDIE 169 SE 3GI ENSP- 2024-2025 État de la mémoire (2) Table de bits (Bitmaps) Pr Dr, Eng Thomas DJOTIO NDIE 170 SE 3GI ENSP- 2024-2025 État de la mémoire (3) Liste chaînée Pr Dr, Eng Thomas DJOTIO NDIE 171 SE 3GI ENSP- 2024-2025 État de la mémoire (4) :Liste chaînée Pr Dr, Eng Thomas DJOTIO NDIE 172 SE 3GI ENSP- 2024-2025 Politiques de placement Pr Dr, Eng Thomas DJOTIO NDIE 173 SE 3GI ENSP- 2024-2025 Politiques de placement (2) Premier ajustement (first fit): La première zone qui convient. Meilleur ajustement (best fit): La zone qui laisse le plus petit espace non occupé. Pire ajustement (worst fit): La zone qui laisse le plus grand espace non occupé. Si la zone sélectionnée est plus grande que celle du processus à charger, elle est scindée en deux parties : la première est alloué au processus, la seconde est libre. Pr Dr, Eng Thomas DJOTIO NDIE 174 SE 3GI ENSP- 2024-2025 Politiques de placement (3) Simulations (Shore, 1975) Pr Dr, Eng Thomas DJOTIO NDIE 175 SE 3GI ENSP- 2024-2025 Politiques de placement (4) Par subdivision Les tailles des blocs sont des puissances de 2. Initialement, on a un seul bloc libre. Supposons que la taille maximale est de 1 Mo et qu’un processus de 70 Ko demande à être chargé en mémoire. Le gestionnaire détermine d’abord la taille du bloc à allouer (égale à la plus petite puissance de 2 supérieure à 70Ko, soit 128 Ko). Comme il n’y a pas de blocs libres de taille 128 Ko, 256 Ko ou 512 Ko, la mémoire de 1 Mo est divisée en deux blocs de 512 Ko. Le premier bloc est divisé en deux blocs de 256 Ko. Enfin, le premier des deux blocs nouvellement créés est divisé en deux blocs de 128 Ko. L’espace alloué au processus est situé entre l’adresse 0 et 128 Ko. L’allocation par subdivision est rapide mais elle Pr Dr,est Engassez inefficace Thomas en ce qui concerne l’utilisation de la mémoire DJOTIO NDIE 176 SE 3GI ENSP- (arrondir les tailles à une puissance de 2, fragmentation 2024-2025 interne). Libération d’espace Pr Dr, Eng Thomas DJOTIO NDIE 177 SE 3GI ENSP- 2024-2025 Le va-et-vient (Swapping) Le va-et-vient est mis en oeuvre lorsque tous les processus ne peuvent pas tenir simultanément en mémoire. On doit alors en déplacer temporairement certains sur une mémoire provisoire, en général, une partie réservée du disque (mémoire de réserve, swap area ou backing store). Sur le disque, la zone de va-et-vient d’un processus peut être allouée à la demande. Quand un processus est déchargé de la mémoire centrale, on lui recherche une place. Les places de va-et-vient sont gérées de la même manière que la mémoire centrale. La zone de va-et-vient d’un processus peut aussi être allouée une fois pour toute au début de l’exécution. Lors du déchargement, le processus est sûr d’avoir une zone d’attente libre sur le disque (éviter des interblocages). Pr Dr, Eng Thomas DJOTIO NDIE 178 SE 3GI ENSP- 2024-2025 Le va-et-vient (Swapping) (2) Pr Dr, Eng Thomas DJOTIO NDIE 179 SE 3GI ENSP- 2024-2025 Exercice 1. Donnez les états d'occupation de la mémoire aux différentes étapes de traitement de ces processus, sous les hypothèses suivantes : 1. Partitions fixes de tailles 6 MB, 4 MB, 2 MB et 4 MB (pour le système) ; 2. Le mode d'allocation des trous utilise l’algorithme meilleur ajustement (Best Fit) ; 3. Le répartiteur de haut niveau fonctionne selon PAPS ; 4. Le répartiteur de bas niveau fonctionne selon SJF (Shortest Job First). 5. Pas de va-et-vient Chaque processus effectue un calcul suivi d’une E/S en utilisant son propre périphérique Pr Dr, Eng Thomas DJOTIO NDIE 180 SE 3GI ENSP- 2024-2025 CHAPITRE 9: Mémoire virtuelle Pr Dr, Eng Thomas DJOTIO NDIE 181 SE 3GI ENSP- 2024-2025 Mémoire virtuelle Généralités La pagination pure - Conversion d’adresses virtuelles en adresses physiques - Table des pages à plusieurs niveau et table inversée - Algorithmes de remplacement de page - Problèmes de l’écroulement du système - Retour sur instruction Segmentation / pagination Cas d’UNIX et de Linux Pr Dr, Eng Thomas DJOTIO NDIE 182 SE 3GI ENSP- 2024-2025 Généralités Le but de la mémoire virtuelle est de permettre l’exécution de programmes dont la taille excède celle de la mémoire réelle. Il y a deux types d’adresses dans les systèmes implantant la mémoire virtuelle : 🡨 Celles référencées par les processus (adresses virtuelles ou logiques), 🡨 Celles de la mémoire physique (adresses physiques ou réelles). L’espace d’adressage virtuel d’un processus = { adresses virtuelles que le processus peut référencer} Sa taille maximale dépend de l’organisation de l’espace virtuel (>> à celle de la mémoire physique). Pr Dr, Eng Thomas DJOTIO NDIE 183 SE 3GI ENSP- 2024-2025 Généralités (2) D’une manière générale, l’espace d’adressage est structuré en blocs de : – mêmes tailles (pages-> pagination) ou – tailles différentes (segments->segmentation). Les deux organisations peuvent être combinées : segment = {pages} Le format de l’adresse virtuelle est : 🡨 (numéro de page, déplacement dans la page) pour la pagination; 🡨 (numéro de segment, déplacement dans le segment) pour la segmentation; 🡨 (numéro de segment, numéro de page, déplacement dans la page) pour la segmentation/pagination. Pr Dr, Eng Thomas DJOTIO NDIE 184 SE 3GI ENSP- 2024-2025 Généralités (3) Exemple : Supposons que l’adresse virtuelle (b, d) est sur 32 bits, n bits pour d : 🡨 Le nombre maximal de blocs que peut contenir l’espace virtuel : 🡨 La taille maximale d’un bloc : n ↓ => fragmentation interne ↓ et table des blocs n ↑ ↑ => fragmentation interne et table des blocs ↓ La table des blocs d’un processus indique quels sont les blocs en mémoire. Elle contient une entrée pour chaque bloc de l’espace virtuel du processus. (bit de présence, adresse physique du début du bloc, ….). L’adresse de la table des blocs fait partie du contexte du processus à sauver ou à restaurer lors du changement de contexte (un registre). Pr Dr, Eng Thomas DJOTIO NDIE 185 SE 3GI ENSP- 2024-2025 Généralités (4) Il faut notamment : – Un mécanisme de conversion d’adresses virtuelles rapide. – Une politique de remplacement de blocs => moins de défaut de blocs. Pr Dr, Eng Thomas DJOTIO NDIE 186 SE 3GI ENSP- 2024-2025 La pagination pure La mémoire virtuelle et la mémoire physique sont structurées en unités d’allocations (pages pour la mémoire virtuelle et cases pour la mémoire physique). La taille d’une page est fixe et égale à celle d’une case. Elle varie entre 512 octets et 8 Ko. Il n’y a pas de fragmentation externe car toutes les pages sont de même taille. Par contre, il peut y avoir une fragmentation interne si la dernière page de l’espace d’adressage logique n’est pas pleine. Pr Dr, Eng Thomas DJOTIO NDIE 187 SE 3GI ENSP- 2024-2025 Exemple Pr Dr, Eng Thomas DJOTIO NDIE 188 SE 3GI ENSP- 2024-2025 Conversion d’adresses virtuelles Adresse virtuelle = (numéro de page, déplacement dans la page). Les adresses virtuelles référencées par l’instruction en cours d’exécution doivent être converties en adresses physiques. La correspondance entre les pages et les cases est mémorisée dans une table appelée table des pages. Le nombre d’entrées dans la table est égal au nombre de pages virtuelles. La table des pages d’un processus doit être (en totalité ou en partie) en mémoire centrale lors de l’exécution du processus. Elle est nécessaire pour la conversion des adresses virtuelles en adresses physiques. Chaque entrée de la table des pages est composée de plusieurs champs, notamment : – Le bit de présence – Le bit de référence (R) – Les bits de protection – Le bit de modification (M) Pr Dr, Eng Thomas DJOTIO NDIE 189 SE 3GI ENSP- 2024-2025 – Le numéro de case correspondant à la page Conversion d’adresses virtuelles (2) Exemple Supposons que l’adresse virtuelle est sur 16 bits : (numéro de page (4 bits), déplacement dans la page (12 bits)). La conversion est réalisée en examinant l’entrée dans la table des pages correspondant au numéro de page. Si le bit de présence est à 0, la page n’est pas en mémoire, il faut alors lancer son chargement en mémoire. Sinon, on détermine l’adresse physique en recopiant dans : 🡨 les 3 bits de poids le plus fort le numéro de case (110) correspondant au numéro de page (0010) et 🡨 les 12 bits de poids le plus faible, les 12 bits de poids le plus faible de l’adresse virtuelle. Pr Dr, Eng Thomas DJOTIO NDIE 190 SE 3GI ENSP- 2024-2025 Conversion d’adresses virtuelles (3) Exemple (suite) L’adresse virtuelle 8196 (0010 0000 0000 0100) est convertie en adresse physique 24580 (1100 0000 000 0100). Pr Dr, Eng Thomas DJOTIO NDIE 191 SE 3GI ENSP- 2024-2025 Conversion d’adresses virtuelles (4) Le MMU Cette conversion d’adresse est effectuée par un composant matériel du processeur le MMU : Memory Management Unit (MMU). Le MMU vérifie si l’adresse virtuelle reçue correspond à une adresse en mémoire physique (en consultant la table des pages). Si c’est le cas, le MMU transmet sur le bus de la mémoire l’adresse réelle, sinon il y a un défaut de page. Un défaut de page provoque un déroutement (trap) dont le rôle est de ramener à partir du disque la page manquante référencée (l’unité de transfert est la page). Pr Dr, Eng Thomas DJOTIO NDIE 192 SE 3GI ENSP- 2024-2025 Conversion d’adresses virtuelles (5) Le MMU Pr Dr, Eng Thomas DJOTIO NDIE 193 SE 3GI ENSP- 2024-2025 Conversion d’adresses virtuelles (6) MMU avec mémoire associative Pour accélérer la translation d’adresse, le MMU est doté d’un composant, appelé mémoire associative, composé d’un petit nombre d’entrées (8 à 32). Ce composant appelé aussi TLB (Translation Lookaside Buffers) contient des informations sur les dernières pages référencées. Chaque entrée est composée de : – Un bit de validité – Un numéro de page virtuelle – Un bit de modification (M) – Deux bits de protection – Un numéro de case Pr Dr, Eng Thomas DJOTIO NDIE 194 SE 3GI ENSP- 2024-2025 Conversion d’adresses virtuelles (7) MMU avec mémoire associative Lorsqu’une adresse virtuelle est présentée au MMU, il contrôle d’abord si le numéro de la page virtuelle est présent dans la mémoire associative (en le comparant simultanément à toutes les entrées). S’il le trouve et le mode d’accès est conforme aux bits de protection, le numéro de case est pris directement de la mémoire associative (sans passer par la table des pages). Si le numéro de page est présent dans la mémoire associative mais le mode d’accès est non conforme, il se produit un défaut de protection. Si le numéro de page n’est pas dans la mémoire associative, le MMU accède à la table des pages à l’entrée correspondant au numéro de page. Si le bit de présence de l’entrée trouvée est à 1, le MMU remplace une des entrées de la mémoire associative par l’entrée trouvée. Sinon, il provoque un défaut de page. Pr Dr, Eng Thomas DJOTIO NDIE 195 SE 3GI ENSP- 2024-2025 Pr Dr, Eng Thomas DJOTIO NDIE 196 SE 3GI ENSP- 2024-2025 Conversion d’adresses virtuelles (8) MMU avec mémoire associative Supposons qu’il faille 100ns pour accéder à la table des pages et 20ns pour accéder à la mémoire associative. Si la fraction de références mémoire trouvées dans la mémoire associative (taux d’impact) est s, le temps d’accès moyen est : s * 20 + (1-s) *100. Pr Dr, Eng Thomas DJOTIO NDIE 197 SE 3GI ENSP- 2024-2025 Table des pages à plusieurs niveaux La taille de la table des pages peut être très grande : 220 entrées (plus d’1 million) pour un adressage virtuel sur 32 bits et des pages de 4 Ko. Pour éviter d’avoir des tables trop grandes en mémoire, de nombreux ordinateurs utilisent des tables des pages à plusieurs niveaux. Par exemple, une table des pages à deux niveaux, pour un adressage sur 32 bits et des pages de 4 Ko, est composée 1025 tables de 1024 entrées. Il est ainsi possible de charger que les tables nécessaires. Dans ce cas, une adresse virtuelle de 32 bits est composée de trois champs : – un pointeur sur la table du 1er niveau (10 bits), – un pointeur sur une table du 2nd niveau (10 bits) et – un déplacement dans la page (12 bits). Pr Dr, Eng Thomas DJOTIO NDIE 198 SE 3GI ENSP- 2024-2025 Table des pages à deux niveaux Pr Dr, Eng Thomas DJOTIO NDIE 199 SE 3GI ENSP- 2024-2025 Table des pages inversée Pr Dr, Eng Thomas DJOTIO NDIE 200 SE 3GI ENSP- 2024-2025 Algorithmes de remplacement de page A la suite d’un défaut de page, le système d’exploitation doit ramener en mémoire la page manquante à partir du disque. S’il n’y a pas de cases libres en mémoire, il doit retirer une page de la mémoire pour la remplacer par celle demandée. Si la page à retirer a été modifiée depuis son chargement en mémoire, il faut la réécrire sur le disque. Quelle est la page à retirer de manière à minimiser le nombre de défauts de page ? 🡨 Le choix de la page à retirer peut se limiter aux pages du processus qui a provoqué le défaut de page (allocation locale) ou à l’ensemble des pages en mémoire (allocation globale). 🡨 En général, l’allocation globale produit de meilleurs résultats que l’allocation locale. Ces algorithmes mémorisent les références passées aux pages. Le choix de la page à retirer dépend des référencesPr passées. Dr, Eng Thomas DJOTIO NDIE 201 SE 3GI ENSP- 2024-2025 Algorithme aléatoire Critère : choisir au hasard une page victime (à retirer de la mémoire) Facile Version locale et globale Utilisé pour des comparaisons entre méthodes Pr Dr, Eng Thomas DJOTIO NDIE 202 SE 3GI ENSP- 2024-2025 Algorithme optimal (BELADY) Critère : remplacer la page qui sera référencée le plus tard possible dans le futur Irréalisable Version locale et globale Intérêt pour faire des études analytiques comparatives Exemple 1 avec 3 cadres Pr Dr, Eng Thomas DJOTIO NDIE 203 SE 3GI ENSP- 2024-2025 Algorithme FIFO Critère : la page dont le temps de résidence est le plus long Implémentation facile : – pages résidentes en ordre FIFO –› on expulse la première Ce n’est pas une bonne stratégie : – Son critère n’est pas fondé sur l’utilisation de la page Anomalie de Belady – On peut rencontrer des exemples où en augmentant le nombre decadres on augmente le nombre de défauts de page au lieu de le diminuer. Pr Dr, Eng Thomas DJOTIO NDIE 204 SE 3GI ENSP- 2024-2025 Algorithme FIFO: Exemple 1 avec 3 cadres Pr Dr, Eng Thomas DJOTIO NDIE 205 SE 3GI ENSP- 2024-2025 Anomalie de Belady Exemple 2 avec 3 cadres Pr Dr, Eng Thomas DJOTIO NDIE 206 SE 3GI ENSP- 2024-2025 Anomalie de Belady (2) Exemple 2 avec 4 cadres Pr Dr, Eng Thomas DJOTIO NDIE 207 SE 3GI ENSP- 2024-2025 Algorithme LRU Critère : page résidente la moins récemment utilisée Basé sur le principe de localité : une page a tendance à être réutilisée dans un futur proche. Difficile à implémenter sans support matériel Pr Dr, Eng Thomas DJOTIO NDIE 208 SE 3GI ENSP- 2024-2025 Comment implémenter LRU ? Mémoriser pour chaque page en mémoire la date de la dernière référence. Vieillissement : – Un registre de n bits est associé à chaque page, – Le bit le plus significatif est mis à 1 à chaque référence – Régulièrement, on décale vers la droite les bits de ce registre, – On choisit la page dont la valeur est la plus petite Utilisation d’une pile : 🡨 Ajouter ou déplacer, en sommet de pile, le numéro de la page référencée, 🡨 On remplace la page située au fond de la pile. Pr Dr, Eng Thomas DJOTIO NDIE 209 SE 3GI ENSP- 2024-2025 Algorithme de l’horloge (seconde chance) Approximation de LRU Les pages en mémoire sont mémorisées dans une liste circulaire en forme d’horloge. On a un indicateur sur la page la plus ancienne. Lorsqu’un défaut de page se produit, les pages sont examinées, une par une, en commençant par celle pointée par l’indicateur. La première page rencontrée ayant son bit de référence R à 0 est remplacée. Le bit R de la page ajoutée est à 1. Si le bit R d’une page examinée est différent de 0, il est mis à 0. Une variante de cet algorithme, tient compte Pr Dr, Eng du bitNDIE Thomas DJOTIO de modification M. 210 SE 3GI ENSP- 2024-2025 Algorithme de l’horloge Pr Dr, Eng Thomas DJOTIO NDIE 211 SE 3GI ENSP- 2024-2025 Performance moyenne des algorithmes Optimal LRU Horloge FIFO Aléatoire Pr Dr, Eng Thomas DJOTIO NDIE 212 SE 3GI ENSP- 2024-2025 Quel est le nombre de cases allouées à un processus ? Allouer un même nombre de cases mémoire à chaque processus. Par exemple, si la mémoire totale fait 100 pages et qu’il y a cinq processus, chaque processus recevra 20 pages. Allouer les cases proportionnellement aux tailles des programmes ou en tenant compte des priorités. L’architecture impose un nombre minimum. L’allocation des cases peut se faire lors du chargement ou à la demande, au cours de l’exécution. Working set (espace de travail) : W(t, Δ) est l'ensemble des pages qui ont fait l'objet d'au moins une référence entre le temps t- Δ et t. Pr Dr, Eng Thomas DJOTIO NDIE On conserve en mémoire les pages référencées entre t et t- Δ. SE 3GI ENSP- 2024-2025 213 Problème de l’écroulement du système Le système passe plus de temps à traiter les défauts de page qu’à exécuter des processus. Si le nombre de processus est trop grand et l’espace propre à chacun sera insuffisant, ils passeront leur temps à gérer des défauts de pages. On peut limiter le risque d’écroulement en surveillant le nombre de défauts de page provoqués par un processus. Si un processus provoque trop de défauts de pages (au-dessus d’une limite supérieure) on lui allouera plus de pages ; au-dessous d’une limite inférieure, on lui en retirera. S’il n’y a plus de cases disponibles et trop de défauts de pages, on devra suspendre un des processus. Pr Dr, Eng Thomas DJOTIO NDIE 214 SE 3GI ENSP- 2024-2025 Problème de l’écroulement du système (2) Pr Dr, Eng Thomas DJOTIO NDIE 215 SE 3GI ENSP- 2024-2025 Retour sur instruction Sur la plupart des processeurs, les instructions se codent sur plusieurs opérandes. Si un défaut de page se produit au milieu d’une instruction, le processeur doit revenir au début de l’instruction initiale, avant de lancer le chargement de la page manquante en mémoire. Ce retour sur instruction n’est possible qu’avec l’aide du matériel. Pr Dr, Eng Thomas DJOTIO NDIE 216 SE 3GI ENSP- 2024-2025 Segmentation/pagination Dans un système paginé, l’espace d’adressage virtuel d’un processus est à une dimension. Or en général, un processus est composé d’un ensemble d’unités logiques : 🡨 les différents codes : le programme principal, les procédures, les fonctions bibliothèques ; 🡨 Les données ; 🡨 Les piles d’exécution. On peut associer à chaque unité logique un espace d’adressage (un segment). Pr Dr, Eng Thomas DJOTIO NDIE 217 SE 3GI ENSP- 2024-2025 Segmentation/pagination (2) L’espace d’adressage d’un processus est composé d’un ensemble de segments. Ces segments sont de tailles différentes (fragmentation externe). La segmentation facilite l’édition de liens, le partage entre processus de segments de données ou de codes. La segmentation peut être combinée avec la pagination : Chaque segment est composé d’un ensemble de pages. Les adresses virtuelles sont des triplets : (numéro du segment, numéro de page, déplacement dans la page) Pr Dr, Eng Thomas DJOTIO NDIE 218 SE 3GI ENSP- 2024-2025 Mémoire cache La mémoire cache est une mémoire à temps d’accès très court (10 ns). Elle coûte plus chère. Le temps d’accès à la mémoire principale est 100 ns. La mémoire cache est placée entre le processeur et la mémoire centrale. Dans un système à pagination, lorsqu’une une adresse virtuelle est référencée, le système examine si la page est présente dans le cache. Si c’est le cas, l’adresse virtuelle est convertie en adresse physique. Sinon, le système localise la page puis la recopie dans le cache. Le but du cache est de minimiser le temps d’accès moyen. Temps d’accès moyen = temps d’accès + taux d’échec * temps de traitement de l’échec Pr Dr, Eng Thomas DJOTIO NDIE 219 SE 3GI ENSP- 2024-2025 Exercices A remettre la semaine prochaine – Gestion de la mémoire virtuelle Cas d’UNIX et de Linux Cas de Windows Pr Dr, Eng Thomas DJOTIO NDIE 220 SE 3GI ENSP- 2024-2025 CHAPITRE 10: Système de fichier Pr Dr, Eng Thomas DJOTIO NDIE 221 SE 3GI ENSP- 2024-2025 Système de fichier Qu’est-ce qu’un système de fichiers? Qu’est-ce qu’un fichier ? Répertoires de fichiers Stockage des fichiers L’antémémoire Systèmes de fichiers UNIX (FFS), Linux Ex2, MS-DOS (FAT) et NTFS Partage de fichiers – Liens physiques et liens symboliques – Verrouillage de fichier La cohérence du système de fichiers Pr Dr, Eng Thomas DJOTIO NDIE 222 SE 3GI ENSP- 2024-2025 Système de fichiers Partie 2 Partage de fichiers – Liens physiques et liens symboliques – Verrouillage de fichier La cohérence du système de fichiers La protection Pr Dr, Eng Thomas DJOTIO NDIE 223 SE 3GI ENSP- 2024-2025 Qu’est ce qu’un système de fichiers ? 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: partition, disque, CD, disquette). Avant qu’un système de fichiers puisse créer et gérer des fichiers sur une unité de stockage, son unité doit être formatée selon les spécificités du système de fichiers. Le formatage inspecte les secteurs, efface les données et crée le répertoire racine du système de fichiers. Il crée également un superbloc pour stocker les informations nécessaires à assurer l’intégrité du système de fichiers. Pr Dr, Eng Thomas DJOTIO NDIE 224 SE 3GI ENSP- 2024-2025 Qu’est ce qu’un système de fichiers ? (2) Un superbloc contient notamment : 🡨 L’identifiant du système de fichiers (C:, D :..) 🡨 Le nombre de blocs dans le système de fichiers. 🡨 La liste des blocs libres. 🡨 L’emplacement du répertoire racine. 🡨 La date et l’heure de la dernière modification du système de fichiers 🡨 Une information indiquant s’il faut tester l’intégrité du système de fichiers. Si le superbloc est corrompu, le système de fichiers risque ne plus pouvoir accéder aux fichiers. Pour réduire le risque, il maintient plusieurs copies du superbloc. Ces copies permettent de vérifier l’intégrité du superbloc et de le restaurer. Pr Dr, Eng Thomas DJOTIO NDIE 225 SE 3GI ENSP- 2024-2025 Qu’est ce qu’un système de fichiers ? (3) Pr Dr, Eng Thomas DJOTIO NDIE 226 SE 3GI ENSP- 2024-2025 Qu’est ce qu’un fichier ? Un fichier désigne un ensemble de données manipulées comme une seule unité ou individuellement : – create, open, close, unlink, copy, rename, list…. – read, write… Il a un ensemble d’attributs qui peuvent être regroupés en deux catégories : 🡨 Les attributs qui servent à contrôler les accès (code de protection, mot de passe, propriétaire …). 🡨 Les attributs qui définissent le type et l’état courant du fichier (indicateur du type ASCII/binaire, taille courante, location, date de création, date de la dernière modification, …). Pour le système d’exploitation, un fichier est une suite d’octets. Par contre, les utilisateurs peuvent donner des significations différentes au contenu d’un fichier (suites d’octets, suite d’enregistrements, arbre…) Pr Dr, Eng Thomas DJOTIO NDIE 227 SE 3GI ENSP- 2024-2025 Qu’est ce qu’un fichier ? (2) Chaque fichier a un nom composé en général de deux parties séparées par un point. 🡨 La partie qui suit le point est appelée extension (prog.c, entete.h, fich.doc, toto.pdf …). 🡨 L’extension est nécessaire dans certains cas. Par exemple, le compilateur C rejettera le fichier prog.txt même si son contenu est un programme C. Chaque fichier est identifié par une référence (un chemin d’accès) permettant de le localiser. Dans un système, il existe plusieurs types de fichiers : 🡨 Les fichiers ordinaires (ASCII ou binaires). 🡨 Les répertoires sont des fichiers système qui maintiennent la structure du système de fichiers. 🡨 Les fichiers spéciaux caractère sont liés aux E/S et permettent de modéliser les périphériques d’E/S série tels que les terminaux, les imprimantes et les réseaux. 🡨 Les fichiers spéciaux bloc modélisent les disques, les disquettes... Pr Dr, Eng Thomas DJOTIO NDIE SE 3GI ENSP- 228 2024-2025 Qu’est ce qu’un fichier ? (3) Dans le cas d’UNIX, chaque type de fichiers est désigné par un symbole : – «-» les fichiers ordinaires, –«d » les répertoires, –«c » les périphériques caractères, –«b » les périphériques blocs, et –«p » les tubes nommés (named pipe). Les périphériques sont aussi des fichiers désignés par des références. Exemple : On copie le texte : « abcd », tapé au clavier, dans un fichier par la commande : $ cat > fichier abcd ^D et sur un terminal, par la commande : $ cat > /dev/tty abcd ^D Pr Dr, Eng Thomas DJOTIO NDIE 229 SE 3GI ENSP- 2024-2025 Qu’est ce qu’un fichier ? (4) Quelques appels système Pr Dr, Eng Thomas DJOTIO NDIE 230 SE 3GI ENSP- 2024-2025 Qu’est ce qu’un fichier ? (5) Appel système stat (La structure de buf) Pr Dr, Eng Thomas DJOTIO NDIE 231 SE 3GI ENSP- 2024-2025 Répertoires de fichiers Les systèmes de fichiers organisent leurs fichiers dans des répertoires. Chaque répertoire comporte des fichiers et éventuellement des sous-répertoires. Chaque système de fichier a un répertoire racine (/, C:, E:). Chaque processus a un répertoire de travail désigné par «. » Le répertoire père est désigné par «..» La référence à un fichier indique le chemin d’accès au fichier : – Chemin d’accès relatif – Chemin d’accès absolu Pr Dr, Eng Thomas DJOTIO NDIE 232 SE 3GI ENSP- 2024-2025 Répertoires de fichiers (2) L’organisation la plus appropriée pour les fichiers est hiérarchique (un graphe acyclique) Pr Dr, Eng Thomas DJOTIO NDIE 233 SE 3GI ENSP- 2024-2025 Répertoires de fichiers (3) Montage de systèmes de fichiers Le montage permet de regrouper dans une même structure hiérarchique plusieurs systèmes de fichiers. Pr Dr, Eng Thomas DJOTIO NDIE 234 SE 3GI ENSP- 2024-2025 Répertoires de fichiers (4) Structure d’un répertoire : cas de MS-DOS Pr Dr, Eng Thomas DJOTIO NDIE 235 SE 3GI ENSP- 2024-2025 Répertoires de fichiers (5) Structure d’un répertoire : cas d’UNIX Pr Dr, Eng Thomas DJOTIO NDIE 236 SE 3GI ENSP- 2024-2025 Répertoires de fichiers (6) Structure d’un répertoire : cas d’UNIX Pr Dr, Eng Thomas DJOTIO NDIE 237 SE 3GI ENSP- 2024-2025 Répertoires de fichiers (7) Quelques appels système Pr Dr, Eng Thomas DJOTIO NDIE 238 SE 3GI ENSP- 2024-2025 Stockage des fichiers Chaque fichier (ordinaire ou répertoire) d’un système de fichiers est stocké sur l’unité de stockage du système de fichiers. Ses données sont dans des blocs de taille fixe (512, 1024, ou 2048 octets, …). À chaque fichier est alloué un nombre de blocs. Le bloc est l’unité d’allocation => fragmentation interne La lecture ou l’écriture d’un élément d’un fichier impliquera le transfert vers la mémoire du bloc entier qui contient cet élément. Le système de fichiers conserve, dans un ou plusieurs blocs spécifiques (superblocs), un certain nombre d’informations telles que le nombre de ses blocs, leur taille, la liste des blocs libres…. Pour pouvoir récupérer l’état des blocs (libre ou alloué), les systèmes de fichiers maintiennent : – une liste chaînée des blocs libres ou – une table de bits contenant un bit pour chaque bloc (0 pour libre). Les blocs d’un même fichier sont contiguës ou non contiguës Pr Dr, Eng Thomas DJOTIO NDIE 239 SE 3GI ENSP- 2024-2025 Stockage des fichiers (2) Allocation contiguë (a) Allocation d’espace disque pour 7 fichiers (b) Suppression des fichiers D et F => Fragmentation externe Pr Dr, Eng Thomas DJOTIO NDIE 240 SE 3GI ENSP- 2024-2025 Stockage des fichiers (3) Allocation non-contiguë : Chaînage des blocs Pas pratique pour un accès direct à un bloc Pr Dr, Eng Thomas DJOTIO NDIE 241 SE 3GI ENSP- 2024-2025 Stockage des fichiers (4) Allocation non-contiguë Table d’allocation de fichiers (FAT) La FAT permet de localiser les blocs de chaque fichier du système de fichiers. Elle comporte une entrée pour chaque bloc de l’unité de stockage. Le numéro du premier bloc d’un fichier est un attribut du fichier. Pr Dr, Eng Thomas DJOTIO NDIE 242 SE 3GI ENSP- 2024-2025 Stockage des fichiers (5) Allocation non-contiguë : Tables d’index des i-noeuds Pr Dr, Eng Thomas DJOTIO NDIE 243 SE 3GI ENSP- 2024-2025 L’antémémoire Les processus ne peuvent pas manipuler directement les données du disque. Ils doivent être déplacés en mémoire centrale. De nombreux systèmes de fichiers cherchent à réduire le nombre d’accès au disque car le temps d’accès moyen au disque est égal à quelques dizaines de millisecondes. La technique la plus courante pour réduire les accès au disque, consiste à utiliser une antémémoire (buffer cache ou block cache). L’antémémoire est un espace de la mémoire centrale réservé aux transferts de blocs de données du disque. A chaque demande d’accès à un élément d’un fichier, on examine d’abord si le bloc désiré (celui qui contient l’élément du fichier) se trouve dans l’antémémoire. Si c’est le cas, la demande est satisfaite sans avoir à accéder au disque. Sinon, pour satisfaire la demande, le bloc désiré doit être d’abord chargé à partir du disque dans l’antémémoire. S’il faut charger un bloc et que l’antémémoire est pleine, il faut retirer un des blocs de l’antémémoire pour le remplacer par celui demandé. Le bloc retiré doit être recopié sur le disque s’il a été modifié depuis son chargement. Pour choisir le bloc à retirer, il est possible d’utiliser un des algorithmes de remplacement de pages (FIFO, LRU, etc.). Pr Dr, Eng Thomas DJOTIO NDIE 244 SE 3GI ENSP- 2024-2025 L’antémémoire (2) Problème Si des blocs placés dans l’antémémoire ont été modifiés et une panne survient avant de les copier sur disque, le système de fichiers passe dans un état incohérent. Pour minimiser les risques d’incohérence, le système Unix, recopie les blocs contenant les i-noeuds et les répertoires immédiatement après leur modification. Les blocs de données ordinaires sont recopiés s’ils doivent être retirés de l’antémémoire ou automatiquement par un démon toutes les 30 secondes. On peut également déclencher ce démon par l’appel système sync(). Dans MS-DOS, les blocs de l’antémémoire sont recopiés sur disque à chaque modification. L’antéménoire n’est pas la seule façon d’améliorer les performances d’un système de fichiers. Une autre technique consiste à réduire le temps de recherche du bloc dans le disque (voir la séance suivante). Pr Dr, Eng Thomas DJOTIO NDIE 245 SE 3GI ENSP- 2024-2025 Système de fichiers d’UNIX (FFS) Pr Dr, Eng Thomas DJOTIO NDIE 246 SE 3GI ENSP- 2024-2025 Système de fichiers d’UNIX (2) Pr Dr, Eng Thomas DJOTIO NDIE 247 SE 3GI ENSP- 2024-2025 Système de fichiers d’UNIX (3) Les i-noeuds de tous les fichiers d’un même système de fichiers sont regroupés dans une même table -> la table des i-noeuds. Chaque i-noeud est identifié par un numéro -> sa position dans la table. Pour faciliter l’accès aux fichiers, le système maintient en mémoire une table contenant tous les fichiers ouverts -> la table des fichiers ouverts. Chaque entrée de la table contient notamment : – Mode d’ouverture, Pointeur de fichier, Numéro d’i-noeud,… L’opération d’ouverture ou de création de fichier retourne un descripteur de fichier qui contient un pointeur vers la table des fichiers ouverts. Les descripteurs d’un même processus sont rassemblés dans une table -> la table des descripteurs de fichier du processus). Lorsqu’un processus est créé par un fork, la table des descripteurs du père est dupliquée. Pr Dr, Eng Thomas DJOTIO NDIE 248 SE 3GI ENSP- 2024-2025 Système de fichiers d’UNIX (4) Relation entre la table des descripteurs de fichiers et la table des fichiers ouverts Pr Dr, Eng Thomas DJOTIO NDIE 249 SE 3GI ENSP- 2024-2025 Système de fichiers de Linux Ex2 Pr Dr, Eng Thomas DJOTIO NDIE 250 SE 3GI ENSP- 2024-2025 Système de fichiers de MS-DOS FAT Pr Dr, Eng Thomas DJOTIO NDIE 251 SE 3GI ENSP- 2024-2025 Système de fichiers de MS-DOS (2) FAT Pr Dr, Eng Thomas DJOTIO NDIE 252 SE 3GI ENSP- 2024-2025 Système de fichiers NTFS (Windows) Chaque volume (partition) NTFS contient des fichiers, des répertoires, des bitmaps et d’autres structures de données. volume = {blocs = clusters= 512octets à 64ko} en général = 4ko La structure de donnée