Systèmes d’exploitation 1 PDF - Cours - Tunisie
Document Details
Uploaded by IntelligibleNoseFlute
ISLAIB - Tunisie
2022
Kthiri Moez
Tags
Summary
This document is a course on Operating Systems, focusing on the basic architecture of a computer. It details the motherboard, CPU, memory, and input/output devices. The course is intended for undergraduate computer science students at ISLAIB-Tunisie, in 2022.
Full Transcript
Ministère de l'Enseignement Supérieur et de la Recherche Scientifique de Tunisie وزارة التعليم العالي والبحث العلمي Systèmes d’exploitation 1 DISCIPLINE: Sciences exactes et technologies Mention: Science de l’...
Ministère de l'Enseignement Supérieur et de la Recherche Scientifique de Tunisie وزارة التعليم العالي والبحث العلمي Systèmes d’exploitation 1 DISCIPLINE: Sciences exactes et technologies Mention: Science de l’Informatique "Computer Science" M. Kthiri Moez Docteur de l’Université de Bordeaux 1 Spécialité: électronique 2021/2022, ISLAIB-Tunisie Rappels sur l’Architecture de base d’un ordinateur Chapitre I: Rappels sur l’Architecture de base d’un ordinateur Architecture simplifiée d'un ordinateur De nos jours un ordinateur est constitué d’une partie matérielle et d’une partie logicielle. Même s'ils n'ont pas tous le même aspect, tous les ordinateurs comportent les mêmes éléments de base suivants: partie matérielle: La carte mère qui contient toutes les composantes principales d’un ordinateur (UC, MC, Bus, slots, ….)sont des connecteurs sous forme de fentes sur la carte mère. processeur Ils permettent d’insérer divers composants pour étendre les mémoire centrale fonctionnalités de l’ordinateur Des périphériques de stockage permanent pour y enregistrer le travaux effectués en mémoire centrale tel que le disque dur (HD), Ces dispositifs sont utilisés pour enregistrer et conserver les données de manière durable. Contrairement à la mémoire vive (RAM), qui est temporaire et perd ses données lorsque l’ordinateur est éteint, les périphériques de stockage permanent conservent les informations même après l’arrêt de l’ordinateur. (voir doc "ch1_notes") Des dispositifs pour entrer et récupérer des données appelés périphériques d'entrée/sortie : un écran, une souris, un clavier, un lecteur de disquettes et un lecteur de CD-ROM ou DVDROM. 2 Rappels sur l’Architecture de base d’un ordinateur Le bus est constitué de plusieurs lignes de communication (ou fils) qui transportent différents types d’informations : voir doc"ch1_notes" Bus de données : Transfère les données entre le processeur et les autres composants. Bus d’adresses : Transporte les adresses des données afin que le processeur sache où lire ou écrire les données. Bus de contrôle : Transporte les signaux de commande et de contrôle pour gérer les opérations de lecture et d’ écriture Architecture simplifiée d'un ordinateur 3 Rappels sur l’Architecture de base d’un ordinateur La carte mère Du point de vue physique, la carte mère est une plaque deutilisé résine en fabrication du plastique contenant à l'intérieur et sur les deux faces une fine couche de cuivre sur laquelle est imprimé le circuit imprimé. La couche de cuivre contient les fils électriques qui relient les composants. La carte mère supporte les principaux éléments d'un PC, sans elle un ordinateur ne peut pas fonctionner. On y trouve les éléments suivants: Le processeur ou l’unité centrale est une unité pour effectuer les traitements La mémoire vive RAM (Random Access Memory). C’est la mémoire centrale (MC), elle représente le lieu de travail dans un ordinateur à savoir qu’un programme stocké sur le disque dur est chargé en mémoire centrale où ses instructions seront accédées une à une pour être exécutées par le processeur. La RAM est une mémoire volatile c'est-à-dire que son contenu serait perdu en cas de coupure d’électricité. 4 Rappels sur l’Architecture de base d’un ordinateur La carte mère La mémoire morte ROM (Read Only memory). Elle contient les programmes du BIOS qui gèrent le chargement du système et les entrées-sorties. Le programme « bootstrap » d’initialisation teste les diverses unités matérielles et fournit en conséquence un diagnostic des erreurs rencontrées, installe en mémoire centrale les divers pilotes de périphériques et le noyau résident du système. L'horloge qui permet de cadencer le fonctionnement du processeur.A chaque top d'horloge le processeur effectue une instruction, ainsi plus l'horloge a une fréquence élevée, plus le processeur effectue d'instructions par seconde (MIPS: Millions d'instruction par seconde). Par exemple un ordinateur ayant une fréquence de 1 GHz (1000 MHz) effectue 1000 millions d'instructions par seconde 5 Rappels sur l’Architecture de base d’un ordinateur La carte mère Un ensemble de bus : un bus est un ensemble de fils de cuivre incrustés dans la carte mère qui permettent de véhiculer l'information. Le bus se caractérise par le nombre de fils qui le composent. Si le nombre de fils est de 64, on parle alors de bus 64 bits. Il est également caractérisé par sa fréquence de fonctionnement. Le "chipset" ou "jeu de composants" soudé sur la carte mère. Le chipset régit tous les échanges au sein du PC en aiguillant les données sur les différents bus de la carte mère. 6 Rappels sur l’Architecture de base d’un ordinateur La carte mère Les périphériques sont des dispositifs qui sont assez lents par rapport à l'unité centrale, cette dernière ne peut donc pas rester à l'écoute pour savoir si le périphérique est prêt à lui envoyer une donnée ou à la recevoir. Un composant appelé contrôleur est associé à chaque périphérique et gère le dialogue avec l'unité centrale. La mémoire centrale également a une fréquence faible par rapport à l'unité centrale, on lui associe donc un contrôleur. On distingue les contrôleurs suivants présents sur la carte mère : Les différents contrôleurs d’entrée/sortie (disque, mémoire, clavier, moniteur) Des slots : emplacements pour connecter des cartes d'extension. On peut ainsi connecter une carte réseau avec ou sans fil, une carte modem, une carte son, carte TV, une carte graphique. des connecteurs d'alimentation, USB, de clavier, de disque etc. 7 Rappels sur l’Architecture de base d’un ordinateur La carte mère d'un ordinateur de type PC 8 Rappels sur l’Architecture de base d’un ordinateur Les unités d’entrée/sortie Les unités d’entrée/sortie assurent la communication avec l’extérieur à travers des périphériques spécialisés en entrée/sortie (écran, clavier, souris, …). Le transfert de l’information de la MC vers ces unités d’E/S est réalisé par des unités d’échanges tels que le bus et le DMA (Direct Memory Acces). 9 Rappels sur l’Architecture de base d’un ordinateur Principe de fonctionnement d’un ordinateur Les deux principaux constituants d’un ordinateur sont la mémoire principale (MC pour mémoire centrale) et le processeur (UC pour unité centrale). La MC permet de stocker de l’informations (programmes et données), tandis que le processeur exécute pas à pas les instructions composant les programmes. Le processeur et la MC communiquent via des bus (bus d’adresses et bus de données) 10 Rappels sur l’Architecture de base d’un ordinateur Principe de fonctionnement d’un ordinateur L'unité centrale ou le processeur On utilise souvent le même terme pour désigner l'unité centrale et le boîtier de l'unité centrale. Il s'agit en réalité d'un abus de langage et l'unité centrale est un circuit intégré qui réalise les traitements et les décisions. Elle est également appelée microprocesseur. Le microprocesseur se compose d'une unité de commande et de contrôle UCC, d'une unité arithmétique et logique UAL, de registres, d’une horloge et d'un bus interne qui relie ces unités. Les registres sont des zones mémoires internes au processeur destinées à accueillir les données, les instructions et les résultats. 11 Rappels sur l’Architecture de base d’un ordinateur Principe de fonctionnement d’un ordinateur L'unité centrale ou le processeur L'unité de commande et de contrôle UCC L'UCC recherche les instructions à partir de la MC, les décode et en supervise leur exécution par l'UAL. Elle contient deux registres importants qui ne sont habituellement pas accessibles aux programmeurs. Le registre d'instruction contient sous forme codée l’instruction machine en cours d’exécution (une instruction comporte plusieurs champs : un champ code opération et d’une adresse (opérande) Le registre compteur ordinal contient l'adresse de l’emplacement mémoire de la prochaine instruction à exécuter (qu'il faut aller chercher en mémoire centrale). Généralement, cette adresse est calculée par simple incrémentation de la valeur du compteur ordinal, sauf dans le cas des instructions de branchement où on est obligé de forcer la valeur du compteur ordinal par l’évaluation de son opérande. 12 Rappels sur l’Architecture de base d’un ordinateur Principe de fonctionnement d’un ordinateur L'unité centrale ou le processeur L'unité de commande et de contrôle UCC Décodeur: permet d’extraire (décode) le code opération de l’instruction du registre d’instruction pour déterminer l’ordre d’exécution et le décoder en impulsion électrique. Séquenceur: permet d’établir la liste des ordres élémentaire qui composent l’exécution de l’instruction 13 Rappels sur l’Architecture de base d’un ordinateur Principe de fonctionnement d’un ordinateur L'unité centrale ou le processeur L'unité arithmétique et logique (UAL) L’UAL contient tous les circuits électroniques qui réalisent effectivement les opérations de calcul arithmétiques (+, -, *, / et ~ (la négation : inversion des bits) et les opérations logiques (ET, OU, OU exclusif). Les opérandes nécessaires pour ces opérations se trouvent dans des registres contenus dans cette unité. Ce sont des registres accessibles aux programmeurs et que l’on peut classer en différents groupes : 14 Rappels sur l’Architecture de base d’un ordinateur Principe de fonctionnement d’un ordinateur L'unité centrale ou le processeur L'unité arithmétique et logique (UAL) - Le registre accumulateur est un registre de calcul qui contient un opérande avant l’opération et le résultat à la fin de l’opération - Les registres arithmétiques servent aussi pour les calculs - Les registres de base et d'index permettent le calcul d'adresses par rapport à une valeur de base ou un index - Les registres banalisés pour le stockage des résultats intermédiaires - Le registre d'état qui indique l’état du système en déclarant le retenu d’une opération arithmétique (carry) ou un débordement (overflow) 15 Rappels sur l’Architecture de base d’un ordinateur Principe de fonctionnement d’un ordinateur L'unité centrale ou le processeur Bus internes Permettant la communication entre les unités et les registres. En effet, les informations circulent à l’intérieur du processeur sur deux bus internes, l’un pour les données, l’autre pour les instructions. Structure simplifiée de l'unité centrale 16 Rappels sur l’Architecture de base d’un ordinateur Principe de fonctionnement d’un ordinateur L'unité centrale ou le processeur 17 Rappels sur l’Architecture de base d’un ordinateur Principe de fonctionnement d’un ordinateur L'unité centrale ou le processeur De nos jours d'autres composants sont intégrés au processeur tels que : - Une unité flottante pour le calcul des opérations sur les nombres réels. - La mémoire cache est une mémoire de petite taille, à accès plus rapide que la mémoire principale. Elle permet au processeur de se "rappeler" les opérations déjà effectuées auparavant. En effet, elle sert à conserver les données ou les instructions fréquemment utilisées par le processeur. De la sorte il ne perd pas de temps à recalculer des choses qu'il a déjà faites précédemment. La taille de la mémoire cache est généralement de l'ordre de quelques centaines de KO. Ce type de mémoire résidait sur la carte mère, sur les ordinateurs récents ce type de mémoire est directement intégré dans le processeur. - Les unités de gestion mémoire (MMU) servent à convertir des adresses logiques en des adresses réelles situées en mémoire. 18 Rappels sur l’Architecture de base d’un ordinateur Principe de fonctionnement d’un ordinateur L'unité centrale ou le processeur La Mémoire centrale (MC) La mémoire est divisée en emplacements de taille fixe (exemple 8bits) utilisées pour stocker les instructions et les données. En principe, la taille d’un emplacement mémoire est quelconque ; en fait, la plupart des ordinateurs d’aujourd’hui utilisent des emplacements mémoire d’un octet (byte en anglais, soit 8 bits, unité pratique pour coder un caractère). 19 Rappels sur l’Architecture de base d’un ordinateur Principe de fonctionnement d’un ordinateur L'unité centrale ou le processeur La Mémoire centrale (MC) 20 Rappels sur l’Architecture de base d’un ordinateur Principe de fonctionnement d’un ordinateur L'unité centrale ou le processeur La Mémoire centrale (MC) Seul le processeur peut modifier l’état de la mémoire. En effet, chaque emplacement mémoire conserve les informations que le processeur y écrit jusqu’à coupure de courant électrique, ou tout le contenu est perdu. Les seules opérations possibles sur la mémoire sont : écriture dans un emplacement : le processeur donne une valeur et une adresse, et la mémoire range la valeur à l’emplacement indiqué par l’adresse lecture d’un emplacement : le processeur demande à la mémoire la valeur contenu à l’emplacement dont il indique l’adresse. Le contenu reste inchangé 21 Rappels sur l’Architecture de base d’un ordinateur Principe de fonctionnement d’un ordinateur L'unité centrale ou le processeur La Mémoire centrale (MC) Notons que les opérations de lecture et d’écriture portent en général sur un mot mémoire (plusieurs octets contigus). La taille d’un mot mémoire dépend du type de processeur ; elle est de 1 octet (8bits) dans les processeurs 8 bits (exemple Motorola 6502) ; 2 octets (16 bits) dans les processeurs 16 bits (exemple Intel 8086) ; 4 octets (32 bits) dans les processeurs 23 bits (exemple Intel 80486 ou Motorola 68030) 22 Rappels sur l’Architecture de base d’un ordinateur Principe de fonctionnement d’un ordinateur L'unité centrale ou le processeur Liaison Processeur-Mémoire : les bus Les informations échangées entre la mémoire et le processeur circulent sur des bus Bus d’adresse : un bus d’adresse est un bus unidirectionnel. Seul le processeur envoie des adresses. Il est composé de a fils ; on utilise donc des adresses de a bits. La mémoire peut posséder au maximum 2 exposant a emplacements (adresses de 0 à 2 exposant (a -1)). Bus de données : un bus de données bidirectionnel. Lors d’une écriture, c’est la mémoire qui envoie un mot sur le bus (le contenu de l’emplacement demandé) ; lors d’une écriture, c’est le processeur qui envoie la donnée. 23 Rappels sur l’Architecture de base d’un ordinateur Principe de fonctionnement d’un ordinateur L'unité centrale ou le processeur Liaison Processeur-Mémoire : les bus 24 Rappels sur l’Architecture de base d’un ordinateur Principe de fonctionnement d’un ordinateur Exemple d’exécution d’une instruction Pour exécuter l’instruction : « Ajouter 5 au contenu de la case mémoire d’adresse 180 » : 1. le processeur lit et décode l’instruction; 2. le processeur demande à la MC le contenu de l’emplacement 180; 3. la valeur lue et rangée dans l’accumulateur; 4. l’UAL ajoute 5 au contenu de l’accumulateur; 5. le contenu de l’accumulateur est écris en mémoire à l’adresse 180 L’UCC qui déclenche chacune de ces actions dans l’ordre. Alors que l’addition est effectuée par l’UAL 25 Chapitre II Aperçu sur les systèmes d’exploitation 26 Chapitre II: Aperçu sur les systèmes d’exploitation Un système informatique se décompose généralement en : le matériel, logiciel et utilisateurs. Le matériel : l’unité centrale (UC), la mémoire et les périphériques d’entrée/sortie, fournit les ressources informatiques de bases : la machine physique Logiciel : les programmes exécutés sur un ordinateur sont classés selon leur fonction sous deux rubriques : logiciel d’application: comme les compilateurs et les systèmes de base de données, les jeux, les programmes bureautiques définissent les manières d’utiliser le matériel afin de résoudre les problèmes informatiques des utilisateurs. Logiciel de base: a l’intérieur d’un logiciel de base, on distingue habituellement deux niveaux : - Outils et services : compilateurs, Editeurs, chargeurs (logiciel permettant de lancer un ou plusieurs systemes d’exploitation), …. - Système d’exploitation : qui contrôle et coordonne l’utilisation du matériel parmi les divers programmes d’applications et les utilisateurs 27 Chapitre II: Aperçu sur les systèmes d’exploitation Un système informatique se décompose généralement en : le matériel, logiciel et utilisateurs. Les utilisateurs : qui utilisent les programmes d’applications afin de réaliser les tâches voulues. 28 Chapitre II: Aperçu sur les systèmes d’exploitation Définition d’un système d’exploitation Un système d'exploitation (noté SE ou OS pour Operating System) est l’ensemble de programmes permettant à l’utilisateur d’exploiter les ressources matérielles de l'ordinateur, il est chargé d'assurer la liaison entre les ressources matérielles, l'utilisateur et les applications (traitement de texte, jeu vidéo,...). C’est le programme fondamental des programmes systèmes. Il contrôle les ressources de l'ordinateur et fournit la base sur laquelle seront construits les programmes d'application. 29 Chapitre II: Aperçu sur les systèmes d’exploitation Définition d’un système d’exploitation Couches d’un système d’exploitation Le système d'exploitation permet ainsi de "dissocier" les programmes et le matériel, afin notamment de simplifier la gestion des ressources et offrir à l'utilisateur une interface homme-machine (IHM) simplifiée afin de lui permettre de s'affranchir de la complexité de la machine physique. 30 Chapitre II: Aperçu sur les systèmes d’exploitation Historique des systèmes d’exploitation 1ère génération (1945-1955) : Tubes à vide et tableaux d’interrupteurs Moteurs de calcul à relais mécaniques : Très lents (temps de cycles mesurés en secondes) Tubes à vide : relais mécaniques remplacés par des tubes à vide, machines énormes remplissant des pièces entières (dizaines de milliers de tubes à vide) La même équipe concevait, construisait, programmait, administrait et maintenait la machine Tout programme était conçu en langage machine (les autres langages n’existaient pas) Un programme était conçu en basculant des tableaux d’interrupteurs pour contrôler les fonctions de base de la machine (on programmait la machine avec un programme) 31 Chapitre II: Aperçu sur les systèmes d’exploitation Historique des systèmes d’exploitation 1ère génération (1945-1955) : Tubes à vide et tableaux d’interrupteurs Protocole classique d’utilisation de la machine Le programmeur demande une réservation de la machine pour une certaine durée Il insère son programme dans la machine en manipulant le tableau d’interrupteurs Dans les heures qui suivent, il prie pour qu’aucun des quelques 20.000 tubes ne grille pendant l’exécution Protocole amélioré avec les cartes perforées Un programme de calculs numériques simple est écrit sur des cartes, qui sont lues par la machine au lieu d’utiliser des tableaux d’interrupteurs pour ‘programmer la machine’. Pas de système d’exploitation 32 Chapitre II: Aperçu sur les systèmes d’exploitation Historique des systèmes d’exploitation 2ème génération : (1955-1965) : Transistors et systèmes par lots Le passage aux transistors rendait les ordinateurs plus fiables et permet la séparation entre concepteurs, constructeurs, programmeurs, opérateurs et personnel de maintenance. Les programmes étaient écrits en FORTRAN puis codés sur des cartes perforées Protocole d’utilisation de la machine Le programmeur apporte son paquet de cartes dans la salle de soumission des jobs (tâches, programmes à exécuter) L’opérateur fait lire et exécuter les cartes par la machine L’opérateur récupère la trace d’exécution sur une imprimante et la stocke dans la salle des résultats pour que le programmeur la récupère L’opérateur prend ensuite un autre paquet de cartes soumis et répète le processus précédent Si le compilateur FORTRAN est nécessaire, l’opérateur doit également le charger dans la machine. 33 Chapitre II: Aperçu sur les systèmes d’exploitation Historique des systèmes d’exploitation 2ème génération : (1955-1965) : Transistors et systèmes par lots Protocole lent : Un opérateur humain traite séquentiellement un job et gère la soumission des entrées (lecture de cartes perforée) et des sorties (résultat sur imprimante) une fois le calcul terminé Amélioration du protocole : Insertion des cartes de contrôle de job pour réaliser cet enchaînement : découpage du traitement d’un job en plusieurs étapes (lecture des entrées, calcul, production des sorties) réalisées par des moniteurs de traitement par lot dit Moniteurs Batch Mono Job (MBMJ). Les entrées/sorties d’un job traité par une machine peu onéreuse et performante et le calcul est effectué par une machine performante (calculateur) 34 Chapitre II: Aperçu sur les systèmes d’exploitation Historique des systèmes d’exploitation 2ème génération : (1955-1965) : Transistors et systèmes par lots Types de programmes : calculs scientifiques et d’ingénierie (ex. résolution d’équations aux dérivées partielles) Système d’exploitation : ce fut la naissance des systèmes d’exploitation tels que : FMS (Fortran Monitor System) et IBYS (1er système d’exploitation de l’IBM 7094) 35 Chapitre II: Aperçu sur les systèmes d’exploitation Historique des systèmes d’exploitation 3ème génération (1965-1980) : Circuits intégrés Circuits intégrés : leur avantage au plan prix/performance a permet la création d’une seule gamme de produits avec la même architecture matérielle et le même jeu d’instructions et un même programme qui peut tourner sur toutes ces machines (pas de machine d’E/S et d’autres pour le calcul). Nouvelles techniques dans les systèmes d’exploitation Multiprogrammation : charger plusieurs programmes dans la MC et de les exécuter en fonction des ressources qu’ils utilisent. Elle vise l’élimination des temps d’attente de l’UC pendant les opérations d’E/S. Entre autre, ce mécanisme de multiprogrammation a exigé l’apparition de la Mémoire partagée et les mécanismes de protection. 36 Chapitre II: Aperçu sur les systèmes d’exploitation Historique des systèmes d’exploitation 3ème génération (1965-1980) : Circuits intégrés Spool (Simultaneous Peripheral Operation On Line): transfert des travaux des cartes vers le disque permettant la lecture et l’écriture simultanées sur le disque et disparition de la manipulation des bandes Illustration (3ème génération) : Spooling 37 En informatique, le spooling est une technique qui consiste à mettre des informations dans une file d'attente (spool) avant de les envoyer à un périphérique. Les informations sont mises en attente par un premier processus en même temps qu'un deuxième processus (le spooler) les lit et les envoie au périphérique. 38 Chapitre II: Aperçu sur les systèmes d’exploitation Historique des systèmes d’exploitation 3ème génération (1965-1980) : Circuits intégrés Partage de temps : une variante de la multiprogrammation (chaque utilisateur possède un terminal en ligne) qui permet de partager le temps de l’UC entre les programmes qui résident dans la MC Exemples de systèmes d’exploitation MULTICS (MULTiplexed Information and Computing Service): système pour ordinateur central, capable de supporter des centaines d’utilisateurs simultanés DEC et PDP-1, … PDP-11 : Systèmes pour mini-ordinateurs ; performant pour des tâches non scientifiques ; de 4K mots de 18 bits, pour un prix de 120 000 $). UNICS (Uniplexed Information and Computer Service) : une version simplifiée (monoutilisateur) de MULTICS qui allait devenir le célèbre UNIX écrit en langage C et le plus porté sur toutes sortes de machines 39 Chapitre II: Aperçu sur les systèmes d’exploitation Historique des systèmes d’exploitation 4ème génération (1980-aujourd’hui) : Ordinateurs personnels Circuit LSI (Large Scale Integration) : Circuits intégrés à haute densité contenant des milliers de transistors sur 1mm2 de silicium permettant le développement des micro-ordinateurs (ordinateurs personnels), très peu onéreux comparés aux mini- ordinateurs de type PDP-11 Exemples de systèmes d’exploitation CP/M (Control Program for Microcomputers) : conçu pour Intel 8080, comprend un contrôleur pour le tout récent lecteur de disquettes 8 pouces MS-DOS (MicroSoft-Disk Operating System): développer en 1980 pour l’IBM PC par B. Gates a partir du noyau DOS. Il intègre petit à petit des concepts riches d’UNIX et de MULTICS 40 Chapitre II: Aperçu sur les systèmes d’exploitation Historique des systèmes d’exploitation 4ème génération (1980-aujourd’hui) : Ordinateurs personnels Macintosh d’Apple : un SE qui intègre une IHM graphique, destiné à des utilisateurs qui ne connaissaient rien aux ordinateurs Windows de Microsoft : successeur de MS-DOS qui intègre une IHM graphique influencé par le succès de Macintosh (Windows 95/98/NT/2000/XP) UNIX ; Linux : intègre de l’IHM graphique avec un système de fenêtres appelé X- Window 41 Chapitre II: Aperçu sur les systèmes d’exploitation Fonctions d’un système d'exploitation Le SE soustrait le matériel au regard du programmeur et offre une présentation agréable des fichiers. Un SE a ainsi deux objectifs principaux : La présentation : Il propose à l'utilisateur une abstraction plus simple et plus agréable que le matériel : une machine virtuelle La gestion : Il ordonne et contrôle l'allocation des processeurs, des mémoires, des icônes et fenêtres, des périphériques, des réseaux entre les programmes qui les utilisent. Il assiste les programmes utilisateurs. Il protège les utilisateurs dans le cas d'usage partagé. 42 Chapitre II: Aperçu sur les systèmes d’exploitation Fonctions d’un système d'exploitation Gestion du processeur : Un processus est l’entité créée par le système d’exploitation pour l’exécution d’un programme. Un programme est une entité passive qui réside en mémoire. Le processus, en revanche, est placé instruction par instruction dans les registres de l’UC et exécuté. La principale tâche du système d’exploitation concerne l’allocation du processeur aux processus. Il s’agit de décider quel processus s’exécute à un moment donné, à quel moment interrompre le processus, quel sera le suivant, et de quoi il a besoin comme ressources pour son exécution. Gestion de la mémoire centrale : La mémoire centrale est un espace de taille important organisé en mots (ensembles d’octets) et destinée à accueillir les données à traiter par l’unité centrale. L’unité centrale charge les instructions à exécuter dans les registres du processeur à partir d’adresses en mémoire centrale. De même après exécution, les résultats sont placés en mémoire centrale. Il s’agit ici de gérer l’allocation de cette mémoire aux programmes (attribution, libération de mémoire), les règles d’adressage et de veiller à ce que les programmes en mémoire ne puissent pas interférer entre eux. 43 Chapitre II: Aperçu sur les systèmes d’exploitation Fonctions d’un système d'exploitation En cas d'insuffisance de mémoire physique, le système d'exploitation peut créer une zone mémoire sur le disque dur, appelée «mémoire virtuelle» qui permet de faire fonctionner des applications nécessitant plus de mémoire qu'il n'y a de mémoire vive disponible sur le système. En contrepartie cette mémoire est beaucoup plus lente. Gestion des entrées/sorties: le système d'exploitation permet d'unifier et de contrôler l'accès des programmes aux ressources matérielles par l'intermédiaire des pilotes (appelés également gestionnaires de périphériques ou gestionnaires d'entrée/sortie). Gestion de l'exécution des applications: le système d'exploitation est chargé de la bonne exécution des applications en leur affectant les ressources nécessaires à leur bon fonctionnement. Il permet à ce titre de «tuer» une application ne répondant plus correctement ou de suspendre son exécution face à une déroutement (erreur dans un programme ex. division par zéro ou adresse mémoire inexistante) ou une interruption ( signale provoqué par un périphérique d’E/S). 44 Chapitre II: Aperçu sur les systèmes d’exploitation Fonctions d’un système d'exploitation Gestion des droits : le système d'exploitation est chargé de la sécurité liée à l'exécution des programmes en garantissant que les ressources ne sont utilisées que par les programmes et les utilisateurs possédant les droits adéquats. Gestion des fichiers : le système d'exploitation gère la lecture et l'écriture dans le système de fichiers et les droits d'accès aux fichiers par les utilisateurs et les applications. Elle permet le stockage à long terme des données et programmes sur la mémoire de masse. Gestion des informations : le système d'exploitation fournit un certain nombre d'indicateurs permettant de diagnostiquer le bon fonctionnement de la machine. 45 Chapitre II: Aperçu sur les systèmes d’exploitation Composantes du système d'exploitation Chaque système d'exploitation a une architecture qui lui est propre. Par conséquent l'objectif de cette partie est de présenter une architecture générale (très) simplifiée afin de percevoir la composition d'un OS. Schéma de l’architecture simplifiée d’un système d’exploitation 46 Chapitre II: Aperçu sur les systèmes d’exploitation Composantes du système d'exploitation Les Applications : Les applications représentent les différents programmes lancés Bibliothèques système bibliothèques de fonctions utilisées par les applications pour accéder aux services offerts par le noyau. L’interface graphique/CLI (Command Line Interface) 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 les caractéristiques du matériel qu'il utilise, de la gestion des adresses physiques, etc. Les API (interface de programmation) : L'API est une interface de programmation (Application Programming Interface) qui permet de définir la manière dont un composant informatique peut communiquer avec un autre. 47 Chapitre II: Aperçu sur les systèmes d’exploitation Composantes du système d'exploitation 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. C’est l’ensemble de code qui gère les fonctionnalités du système : interfaces avec le matériel, démarrage et arrêt, exécution des programmes, gestion des privilèges des utilisateurs, fournit les services aux programmes utilisateurs, s’exécute en mode superviseur 48 Chapitre II: Aperçu sur les systèmes d’exploitation Composantes du système d'exploitation Le système de fichiers (en anglais «file system», noté FS), permettant d'enregistrer les fichiers dans une arborescence Utilitaires ensembles de programmes qui permettent le fonctionnement du système : services réseau, accès aux fichiers,... Outils de développement compilateurs, assembleur, éditeur de liens, débuggeurs, fichiers d’entête et bibliothèques nécessaires pour le développement et la mise au point des logiciels pour ce système. Fichiers d’entête: contient les déclaration des fonctions et variables qui doivent être utilisées à l’exterieur de fichier 49 Chapitre II: Aperçu sur les systèmes d’exploitation Structures des systèmes d’exploitation L’architecture des SE a beaucoup évolué pour s’adapter aux exigences de applications et des utilisateurs. Systèmes monolithiques Les systèmes monolithiques constituent une couche logicielle entre les applications et le matériel. Un système monolithique fonctionne sur deux espaces : L’espace noyau : constitué des programmes qui fournissent des services aux applications (ex. affichage des messages, utilisation de l’imprimante, gestion de la souris, …) L’espace utilisateur : contient les applications et les données. En effet, une application est un programme réalisant un objectif en s’appuyant sur les services de l’espace noyau du système. Exemple : les premières versions d’Unix, MS-DOS 50 Chapitre II: Aperçu sur les systèmes d’exploitation Structures des systèmes d’exploitation Systèmes à micronoyau : modèle client serveur Système basé sur un noyau minimal (appelé micronoyau) de taille de code réduite avec des modules ou des librairies indépendantes du noyau complètent les fonctionnalités du micronoyau pour former le système. Systèmes à micronoyaux Dans le modèle client serveur, tous les appels système ou presque sont désormais des processus clients. Le noyau gère la communication entre les processus clients et les processus serveurs. 51 Chapitre II: Aperçu sur les systèmes d’exploitation Structures des systèmes d’exploitation Structure en couches Systèmes organisés par couches, et une communication se crée entre couches adjacentes. En effet, Chaque couche n’utilise que les fonctionnalités de la couche inférieure. Bufferisation: Le fait de placer dans une mémoire tampon Système en des données informatique couches Difficulté = détermination des diverses couches qui vont composer le système de manière adéquate Implémentation moins performante : pour faire un appel E/S (accès au matériel) il est nécessaire de faire appel à toutes les couches. Chaque couche ajoute une surcharge à l’appel initial. 52 Chapitre II: Aperçu sur les systèmes d’exploitation Les différentes classes de systèmes d'exploitation On distingue plusieurs types de systèmes d'exploitation, selon les services rendus, leur architecture, leur capacité à évoluer et leur architecture matérielle qui les supporte Selon les services rendus Systèmes mono/multitâches Mono-tâche : ce système n’autorise l’allocation du processeur que pour une seule tâche. En effet, une tâche ne prend le processeur que si seulement si la précédente est achevée, si non le système se bloque. Multi-tâches: capacité du système à pouvoir exécuter plusieurs tâches « processus » simultanément ; par exemple effectuer une compilation et consulter le fichier source du programme correspondant. Cas d’UNIX et Windows 95 Systèmes mono/multiutilisateurs Mono-utilsateur: le système ne peut géré qu’un seul utilisateur (ex : le système MS-DOS) Multi-utilisateurs: capacité à pouvoir gérer un panel d'utilisateurs utilisant simultanément les mêmes ressources matérielles. 53 Chapitre II: Aperçu sur les systèmes d’exploitation Les différentes classes de systèmes d'exploitation Selon leur architecture Systèmes centralisés : L'ensemble du système est entièrement présent sur la machine considérée. Les machines éventuellement reliées sont vues comme des entités étrangères disposant elles aussi d'un système centralisé. Le système ne gère que les ressources de la machine sur laquelle il est présent. Exemple : UNIX, même si les applications réseaux (X11, FTP, Mail...) se sont développées. Systèmes répartis (distributed systems) : Les différentes abstractions du système sont réparties sur un ensemble (domaine) de machines (site). Le système d'exploitation réparti apparaît aux yeux de ses utilisateurs comme une machine virtuelle, monoprocesseur même lorsque cela n'est pas le cas. Avec un système réparti, l'utilisateur n'a pas à se soucier de la localisation des ressources. Quand il lance un programme, il n'a pas à connaître le nom de la machine qui l'exécutera. Ces systèmes exploitent au mieux les capacités de parallélisme d'un domaine et ils offrent des solutions aux problèmes de la résistance aux pannes. 54 Chapitre II: Aperçu sur les systèmes d’exploitation Les différentes classes de systèmes d'exploitation Selon leur capacité à évoluer Systèmes fermés (ou propriétaires) : Système avec extensibilité réduite : Quand on veut rajouter des fonctionnalités à un système fermé, il faut remettre en cause sa conception et refaire une archive (système complet). Cas d’UNIX et MS-DOS Il n'y a aucun ou peu d'échange possible avec d'autres systèmes de type différent, voir même avec des types identiques. Systèmes ouverts : Système avec extensibilité accrue : Il est possible de rajouter des fonctionnalités et des abstractions sans avoir à repenser le système et même sans avoir à l'arrêter sur une machine. Cela implique souvent une conception modulaire basée sur le modèle « client-serveur » et la communication entre systèmes, nécessitant des modules spécialisés. 55 Chapitre II: Aperçu sur les systèmes d’exploitation Les différentes classes de systèmes d'exploitation Selon l'architecture matérielle qui les supporte Architecture monoprocesseur (temps partagé ou multiprogrammation) : Ressource processeur unique : Il a fallu développer un mécanisme de gestion des processus pour offrir un (pseudo) parallélisme à l'utilisateur : c'est la multi- programmation ; il s'agit en fait d'une commutation rapide entre les différents processus pour donner l'illusion d'un parallélisme. Systèmes multiprocesseurs Le multiprocessing est une technique consistant à faire fonctionner plusieurs processeurs en parallèle afin d'obtenir une puissance de calcul plus importante que celle obtenue avec un processeur haut de gamme ou bien afin d'augmenter la disponibilité du système (en cas de panne d'un processeur). On trouve une grande variété d'architectures multiprocesseurs : SIMD (Single Instruction Multiple Data) : Tous les processeurs exécutent les mêmes instructions mais sur des données différentes. 56 Chapitre II: Aperçu sur les systèmes d’exploitation Les différentes classes de systèmes d'exploitation Selon l'architecture matérielle qui les supporte MIMD (Multiple Instructions Multiple Data) : Chaque processeur et complètement indépendant des autres et exécute des instructions sur des données différentes. Pipeline : Les différentes unités d'exécution sont mises en chaîne et font chacune partie du traitement à effectuer. On appelle SMP (Symmetric Multiprocessing ou Symmetric Multiprocessor) une architecture dans laquelle tous les processeurs accèdent à un espace mémoire partagé. Un système multiprocesseur doit donc être capable de gérer le partage de la mémoire entre plusieurs processeurs mais également de distribuer la charge de travail Remarque : Il n'y a pas de système universel pour cette multitude d'architectures. Les constructeurs de supercalculateurs ont toujours développés leurs propres systèmes. 57 Chapitre II: Aperçu sur les systèmes d’exploitation Cas particulier : systèmes embarqués, systèmes temps réel Systèmes embarqués Les systèmes embarqués sont des systèmes d'exploitation prévus pour fonctionner sur des machines de petite taille, telles que des PDA (personal digital assistants ou en français assistants numériques personnels) ou des appareils électroniques autonomes (sondes spatiales, robot, ordinateur de bord de véhicule, etc.), possédant une autonomie réduite. Ainsi, une caractéristique essentielle des systèmes embarqués est leur gestion avancée de l'énergie et leur capacité à fonctionner avec des ressources limitées. Les principaux systèmes embarqués «grand public» pour assistants numériques personnels sont : Windows CE / Windows Mobile / Window Smartphone Systèmes temps réel ( RTOS) Ce sont des systèmes pour lesquels l'exécution des programmes est soumise à des contraintes temporelles. Les résultats de l'exécution d'un programme n'est plus valide au delà d'un certain temps connu et déterminé à l'avance. Généralement on trouve ces systèmes TR dans les systèmes embarqués Exemples de systèmes d'exploitation temps réel : OS-9 ; RTLinux (RealTime Linux) ; QNX ; VxWorks 58 Chapitre III: Système de gestion de fichiers Le système de gestion de fichiers (SGF) est la partie la plus visible d’un 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). Un SGF a pour principal rôle de gérer les fichiers et d’offrir les primitives pour manipuler ces fichiers. 59 Chapitre III: Système de gestion de fichiers Formatage et Partitionnement Partitionnement : consiste à « cloisonner » (diviser) le disque. Il permet la cohabitation de plusieurs systèmes d’exploitation sur le même disque (il permet d’isoler certaines parties du système). L’information sur le partitionnement d’un disque est stockée dans son premier secteur (secteur zéro), le MBR (Master Boot Record). Le master boot record ou MBR (parfois aussi appelé zone amorce ou enregistrement d'amorçage maître) est le nom donné au premier secteur adressable d'un disque dur. Deux types de partitionnement : Primaire : On peut créer jusqu’à 4 partitions primaires sur un même disque. Etendue : est un moyen de diviser une partition primaire en sous- partitions (une ou plusieurs partitions logiques qui se comportent comme les partitions primaires, mais sont créées différemment (pas de secteurs de démarrage)) 60 Chapitre III: Système de gestion de fichiers Formatage et Partitionnement Dans un même disque, on peut avoir un ensemble de partitions (multi-partition), contenant chacune un système de fichier (par exemple DOS et UNIX) swap: Espace d'échange, Multipartition d’un disque 61 Chapitre III: Système de gestion de fichiers Formatage et Partitionnement Formatage : 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 (examine) 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 (la taille du système de fichier, le nombre de bloc libre, le début de la liste des blocs libres, un pointeur sur le premier bloc libre, la taille de la liste des i-nodes, le nombre et la liste des i-nodes libres) à assurer l’intégrité du système de fichiers. Organisation du système de fichier Une table de partitionnement: contient les informations nécessaires pour diviser un disque dur en tranches 62 Chapitre III: Système de gestion de fichiers Formatage et Partitionnement Organisation du système de fichier Le bloc de boot occupe le premier bloc sur le disque et est présent sur toutes les partitions. Il contient le programme assurant le démarrage et l’initialisation du système et n’est donc renseigné que pour la partition de démarrage. 63 Chapitre III: Système de gestion de fichiers Formatage et Partitionnement Organisation du système de fichier 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. 64 Chapitre III: Système de gestion de fichiers Le concept de fichier Un fichier est l’unité de stockage logique mise à la disposition des utilisateurs pour l’enregistrement de leurs données : c’est l’unité d’allocation. Le SE établi la correspondance entre le fichier et le système binaire utilisé lors du stockage de manière transparente pour les utilisateurs. Dans un fichier on peut écrire du texte, des images, des calculs, des programmes… Les fichiers sont généralement créés par les utilisateurs. Toutefois certains fichiers sont générés par les systèmes ou certains outils tels que les compilateurs. Afin de différencier les fichiers entre eux, chaque fichier a un ensemble d’attributs qui le décrivent. Parmi ceux-ci on retrouve : le nom, l’extension, la date et l’heure de sa création ou de sa dernière modification, la taille, la protection. Certains de ces attributs sont indiqués par l’utilisateur, d’autres sont complétés par le système d’exploitation. 65 Chapitre III: Système de gestion de fichiers La notion de répertoire Un répertoire est une entité crée pour l’organisation des fichiers. En effet on peut enregistrer des milliers, voir des millions de fichiers sur un disque dur et il devient alors impossible de s’y retrouver. Avec la multitude de fichiers créés, le système d’exploitation a besoin d’une organisation afin de structurer ces fichiers et de pouvoir y accéder rapidement. Cette organisation est réalisée au moyen de répertoires également appelés catalogues ou directory. Un répertoire est lui-même un fichier puisqu’il est stocké sur le disque et est destiné à contenir des fichiers. Du point de vue SGF, un répertoire est un fichier qui dispose d’une structure logique : il est considéré comme un tableau qui contient une entrée par fichier. L’entrée du répertoire permet d’associer au nom du fichier (nom externe au SGF) les informations stockées en interne par le SGF. Chaque entrée peut contenir des informations sur le fichier (attributs du fichier) ou faire référence à (pointer sur) des structures qui contiennent ces informations. 66 Chapitre III: Système de gestion de fichiers Structure d’un répertoire : cas de MS-DOS (32 octets) Structure d’un répertoire : cas d’UNIX (14 octets) 67 Chapitre III: Système de gestion de fichiers La notion de répertoire Dans ce cas, chaque fichier à un i-nœud On distingue plusieurs structures pour les répertoires : La structure plate à un niveau : organisée en plusieurs répertoires mais chacun d’eux ne peut contenir que des fichiers. Aujourd’hui absurde, cette approche existait à l’époque des premiers systèmes d’exploitation car le nombre de fichiers était limité. La structure à deux niveaux : chaque utilisateur dispose de son propre répertoire dans lequel il peut conserver des fichiers et des répertoires. La structure arboresence contient un nombre arbitraire de niveaux et chaque répertoire peut contenir des fichiers et des sous répertoires. 68 Chapitre III: Système de gestion de fichiers La notion de répertoire Le nom complet d'un fichier est formé d’une liste des répertoires qu'il faut traverser à partir du haut de la hiérarchie (le répertoire racine (root directory)) plus le nom_du_fichier. Les répertoires sont séparés par un caractère qui dépend du système d'exploitation : " >" pour Multics, "/" pour UNIX, " \" pour Dos et Winxx et " : " pour MacOS. Un tel chemin (exprimé à partir de la racine) est appelé chemin absolu. Voici un exemple de chemin absolu sous MS-DOS c:\cours\chapitre4.txt et sous Unix /home/user1/rapport.txt. Par contre, un chemin qui ne commence pas par la racine est un chemin relatif. Ces deux concepts de fichier et de répertoire sont considérés par le système d’exploitation comme une seule entité différentiable par un bit à rajouter aux attributs. 69 Chapitre III: Système de gestion de fichiers Exemple: En Unix, le répertoire racine (le répertoire /) contient les sous répertoires suivants : 70 Chapitre III: Système de gestion de fichiers Rôles d’un système de gestion de fichiers Un SGF a pour principal rôle de gérer les fichiers et d’offrir les primitives pour manipuler ces fichiers. Il effectue généralement les tâches suivantes : Fournit une interface conviviale pour manipuler les fichiers (vue fournie à l’utilisateur). Il s’agit de simplifier la gestion des fichiers pour l’utilisateur (généralement, l’utilisateur fournis seulement les attributs nom et extension du fichier, les autres attributs sont gérés implicitement par le SGF). Cette interface fournit la possibilité d’effectuer plusieurs opérations sur les fichiers. Ces opérations permettent généralement d’ouvrir, de fermer, de copier, de renommer des fichiers et des répertoires. La gestion de l’organisation des fichiers sur le disque (allocation de l’espace disque aux fichiers) La gestion de l’espace libre sur le disque dur La gestion des fichiers dans un environnement Multi-Utilisateurs, la donnée d’utilitaires pour le diagnostic, la récupération en cas d’erreurs, l’organisation des fichiers. 71 Chapitre III: Système de gestion de fichiers La gestion de l’organisation de l’espace disque Sur le disque, un fichier est sauvegardé sur un ensemble de clusters, appelés également blocs. Le SGF manipule alors des blocs numérotés de 0 à N-1 (N = taille du disque/taille d’un bloc). 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, …) et à chaque fichier est alloué un nombre de blocs. 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. 72 Chapitre III: Système de gestion de fichiers La gestion de l’organisation de l’espace disque Techniques d’allocation des blocs sur le disque On distingue trois manières d’organiser les blocs d’un fichier : contiguë, chaînée et indexée. Allocation contiguë Allocation chaînée (non contiguë) Allocation non contiguë indexée 73 Allocation contiguë 74 Chapitre III: Système de gestion de fichiers Allocation contiguë Pour chaque fichier à enregistrer, le système recherche une zone suffisamment grande pour accueillir le fichier. Le fichier sera alors constitué de plusieurs blocs contigus. Cette méthode présente l’avantage de la rapidité de l’accès (les blocs étant contigus, on limite les déplacements de la tête le lecture/écriture, coûteux en temps). Cependant, elle présente un grand nombre d’inconvénients : Le dernier bloc a toutes chances d'être sous-utilisé (mauvaise utilisation) et ainsi, on gaspille de la place. Le pourcentage de place perdue est d'autant plus grand que la taille moyenne des fichiers est faible, ce qui est la réalité Il est difficile de prévoir la taille qu’il faut réserver au fichier : un fichier est amené à augmenter de taille, par conséquent il faut prévoir de l’espace libre après le dernier secteur alloué. Si le fichier est agrandi, il faudra le déplacer pour trouver un nouvel ensemble de blocs consécutifs de taille suffisante. 75 Chapitre III: Système de gestion de fichiers Allocation contiguë La perte d’espace sur le disque : si on prévoit trop d’espace libre, le fichier risque de ne pas l’utiliser en entier. En revanche, si on prévoit trop peu d’espace libre, le fichier risque de ne pas pouvoir être étendu. Problème de fragmentation externe : c’est l’espace perdu en dehors des fichiers. On peut effacer des données ou supprimer des fichiers ce qui libère des blocs sur le disque. Au fil de l’utilisation, il peut se créer un grand nombre de petites zones dont la taille ne suffit souvent pas pour allouer un fichier mais dont le total correspond a un espace assez volumineux. Allocation contiguë d’espace disque pour 7 fichiers 76 Allocation chaînée (non contiguë) 77 Chapitre III: Système de gestion de fichiers Allocation chaînée (non contiguë) Le principe est d’allouer des blocs chaînés entre eux aux fichiers. Un fichier peut désormais être éparpillé sur le disque puisque chaque bloc permet de retrouver le bloc suivant. Lorsque le fichier change de taille, la gestion des blocs occupés est simple. Il n'y a donc aucune limitation de taille, si ce n'est l'espace disque lui même. Allocation chaînée 78 Chapitre III: Système de gestion de fichiers Cette méthode présente l’avantage de l’élimination du problème de fragmentation externe. Aussi le faite de ne pas nécessiter une structure spéciale pour sa mise en place, constitue un autre avantage. En revanche, les inconvénients ici aussi sont multiples : L’accès au fichier est totalement séquentiel, on doit toujours commencer le parcours du fichier à partir du début. La perte d’un chaînage entraîne la perte de tout le reste du fichier. Pire encore, il suffit qu’une valeur soit modifiée dans un pointeur pour qu’on se retrouve dans une autre zone de la mémoire. 79 Allocation non contiguë indexée 80 Chapitre III: Système de gestion de fichiers Allocation non contiguë indexée Tous les inconvénients de l’allocation chaînée peuvent être résolus d’une manière simple : il suffit de retirer les pointeurs des blocs et de les placer dans une structure de données gardée en mémoire centrale, ainsi, les informations sur les numéros de blocs peuvent être obtenue à tout moment. Allocation indexée 81 Chapitre III: Système de gestion de fichiers Allocation non contiguë indexée La plus part des systèmes actuels appliquent ce mode. MS-DOS utilise la FAT (File Allocation Table) pour y conserver les chaînages entre les blocs. Windows NT utilise la MFT (Master File Table) associé au système NTFS (New Technology File System).UNIX, GNU/Linux utilisent le I-Node (Index node). FAT On parle généralement de système de fichiers FAT16 et FAT32. 82 Chapitre III: Système de gestion de fichiers Le FAT16 est utilisé par MS-DOS. En FAT16, les numéros de blocs sont écrits sur 16 bits. Si on suppose que la taille d’un bloc est 32Ko, la taille maximale adressables est alors 2Go (216 x 32 Ko = 2097152 Ko = 2Go) Ce système permet d'attribuer (théoriquement) 216 numéros d'identification de bloc de système de fichiers. Autrement dit, il divise l'espace disponible sur un disque dur en 65536 blocs portant chacun un numéro propre. Si le nombre de blocs reste constant, leur taille varie en fonction de la taille du périphérique de stockage. 83 Le FAT32 est pris en charge par Windows 95 et les versions qui ont suivis. Les numéros de blocs sont écrits sur 32 bits (en réalité, sur 28bits, 4 bits étant réservés). Si on suppose que la taille d’un bloc est de 32 ko, la taille maximale adressable théoriquement est de 8 To (228 x 32 Ko = 8 To). Toutefois, Microsoft la limite volontairement à 32 Go sur les systèmes Windows 9x afin de favoriser NTFS. 84 Chapitre III: Système de gestion de fichiers NTFS Le système de fichiers NTFS (New Technology File System) est utilisé par Windows2000, WindowsNT, Windows XP et Windows Vista. Il utilise un système basé sur une structure appelée MFT (Master File Table), permettant de contenir des informations détaillées sur les fichiers. Ce système permet ainsi l’utilisation de noms longs, mais, contrairement au système FAT32, il est sensible à la casse, c’est-à-dire qu’il est capable de différencier des noms en majuscules de noms en minuscules. Partition NTFS 85 Chapitre III: Système de gestion de fichiers Coté performances, l’accès aux fichiers sur une partition NTFS est plus rapide que sur une partition de type FAT car il utilise un arbre binaire performant pour localiser les fichiers. La limite théorique de la taille d’une partition est de 16 exaoctets (17 milliards de To), mais la limite physique d’un disque est de 2To (va encoder en 64 bits => = 264 = 18 446 744 073 709 551 616 = 16 EiB (1 exbibyte = 1EiB = 260 bytes). C’est au niveau de la sécurité que NTFS prend toute son importance, car il permet de définir des attributs pour chaque fichier. 86 Chapitre III: Système de gestion de fichiers Structure d’un I-Node La structure d’I-Node est utilisée par le système de gestion de fichier ext3fs d’Unix ou GNU/Linux (ext3fs pour third extented file system). Un nœud d’index est constitué d’attributs décrivant le fichier ou le répertoire et d’adresses de blocs contenant des données. Cette structure possède plusieurs entrées, elle permet au système de disposer d’un certain nombre de données sur le fichier : la taille, l’identité du propriétaire et du groupe : un fichier en Unix est crée par un propriétaire, qui appartient à un groupe, Les droits d’accès : pour chaque fichier, Unix définit trois droits d’accès (lecture (r), écriture (w) et exécution (x)) pour chaque classe d’utilisateurs (trois types d’utilisateur {propriétaire, membre du même groupe que le propriétaire, autres}). Donc à chaque fichier, Unix associe neuf droits, le système de gestion de fichier ext3fs d’Unix: C'est un ancien système de fichiers utilisé dans les premiers systèmes Linux. Système de fichiers étendus (Ext3FS) 87 Chapitre III: Système de gestion de fichiers Structure d’un I-Node les dates de création, de dernière consultation et de dernière modification, le nombre de références existant pour ce fichier dans le système, les dix premiers blocs de données, d’autres entrées contiennent l’adresse d’autres blocs (on parle alors de bloc d’indirection) : une entrée pointe sur un bloc d'index qui contient 128 ou 256 pointeurs sur bloc de données (simple indirection) Une entrée pointe sur un bloc d'index qui contient 128 ou 256 pointeurs sur bloc d'index dont chacun contient 128 ou 256 pointeurs sur bloc de données (double indirection) Une entrée pointe sur un bloc d'index qui contient 128 ou 256 pointeurs sur bloc d'index dont chacun contient 128 ou 256 pointeurs sur bloc d'index dont chacun contient 128 ou 256 pointeurs sur bloc de données (triple indirection) 88 Chapitre III: Système de gestion de fichiers 89 Chapitre III: Système de gestion de fichiers Structure d’un I-Node La structure d’I-Node est conçue afin d’alléger le répertoire et d’en éliminer les attributs du fichier ainsi que les informations sur l’emplacement des données. Une entrée dans un I-Node d’un répertoire contiendra donc un nom d’un fichier ou sous-répertoire et l’Inode associé. 90 Chapitre III: Système de gestion de fichiers Exemple d’utilisation d’I-Node Si on suppose que la taille d’un bloc est de 1Ko, un fichier sous Unix peut avoir la taille maximale suivante : 10 x 1Ko + 256 x 1Ko + 256 x 256 x 1Ko + 256 x 256 x 256 x 1Ko, ce qui donne en théorie plus de 16 Go. En réalité, la taille réelle maximale d’un fichier est inférieure à cette valeur à cause de l’utilisation de pointeurs signés pour le déplacement au sein d’un fichier. Pour les fichiers les plus longs, trois accès au disque suffisent pour connaître l'adresse de tout octet du fichier. 91 Chapitre III: Système de gestion de fichiers 92 Chapitre III: Système de gestion de fichiers Avantage des I-Nodes Le grand avantage de cette conception est que le I-Node a besoin d’être en mémoire seulement quand le fichier correspondant est ouvert. Si chaque I-Node occupe n octets Et un maximum de k fichiers peuvent être ouvert en même temps La mémoire totale occupée par le tableau contenant les I-Nodes des fichiers ouverts est k*n octets seul cet espace pourra être réservé a l'avance. 93 Chapitre III: Système de gestion de fichiers Avantage des I-Nodes Le tableau des I-Nodes des fichiers ouverts est plus petit que l'espace occupé par la table du cas de l'allocation par liste chainée indexée. La taille de la table de maintient de la liste chainée croit proportionnellement avec la taille du disque : si le disque contient n blocs la table contient n entrée → elle croit linéairement à mesure que la taille du disque augmente Le concept de I-Node requiert un tableau en mémoire dont la taille est proportionnelle au nombre maximum de fichier qui peuvent être ouvert simultanément → quelque soit la taille du disque 94 Chapitre III: Système de gestion de fichiers Problème des I-Nodes Les I-Nodes posent cependant un problème : si chacun d'eux a la place pour un nombre donné d'adresse disque, que se passe-t-il lorsqu'un fichier croit au-delà de cette limite ? La solution est de réserver la dernière adresse disque, non pour un bloc de données du fichier mais pour l'adresse d'un bloc comprenant plusieurs adresse supplémentaire 95 Chapitre III: Système de gestion de fichiers La gestion de l’espace libre sur le disque Les systèmes d’exploitation utilisent essentiellement deux approches pour mémoriser l’espace libre : une statique et une dynamique (Table de bits et liste chainée) Bitmap : Approche statique utilise une table de bits (vecteur de bits n blocs) comportant autant de bits que de blocs sur le disque. A chaque bloc du disque, correspond un bit dans la table, positionné à 1 si le bloc est occupé, à 0 si le bloc est libre (ou vice versa). Vecteur de bits à n bloc Si les blocs 3, 4, 5, 9, 10, 15, 16 sont libres : 11100011100111100… Cette solution est utilisée pour trouver n blocs contigus, elle est utilisée dans les systèmes : NTFS, ext2fs 96 Chapitre III: Système de gestion de fichiers La gestion de l’espace libre sur le disque Exemple table de bits: Considérons un disque dur de 500GB. Une taille d'un bloc de 1KB. Le disque contient 524 millions de blocs (500*1024*1024) 1 bloc est représenté par un bit → taille max de la table de bit = 524 millions de bits = (524288000/8) / 1024 = 64000 Ko = 64000 blocs Pour adresser tous les blocs du disque dur → 64000 blocs 97 Chapitre III: Système de gestion de fichiers La gestion de l’espace libre sur le disque Liste chaînée : Approche dynamique utilise une liste chaînée constituée d’éléments, chacun mémorisant des numéros de blocs libres. Tous les blocs libres sont liés ensemble par des pointeurs. Exemple d’utilisation d’une liste chaînée pour la gestion de l’espace libre 98 Chapitre III: Système de gestion de fichiers La gestion de l’espace libre sur le disque Exemple « Liste chainée »: Considérons un disque dure de 500GB. Une taille d'un bloc de 1KB. Le disque contient 524 millions de blocs (500*1024*1024= 524 288 000) Le numéro de bloc codé sur 32 bits. Taille d'un élément de la liste chainée = un bloc contiendra 256 numéros de bloc libres o Nombre de numéro de bloc libre que peut contenir un bloc de 1Ko = Taille d'un bloc en bit / taille du numéro du bloc (1024 octet*8 bit /32 bits) Pour adresser tous les blocs du disque dur (524 millions de numéro de blocs) on a besoin de (524 288 000 / 256 = 2 048 000 blocs)→2 millions de blocs !!!! 99 Chapitre III: Système de gestion de fichiers Etude de cas : Systèmes de fichiers LINUX Sous linux, tout est fichier, organisé suivant une unique arborescence (dont la racine est nommée / et dont l'administrateur est root) Les différentes catégories de fichiers fichiers normaux (-) : fichiers normaux : * texte : courrier, sources des programmes, scripts, configuration ; * exécutables : programmes en code binaire La commande ls –l donne : -rwxrw-r-- 1 etudiant 2LR 34568 avril 3 14 :34 mon-fichier fichiers répertoires (d) : ce sont des fichiers conteneurs qui contiennent des références à d'autres fichiers. ils permettent d'organiser les fichiers par catégories La commande ls –l sur un répertoire donne drwxr-x--- 1 etudiant 2LR 13242 avril 2 13 :14 mon-répertoire 100 Chapitre III: Système de gestion de fichiers Etude de cas : Systèmes de fichiers LINUX Sous linux, tout est fichier, organisé suivant une unique arborescence (dont la racine est nommée / et dont l'administrateur est root) Les différentes catégories de fichiers fichiers spéciaux : situés dans /dev, ce sont les points d'accès préparés par le système aux périphériques. Le montage va réaliser une correspondance de ces fichiers spéciaux vers leur répertoire "point de montage". Par exemple, le fichier /dev/hda permet l'accès et le chargement du 1er disque IDE L'Integrated Drive Electronics (IDE) est une interface de connexion standard autrefois utilisée en informatique pour transférer les données entre la carte-mère d'un ordinateur ou serveur vers des supports à mémoire de masse : disque dur, DVD et CD-ROM. 101 Chapitre III: Système de gestion de fichiers Etude de cas : Systèmes de fichiers LINUX Sous linux, tout est fichier, organisé suivant une unique arborescence (dont la racine est nommée / et dont l'administrateur est root) Les différentes catégories de fichiers fichiers liens symboliques (l) : ce sont des fichiers qui ne contiennent qu'une référence (un pointeur) à un autre fichier. Cela permet d'utiliser un même fichier sous plusieurs noms sans avoir à le dupliquer sur le disque. La commande ls –l pour un lien donne lrwxrwxrwx 1 root root 14 Aug 1 01:58 Mail ->../../bin/mail* 102 Chapitre III: Système de gestion de fichiers Etude de cas : Systèmes de fichiers LINUX Parcourir et lister les répertoires Voici les commandes indispensables (suivies bien sûr d'une validation) pour visiter l'arborescence. $ls commande générale d'accès aux infos des fichiers du répertoire courant (ls, ls -l, ls – a) $cd [chemin] => le chemin peut être absolu ou relatif $cd.. => remonter un niveau (vers le répertoire parent) $cd => raccourci vers le répertoire personnel $pwd => donne le nom complet du répertoire courant $mkdir rep => pour créer un sous-repertoire du répertoire courant $rmdir rep => pour supprimer un sous-répertoire vide $mv répertoire répertoire-d'accueil/ => déplacement d'un répertoire $mv répertoire nouveau-nom => Changement de nom d'un répertoire 103 Chapitre III: Système de gestion de fichiers Etude de cas : Systèmes de fichiers LINUX Commandes de gestion des fichiers Pour gérer les fichiers vous disposez des commandes suivantes: $touch mon-fichier => création d'un fichier vide, $more mon-fichier => visualisation d'un fichier page à page, $rm mon-fichier => suppression d'un fichier, $mv mon-fichier répertoire_accueil => déplacement d'un fichier, $mv mon-fichier nouveau-nom => changement de nom d'un fichier, $cp nom-fichier répertoire-accueil/autre-nom => copie de fichier, $file mon-fichier => pour savoir si on a un fichier binaire (exécutable) ou un fichier texte. On obtient pour un fichier texte, comme sortie mon-fichier : ascii text 104 Chapitre III: Système de gestion de fichiers Etude de cas : Systèmes de fichiers LINUX Créer des liens (ln) Les liens sont utiles pour faire apparaître un même fichier dans plusieurs répertoires, ou sous des noms différents. Ils évitent les duplications et assurent la cohérence des mises à jour. On distingue en fait deux sortes de liens : Les liens durs associent deux ou plusieurs fichiers à un même espace sur le disque, les deux fichiers restant indépendants. $ln rapport.txt /home/étudiant/rapport-lien-dur.txt Le fichier rapport-lien-dur est créé dans le répertoire /home/étudiant. On peut constater que ces 2 fichiers ont la même taille. Au niveau gestion ils sont indépendants, tout en partageant le même espace disque et donc le même inode. Toute modification de l'un, modifie l'autre. Mais la suppression de l'un, casse le lien, mais ne supprime pas physiquement l'autre. 105 Chapitre III: Système de gestion de fichiers Un nœud d'index ou inode est une structure de données contenant des informations à propos d'un fichier ou répertoire stocké dans certains systèmes de fichiers. À chaque fichier correspond un numéro d'inode dans le système de fichiers dans lequel il réside, unique au périphérique sur lequel il est situé. 106 Chapitre III: Système de gestion de fichiers Etude de cas : Systèmes de fichiers LINUX Créer des liens (ln) Les liens symboliques $ln -s rapport.txt /home/etudiant/rapport-lien-s.txt La commande ls -s passée dans le répertoire /home/etudiant montre que le fichier rapport-lien-s.txt pointe sur rapport.txt (ainsi, une requête sur rapport-lien-s.txt, va ouvrir rapport.txt) Le lien symbolique fait référence à un fichier dans un répertoire. La suppression du fichier source entraînera un changement de comportement du fichier lien qui sera considéré comme « cassé » ("broken"). Remarque : La différence entre un lien hard et symbolique se trouve au niveau de l'inode, un lien hard n’a pas d'inode propre, il a l'inode du fichier vers lequel il pointe. Par contre un lien symbolique possède sa propre inode. 107 Chapitre III: Système de gestion de fichiers Etude de cas : Systèmes de fichiers LINUX Monter un système de fichiers Comme le système de fichiers Linux se concentre dans une seule arborescence de fichiers, l'accès et l'utilisation de systèmes extérieurs (disques, disquettes, CD..) doit s'effectuer par intégration de ces systèmes de fichiers dans le système fondamental "racine". Ce mécanisme d'intégration, souple et paramétrable, s'appelle le montage. Techniquement, l'opération de montage consiste à mettre en relation : fichier de périphérique situé dans /dev (qui permet la communication physique avec les données du périphérique) avec un noeud d'insertion dans l'arborescence, appelé son point de montage Le répertoire décrivant les périphériques ("/dev") La particularité de linux est de transformer tout materiels ou périphériques en fichier texte éditable et donc modifiable , bien évidement cela inclut les disques durs 108 Chapitre III: Système de gestion de fichiers Etude de cas : Systèmes de fichiers LINUX Commandes de montage/démontage Il est toujours possible de monter "à la main" les systèmes de fichiers stockés sur les périphériques disques, cd... avec la commande interactive mount/umount Syntaxe générale : $mount -t -o options /dev/rep-spécial /mnt/rep-montage mnt: un repertoire temporaire afin de monter une clé USB ou CD/DVD-ROM 109 Chapitre III: Système de gestion de fichiers Si cette description est présente dans le fichier /etc/fstab, la commande peut être simplifiée $mount /dev/rep-spécial ou mount /mnt/rep-montage Le fichier fstab est la table des différents systèmes de fichiers sur un ordinateur sous Unix/Linux : il contient une liste des disques utilisés au démarrage et des partitions de ces disques. Pour chaque partition, il indique comment elle sera utilisée et intégrée à l’arborescence du système de fichiers global. 110 Chapitre III: Système de gestion de fichiers Etude de cas : Systèmes de fichiers LINUX Commandes de montage/démontage Les types principaux ext2 (type par défaut), vfat, FAT16 ou FAT32 (Win95 ou Win98), nfs (système de fichiers distant situé sur un serveur NFS) Les options Les options par défaut sont: rw (accès complet), suid (les éventuels permissions SUID « Set owner User ID » et SGID « Set Group ID » des fichiers seront pris en compte), dev (permettre l'utilisation des fichiers de périphériques, exec (permettre l'exécution de fichiers binaires) 111 Chapitre III: Système de gestion de fichiers Etude de cas : Systèmes de fichiers LINUX Commandes de montage/démontage Exemple mount => liste tous les systèmes de fichiers actuellement montés mount –a => monter tous les systèmes au démarrage, exécute /etc/rc.d/rc.sysinit mount /dev/cdrom => monte le système du cd-rom (si décrit dans fstab) umount /mnt/floppy => démonte le système de fichiers disquette mount -t vfat -o uid=5001,gid=5000,umask=022 /dev/hda1 /mnt/disk-c => monter la partition Windows occupant la 1ère partition /dev/hda1 dans le répertoire /mnt/disk-c, avec les options : l'utilisateur d'uid 5001, et le groupe de gid 5000, seront propriétaires de tous les fichiers, la création d'un fichier s'effectuera avec le umask 022, c'est-à-dire les permissions 755 (rwxr-xr-x). 112 Chapitre III: Système de gestion de fichiers Etude de cas : Systèmes de fichiers LINUX Installer une nouvelle partition Dans certains cas il peut s'avérer indispensable d'étendre le système de fichiers sur un nouveau disque dur, ou une partition récupérée. L'objectif consiste à assigner à une sous-arborescence du système de fichiers, cette nouvelle ressource périphérique, par le processus de montage. Soit une nouvelle partition /dev/hda3, jusqu'ici "libre", à monter sur /home. Avec fdisk, lui affecter un système 83 linux (fdisk permet de manipuler les tables de partitions. Il permet de créer, de supprimer, de lister les partitions sur un disque dur). La formater : $mkfs -t ext2 -c -v /dev/hda3 Formate en blocs de 1024 en vérifiant les blocs (-c), puis écrit la table des inodes. 113 Chapitre III: Système de gestion de fichiers Etude de cas : Systèmes de fichiers LINUX Installer une nouvelle partition effectuer une copie : $cp -r /home /root Le déplacement de /home, dans /root par exemple. En effet /home est présent actuellement sur hda1, et il va être ensuite physiquement affecté sur hda3. Les répertoires personnels sont actuellement dans /root/home monter la partition hda3 en /home : $mount /dev/hda3 /home récupérer le contenu de /home : $mv /root/home/* /home pour automatiser le montage de /dev/hda3 lors d'un redémarrage du système, ajouter dans la table de montage /etc/fstab la ligne : /dev/hda3 /home ext2 defaults 1 2 114 Chapitre III: Système de gestion de fichiers Etude de cas : Systèmes de fichiers LINUX Le fichier /etc/fstab Le processus init (exécuté au démarrage), après chargement du noyau, vérifie les systèmes de fichiers déclarés dans la table du fichier et effectue leur éventuel montage automatique. Ce fichier /etc/fstab constitue une véritable "table de montage". Il fait l'inventaire des divers systèmes de fichiers que le noyau Linux est susceptible de gérer, précise la façon de les monter, s’ils doivent l'être au démarrage, etc.. 115 Chapitre III: Système de gestion de fichiers Etude de cas : Systèmes de fichiers LINUX Le fichier /etc/fstab Structure de fstab Sur chaque ligne on trouve la description du montage d'un système, avec 6 champs : nom du fichier spécial (ou du système distant) nom du point de montage, habituellement un sous-rep (éventuellement à créer) de /mnt le type de fichiers : ext2 (Linux), msdos, vfat (Win9x), ntfs (NT), iso9660 (Cd- rom), nfs liste d'options de montage, séparés par des virgules Les options par défaut son rw,suid, dev, exec, auto, nouser o auto/noauto , pour demander/empêcher un montage automatique au démarrage o user/nouser, pour autoriser/interdire un user qq (pas le "root") à effectuer le montage 116 Chapitre III: Système de gestion de fichiers Etude de cas : Systèmes de fichiers LINUX Le fichier /etc/fstab Structure de fstab paramètre pour dump (commande de sauvegarde) : Une valeur 0 signifie que le système de fichiers ne sera pas sauvegardé lors d'un dump paramètre pour fsck (commande de vérification des fichiers). Il indique l'ordre dans lequel fsck devra vérifier les fichiers, 1 en priorité (c'est normalement la partition racine /, 2 sinon, et 0 pour ne pas demander de vérification. La commande dump sous Linux est utilisée pour sauvegarder le système de fichiers sur un périphérique de stockage. Il sauvegarde le système de fichiers complet et non les fichiers individuels. 117 Chapitre III: Système de gestion de fichiers Etude de cas : Systèmes de fichiers LINUX Le fichier /etc/fstab Exemple 1 /dev/hda1 /mnt/diskc vfat user, auto,rw signifie : /dev/hda1 est le descripteur de périphérique 1ère partition du 1er disque IDE /mnt/diskc est le répertoire de montage vfat est le type de système de fichiers (autres ext2, msdos, iso9660, nfs, swap) Exemple 1 /dev/hdb1 /mnt/disk_d vfat user, auto Au lancement du système, ou par la commande mount -a, le système de fichiers Windows 95, installé sur la 1ère partition du 2ème disque (unité D:\), sera monté automatiquement par tous les utilisateurs et accessible dans le répertoire /mnt/disk_d 118 Chapitre IV: Gestion des processus Dans un système multitâche, la ressource la plus importante d’une machine est le processeur. Cette ressource est allouée à un processus sélectionné parmi un ensemble des processus éligibles. Par conséquent, il convient à bien gérer ce dernier afin de le rendre plus productif. En effet, un système d’exploitation dispose d’un module qui s’occupe de l’allocation du processeur en l’occurrence le Dispatcheur. Ce module est exécuté chaque fois qu’un processus se termine ou se bloque dans le but de réquisitionner le processeur pour un autre processus. En plus de ce Dispatcheur, un système d’exploitation dispose d’un autre module permettant ainsi la mise en ordre des processus qui demandent le processeur. 119 Chapitre IV: Gestion des processus Notion de processus Un processus est une entité dynamique qui matérialise un programme en cours d'exécution avec ses propres ressources physiques (mémoire, processeur, entrée/sortie, …) et logiques (données, variables, …). Contrairement à un programme (texte exécutable) qui a une existence statique. Le système d’exploitation manipule deux types de processus : Processus système : processus lancé par le système (init processus père de tous les processus du système) Processus utilisateur : processus lancée par l’utilisateur (commande utilisateur) Dès sa création, un processus reçoit les paramètres suivants : PID : identificateur du processus (numéro unique) PPID : identificateur du processus père UID : identificateur de l’utilisateur qui a lancé le processus GID : identificateur du groupe de l’utilisateur qui a lancé le processus 120 Chapitre IV: Gestion des processus Notion de processus Il existe des appels système permettant de créer un processus, charger son contexte et lancer son exécution (fork, exec sous Unix). Un processus peut (père) créer d’autres processus (fils) qui hérite les descripteurs de son père. Ce dernier à son tour crée d’autres processus. Un processus a un seul père mais peut avoir plusieurs fils Les processus peuvent se terminer ou ils peuvent être éliminés par d’autres processus (la primitive kill). A la destruction d’un processus, on libère toutes les ressources qu’il avait. Dans certains cas, la destruction d’un processus entraîne l’élimination de ces descendants ; cette opération n’affecte pas les processus qui peuvent continuer indépendamment de leur père (processus orphelins). 121 Chapitre IV: Gestion des processus Etats d’un processus Dans les systèmes mono programmés, un programme ne quitte pas l’unité centrale avant de terminer son exécution. Pendant cette période, il dispose de toutes les ressources de la machine. Par contre, ce n’est pas le cas dans les systèmes multiprogrammés et temps-partagé, un processus peut se trouver dans l’un des états suivants : 1‐ Elu : (en cours d’exécution) : si le processus est en cours d'exécution 2- Bloqué : attente qu’un événement se produit ou bien ressource pour pouvoir continuer 3- Prêt : si le processus dispose de toutes les ressources nécessaires à son exécution à l'exception du processeur. Diagramme de transition d’un processus 122 Chapitre IV: Gestion des processus Etats d’un processus Sémantique des Transitions (1) : Allocation du processeur au processus sélectionné (2) : Réquisition du processeur après expiration de la tranche du temps par exemple (3) : Blocage du processus élu dans l’attente d’un événement (E/S ou autres) (4) : Réveil du processus bloqué après disponibilité de l’événement bloquant (Fin E/S, etc…) Notons que nous avons omis les états Création et Terminaison de processus puisqu’ils n’interviennent pas dans cette étude. 123 Chapitre IV: Gestion des processus Etats d’un processus Cycle d’exécution d’un processus L’exécution d’un processus peut être vue comme une séquence de phases. Chaque phase comprend deux cycles : un cycle d’exécution (ou calcul) réalisé par le processeur et un cycle d’entrée sortie assuré par le canal. La dernière phase de tout processus doit comprendre obligatoirement un seul cycle dans lequel sera exécuté la requête informant le système d’exploitation sur la terminaison du processus. Cet appel permet au système de restituer les ressources utilisées par le processus qui vient de terminer. 124 Chapitre IV: Gestion des processus Bloc de contrôle d’un processus (PCB) Lorsqu’un processus est temporairement suspendu, il faut qu’il puisse retrouver l’état où il se trouvait au moment de suspension, il faut que toutes les informations dont il a besoin soient sauvegardées pendant sa mise en attente. Notons que le contexte d’un processus dépend du système, mais dans tous les cas c’est un bloc de contrôle de processus (BCP) qui contient toute information nécessaire à la reprise d’un processus interrompu : Etat du processus (prêt, suspendu,..), quantité de mémoire, temps CPU (utilisé, restant), priorité, etc Les BCP sont rangés dans une table (table des processus) qui se trouve dans l’espace mémoire du système 125 Chapitre IV: Gestion des processus Bloc de contrôle d’un processus (PCB) 126 Chapitre IV: Gestion des processus Ordonnancement des processus Chaque fois, que le processeur devient inactif, le système d’exploitation doit sélectionner un processus de la file d’attente des processus prêts, et lui passe le contrôle. D’une manière plus concrète, cette tâche est prise en charge par deux routines système en l’occurrence le Dispatcheur et le Scheduleur (Ordonnanceur). 127 Chapitre IV: Gestion des processus Ordonnancement des processus Le Dispatcheur Il s’occupe de