Systèmes d’Exploitation 2 Ali Larab L2-info, CUFR d’Albi 2008-2009 Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 1 Présentation du module « S.ES.E-2 » Objectif: – Approfondir les notions acquises dans le module SE-1 (Notions sur l'organisation interne et gestion des mémoires et fichiers). Volume horaire: – 30h (10h cours + 10h TD + 10h TP). Contenu: – – – – Fonction d’un SE : approfondir les points abordés dans le module SE-1 Gestion des fichiers (Fichiers et catalogues : accès et protection) Gestion des mémoires (principale et secondaires) Gestion des processus : Organisation d'un SE, concepts de processus, ressources API, gestion des conflits… Thèmes de TP : – TP de gestion de fichiers, de la mémoire et des processus. Evaluation: – Contrôle de connaissances sur table + Evaluation TP ( compte rendu ! ). Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 2 Bibliographie • Andrew Tanenbaum, Systèmes d'exploitation, Pearson Education (2ème édition), France, ISBN: 2-7440-7002-5. • J. Archer Harris, Systèmes d'exploitation, Edisciences, 2002, ISBN:2100065130. • Valérie Martinez, Windows 2000 Professionnel – Notions de base, Edition Dunod, 2001, ISBN:2100046284. • Jerry Peek, Grace Todino, John Strang, Introduction à Unix, Edition O'Reilly, 2002, ISBN: 978-2841772094. • ... Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 3 Cours 1 Gestion de fichiers Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 4 Rappels: Définition d'un SE Un SE (ou OS pour Operating System) est le programme fondamental des programmes systèmes. Son rôle est de gérer tous les périphériques et de fournir aux programmes utilisateur une interface simplifiée avec le matériel. Il contrôle donc toutes les ressources de l'ordinateur et fournit la base sur laquelle seront construits les programmes d'application. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 5 Fonctions d'un SE (1/5) Le SE a donc 2 fonctions principales : 1. Extension de la machine, Machine virtuelle ou machine étendue, 2. Gestion des ressources. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 6 Fonctions d'un SE (2/5) 1. Extension de la machine (Machine virtuelle) Fournir à l'utilisateur l'équivalent d'une machine virtuelle plus simple à programmer que la machine réelle. Masquer les éléments fastidieux liés au matériel (gestion des interruptions, des horloges, de la mémoire, des périphériques (déplacement du bras de lecture d'un disque dur)). Le SE: Créer une interface de programmation plus abstraite qui lui permet de manipuler les périphériques d'une manière plus simple. • Ex. Présenter le disque dur comme un fichier qu'il faut ouvrir, manipuler (lecture/écriture), puis fermer. –L'interface de programmation offerte par le SE = ensemble de services que les programmeurs peuvent solliciter par le billet d'instructions spéciales appelées « appels systèmes ». Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 7 Fonctions d'un SE (3/5) 2. Gestion des ressources (1/3) – – • Un ordinateur = ensemble de ressources. Plusieurs programmes peuvent s'exécuter sur cet ordinateur. Ces programmes nécessitent de la mémoire, des accès disque et des accès ou utilisation des ressources. Le rôle du SE dans ce cas est de gérer de manière équitable, optimale et sans conflit l'allocation des processeurs, de la mémoire et des périphériques d'E/S aux différents programmes concurrents qui les sollicitent. Ex. - Impression simultanée, - Accès aux fichiers, - Autorisation/interdiction d’accès à certaines ressources. Partage de ressources Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 8 Fonctions d'un SE (4/5) 2. Gestion des ressources (2/3) Partage de ressources ressources:: – Dans le temps : Gérer l'accès dans le temps à l'imprimante, à un fichier ou à la CPU. Le choix du programme qui va bénéficier de la ressource est la tâche du SE. – Dans l'espace : Au lieu d'attendre son tour, certaines ressources permettent d'être partagées. • On peut par exemple partager la mémoire principale entre les processus ou programmes actifs qui s'exécutent à un instant t. Remarque: Le rôle du SE est de trouver le juste milieu entre le partage de la ressource dans le temps et dans l'espace. Ex1. Ne pas allouer toute la mémoire à un seule programme qui n'a besoin que de quelques kilo octets et de laisser les autres attendre l'utilisation de la CPU. Ex2. Ne pas partager la mémoire entre tous les programmes à un instant t (la mémoire n'est pas suffisante). Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 9 Fonctions d'un SE (5/5) 2. Gestion des ressources (3/3) Les ressources à gérer : – Les fichiers, – Les entrées/sorties, – Les processus, – La mémoire. Points à détailler tout au long de ce module. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 10 Système de Gestion de Fichiers (SGF) Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 11 Fonctions d'un SE (5/5) 2. Gestion des ressources (3/3) Les ressources à gérer : – Les fichiers, – Les entrées/sorties, – Les processus, – La mémoire. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 12 Le Système de Gestion des Fichiers (SGF) • Le SGF est la partie la plus visible d’un SE • Le SGF permet d’accéder à divers périphériques (disque dur, clé USB, lecteur de disquette, de CD-ROM et de DVD). • Rôle: Gérer les fichiers et offrir des primitives pour manipuler ces fichiers. – Ces primitives et les appels système qui leur correspondent sont appelés par l’interpréteur de commande. • Le SE a pour charge d’établir une correspondance entre la notion logique de fichier et le secteur physique sur lequel le fichier est recopié. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 13 Le Système de Gestion des Fichiers (SGF) Tâches d’un SGF 1. 2. 3. 4. Offrir une interface conviviale pour manipuler les fichiers Stocker les fichiers sur le disque Gérer l’espace libre sur le disque Gérer les fichiers dans le cas d’un environnement multiutilisateurs 5. Donner des utilitaires pour le diagnostique, la récupération en cas d’erreur, l’organisation des fichiers. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 14 SGF Supports de stockage • Disque dur Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 15 SGF Supports de stockage • Disque dur Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 16 SGF Supports de stockage Formatage d’un support magnétique (disque dur) : • Formatage de bas niveau (usine) – Formatage standard: Toutes les pistes ont le même nombre de secteurs – Formatage complexe: Le nombre de secteur par piste est de plus en plus petit au fur et à mesure qu’on se dirige vers le centre. • Formatage de haut niveau: organiser les pistes et les secteurs d’une manière compréhensible par le SE. – Chaque SE organise ses pistes et secteurs à sa manière il est par exemple possible qu’un disque formaté sous Linux ne puisse être lu sous DOS. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 17 SGF Supports de stockage Partitionnement d’un disque : • C’est le fait de diviser le disque en partitions. • La partition est une zone du disque qui peut être considérée comme un disque logique à part. lecteur logique. • Chaque partition peut recevoir un SE différent. il suffit que le disque soit amorçable et que le programme d’amorçage du système soit placé dans le secteur de boot. – Ex. commande DOS « fdisk » permet de partitionner le disque en plusieurs lecteurs. Idem pour l’utilitaire gparted/qparted sous Linux. • Une fois le disque est partitionné, on peut formater chacune de ses partitions pour le SE qui va la gérer. – Ex. FAT16, FAT32, NTFS, EXT2, EXT3 Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 18 SGF Concept de fichier (1/2) • Un fichier = ensemble de secteurs sur le disque • Le SE doit présenter le stockage des données sur le disque d’une manière plus simple aux utilisateurs. Tout SGF intègre la notion de fichier et de répertoire. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 19 SGF Concept de fichier (2/2) Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 20 SGF Concept de répertoire (catalogue, directory) (1/2) • La notion de répertoire est créée pour l’organisation de fichiers • Le SE a besoin d’une organisation afin de structurer ses fichiers et de pouvoir y accéder rapidement. • Un répertoire est vu comme un fichier quand il est stocké sur le disque et est destiné à contenir des fichiers. • Plusieurs structures: – Structure plate à un niveau : on peut avoir plusieurs répertoires mais chacun d’eux ne peut contenir que des fichiers (pas de répertoire). – Structure à deux niveaux : chaque utilisateur a son propre répertoire lequel peut contenir des fichiers et des répertoires. Ces sous-répertoires ne peuvent contenir que des fichiers. – Structure arborescente : on peut avoir un ensemble arbitraire de répertoires et de fichiers. Les répertoires peuvent avoir des sous-répertoires et ainsi de suite (pas de limite). Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 21 SGF Concept de répertoire (catalogue, directory) (2/2) • Du point de vu d’un SGF, un répertoire est un fichier qui dispose d’une structure logique (un tableau qui possède une entrée par fichier). Répertoire Fichier Données Structure d’un répertoire NomFich Attributs Info sur le stockage du fichier NomRep Attributs Info sur le stockage du fichier NomFich Attributs Info sur le stockage du fichier Structure logique d’un répertoire Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 22 SGF Création d’un fichier (répertoire) par le SE 1. Créer la structure de données qui décrit le fichier (ou le répertoire). – Tout fichier doit être décrit afin que le syst puisse le connaître et le reconnaître. permet au SE d’organiser au mieux les fichiers – Les attributs des fichiers sont sauvegardés dans cette structure de données. • Un fichier et un répertoire ne sont pas décrits par la même structure de données. 2. Créer le fichier proprement dit. – Allouer au fichier un certain nombre de blocs sur le disque selon sa taille – Le contenu d’un bloc sera différent selon qu’il s’agisse d’un fichier ou d’un répertoire. • Les blocs d’un fichier contiennent des données sans aucune structure particulière, alors que les blocs d’un répertoire ont une structure bien précise (contiennent des noms et des attributs de fichiers et de sous-répertoires). Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 23 SGF Organisation des fichiers sur le disque • Les méthodes utilisées pour l’allocation des secteurs (blocs) sur le disque à un fichier (ou un répertoire) sont propre au SGF et par conséquent au SE différence entre DOS, Linux… • Techniques d’allocation des blocs sur le disque: Comment organiser les blocs ou les clusters d’un fichier sur le disque. il y a 3 (voire 4) manières : 1. Allocation contiguë: Le fichier est enregistré sur des blocs consécutifs sur le disque 2. Allocation chaînée: On divise le fichier en plusieurs blocs qu’on enregistre à des endroits espacés et on les relie avec des liens. 3. Allocation indexée: Les blocs sont indépendants mais on conserve dans une structure statique ou dynamique (bloc index) les numéros des blocs appartenant au fichier. 4. i-nodes: Associer à chaque fichier une structure de données contenant les attributs et les adresses du disque des blocs du fichier. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 24 SGF Techniques d’allocation des blocs sur le disque 1) Allocation contiguë • • (1/2) C’est le mode d’allocation le plus implicite Pour chaque fichier à enregistrer, le système recherche une zone suffisamment grande pour accueillir le fichier. Le fichier sera constitué de plusieurs blocs contigus. Nom du fichier Attributs Adresse de début longueur Description d’un fichier dans un système qui applique l’allocation contiguë. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 25 SGF Techniques d’allocation des blocs sur le disque 1) Allocation contiguë (2/2) Avantages: Rapidité d’accès. Pour lire les différents secteurs, il suffit d’attendre qu’ils passent sous la tête de lecture/écriture accès séquentiel. Adaptée au CD-ROM, car la taille de tous ses fichiers est connue à l’avance et ne changera jamais lors de l’utilisation ultérieure du système de fichier du CDROM. Inconvénients: N’est plus utilisée pour diverses raisons: Difficulté de prévoir la taille qu’il faut réserver pour le fichier. En plus un fichier est amené à augmenter Perte d’espace: car prévoir plus d’espace, risque de ne pas l’occuper, alors que prévoir moins d’espace risque d’être insuffisant. Fragmentation: des trous après suppression d’un fichier. Comment remplir ces trous avec le temps, apparition de petits trous dont la taille ne suffit pas pour allouer un fichier. nécessite défragmentation. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 26 SGF Techniques d’allocation des blocs sur le disque 2) Allocation par liste chaînée • • (1/2) Elle consiste à allouer des blocs chaînés entre eux au fichier. Le premier mot de chaque bloc sert de pointeur sur le bloc suivant (Le mot du dernier bloc = 0), Le reste du bloc contient les données. Fichier A Un fichier peut désormais être 0 éparpillé sur le disque Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 du du du du du puisque chaque bloc permet fichier fichier fichier fichier Bloc fichier physique 4 7 2 10 12 de retrouver le bloc suivant. Fichier B Bloc physique Bloc 0 du fichier Bloc 1 du fichier Bloc 2 du fichier 0 Bloc 3 du fichier 6 3 11 14 Figure . Stockage d’un fichier à l’aide d’une liste chaînée de blocs de disque. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 27 SGF Techniques d’allocation des blocs sur le disque 2) Allocation par liste chaînée (2/2) Avantage : – Par rapport à l’allocation contiguë, il n’y a pas d’espace perdu dans une fragmentation du disque. Inconvénient : – – Accès lent aux fichiers (fichiers non séquentiels), car pour accéder au bloc n, le système doit démarrer au début et lire les n-1 blocs précédents, un par un. La perte d’un chaînage entraine la perte de tout le reste du fichier. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 28 SGF Techniques d’allocation des blocs sur le disque 3) Allocation par liste chaînée utilisant une table en mémoire (allocation indexée) (1/2) • Pour éliminer les problèmes de la méthode précédente, on prend les pointeurs de chaque bloc du disque et on les range dans une table en mémoire. • Cette table s’appelle la FAT (File Allocation Table, table d’allocation de fichier). Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 29 SGF Techniques d’allocation des blocs sur le disque 3) Allocation par liste chaînée utilisant une table en mémoire (allocation indexée) (2/2) Avantages : • Plus de problème d’indexation de la méthode précédente. La plupart des SE actuels appliquent ce mode: – MS-DOS utilise la FAT – Widows NT utilise la MFT – UNIX utilise le I-Node Inconvénient : • La table prend beaucoup d’espace mémoire (elle doit se trouver en mémoire tout le temps sinon paginée). Si le disque a n blocs et la taille d’une entrée est de k octets, on aura besoin de kn octets (valeur fixe). – Exemple : pour un disque de 20 Go ayant des blocs de 1Ko, la table doit contenir 20 millions d’entrées. Si 1 entrée = 3 octets, la table occupera 20 Mo. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 30 SGF Techniques d’allocation des blocs sur le disque 4) I-nodes (nœuds d’information) • Associer à chaque fichier une structure de données appelée i-node, laquelle inclut les attributs et les adresses du disque des blocs du fichier. • Exemple : Attribut du fichier A : adresse disque du bloc 0, adresse disque du bloc 1, adresse disque du bloc 2, adresse disque du bloc 3… Adresse d’un bloc de pointeurs). Avantage : • l’i-node n’a besoin d’être en mémoire que lorsque le fichier correspondant est ouvert. Si un i-node occupe n octets et k fichiers doivent être ouverts simultanément, on aura besoin que de kn octets (alors que dans la méthode précédente on a besoin d’un espace grand et fixe, relatif à l’espace du disque et de ses blocs). Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 31 SGF SGF MSMS-DOS FAT (1/2) • Chaque disque formaté avec MS-DOS contient un répertoire racine qui contient des fichiers et des sous-répertoires • Chaque entrée d’un répertoire a une taille de 32 octets: Nom_Fich Attributs Adresse du 1er bloc du fichier ou du répertoire Une entrée de répertoire dans MS-DOS • Méthode intéressante et prévenant: en ne mettant que le 1er bloc, on ne limite pas la taille du fichier. • MS-DOS associe un tableau où chaque indice contient la valeur du prochain bloc associé au fichier. • Mesure de sécurité: deux copies de la FAT sont enregistrées près du répertoire racine. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 32 SGF SGF MSMS-DOS FAT (2/2) N°cluster Valeur Exo1.c … … 2 Exo1.c = {cluster 2, 5 et6} 2 5 3 0 4 0 5 6 6 FFFFh … … Schéma structurel de la FAT Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 33 SGF Bloc d’indirection simple SGF UNIX I-Node (Nœud d’index) Nom Fich ou rép 256 @ de blocs sur le disque Taille Numéro d’I-Node Fig1: Structure d’une entrée de répertoire sous UNIX •Remarque: Aucune identité pour le fichier sur l’INode se fait dans le rép associé au fichier •Taille d’un I-Node: 64 octets. Adresse sur le disque du 1er bloc associé au fichier Date de création Compteur de liens UID b.i double GID … Addr 1 b.i simple Addr 2 •Les blocs physiques contiennent soit les données du fichier, soit l’adresse d’autres blocs physiques. On parle alors de blocs d’indirection. … Addr 10 PS PD Fig2: Structure d’un I-Node Ali Larab, L2-info, CUFR, 08-09 b.i triple PT Systèmes d'Exploitation (2ème partie) b.i simple b.i double 34 SGF SGF Windows NT NTFS • Windows NT propose: FAT16, FAT32, et NTFS • NTFS utilise une structure de données organisée en table nommée Master File Table (MFT) pour gérer les fichiers. • MFT contient des informations détaillées sur les fichiers et les répertoires. entête Attributs NomFich données Attributs de sécu Structure d’une entrée de la MFT Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 35 SGF Gestion des fichiers dans un environnement multi--utilisateurs multi Partage de ressource et d’accès aux fichiers Problème de sécurité définir des droits d’accès précis au fichier Accès différent au fichier selon que l’utilisateur est : propriétaire, membre du groupe du propriétaire ou autres utilisateurs. Ex. (rwx r-x - -x) propriétaire peut lire, écrire et exécuter le fichier, les membre du groupe de cet utilisateur peuvent accéder en lecture à ce fichier et l’exécuter. Les autres ne peuvent qu’exécuter ce fichier (ne peuvent ni le modifier, ni le lire). Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 36 SGF Lien symbolique et lien physique Utile pour le partage de fichiers ou de répertoires. Unix offre 2 types de liens: symbolique et physique. • Les liens symboliques représentant des pointeurs virtuels (raccourcis) vers des fichiers réels. – La suppression du lien symbolique ne supprime pas le fichier pointé. – Commande: ln -s nomFichReel NouvLien • Les liens physiques représentent un nom alternatif pour un fichier. – La suppression de l'un ou l'autre de ces liens n'entraine pas la suppression du fichier. Plus exactement, tant qu'il subsiste au minimum un lien physique, le fichier n'est pas effacé. En contrepartie lorsque l'ensemble des liens physiques d'un même fichier est supprimé le fichier l'est aussi. – Commande (sans option s): ln nom-du-fichier-reel nom-du-lien-physique Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 37 SGF Implémentation des répertoires (1/2) 1) Rép simple contenant des entrées de taille fixe: a) rép=liste d’entrées, dont la taille est fixée, qui correspondent chacune à un fichier. Chaque entrée contient un nom de fichier (d’une longueur donnée), une structure des attributs du fichier et une ou plusieurs adresses disques précisant la localisation des blocs de disque. b) Pour les syst fonctionnant avec les i-nodes: stocker les attributs dans les inodes plutôt que dans les entrées de répertoires. Toto attributs Toto Jeux attributs Jeux Cours attributs Cours internet attributs internet a) Rép simple avec des entrées de taille fixe Ali Larab, L2-info, CUFR, 08-09 Structure de données contenant les attributs a) Rép simple dans lequel chaque entrée fait référence à un i-node Systèmes d'Exploitation (2ème partie) 38 SGF Implémentation des répertoires (2/2) 2) Rép avec des noms longs et de longueur variable: a) une partie fixe qui débute par la longueur de l’entrée, suivie de données au format fixe (propriétaire, date création, droits d’accès…), nom de fichier qui est variable. inconvénient: trous après effacement d’un fichier. b) Entrée de rép=longueur fixe + garder les noms de fichiers ensemble dans un tas à la fin du répertoire Entrée d’un fichier Fichier 1 : longueur d’entrée Fichier 1 : attributs p r o j e t b u d g e t Fichier 2 : longueur d’entrée Fichier 2 : attributs p e r s o n n e l Fichier 3 : longueur d’entrée Fichier 3 : attributs f o O … a) sur une ligne Ali Larab, L2-info, CUFR, 08-09 Pointeur vers le nom du fichier 1 Fichier 1 : attributs Pointeur vers le nom du fichier 2 Fichier 2: attributs Pointeur vers le nom du fichier 3 Fichier 3: attributs … p r o j e t b u d g e t p e r s o n n e l f o o … Entrée d’un fichier tas b) dans un tas Systèmes d'Exploitation (2ème partie) 39 SGF Les fichiers partagés • Plusieurs utilisateurs besoin de partager des fichiers • Faire apparaître ce fichier dans les différents répertoires qui appartiennent aux différents utilisateurs Répertoire racine A B C Système de fichier contenant un fichier partagé Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 40 SGF Gestion de l'espace disque 1. Taille des blocs 2. Mémorisation des blocs libres 3. Quotas d'espace disque Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 41 SGF Gestion de l'espace disque 1. Taille des blocs • Fichiers stockés sur disque gestion espace disque = important. • Stratégies de stockage: allocation consécutive (contiguë) ou division par blocs de taille fixe. • Taille des blocs = secteur, piste, cylindre? - Petits blocs dégradent les performances (trop de blocs trop de déplacements et de rotation vitesse de lecture lente), mais améliorent l’utilisation du disque. - Grands blocs améliorent les performances mais perte d’espace disque (perte de 97% de l’espace disque)?. Taille moyenne: pour UNIX= 1 Ko, Windows NT=~2 Ko (mais change selon la taille du disque) Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 42 SGF Gestion de l'espace disque 2. Mémorisation des blocs libres • • Après avoir choisi la taille du bloc passer à la mémorisation de l’espace libre. Utiliser soit une « liste chaînée » soit une « table de bits » : a) Une liste chaînée de blocs contenant chacun des numéros de blocs libres. 1 seul vecteur de blocs en mémoire !. Ex. si 1 vecteur de blocs = 1 Ko, numéro de bloc sur 32 bits on enregistre 255 (=256-1 pour pointer sur le prochain bloc) blocs libres dans un seul vecteur de bloc. Si disque = 16 Go besoin d’une liste de 16 794 blocs pour contenir les 2^24 vecteurs de blocs du disque. 42 36 11 67 516 230 162 612 342 482 86 234 897 422 141 b) Une table de n bits pour un disque de n blocs (ex. 1: si bloc vide, 0: s’il est alloué). Ex. Un disque de 16 Go a 2^24 blocs de 1 Ko, et nécessite ainsi 2^24 bits pour la table. Ce qui fait 2048 blocs (inférieur à celui des listes chaînée). 10101100 00110000 Ali Larab, L2-info, CUFR, 08-09 00110111 11000011 11111111 Systèmes d'Exploitation (2ème partie) 43 SGF Gestion de l'espace disque 3. Quotas d'espace disque • Systèmes multiutilisateur plusieurs utilisateurs en même temps risque d’occupation de tout le disque • Fournir un moyen qui permet d’attribuer des quotas d’espace disque (logicielles, matérielles). – L’administrateur définit la capacité max de fichiers et de blocs pour chacun des utilisateurs et le SE vérifie que l’utilisateur n’a pas dépassé ce quotas. – Si un utilisateur augmente la taille d’un fichier, on enlève cette taille du quotas attribué au propriétaire du fichier ! • "Table des fichiers ouverts" "Table des quotas". Le fichier des quotas est MAJ quand tous les fichiers sont fermés. – Limites logicielles peuvent être dépassées, mais pas les limites matérielles. Ex. gestion des profils supprimer des fichiers (temporaires) avant de se déconnecter. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 44 SGF Fiabilité du système de fichiers • Plus grave panne dans un ordinateur = destruction d’un syst de fichier. – Restauration de données difficile, voire impossible. • Sauvegarde : – Pas toute les données juste une partie du syst de fichiers – Deuxième sauvegarde: juste la partie modifiée depuis la dernière sauvegarde (copies incrémentales) – Notion de copie logique/copie physique • Cohérence du système de fichier – Modification: Lire des blocs, les modifier puis les réécrire – Si le syst tombe en panne avant la réécriture incohérence. • Le pb est plus grave si les blocs concernés = blocs i-nodes, blocs de répertoires, blocs contenant la liste des blocs libres. – Vérification de cohérence • Un bloc est soit libre soit utilisé, sinon incohérence. • Ex. de logiciel de vérif de cohérence: fsck (sous UNIX) ou scandisk (sous Windows) Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 45 SGF Performance du système de fichiers • • Un accès disque est beaucoup plus lent qu’un accès en mémoire Optimisation : Concevoir un syst de fichier de telle manière à augmenter les performances des accès disque : a) Mémoire cache: prendre une partie du disque (qlq blocs) et les conserver en mémoire. b) Lecture anticipée des blocs : mettre des blocs en mémoire cache avant d’en avoir besoin. utile uniquement avec des fichiers lus séquentiellement. c) Réduction du mouvement du bras d'un disque : en rapprochant les blocs susceptibles d’être adressés en séquence et en les plaçant de préférence sur le même cylindre. Système de fichier LFS (voir diapo suivante). Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 46 SGF Le système de fichier LFS • Amélioration technologiques: Rapidité CPU ↑ , capacité disque ↑ , taille mémoire ↑. • Par contre la rapidité (temps d'accès et de déplacement) disque est le seul paramètre à ne pas être concerné par ces améliorations. parfois mène même à des réductions des performances • Solution : un nouveau type de système de fichiers: LFS (Log-structured File System, système de fichier structuré en lots d'enregistrements). • Principe du Syst. LFS : Satisfaire une quantité non négligeable de demandes de lectures directement depuis la mémoire cache, sans avoir besoin des accès disques. • Toutes les écritures sont tamponnées en mémoire, et périodiquement écrites sur le disque dans un seul segment à la fin de l'ensemble des enregistrements (à l’avenir, probablement la plupart des accès disque seront des accès en écriture). Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 47 SGF Exemples de système de fichiers – – – – – Système de fichiers de CD-ROM (ISO 9660) Système de fichiers CP/M Système de fichiers MS-DOS Système de fichiers Windows 98 et NT Système de fichiers UNIX à détailler dans ce qui suit Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 48 SGF Exemples de système de fichiers (1/8) 1. Système de fichiers de CDCD-ROM (ISO 9660) • • • (1/2) Système simple, car conçu pour des support en écriture seule N’offre pas la possibilité de garder trace des blocs libres Chaque CD-ROM : – – Commence par 16 blocs (fonction non définie: ex. pour booter…) Un bloc qui comprend le descripteur primaire de volume (a des info générales sur le CD et une entrée répertoire pour le répertoire racine (ie où trouver le rép racine qui permet de localiser le sys de fichier). Octets 1 1 8 8 7 Localisation du fichier Taille du fichier Date et heure Lgueur de l’enregistrement des attributs Lgueur de l’entrée de répertoire 1 drapeaux intervalle 2 4 1 4-15 Num Nom L CD du fich sys Padding Nom.ext;ver L’entrée du répertoire de la norme ISO 9660. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 49 SGF Exemples de système de fichiers (2/8) 1. Système de fichiers de CDCD-ROM (ISO 9660) • (2/2) Norme ISO 9660 trop restrictive il faut des extensions pour représenter des sys de fichiers autres que les sys simples tels que MS-DOS Deux (2) extensions pour la norme du sys de fichier ISO 9660: • • Rock Ridge : pour représenter les sys de fichiers UNIX sur CD-ROM et les restaurer par la suite correctement sur un sys différent. Joliet : pour permettre à un sys Windows d’être copié sur un CDROM et d’être restauré par la suite Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 50 SGF Exemples de système de fichiers 2. Système de fichiers CP/M (3/8) • Le système d’exploitation CP/M (Control Program for Microcomputers) peut être vu comme l’ancêtre de MS-DOS, mais des syst d’exploitation futurs (embarqués) peuvent se baser sur certains de ses principes de fonctionnement (ex. n’a besoin que de 16 Ko de RAM pour démarrer, • • • simple…). Le sys de fichier CP/M dispose d’un seul répertoire, qui comprend des entrées de taille fixe (32 octets) Après démarrage (boot) le CP/M parcourt le répertoire et crée un tableau des blocs de disque libres (en recherchant les blocs qui n’appartiennent à aucun fichier). À l’arrêt du sys, le tableau n’est pas sauvegardé. vérification de cohérence: pas nécessaire. Octets 1 8 Code utilisateur Nom du fichier 3 1 2 Type-fich (extens) ordre Réservé 16 (Numéros de blocs disque) Cptr de bloc date Num du 1er bloc taille Format d’une entrée de répertoire CP/M Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 51 SGF Exemples de système de fichiers 3. Système de fichiers MSMS-DOS (4/8) • Un CP/M amélioré dédié aux plateformes Intel sur des PC. • Sys de fichiers hiérarchique dans lequel les répertoires peuvent avoir une profondeur qlcq. • Le sys de fichier représente un arbre qui commence du rép. racine • Pas de multiutilisateur n’importe quel utilisateur a accès à l’ensemble des fichiers. • Rép de tailles variables, mais avec des entrées de taille fixe (32 octets). • MS-DOS garde trace des blocs de fichiers dans une table d’allocation (FAT) en mémoire principale. Octets 8 3 1 10 2 2 2 4 Nom-fichier extens attrib réservé heure date Num du 1er bloc taille Entrée d’un répertoire MS-DOS Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 52 SGF Exemples de système de fichiers 4. Système de fichiers Windows 98 (5/8) • Allonger les noms de fichiers (noms de fichier longs) • Introduction de la FAT-32 autoriser des taille supérieures à 2 Go pour les partitions et supérieures à 8 Go pour les disques • … Octets (suite) 8 3 1 1 1 4 Nom-fichier extens attrib N T seconde Date et heure de création 2 2 4 2 4 Dernier accès 16 bits pds fort du bloc de début Date et heure dernière écriture 16 bits pds faible du bloc de début Taille du fichier Entrée d’un répertoire MS-DOS utilisé dans Widows 98 Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 53 SGF Exemples de système de fichiers (6/8) 5. Système NTFS (Windows NT, XP…) • NTFS utilise une structure de données organisée en table nommée Master File Table (MFT) pour gérer les fichiers. • La MFT contient des informations détaillées sur les fichiers et les répertoires. entête Attributs NomFich données Attributs de sécu Structure d’une entrée de la MFT Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 54 SGF Exemples de système de fichiers (7/8) 6. Système de fichiers UNIX (UNIX V7) (1/2) • Sys de fichier multiutilisateur sophistiqué • Structure arborescente qui démarre au rép racine • Une entrée de répertoire UNIX comprend une entrée pour chaque fichier de ce répertoire (des entrées simples, car des i-nodes). • Format d’un i-node: voir fig. de la diapo suivante. Octets 2 14 Num d’i-node Nom du fichier Entrée d’un répertoire d’UNIX (UNIX V7) Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 55 SGF Exemples de système de fichiers (8/8) 6. Système de fichiers UNIX (UNIX V7) (2/2) I-Node Attributs: Remarque: L’attribut compteur (dans cette figure) compte le nbr de liens vers cet i-node. Quand ce compteur = 0, l’i-node est récupéré et les blocs de disque sont placés dans la liste des blocs libres. Taille du fichier 256 numéros de blocs 256 numéros de blocs UID propriétaire GID propriétaire Date de création Compteur …. Adresses disque 10 numéros de blocs Simple redirection 256 simples redirections 256 doubles redirections Double redirection 256 simples indirections 256 numéros de blocs Triple redirection Entrée d’un répertoire d’UNIX (UNIX V7) Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 56 GESTION DE LA MÉMOIRE Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 57 Gestion mémoire • • • • • • • • Définitions Gestion élémentaire de mémoire (mono et multiprogramation) Va-et-vient Mémoire virtuelle Algorithmes de remplacement de pages Conception des systèmes de pagination Problème d’implantation Segmentation Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 58 Gestion mémoire Mémoire • Mémoire = ressource importante à gérer avec attention. • Type de mémoires: – Mémoire cache: petite quantité (qlq dizaines ou centaine de Ko), volatile, rapide et chère, – RAM (mém principale, inclus ROM) : qlq dizaines ou centaines de Mo, vitesse et prix moyen – Mémoire de masse (disque, clé usb…): dizaines ou centaines de Go, lente, non volatile, pas chère. • Rôle SE (partie gestionnaire de la mémoire) = Coordonner la manière dont ces mémoires sont utilisées : 1. Conserver la trace de la partie mémoire qui est en cours d’utilisation et de celle qui ne l’est pas, 2. Allouer la mémoire libre aux processus qui en ont besoin, 3. Libérer la mémoire quand les processus ont fini leur travail, 4. Gérer le va-et-vient (swapping) entre la mémoire principale et le disque quand la mémoire principale est trop petite pour contenir tous les processus. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 59 Gestion mémoire Gestion élémentaire de la mémoire Prévoir un bon gestionnaire de mémoire car: – – Les programmes grossissent plus/aussi vite que la mémoire Mémoire de plus en plus sollicitée (multimédia) Il y a 2 classes de gestionnaires de mémoire : 1. La monoprogrammation: simple (ni va-et-vient ni pagination). 2. La multiprogrammation: inclus le va-et-vient (swapping) et/ou la pagination. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 60 Gestion mémoire Monoprogrammation et gestion mémoire • Exécuter un seul prgm ( "processus" ) à la fois en partageant la mémoire entre le prgm et le SE [Le partitionnement peut se faire manuellement] 3 variantes simples d’organisation mémoire sont possibles (avec un SE et 1 seul processus utilisateur) : Prgm utilisateur 0xFFF… SE en ROM Gestionnaire de périph en ROM Prgm utilisateur Prgm utilisateur SE en RAM SE en RAM 0 a): modèle rare aujourd’hui (pour mini-ordinateurs) Ali Larab, L2-info, CUFR, 08-09 0 b): pour ordi de poche ou sys embarqués 0 1er c): pour les PC avec MS-DOS (BIOS) Systèmes d'Exploitation (2ème partie) 61 Gestion mémoire Multiprogrammation et gestion mémoire (1/17) • • • • • Multiprogrammation: plusieurs prgm en même temps. Quand un processus est bloqué (attente de terminaison d’une E/S) un autre peut utiliser le processeur. Solution simple: diviser la mémoire en n partitions fixes (de préférence inégales), et placer le nouveau processus qui arrive dans la file d’attente de la plus petite partition qui peut le contenir plusieurs files d’attentes (cf. figure a). Multiprogrammation avec un nombre fixé de tâches « MFT ». Inconvénient: Les files d’attente des petites partitions peuvent être pleines alors que celles des grandes partitions libres . blocage, alors qu’une grande partie de la mémoire est libre. Solution : avoir une seule file d’attente (cf. figure b). Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 62 Gestion mémoire Multiprogrammation et gestion mémoire (2/17) Files d’attente multiples 800k 800k Partition 4 Partition 4 600k Files d’attente unique Partition 3 600k Partition 3 400k 400k Partition 2 Partition 2 200k Partition 1 200k Partition 1 100k SE SE 0 0 a): Partitions mémoires prédéfinies avec des files d’attentes différentes Ali Larab, L2-info, CUFR, 08-09 100k b): Partitions mémoires prédéfinies avec une seule file d’attente. Systèmes d'Exploitation (2ème partie) 63 Gestion mémoire Multiprogrammation et gestion mémoire (3/17) • Inconvénient de la file unique: Un petit travail peut attendre longtemps • Solutions/propositions : – Parcourir la file d’attente et choisir le plus gros travail que peut contenir la partition libérée, ( pénalise les petits travaux). – Conserver une (ou plusieurs) petite partition aux petits travaux – Un travail ne peut être ignoré plus de k fois, Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 64 Gestion mémoire Multiprogrammation et gestion mémoire (4/17) • Remarque : Aujourd’hui peu de SE se servent du modèle MFT. Il faut introduire la notion de probabilité d’attente d’E/S. – "Taux utilisation CPU" " 1-pn " (p: probabilité d’attente d’E/S, n: nbr de processus) . • Ex. – – – – Ordi avec 32 Mo de mémoire, SE utilise 16 Mo, Attente moyenne d’E/S=80%, Chaque programme utilisateur nécessite 4 Mo – – – – 4 processus peuvent être simultanément en mémoire (32-16=16 = 4*4) Taux d’utilisation CPU (en ignorant celui du SE)=1 – 0,84 = 60% Si on ajoute 16 Mo de RAM taux = 1 - 0,88 = 83% gain de 38% Si on ajoute 16 autres taux= 0,93 gain d’uniquement 12% gain décroissant !! Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 65 Gestion mémoire Multiprogrammation et gestion mémoire (5/17) « Réallocation » et « protection » • Lors de la procédure de lien, le programme lieur doit savoir à quelle adresse le pgm démarrera en mémoire il faut ajouter l’adresse de la partition qui le recevra. « réallocation » – • • • • Ex. si adresse de la 1ère instruction = 100 et adresse de la partition2=200k adresse du lien = 200k + 100 exemple: CALL 200k+100 Dans les sys multiutilisateurs, il est déconseillé d’autoriser des processus à lire ou à écrire dans la mémoire appartenant à d’autres utilisateurs ou au sys. « protection » Solution: équiper l’ordi de 2 registres matériels: registre de base (reçoit l’adresse de départ) et registre de limite (reçoit la longueur de partition). Les adresses sont comparées avec la valeur du registre de limites, afin d’assurer qu’elles ne référenceront pas une adresse hors de la partition courante. Remarque: Peu d’ordi fonctionnent encore selon ce principe Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 66 Gestion mémoire Multiprogrammation et gestion mémoire (6/17) Va Va--etet-vient (swapping) et « mémoire virtuelle » • Organisation mémoire en partitions fixes = simple et efficace – Contrainte: Chaque tâche doit rester en mémoire jusqu’à sa terminaison. – Pb engendré: parfois la mémoire principale est insuffisante pour maintenir tous les processus courant actifs. – Solution: Conserver les processus supplémentaires sur un disque et les charger pour qu’ils s’exécutent dynamiquement. • Deux (2) approches de gestion mémoire peuvent être utilisées: 1. Va-et-vient (Swapping): Travailler sur des processus entiers (exécuter un processus puis le placer sur le disque). 2. Mémoire virtuelle: permet aux pgms de s’exécuter même quand ils sont partiellement en mémoire principale. Partitions variables: contrairement aux partitions fixes, dans les partitions variables, leurs nombre, leur localisation et leur taille varient dynamiquement au gré des allers-retours des processus. (Gérés par le SE) Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 67 Gestion mémoire Multiprogrammation et gestion mémoire (7/17) Va Va--etet-vient (swapping) • • Processus = entité indivisible. L’allocation mémoire change au gré des processus qui viennent en mémoire et qui la quitte Temps Non utilisé B C C C B B B C C A A SE (1) A SE (2) Ali Larab, L2-info, CUFR, 08-09 A SE (3) SE (4) D D D SE (5) SE (6) SE (7) Systèmes d'Exploitation (2ème partie) 68 Gestion mémoire Multiprogrammation et gestion mémoire (8/17) Va Va--etet-vient : Gestion mémoire : Attribution dynamique de la mémoire gérée par le SE. Gérer= allouer une zone mémoire à un processus, l’enlever de la mémoire et l’arrêter, l’enlever de la mémoire et le transférer sur disque, et conserver une trace de l’utilisation de la mémoire. Il y a principalement deux (2) façons de gérer la mémoire : 1. Tableaux de bits 2. Listes chaînées Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 69 Gestion mémoire Multiprogrammation et gestion mémoire (9/17) Gestion mémoire avec « tableaux de bits » et avec une « liste chaînée » mémoire (a) a): Gestion de la mémoire à l’aide d’une table de bits. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 70 Gestion mémoire Multiprogrammation et gestion mémoire (10/17) Gestion mémoire avec « tableaux de bits » et avec une « liste chaînée » mémoire (b) (a) a): Gestion de la mémoire à l’aide d’une table de bits. b) Gestion de la mémoire à l’aide d’une liste chaînée. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 71 Gestion mémoire Multiprogrammation et gestion mémoire (11/17) Algorithmes d’allocation mémoire avec une « liste chaînée » 1. Algo de la 1ère zone libre (first fit): Le 1er trou qui peut contenir le processus 2. Algo de la zone libre suivante (next fit): idem que first fit mais commence sa recherche à partir de l’endroit où il s’est arrêté la fois précédente au lieu de recommencer dès le début. 3. Algo du meilleur ajustement (best fit): fait la recherche dans toute la liste et prend le plus petit trou qui convient. 4. Algo du plus grand résidu (worst fit): fait la recherche dans toute liste et prend le plus grand trou disponible. 5. Algo du déplacement rapide (quick fit): utilise plusieurs listes séparées pour certaines des tailles les plus communément demandées permet de trouver un trou d’une taille donnée d’une façon extrêmement rapide. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 72 Gestion mémoire Multiprogrammation et gestion mémoire (12/17) Mémoire virtuelle • Certains pgm (processus) sont trop importants pour être supportés par la mémoire disponible : • diviser le pgme en parties (Segments de recouvrement) et exécuter à chaque fois un segment (en commence tjours par le segment 0). Les autres parties sont sauvegardées sur disque. • mémoire virtuelle: – Si un programme A veut s'exécuter alors qu'il n'y a plus de place en mémoire, un "bout" d'un autre programme est "viré" en mémoire secondaire et remplacé par un "bout" de A. – Donc, un programme est découpé en bouts que l'on nomme pages, de taille fixe. La mémoire physique est elle aussi découpée pages en cadres de pages (taille pages=taille cadre), ainsi que la mémoire secondaire. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 73 Gestion mémoire Multiprogrammation et gestion mémoire (13/17) Mémoire virtuelle et pagination Le CPU envoie les adresses Ensemble virtuelle à la MMU CPU CPU Mémoire Unité de gestion mémoire (MMU) Contrôleur de disque Bus Le MMU envoie les adresses physiques à la mémoire Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 74 Gestion mémoire Multiprogrammation et gestion mémoire (14/17) Mémoire virtuelle et pagination Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 75 Gestion mémoire Multiprogrammation et gestion mémoire (15/17) Mémoire virtuelle et pagination exemple 1 • • • Un ordi qui peut produire des adresses sur 16 bits, avec des valeurs entre 0 et 64 Ko (adresses virtuelle), mais il a seulement 32 Ko de mémoire physique. Enregistrer sur disque le pgme et diviser l’espace virtuel en pages de 4 Ko par exemple et la mémoire physique en cadres de même taille. 16 pages virtuelles et 8 cadres Si le pgme essaye d’accéder à l’adresse 0 (ex. MOV REG,0), l’adresse virtuelle 0 est envoyée à la MMU qui constate que cette adresse tombe dans la page virtuelle 0 qui correspond au cadre de page 2 (selon la figure précédente). Elle transforme alors cette adresse en 8192 (ie 8Ko) et la présente sur le bus. La mémoire exécute l’instruction demandée en lui transférant le contenu de cette adresse. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 76 Gestion mémoire Multiprogrammation et gestion mémoire (16/17) Mémoire virtuelle et pagination Correspondance adresse virtuelle ↔ adresse physique Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 77 Gestion mémoire Sortie de l’adresse physique (24580) Multiprogrammation et gestion mémoire (17/17) Mémoire virtuelle et pagination Exemple Table des pages 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 000 000 000 000 111 000 101 000 000 000 011 100 000 110 001 010 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 Le décalage sur 12 bits est copié directement de l’entrée vers la sortie 110 Bit de présence/absence La page virt 2 est utilisée comme indexe dans la table des pages 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 Entrée de l’adresse virtuelle (8196) Figure : Fonctionnement interne d’une MMU avec 16 pages de 4 octets. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 78 Gestion mémoire Multiprogrammation et gestion mémoire Mémoire virtuelle et pagination défaut de page • • • • Si l'adresse virtuelle référence une page qui n'est pas présente en mémoire physique (cf. ‘0’ dans la figure précédente ou ‘x’ dans la figure d’avant), le mécanisme d'adressage génère un défaut de page. déroutement (le processeur est restitué au SE) Si la mémoire physique est pleine : Virer de la mémoire physique une page (remplacement) : – choisir une page "victime", – si elle a été modifiée, la réécrire sur disque, – modifier les indicateurs de présence en TPV (Table des Pages Virtuelles) ; Puis, dans tous les cas : – charger la page référencée en mémoire physique (placement) ; – modifier les indicateurs de présence en TPV. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 79 La mémoire virtuelle Multiprogrammation et gestion mémoire Mémoire virtuelle et pagination Le choix d'une victime – remplacement • De nombreux algorithmes : – FIFO - First In First Out : ordre chronologique de chargement ; – NRU – Not Recently Used : ordre chronologique d'utilisation ; – FINUFO - First In Not Used, First Out (algorithme de l'horloge ou Clock) : approximation du LRU; – LFU - Least Frequently Used ; – Random : au hasard ; – MIN : algorithme optimal. • Performances : MIN, LRU, FINUFO, [FIFO, Random]. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 80 Gestion mémoire Multiprogrammation et gestion mémoire Mémoire virtuelle et segmentation • Contrairement à la pagination, dans la segmentation, la mémoire a des partitions variables. (partition= segment). Segment Segment = partition à taille variable. variable • Ensemble des segment est généré à la compilation, • Taille segment peut varier (↑↓) au cours de l’exécution. – des vides entre les partitions de la mémoire centrale ! • Différence segment et page: – – – Dans chaque segment les adresses démarrent à 0 Il n’y a aucun lien entre les segments logiques d’un programme, contrairement aux pages qui, elles se suivent. Segment = solution efficace, mais doit être gérée par le programmeur. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 81 Gestion mémoire Multiprogrammation et gestion mémoire 0 1024 Segment 1 1000 2025 0 Segment 2 7000 Mémoire virtuelle et segmentation 9000 1100 6000 0 Partition vide à occuper si le segment voisin est trop petit pour le processus qui l’occupe. Segment 3 Segment physique 3080 0..500 Segment 4 19000 0 Segment 5 23000 2050 … Espace d’adressage Mémoire centrale logique du programme P1 Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 82 Gestion mémoire Multiprogrammation et gestion mémoire Mémoire virtuelle et segmentation • Conversion des adresses: – – – Adresse logique a la forme: (s,d) où s= n°segment et d= adresse dans le segment. Retrouver l’emplacement du segment en mémoire centrale grâce à une table de segments, Effectuer un déplacement de d au sein du segment s. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 83 Gestion mémoire Multiprogrammation et gestion mémoire Mémoire virtuelle et segmentation • Avantages: – Protection: le programmeur peut interdire l’accès à son segment, mais il peut aussi le partager pour que plusieurs processus puissent l’exécuter. – – Seules les adresses appartenant au segment ayant été modifié le seront. Fragmentation interne… Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 84 Gestion mémoire À suivre… Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 85 • Exam intermédiaire le : Mercredi 18 ou 25 mars ??? (salle TP-info 2) Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 86 GESTION DES PROCESSUS Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 112 PROCESSUS 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. . PLAN Rappels sur la multiprogrammation Introduction aux processus Description d’un processus Interruption d’un processus Structure de données pour la gestion des processus Ordonnancement de processus Synchronisation de processus (accès concurrents) Interblocages Communication interprocessus Appels systèmes pour la gestion des processus Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 113 Rappels sur la multiprogrammation Monoprogrammation : – Un seul programme (processus) s’exécutant en UC, sans interruption • si le processus contient une instruction d’E/S, le processeur restera inactif durant une longue période en attendant que cette instruction se termine. Multiprogrammation : – Plusieurs programmes (processus) se partagent les ressources (mémoires, périphériques…) de l’ordinateur pb de protection, de concurrence et contrôle. – Le processeur exécute un autre processus au lieu de rester inactif pendant tout le temps occupé par l’instruction d’E/S du 1er processus. – Ça donne illusion à l'utilisateur que les processus s'exécutent tous en même temps. pseudo parallélisme • Sur une machine mono processeur Seul un programme est actif à un moment donné. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 114 Introduction aux processus • Processus = instance d’exécution d’un programme (créée par le SE ou par l’utilisateur) . il possède son conteur ordinal, ses registres et ses variables mémoires. Processus créé par le SE afin d’exécuter le programme. Programme enregistré sur le D.D. Exécution du processus par le processeur Processeur Programme chargé en mémoire centrale. Un programme et son processus Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 115 Introduction aux processus Rôle du SE concernant la gestion des processus – Créer, supprimer et interrompre un processus – Ordonnancer les processus (exécution équitable entre processus tout en privilégiant les processus système) – Synchroniser les processus: • Choisir le processus à exécuter à un instant donné • Choisir le moment où interrompre un processus • Choisir le processus qu’il faut exécuter ensuite (le suivant) • Spécifier les ressources dont a besoin (et qu’il faut affecter à) un processus – Gestion des conflits d’accès aux ressources partagées – Protection des processus d’un utilisateur contre les actions d’un autre utilisateur – … Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 116 Description d’un processus (1/2) • Processus= suite d’instructions. On peut l’exécuter et l’interrompre. Peut se retrouver dans plusieurs états (actif, suspendu, terminé, en attente d’un événement…). (1) (4) Actif Prêt (5) (en exécution) Terminé (3) (2) (6) (7) Bloqué (en attente d’E/S) Différents états d’un processus Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 117 Description d’un processus (2/2) Etats d’un processus (1) Naissance du processus. (2) Transition "actif bloqué" se produit quand le processus qui est en exécution a besoin d’une ressource non disponible. (3) Transition "actif prêt" se produit si le temps (quantum) alloué au processus est épuisé ou si un processus plus prioritaire (proc. urgent ou proc. système) arrive. (4) Transition "prêt " actif"" se produit quand le SE sélectionne le processus en question pour l’exécuter. (5) Transition "actif terminé" se produit quand le processus a fini son exécution. (6) Transition "bloqué prêt" se produit quand l’événement qui bloque le processus s’est produit. (7) Transition "bloqué terminé" se produit quand l’événement attendu par le processus ne peut se réaliser (ex. interbloquage). Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 118 Espace mémoire d’un processus (1/5) L’espace mémoire utilisé par un processus est divisé en plusieurs (4) zones: 1. 2. 3. 4. Segment de code Segment de données Pile Tas Pile 24 k Données 16 k 0 Texte (code) Structure de l’espace d’adressage d’un processus Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 119 Espace mémoire d’un processus (2/5) 1. Segment de code – – – – – Copie du segment de code du fichier exécutable. Placé dans des zones fixes de la mémoire (début de la zone disponible). La prochaine instruction à exécuter dans ce segment est repérée par le pointeur d’instruction. Cette zone est en lecture seule. Elle peut être partagée par tous les processus exécutant le même programme. Ce qui n’est pas le cas pour les segments de données et de pile (jamais partagés) Pile 24 k Données 16 k 0 Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) Texte (code) 120 Espace mémoire d’un processus (3/5) 2. Segment de données – – – Se trouve au dessus du seg. de code. Il est amené à grandir ou à rétrécir durant l’exécution. Il est composé de: • Un seg. de données initialisées: copié directement de l’exécutable. Les données initialisées correspondent aux var. globales et statiques initialisées d’un programme C par exemple. • Un seg. de données non initialisées: créé dynamiquement. Les données non initialisées correspondent aux var. globales et statiques non initialisées Pile 24 k Données 16 k 0 Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) Texte (code) 121 Espace mémoire d’un processus (4/5) 3. Pile – – – – Sert à stocker les données obtenues en cours d’exécution. Son nom de pile (stack en anglais) vient de la manière dont elle est gérée: empiler puis dépiler les données. Le plus souvent située en haut de l’espace d’adressage et croit vers le bas. Ex. Appel d’une fonction : • • • • Empiler le nom de la fonction, les paramètres à lui passer et les différentes var locales de cette fct. Exécuter la fonction, Une fois la fonction terminée, le système dépile les données utilisées par la fonction et retrouve les données d’avant, Poursuivre l’exécution du pgm. Ali Larab, L2-info, CUFR, 08-09 Pile 24 k Données 16 k Systèmes d'Exploitation (2ème partie) 0 Texte (code) 122 Espace mémoire d’un processus (5/5) 4. Tas – Est un autre segment utilisé par le SE pour les allocations dynamiques. – ////// ………….. Pile 24 k Données 16 k 0 Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) Texte (code) 123 Interruption d’un processus Interruption : • Dans le cas des transitions "actif bloqué" et "actif prêt" on parle d’interruption (IT). D’où vient une IT ? Quand : – Le processus a atteint une inst d’E/S, – Le tps (quantum) attribué au processus est écoulé, – Un processus plus urgent doit être exécuté, – Un processus nécessite une ressource (matérielle ou logicielle) ou une donnée (un résultat calculé par un autre processus, ou un ensemble d’instructions qui ne sont pas encore chargées en mémoire) détenue par un autre processus (elle n’est pas disponible), Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 124 Interruption d’un processus Traitement d’une IT : 1. Arrivée de l’IT le processus en cours est interrompu et un gestionnaire d’IT est chargé dans les registres du processeur et s’exécute pour traiter l’IT en question. 2. Une fois le signal de l’IT reconnu, le gestionnaire d’IT accède à la table des vecteurs d’IT et y recherche l’adresse du programme associé (« Routine d’IT ») et l’exécute. 3. Une fois l’IT traitée, le SE charge un autre processus à partir de la file d’attente et l’exécute. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 125 Interruption d’un processus Traitement d’une IT : exemple Processus en exécution IT qui arrive. Ex. ctrl+Alt+Supp ou IT100 ……… ……….. …….. ……… ……….. …….. ……… ……….. …….. ……… ……….. …….. Ali Larab, L2-info, CUFR, 08-09 Gest-IT(100) ……….. N° Code … … 100 ----------.--- ………… ………… ……….. Afficher la fenêtre de Ctrl+Alt+Supp Systèmes d'Exploitation (2ème partie) Routine d’IT 100 Fermeture de la fenêtre 126 Interruption d’un processus Traitement d’une IT : exemple Processus en exécution P1 ………… ……….. …….. ……… Exécution d’un programme Charger quelconque puis un autre arrivée de l’IT processus « Ctrl+Alt+Supp ». P2 ……… On la symbolise ……… …….. ici par le numéro …….. …….. IT100 Ali Larab, L2-info, CUFR, 08-09 Table des vect d’IT Gestionnaire d’IT N° … 100 …… …… …… Code … ---------.--- Routine d’IT 100 IRQ100 Exécuter le pgme associé à la routine Afficher la fenêtre du gestionnaire des tâches. Systèmes d'Exploitation (2ème partie) Fermeture de la fenêtre 127 Interruption d’un processus • Une IT est provoquée par un signal généré soit par un événement interne soit par un événement externe . – Éven. Interne: lié au processus: • Appel système • Déroutement: dû généralement aux erreurs telles qu’une division par zéro, débordement de la mémoire, exécution d’une instruction non autorisée…) – Éven. externe: panne, intervention de l’utilisateur à l’aide d’une frappe au clavier. Par exemple « Ctrl+Alt+Supp », bouton « reset »…. • Deux (2) sortes d’IT: matérielles et logicielles – IT Matérielles (IRQ): générées par les périphériques. Parviennent au processeur par l’intermédiaire du Ctrleur d’IT. – IT Logicielles: des IT internes. C’est le processus qui appelle cet IT (à l’aide du N°de l’IT). Ex. pour appeler une IT DOS, appeler l’IT N°21H. • Si plusieurs IT arrivent au même temps, c’est celle qui a le plus petit n°qui est la plus prioritaire (ex. IRQ horloge sys = 0, IRQ port // = 7…). Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 128 Structure de données pour la gestion des processus (1/3) Pour gérer un processus, le SE manipule 2 structures de données : 1. Le bloc de contexte d’un processus et 2. La table des processus Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 129 Structure de données pour la gestion des processus (2/3) 1) Contexte d’un processus : • • • • C’est la structure de données qui décrit un processus en cours d’exécution. Il s’agit des info sauvegardées par le SE lors de l’IT d’un processus. Elles sont créées au même moment que le processus et sont MAJ la plus part du temps lors de l’IT du processus. Parmi les données du cotexte d’un processus on a: • • • • • • • Le compteur ordinal (adresse de la prochaine inst), Le contenu des registres généraux, Les registres d’occupation mémoire, Registre de variable d’état (état du processus), Valeur d’horloge, Priorité du processus… Lors de l’IT d’un processus, le SE sauvegarde le contexte du processus en cours et charge celui du processus à exécuter «commutation de contexte» (changement de contexte). Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 130 Structure de données pour la gestion des processus (3/3) 2) Table des processus : • • Tout processus contient une entrée dans cette table. Cette table contient toutes les info indispensables au SE pour assurer une gestion cohérente des processus. • Parmi ces info on a : • • • • • • un pointeur vers le bloc de contexte du processus, l’identifiant du processus, son lien de parenté, les fichiers qu’il a ouvert, occupation mémoire (pointeurs sur le segment de code, de données et de pile), Cette table est stockée dans l’espace mémoire du SE. Donc aucun processus ne peut y accéder. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 131 Ordonnancement de processus (1/7) • Plusieurs processus peuvent se retrouver dans un état "prêt" (ou "en attente" ). Le SE les place alors dans une file d’attente ( Une file d’attente pour chaque état.). • • Le SE dispose d’un programme qui choisit le processus à exécuter. Ce pgme s’appelle scheduler, dispatcher ou ordonnanceur. P3 P1 P5 P2 P7 P8 Processeur P9 Arrivée du processus P10 et son insertion entre P5 et P2 selon l’algorithme d’ordonnancement en vigueur P3 P1 P5 P10 P2 P7 P8 P9 Processeur Fonctionnement de l’ordonnanceur Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 132 Ordonnancement de processus (2/7) • • • Parmi les processus de la file, lequel choisir ? « Algo d’ordonnancement ». Plusieurs Algo existent But: optimisation améliorer le temps de réponse (moyenne des dates de fin d’exécution) du syst, le tps d’attente (moyenne des délais d’attente pour commencer une exécution). • Quelques Algo d’ordonnancement: – – – – – Ordonnancement selon FIFO (First In First Out) Ordonnancement circulaire (le tourniquet ou round Robin) Ordonnancement avec priorité Ordonnancement selon le plus court d’abord (SJF, Shortest Job First) Ordonnancement selon le job le plus court qui reste… Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 133 Ordonnancement de processus (3/7) Ordonnancement selon FIFO (First In First Out) • • Le 1er processus arrivé est le 1er servi placer le nouveau processus qui arrive à la fin de la liste • Avantage : – – • Simple Ne consomme pas de temps processeur Inconvénient : – – – Comme si on fait de la monoprogrammation, Problème avec les processus prioritaires, Le processeur peut être trop occupé par un gros travail Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 134 Ordonnancement de processus (4/7) Ordonnancement circulaire (le tourniquet ou round Robin) Robin) • • • • Allouer à chaque processus un temps d’exécution q (quantum), Une fois un processus a consommé son temps d’exécution, il est interrompu et mis à la fin de la file d’attente. L’ordonnanceur sélectionne le prochain (premier) processus de la file et l’exécute pendant le même quantum de temps. Avantage: – • Tous les processus ont la chance (même chance) d’être exécutés. Inconvénient: – – Si le temps q est faible et comparable à celui du changement de contexte le processeur se retrouve à passer plus de temps à charger et décharger des processus plutôt qu’à les exécuter. devient inefficace. Problème avec les processus prioritaires Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 135 Ordonnancement de processus (5/7) Ordonnancement avec priorité – Le processus de plus haute priorité est exécuté le premier Cet algo classe les processus dans l’ordre décroisant de leur priorité. – Chaque processus s’exécute jusqu’à la fin. – Une priorité peut être statique ou dynamique, fixe ou variable. • Avantages : – Pouvoir privilégier certains processus. Par exemple les processus systèmes (ceux du SE) ont la priorité la plus haute. • Inconvénients : – Problème de la famine: Plusieurs processus de haute priorité monopolisent l’unité centrale. Les processus de faible priorité ne s’exécuteront que très rarement !!! – Solutions: Décrémenter de 1 la priorité du processus (à chaque impulsion d’horloge, chaque quantum q…) et le mettre (après avoir effectué son temps q d’exécution) à la fin (queue) de la file de priorité inférieure. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 136 Ordonnancement de processus (6/7) Ordonnancement selon le plus court d’abord (SJF (SJF)) • C’est le plus court (du point de vue temps d’exécution) processus qui est mis à la tête de la file d’attente et qui est exécuté en premier Avantage: – Utile dans les chaînes de production Inconvénient: – Suppose la connaissance de la durée d’exécution des processus, ce qui est rare en pratique sauf si on a utilisé au préalable au moins une fois ces processus. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 137 Ordonnancement de processus (7/7) Conclusion sur les algorithmes d’ordonnancement – Pas d’algorithme idéal sur tous les plans – Les critères de choix dépendent des besoins et des attentes Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 138 Synchronisation de processus (accès concurrents) • Le problème d’accès concurrents se produit quand 2 processus partagent une ressource, matérielle ou logicielle (tq: fichier, variable, périphérique d’E/S), alors que celle-ci ne peut pas être partagée (accès exclusif). – Généralement les accès en lecture ne posent pas ce pb, ce qui n’est pas le cas pour les accès en écriture. • Ex. – P1 et P2 : deux processus qui veulent accéder à l’imprimante. – L’imprimante est gérée par le processus démon-plt qui inspecte une var de type tableau qui contient les fichiers à imprimer et 2 var entières prochain (indique le n°du prochain fichier à imprimer) et libre (indique le 1er emplacement libre où déposer le fichier). Supposons le scénario suivant: – P1 lit libre. La trouve à 5, puis est interrompu. – P2 lit libre. La trouve toujours à 5, met son fichier à cet emplacement, incrémente libre à 6, puis interrompu. – P1 reprend et écrase le fichier de P2 avec le sien ! ! ! Solution: Ne pas interrompre P1 au moment où on l’a interrompu. Notion de section critique et d’exclusion mutuelle. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 139 Synchronisation de processus (accès concurrents) Section critique et exclusion mutuelle • Section critique = partie du processus où peut y avoir un conflit d’accès. Elle contient des var ou des ressources partagées par d’autres processus. • Exclusion mutuelle : Si une ressource a été accédée par un processus P1, aucun autre processus ne peut y accéder tant qu’elle n’a pas été libérée par P1. – Si P1 est interrompu, il faut attendre à ce qu’il reprenne son exécution et qu’il libère la ressource. • Il y a principalement 2 (voire 4) solutions pour résoudre les pb des accès concurrents : – Les sémaphores – Les moniteurs – Communication entre processus : primitives send et receive. – Solutions matérielles. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 140 Synchronisation de processus (accès concurrents) Sémaphores (1/3) • Sémaphore = var (entière) qui compte le nbre de processus en attente d’une section critique. • Deux types de Sémaphores: – Sémaphore binaire : peut prendre comme valeur 0 ou 1. Il est utilisé pour réaliser de l’exclusion mutuelle – Sémaphore n-aire : peut prendre n valeurs. Il sert à spécifier un nombre d’accès maximal à une ressource (en lecture évidement). • • Primitives P et V : Les sémaphores utilisent 2 primitives, P et V, indivisibles et non interruptibles interruptibles. – P(S): permet de prendre le sémaphore. Si (S<0) alors le processus exécutant P(S) se bloque. – V(S): permet de libérer le sémaphore et un processus bloqué s’il y en a. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 141 Synchronisation de processus (accès concurrents) Sémaphores (2/3) • P(S) est équivalente à : Si (S>0) alors S=S-1 Sinon s’endormir Finsi – Si le sémaphore est binaire une seule exécution de la section critique • V(S) est équivalente à : Si (un processus est bloqué sur S) alors le libérer Sinon s=s+1 Finsi – Le fait de vérifier s’il existe des processus en attente du sémaphore avant d’incrémenter sa valeur permet de respecter l’ordre dans lequel les processus se sont bloqués au niveau de l’accès à cette section critique. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 142 Synchronisation de processus (accès concurrents) Sémaphores (3/3) • Instructions typiques d’un processus : Faire ...instructions... ... P(S) Section critique V(S) ... ...instructions... ... Fin • RQ: Il faut faire attention à l’ordre de P et de V. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 143 Synchronisation de processus (accès concurrents) Moniteurs (1/2) • Contrairement aux sémaphores, les moniteurs est une solution facile à mettre en œuvre (pas de problème d’inversion de P et de V). • Moniteur = ensemble de procédures, de variables et de structures de données regroupées dans un module spécial et gérées par le compilateur. – Si un programme veut mettre en œuvre une Sec Critique, il la reportera dans des procédures du moniteur, qui seront appelées par les processus. • Primitives Wait et Signal : Leur but est de bloquer les processus sur la réalisation d’une condition et pouvoir ensuite les réveiller. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 144 Synchronisation de processus (accès concurrents) Moniteurs (2/2) Exemple monitor ProducteurConsommateur condition full, empty; int cpt; void insert(int objet) { if (cpt==N) wait(full); insert_object(objet); cpt++; if (cpt==1) signal(empty); } void remove(int objet) { if (cpt==0) wait(empty); remove_object(objet); cpt--; if (cpt==N-1) signal(full); } cpt=0; endmonitor; Ali Larab, L2-info, CUFR, 08-09 void producteur() { while(true) { objet=produce_object; ProducteurConsommateur.insert(objet); } } void consommateur() { while(true) { ProducteurConsommateur.remove(objet); consum_objet(objet) } } Systèmes d'Exploitation (2ème partie) 145 Synchronisation de processus (accès concurrents) Solution matérielle : désarmement des IT 1) Désarmer les IT pendant toute la section critique, puis les réarmer à la fin de celle-ci. Méthode à n’appliquer qu’entre processus systèmes, car a des risques (inconvénients): – Blocage de processus plus prioritaires par l’exécution d’une longue section critique. – Blocage de tout le système si l’utilisateur oublie de réarmer les IT après la sortie de la section critique. 2) Instruction TS (Test and Set) : instruction élémentaire qui permet de lire et d’écrire le contenu d’un mot mémoire de manière indivisible. void TS(int a,b) {a=b; b=1;} La section d’entrée devient: TS(test,verrou); While test==1 do TS(test,verrou); …Section critique… verrou=0; Le 1er qui s’exécute trouve verrou à 0, les autres le trouvent à 1 et ne rentreront pas. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 146 Interblocages • On parle d’interblocage pour un ensemble de processus quand chacun d’eux est dans l’attente d’un événement de la part d’un de ces processus. Camion 4 Camion 2 Camion 1 Camion 3 • En cas d’interblocage, les ressources ne seront jamais libérées. • Interblocage rares dans un PC beaucoup de SE demandent alors de redémarrer la machine si ce problème arrive politique de l’autruche. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 147 Interblocages Détection d’interblocage • On dit qu’il y a interblocage si les 3 conditions suivantes sont vérifiées simultanément: 1. Un processus détenant une ressource est dans l’attente d’une autre ressource. 2. Une ressource au moins est détenue en mode exclusif. 3. Il existe une attente circulaire entre les processus. P1 demande la ressource R1 R2 P1 P2 P1 détient la ressource R3 Pi Processus Pi Rj Ressource Rj Ali Larab, L2-info, CUFR, 08-09 R3 R1 P3 Systèmes d'Exploitation (2ème partie) 148 Interblocages Modélisation d’un interblocage (modèle (graphe) de Holt) R3 R1 P1 P2 R3* R1* P3 P1 P2 P3 R3 * R1 P1 P2 R2* R2* R2* R2* R2* R2* (1) Pas d’interblocage Ali Larab, L2-info, CUFR, 08-09 (2) Cycle + les 3 conditions satisfaites interblocage P3 (3) Cycle mais pas d’interblocage, car pas d’attente circulaire; la libération de P1 pour R2 met fin à l’interblocage Systèmes d'Exploitation (2ème partie) 149 Interblocages Solutions aux problème d’interblocage : 1. 2. 3. Approche préventive: empêcher les interblocages d’avoir lieu. Nécessite beaucoup d’efforts. Approche de détection et de guérison: le syst laisse les interblocages se produire, ensuite, il les détecte et il les corrige. Politique de l’autruche: Les ignorer et redémarrer le système s’ils se produisent. Correction des interblocages 1. 2. Dès détection d’un cycle, interrompre un (ou plusieurs) des processus qui participent à ce cycle afin de mettre fin à l’attente circulaire (avortement processus). Réquisitionner quelques ressources sur lesquelles il y a conflit. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 150 Communication interprocessus • But de la communication : échanger des données ou des résultats. • Le programmeur doit utiliser une technique bien définie pour faire communiquer 2 processus puisque ceux-là ne peuvent pas s’échanger des variables (comme c’est le cas entre les procédures). Chaque processus a son espace d’adressage • Différentes manières de communiquer : – Communication par envoi de messages: primitives send et receive. send(proc1,&message,…) receive(bal,&message,…) – Communication par mémoire partagée Les processus partagent une zone mémoire dans laquelle ils placent les variables en commun. Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 151 Appels systèmes pour la gestion des processus • Chaque SE met à la disposition des programmeur des appels systèmes afin de créer et exécuter des processus. • Créer un processus, puis créer ses fils, l’exécuter, le tuer… – • • • • Les processus fils peuvent hériter les caractéristiques de leurs pères pid=fork() création de processus s=execve(nom, arg,envp) exécution d’un programme exit(etat) terminaison d’un processus s=wait(pid,&etat,options) attente d’un processus Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 152 FIN Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 153