Système Informatique : Vue d’ensemble Chapitre 1 Système d’Exploitation Yann MORÈRE 2004 1/703 2/703 Définition du SE Système d’Exploitation - programme qui fait la liaison entre l’utilisateur et le matériel. • Il permet une exécution pratique et efficace des programmes. • Il assure le fonctionnement correct du système informatique. • Il fournit aussi certains services aux programmes et aux utilisateurs (faciliter la programmation par exemple). Système d’Exploitation Yann MORÈRE 2004 3/703 Elements de Bases • Processeur • Mémoire Principale (RAM) La mémoire réelle, ou mémoire primaire volatile • Modules d’ES Dispositifs de mémoire secondaire Equipement de communications Terminaux • Système d’interconnection entre les éléments (BUS) communication entre les processeurs, mémoire et modules d’ES Système d’Exploitation Yann MORÈRE 2004 4/703 Registres • Mémoire très petite mais très rapide (en comparaison avec la mémoire principale • Sert à stocker temporairement les données pendant le traitement Système d’Exploitation Yann MORÈRE 2004 5/703 Composants de haut niveau (Registres) • Registre d’Adresse Mémoire Adresse pour la prochaine lecture/écriture • Registre de Mémoire Tampon, Données qui vont être écrites en mémoire Reçoit les données lues de la mémoire • Adresse d’E/S spécifie une adresse d’E/E particulière • Tampon d’E/S Echange de données entre un module d’E/S et le processeur Système d’Exploitation Yann MORÈRE 2004 Composants de l’ordinateur: Vue de haut niveau Mémoire .. . CPU PC Reg. Adr. Mem. IR Reg. Buf. Mem. Reg. Adr. E/S Reg. Buf. E/S Module E/S Instruction Instruction Instruction .. Data Data Data Data .. . .. Tampons Système d’Exploitation Yann MORÈRE 2004 6/703 7/703 Registres Processeurs • Registres visibles par l’utilisateur Accessible par langage machine (asm) Disponible pour tous les programes. : programmes d’applications et programmes systèmes Types de registres • Données • Adresse • Drapeaux Système d’Exploitation Yann MORÈRE 2004 Registres visibles par l’utilisateur • Registres de données Peuvent être remplis par le programmeur • Registres d’Adresses Contiennent l’adresse en mémoire centrale des données et instructions Peuvent contenir une portion d’adresse qui peut être utilisée pour calculer une adresse complète • Registre d’index • Pointeur sur segment • Pointeur de pile Système d’Exploitation Yann MORÈRE 2004 8/703 Registres visibles par l’utilisateur • Registres d’Adresses Index • Effectue l’ajout d’un index à une valeur de base pour calculer une adresse Pointeur sur Segment • Quand la mémoire est divisée en segment, celle est référencée par un segment et un offset Pointeur de pile • Pointe sur le haut de la pile Système d’Exploitation Yann MORÈRE 2004 9/703 Registres visibles par l’utilisateur • Code condition ou drapeaux (Flags) Bits modifié par le processeur physique pour le résultat d’une opération Accès possible par les programmes mais seulement en lecture Exemples • • • • Résultat positif Résultat negative Zéro Overflow (dépassement) Système d’Exploitation Yann MORÈRE 2004 10/703 Registres de contrôle et d’état • Compteur Programme Program Counter (PC) Contient l’adresse de l’instruction qui va être exécutées • Registre d’instruction Instruction Register (IR) Contient l’instruction le plus récente chargée • Mot d’Etat de Programme Program Status Word (PSW) Codes condition ou drapeau Activation/Desactivation interruption Superviseur Système d’Exploitation Yann MORÈRE 2004 11/703 12/703 Exécution d’Instruction • Le processeur exécute les instructions dans un programme • Les Instructions sont chargées de la mémoire à chaque Cycle de Chargement START START Charge Chargeprochaine prochaine Instruction Instruction Système d’Exploitation Cycle d’Exécution Exécute Exécute Instruction Instruction STOP STOP Yann MORÈRE 2004 Chargement d’Instruction et Exécution • Le processeur charge l’instruction de la mémoire • Le Program counter (PC) sauvegarde l’adresse de la prochaine instruction à être exécutée • Le Program counter est incrémenté après chaque chargement Système d’Exploitation Yann MORÈRE 2004 13/703 14/703 Registre d’Instruction • Les instructions chargées sont placées ici • Types d’instructions Processeur-Mémoire • Transfert de données entre le processeur et la mémoire Processeur-E/S • Données transférées de ou à un périphérique Traitement de données • Opérations arithmétiques et logiques sur une données Contrôle • Change une séquence d’éxécution Système d’Exploitation Yann MORÈRE 2004 Exemple d’exécution d’un programme Memory 300 1 9 4 0 301 5 9 4 1 302 2 9 4 1 Memory CPU Registers CPU Registers 3 0 0 PC 300 1 9 4 0 3 0 0 PC AC 301 5 9 4 1 0 0 0 3 AC 1 9 4 0 IR 302 2 9 4 1 IR 1940 940 0 0 0 3 941 0 0 0 2 Step 1 940 0 0 0 3 941 0 0 0 2 Step 2 Memory CPU Registers CPU Registers PC 3 0 1 PC 300 1 9 4 0 301 0 0 0 5 AC 0 0 0 3 AC 301 5 9 4 1 5941 IR 302 2 9 4 1 5 9 4 1 IR Memory 300 1 9 4 0 301 5 9 4 1 302 2 9 4 1 940 0 0 0 3 941 0 0 0 2 Step 3 Memory 300 1 9 4 0 301 5 9 4 1 302 2 9 4 1 940 0 0 0 3 941 0 0 0 2 Step 4 CPU Registers Memory 3 0 2 PC 300 1 9 4 0 0 0 0 5 AC 301 5 9 4 1 2941 IR 302 2 9 4 1 940 0 0 0 3 941 0 0 0 2 Step 5 Système d’Exploitation 3+2=5 CPU Registers 330022 PC 0 0 0 5 AC IR 2941 940 0 0 0 3 941 0 0 0 2 Step 6 Yann MORÈRE 2004 15/703 Accès Direct Mémoire Direct Memory Access (DMA) • Les échanges E/S sont fait directement avec la mémoire • Le processeur autorise le module E/S de lire ou d’écrire directement en mémoire • Décharge le processeur de cette tâche • Le processeur est libre de faire autre chose Système d’Exploitation Yann MORÈRE 2004 16/703 17/703 Interruptions • Une interruption est le fonctionnement normal d’un processeur • Améliore l’efficacité de traitement • Permet au processeur d’exécuter d’autres instructions pendant qu’une E/S est en cours • Permet la suspension d’un evènement causé par un evènement externe à ce processus et le reprise de ce dernier sans perte de données Système d’Exploitation Yann MORÈRE 2004 18/703 Classes d’Interruption • Programme Dépassement arithmétique - arithmetic overflow division par zéro Exécution d’instruction illégale référence à un espace mémoire externe à celui de l’utilisateur • Timer • E/S • Défaillance matériel - Hardware failure Système d’Exploitation Yann MORÈRE 2004 Cycle d’Instruction avec Interruptions Cycle de charge ment Cycle d’Exécution 19/703 Cycle d’Interruption Désactivation Inte rruptions START START Charge Chargeprochaine prochaine Instruction Instruction Exécution Exécution Instruction Instruction Test Testpour pour Inte rruption Inte rruption: : Exécution Interruption Exécution Interruption Activation Inte rruptions HALT Système d’Exploitation Yann MORÈRE 2004 20/703 Gestionnaire d'Interruption • Un programme qui détermine la nature de l’interruption et exécute l’action appropriée • Le contrôle est transféré à ce programme • Généralement une partie de système d’exploitation Système d’Exploitation Yann MORÈRE 2004 21/703 Cycle d’Interruption • Le processeur vérifie la présence d’interruptions • Si aucune interruption, il charge la prochaine instruction du programme courant • Si une interruption apparaît, l’exécution est suspendue, et le gestionnaire d’interruption est exécuté Système d’Exploitation Yann MORÈRE 2004 Traitement d’une interruption simple 22/703 Contrôleur de périphérique Ou autre système matériel Provoquent une interruption Processeur termine L’exécution de l’instruction courante Processeur signale l’accepation de l’interruption Sauvegarde de l’état du processus Exécution interruption Processeur stocke le PSW et le PC sur la pile de contrôle Restauration de l’état du processus Processeur charge un nouveau PC basé sur l’interruption Restauration des anciens PSW et PC Système d’Exploitation Yann MORÈRE 2004 Interruptions Multiples Ordre Séquentiel • Désactivation des interruptions, permet au processeur de réaliser une tâche complète • L’interruption reste active jusqu’à ce que le processeur réactive les interruptions • Après la fin d’exécution des routines du gestionnaire d’interruption, le proccessuer contrôle la présence d’interruption Système d’Exploitation Yann MORÈRE 2004 23/703 Interruptions Multiples Priorités • Les interruptions à haute priorité force les interruptions à basse priorité à attendre • Le gestionnaire d’interruptions à basse priorité peuvent alors être interrompues • Exemple : quand des données arrive par une ligne de communication, il est nécessaire de les traiter rapidement pour faire de la place pour d’autres données Système d’Exploitation Yann MORÈRE 2004 24/703 Hierarchie de la mémoire 25/703 Registres Cache Mémoire Principale RAM Cache Disque Disque Magnétique Bande Magnétique Système d’Exploitation Disque Optique Yann MORÈRE 2004 26/703 Hierarchie : du haut vers le bas • • • • Diminution du coût par octet Augmentation capacité Augmentation du temps d’accès Diminution de la fréquence d’accès à la mémoire par le processeur Système d’Exploitation Yann MORÈRE 2004 27/703 Cache Disque • Une partie de la mémoire principale est utilisée comme tampon (buffer) afin de stocker temporairement des données destinées au disque • Les écritures disque sont groupées • Certaines des données écrites peuvent être nécessaires à nouveau. Les données sont rechargées rapidement du cache logiciel plutôt que rechargées de manière plus lente du disque Système d’Exploitation Yann MORÈRE 2004 28/703 Mémoire Cache • • • • Invisible pour le système d’exploitation Utilisée comme de la mémoire virtuelle Accroît la rapidité de la mémoire La vitesse processeur est plus rapide que le vitesse de la mémoire Système d’Exploitation Yann MORÈRE 2004 29/703 Mémoire Cache • Contient une partie de la mémoire principale • Le processeur cherche ses données dans cette mémoire en premier • Si il ne les trouve pas dans le cache, le block mémoire contenant les informations nécessaire est chargé dans le cache Système d’Exploitation Yann MORÈRE 2004 Structure de la Mémoire Cache/Principale Memory Address 0 1 2 3 Block (k words) Slot Number Tag 0 1 2 Block C -1 Block Length (k words) (b) Cache Block 2n - 1 Word Length (a) Main Memory Système d’Exploitation Yann MORÈRE 2004 30/703 31/703 Conception du Cache • Taille du Cache De petits cache ont un impact significatif sur les performance • Taille du Block C’est l’unité de donnée échangée entre le cache et la mémoire principale « hit » signifie que l’information a été trouvée dans le cache Plus le block est grand, plus le nombre de « hit » est grand avant que la probabilité d’utiliser des données nouvellement chargées devienne plus faible que la probabilité de réutiliser les données qui ont été déchargées Système d’Exploitation Yann MORÈRE 2004 32/703 Conception du Cache • Fonction « Mapping » détermine quel endroit du cache le clock va occuper • Algorithme de replacement détermine quel block à replacer Algorithme du moins récemment utilisé LeastRecently-Used (LRU) Système d’Exploitation Yann MORÈRE 2004 33/703 Conception du Cache • Politique d’Écriture Écrit un block du cache dans la mémoire principale La mémoire principale doit être accessible en DMA par les modules d’E/S et les processeurs multiples Système d’Exploitation Yann MORÈRE 2004 34/703 E/S Programmées • Le module d’E/S effectue l’action et non le processeur • Fixe les bits appropriés dans le registre d’état des E/S • Les interruptions ne sont pas prises en compte • Le processeur teste continuellement l’état (attente active) Système d’Exploitation Yann MORÈRE 2004 35/703 E/S Programmées Insert Read command to CPU I/O I/O Module Read Status of I/O Module Not Ready Check Status I/O CPU Error Condition Ready Read word from I/O Module I/O CPU Write word CPU Memory into memory No Done? Yes Next Instruction Système d’Exploitation Yann MORÈRE 2004 36/703 E/S par interruption • Le processeur est interrompu quand le module d’E/S est prêt à échanger les données • Le processeur est libre de faire une autre traitement • Pas d’attente active du processeur • Consomme beaucoup de temps processeur parce que chaque mot écrit ou lu, passe par le processeur Système d’Exploitation Yann MORÈRE 2004 37/703 E/S par interruption Insert Read command to CPU I/O Do something I/O Module else Read Status of I/O Module Interrupt I/O CPU Error Condition Check Status Ready Read word from I/O Module I/O CPU Write word CPU Memory into memory No Done? Yes Next Instruction Système d’Exploitation Yann MORÈRE 2004 Accès Direct à la Mémoire Direct Memory Access (DMA) • Transfert un block de donnée directement de ou dans la mémoire principale • Une interruption est envoyée quand la tâche est terminée • Le processeur est seulement impliqué au début et à la fin du transfert Système d’Exploitation Yann MORÈRE 2004 38/703 Accès Direct à la Mémoire Direct Memory Access (DMA) Issue Read block command to I/O module CPU DMA Do something else Issue Read block command to I/O module Read status of DMA module Interrupt DMA CPU Next Instruction Read status of DMA module CPU DMA Do something else Inte rrupt DMA CPU Next Instruction Système d’Exploitation 39/703 Yann MORÈRE 2004 40/703 Système d’Exploitation Vue d'ensemble Chapitre 2 Système d’Exploitation Yann MORÈRE 2004 41/703 Système d’Exploitation • Un programme qui contrôle l’exécution des programmes d’applications • Une interface entre l’utilisateur et le matériel • Masque les détails du matériel à l’utilisateur Système d’Exploitation Yann MORÈRE 2004 Couches et Vues d’un système informatique Utilisateur final Programmeur Programmes d’Applications Utilitaires Concepteur Système d’Exploitation Système d’Exploitation Matériel Système d’Exploitation Yann MORÈRE 2004 42/703 Services fournis par le système d’exploitation • Création de programme Editeurs et debuggeurs • • • • Exécution de programmes Accès au périphériques d’E/S Accès contrôlé au fichiers Accès au système Système d’Exploitation Yann MORÈRE 2004 43/703 Services fournis par le système d’exploitation • Détection et réponse d’erreur Erreurs matériels internes et externes • Erreurs mémoire • Défaillance de périphérique Erreurs logicielles • Dépassement arithmétique • Accès interdit à des plages mémoires Dans ces cas, le système d’exploiation ne peut pas autoriser la demande de l’application Système d’Exploitation Yann MORÈRE 2004 44/703 Services fournis par le système d’exploitation • Comptabilité Collecte de données statistiques Analyse de la performance par moniteur Utilisée pour anticipée les futurs perfectionnements Système d’Exploitation Yann MORÈRE 2004 45/703 46/703 Système d’Exploitation • C’est un programme • Dirige le processeur dans l’utilisation des ressources système • Dirige le processeur quand il exécute les programmes • Le processeur arrête d’exécuter le système d’exploitation de manière à exécuter d’autres programmes Système d’Exploitation Yann MORÈRE 2004 Système d’Exploitation comme gestionnaire de ressources 47/703 Système Informatique Mémoire Système D’Exploitation Logiciel Programmes Et Données Contrôleur E/S Contrôleur E/S . . . Contrôleur E/S Processeur . .. Processeur O/S Programmes Données Système d’Exploitation Yann MORÈRE 2004 Évolution d’un système d’exploitation • Mise à jour matériel et nouveaux types de matériel • Nouveaux services • Corrections de bugs Système d’Exploitation Yann MORÈRE 2004 48/703 49/703 Gestionnaires • Logiciels qui contrôlent l’exécution des programmes • Système d’exploitation par lot • Les travaux sont traités par lot • Un gestionnaire résident est en mémoire centrale et disponible à l’exécution • Les utilitaires des gestionnaires sont chargés si nécessaires Système d’Exploitation Yann MORÈRE 2004 Disposition mémoire pour un gestionnaire résident Traitement D’interruption Pilotes de périphériques Séquencement Des travaux Interpréteur de langage de contrôle Gestionnaire Frontière Zone de Programme utilisateur Système d’Exploitation Yann MORÈRE 2004 50/703 Langage de contrôle de travaux - Job Control Language (JCL) • Type spécial de langage de programmation • Fournit des instructions au gestionnaire Quel compilateur utiliser Quelles données utiliser Système d’Exploitation Yann MORÈRE 2004 51/703 52/703 Dispositifs matériels • Protection mémoire Ne permet pas à une zone mémoire contenant le gestionnaire d’être modifiée • Timer Évite à un travail de monopoliser lesystèmed Une interruption apparaît quand le quantum de temps se termine Système d’Exploitation Yann MORÈRE 2004 53/703 Dispositifs matériels • Instructions privilégiées Seulement exécuté par le gestionnaire Une interruption apparaît si un programme essaie d’exécuter ces instructions • Interruptions Fournit de la flexibilité pour contrôler les programmes utilisateur Système d’Exploitation Yann MORÈRE 2004 Multiprogrammation ou Multitâche Permet au processeur d’exécuter un autre programme pendant qu’un programme est obligé d’attendre un périphérique d’E/S Run Run Wait Wait Time Run A Run B Wait Run A Run B Wait Time Système d’Exploitation Yann MORÈRE 2004 54/703 55/703 Exemple JOB1 JOB2 Type de travail Calcul lourd E/S lourd E/S lourd Durée 5 min. 15 min. 10 min. Mémoire requise 50K 100 K 80 K Besoin disque No No Yes Besoin terminal No Yes No No Yes Besoin imprimanteNo Système d’Exploitation JOB3 Yann MORÈRE 2004 56/703 Effets de la Multiprogrammation Monoprogrammation Multiprogrammation Utilisation CPU 17% 33% Utilisation Mémoire 30% 67% Utilisation Disque 33% 67% Utilisation Imprim. 33% 67% Temps écoulé 30 min. 15 min. Taux de traitement 6 jobs/hr 12 jobs/hr Temps réponse moyen18 min. Système d’Exploitation 10 min. Yann MORÈRE 2004 57/703 Temps partagé • Ultilisation de la multiprogrammation pour manipuler de plusieurs travaux interactifs • Le temps processeur est partagé parmi les multiple utilisateurs • Plusieurs utilisateurs accèdent simultanément le système grace au terminaux Système d’Exploitation Yann MORÈRE 2004 58/703 Processus • Terme plus générique qu’un travail • Consiste en un programme exécutable, des données qui lui sont associées et un contexte d’exécution Système d’Exploitation Yann MORÈRE 2004 Difficultés avec la conception d’un système logiciel • Synchronisation inexacte Assurer qu’un process attendant un périphérique d’E/S reçoive le signal • Exclusion mutuelle échouée • Opération de programme non prévue Un programme devrait toujours dépendre seulement de ses entrées, et ne pas dépendre des zones de mémoire communes • Impasses - Deadlocks Système d’Exploitation Yann MORÈRE 2004 59/703 60/703 Gestion de Mémoire • • • • • Isolement de processus Attribution et gestion automatiques Support pour programmation modulaire Protection et contrôle d'accès Stockage à long terme Système d’Exploitation Yann MORÈRE 2004 61/703 Mémoire Virtuelle • Permet à des programmeurs d'adresser la mémoire d'un point de vue logique • Tandis que le programme fonctionne des parties du programme et des données sont maintenues dans les blocs sur le disque Système d’Exploitation Yann MORÈRE 2004 62/703 Système de fichier • Implémente le stockage à long terme • L'information est stockée dans des objets appelés « fichiers » Système d’Exploitation Yann MORÈRE 2004 Catégories de sécurité et de protection • Contrôle d’accès réglez l'accès d'utilisateur au système • Contrôle du flux d’information réglez le flux des données dans le système et de sa livraison aux utilisateurs • Certification Prouvant que l’exécution du contrôle de flux et d’accès est faite par rapport à des spécifications Système d’Exploitation Yann MORÈRE 2004 63/703 Gestion de ressource et d’ordonnancement • Equitabilité donne l'accès égal et juste à tous les processus • Réponse différentielle Distinction de différentes classes des travaux • Efficacité Maximiser le nombre de sortie, minimiser le temps de réponse, et adaptation à autant d'utilisations que possibles Système d’Exploitation Yann MORÈRE 2004 64/703 Éléments Principaux D’un système d'exploitation Système d'exploitation Demande de service Des processus Interruption D’un processus Interruption D’une E/S Gestionnaire de demande de Service Gestionnaire D’Interruption File à File à long court terme Terme File E/S Ordonanceur à court terme Donne le contrôle au processus Système d’Exploitation Yann MORÈRE 2004 65/703 66/703 Structure Du Système • Vision du système comme série de niveaux • Chaque niveau exécute un sous-ensemble relatif de fonctions • Chaque niveau se base sur le niveau inférieur pour exécuter des fonctions de plus bas niveaux • Ceci décompose un problème en un nombre plus important de sous problèmes que l’on peut traiter Système d’Exploitation Yann MORÈRE 2004 Hiérarchie De Conception d’un système d'exploitation NiveauNom Objets Exemple d’Opérations 13 Shell Envirronement de programmation structure en langage shell 12 processus User Processus User Quit, kill, suspend, resume 11 Répertoires Répertoires Create, destroy, attach, detach, search, list 10 Périphériques Périphérique Externes Create, destroy, open, close, Ecran, Imprimante read, write et clavier 9 Système fichier Fichiers Create, destroy, open, close read, write 8 Communications tubes Create, destroy, open. close, read, write Système d’Exploitation Yann MORÈRE 2004 67/703 Hiérarchie De Conception d’un système d'exploitation NiveauNom Objets Exemple d’Opérations 7 Mémoire virtuelle Segments, pages Read, write, fetch 6 Stockage secondaire Blocks de données Read, write, allocate, free local canaux des périphériques 5 Processus primaires Processus primaire, Suspend, resume, wait, signal sémaphores, liste des processus prêts Système d’Exploitation Yann MORÈRE 2004 68/703 Hiérarchie De Conception d’un système d'exploitation NiveauNom 4 Interruptions 5 Objets Exemple d’Opérations programmes de gestion Invoke, mask, unmask, retry d’interruption 3 Procédures Procédures, call stack Mark stack, call, return 2 Instruction Set Évaluation pile, micro- Load, store, add, subtract program interpreter, branchement scalar and array data 1 Circuits Électronique Registrer, portes, bus, Clear, transfer, activate, etc. Système d’Exploitation Yann MORÈRE 2004 69/703 Caractéristiques des systèmes d'exploitation modernes 70/703 • Architecture à Micronoyau Microkernel assigne seulement quelques fonctions essentielles au noyau • Espace d’adresse • Communication interprocessus (IPC) • Ordonnancement simpliste (basic) Système d’Exploitation Yann MORÈRE 2004 Caractéristiques des systèmes d'exploitation modernes 71/703 • Multi-threading le processus est divisé en « threads » qui peuvent fonctionner simultanément • Thread unité dispatchable de travail s'exécute séquentiellement et est interruptable • Un processus est un ensemble d’un ou plusieurs thread Système d’Exploitation Yann MORÈRE 2004 Caractéristiques des systèmes d'exploitation modernes 72/703 • Multi-processing symétrique (SMP) Il existe plusieurs processeurs Ces processeurs partagent la même mémoire principale et équipements d’E/S Tous les processeurs peuvent exécuter les mêmes fonctions Système d’Exploitation Yann MORÈRE 2004 Caractéristiques des systèmes d'exploitation modernes 73/703 • Systèmes d’exploitation distribués fournit l'illusion d'une mémoire centrale unique utilisé pour un système de fichiers réparti Système d’Exploitation Yann MORÈRE 2004 Caractéristiques des systèmes d'exploitation modernes 74/703 • Conception orientée objet utilisé pour ajouter des extensions modulaires à un microkernel permet aux programmeurs d’adapter le système d'exploitation aux besoins du client sans perturber l’intégrité du système Système d’Exploitation Yann MORÈRE 2004 75/703 Windows NT • Exploite la puissance des microprocesseur d’aujourd’hui • Fournit le traitement multitâche dans un environnement mono utilisateur • Peut s'exécuter sur différent type de plateformes matérielles • Supporte des applications écrites pour d’autres systèmes d’exploitation Système d’Exploitation Yann MORÈRE 2004 76/703 Windows NT • NT « Executive » Architecture microkernel modifiée • De nombreuses fonctions systèmes en dehors du microkernel s’exécute en mode kernel Utilise une structure en couche • Couche d’abstraction matérielle - Hardware abstraction layer (HAL) Rend les matériels semblable pour le kernel Fournit un support pour symmetric multiprocessing Système d’Exploitation Yann MORÈRE 2004 77/703 Windows NT • NT « Executive » Utilise une structure en couche • microkernel Composants les plus utilisés Ne s’exécute pas en « threads » Non preemptible et pas de pagination • Services « executive « Fournit une interface pour les programmes en mode utilisateur Système d’Exploitation Yann MORÈRE 2004 78/703 Avantages du Client/Server • Simplifie le système d’exploiation de base, NT executive Possibilité de construire plusieurs APIs (application programming interface) • Améliore la fiabilité Chaque serveur s’exécute comme un processus séparé avec ses propres parties de mémoire Les serveurs ne peuvent pas directement accèder au matériel • Fournit les bases pour les calculs distribués Système d’Exploitation Yann MORÈRE 2004 Dispositifs Windows NT pour le SMP • Les routines du système d'exploitation peuvent fonctionner sur n'importe quel processeur • Les différentes routines peuvent s'exécuter simultanément sur différents processeurs • Plusieurs threads d’exécution à l’intérieur d’un seul processus • Les serveurs utilise plusieurs threads pour traiter les demandes supplémentaires sur le client simultanément • Communication interprocessus flexible Système d’Exploitation Yann MORÈRE 2004 79/703 80/703 Objets Windows NT • Toutes les entités ne sont pas des objets • Les entités représentées par des objets sont les fichiers, les threads, les processus, les sémaphores, les unités de temps et les fenêtres. • Le gestionnaire d’Object dans le kernel est responsable de la création et destruction d’objets, et pour l’autorisation d’accès aux services et aux données d’un objet Système d’Exploitation Yann MORÈRE 2004 81/703 Architecture UNIX • Le matériel est entouré par le système d'exploitation • Le système d'exploitation s'appelle le kernel • Délivre un nombre de services et d’interfaces pour l’utilisateur shell Compilateur C Système d’Exploitation Yann MORÈRE 2004 82/703 Architecture UNIX Application Programs Compiler Components Compiler Shell Editors, and Private User Programs Kernel Hardware Système d’Exploitation Yann MORÈRE 2004 83/703 Description et contrôle de processus Chapitre 3 Système d’Exploitation Yann MORÈRE 2004 Spécificités requises d’un système d’exploitation • Ordonnancer l'exécution de plusieurs processus pour maximiser l'utilisation du processeur tout en fournissant un temps de réponse raisonnable • Allouez des ressources aux processus • Supporter la communication inter processus et la création de processus par les utilisateurs Système d’Exploitation Yann MORÈRE 2004 84/703 85/703 Processus • Aussi appelé une tâche • Exécution d'un programme individuel • Peut être tracé Liste la séquence d’instructions qui s’exécute Système d’Exploitation Yann MORÈRE 2004 86/703 Ordonnanceur • Programme qui passe le processeur d’un processus à un autre • Évite qu’un seul processus monopolise le temps processeur Système d’Exploitation Yann MORÈRE 2004 87/703 Modèle de processus à 2 états Ordonnanceur Entrée Non Exécution Exécution Sortie Pause (a) Schéma de transition d’état File Entrée Ordonnanceur Sortie Processeur Pause (a) Schéma de la file Système d’Exploitation Yann MORÈRE 2004 88/703 Création De processus • Soumission d'un traitement par lots • L'utilisateur de « logue » • Créer pour fournir un service tel que l'impression • Engendrer par un processus existant Système d’Exploitation Yann MORÈRE 2004 89/703 Arrêt De processus • Le traitement par lot provoque une instruction Halt • L’utilisateur se « delogue » • Le processus exécute une demande de service pour se terminer • Conditions d’erreur ou de faute Système d’Exploitation Yann MORÈRE 2004 Raisons de terminaison de processus • • • • • Arrêt normal Limite de temps excédé Mémoire non disponible Violation des limites mémoire Erreur de protection Exemple de l’écriture d’un fichier en lecture seule • Erreur Arithmétique • Dépassement du temps Le processus a attendu plus longtemps qu’une valeur fixée pour cet évènement Système d’Exploitation Yann MORÈRE 2004 90/703 Raisons de terminaison de processus • Défaillance d’E/S • Instruction invalide Intervient quand on essaie d’exécuter des données • Instruction privilégiée • Mauvaise utilisation des données • Intervention du système d’exploitation Tel que l’apparition de blocage « deadlock » • Le processus Parent se termine forçant le processus enfant à se terminer • Demande du processus parent Système d’Exploitation Yann MORÈRE 2004 91/703 92/703 Processus • Non-exécutant Prêt à s’exécuter • Bloqué Attente d’E/S • L’Ordonnanceur ne peut pas simplement choisir le processus qui a été dans la file d'attente le plus longtemps parce qu'il peut être bloqué Système d’Exploitation Yann MORÈRE 2004 93/703 Un modèle à 5 états • • • • • Exécution Prêt Bloqué Nouveau Terminé Système d’Exploitation Yann MORÈRE 2004 94/703 Modèle de processus à 5 états Ordonnanceur Release Admission Nouveau Prêt Exécution Time-out Apparition Evènement Attente évènement Bloqué Système d’Exploitation Yann MORÈRE 2004 Sortie 95/703 File Processus bloqués simple Files des P prêts Relâchement Ordonnanceur Admission Processeur Time-out Attente Évènement Apparition Evènement File des P bloqués Système d’Exploitation Yann MORÈRE 2004 96/703 File Processus bloqués Multiple File des P. Prêts Relâchement Ordonnanceur Admission Processeur Time-out Attente Évènement 1 Apparition Évènement 1 Files Évènement 1 Attente Évènement 2 Apparition Évènement 1 File Évènement 2 Système d’Exploitation Yann MORÈRE 2004 97/703 Processus Suspendus • Le processeur est plus rapide que les E/S, donc tous les processus pourraient attendre des E/S • Déplacement de ces processus sur le disque pour libérer de la mémoire centrale • Les états bloqués deviennent des états suspendus quand ils sont déplacés sur le disque • Deux nouveau états Bloqué, suspendu Prêt, suspendu Système d’Exploitation Yann MORÈRE 2004 98/703 Schéma de transistion d’états de processus avec 2 états suspendus Prêt Admission Admission Suspension Ordonnanceur Activation Prêt, suspendu Exécution Prêt Suspension Time out Apparition Évènement Apparition Évènement Attente Évènement Activation Bloqué, suspendu Bloqué Système d’Exploitation Yann MORÈRE 2004 Sortie Structures De Contrôle Du Système d'exploitation • Le processeur réalise l’ordonnancement et le répartition pour l’exécution des processus • Allocation de ressources pour les processus • Réponses aux demandes des programmes utilisateurs • Des tableaux sont construits pour chaque entité que gère le système d’exploitation Système d’Exploitation Yann MORÈRE 2004 99/703 100/70 Tableaux mémoire • Allocation de la mémoire principales aux processus • Allocation de la mémoire secondaire aux processus • Attributs de protection pour l’aacès au zones partagées de la mémoire • Besoin d’information pour la gestion de la mémoire virtuelle Système d’Exploitation Yann MORÈRE 2004 101/70 Tables d’E/S • Le périphérique d’E/S est disponible ou assigné à un processus • État des l’opération d’E/S • Position utilisée dans la mémoire centrale pour le transfert des données d’E/S (source, destination) Système d’Exploitation Yann MORÈRE 2004 102/70 Tableaux de fichiers • • • • • Existence des fichiers Position sur la mémoire secondaire État courant Attributs Quelques fois ces données sont maintenues par le système de fichier Système d’Exploitation Yann MORÈRE 2004 103/70 Tableaux des processus • L’image d’un processus est composée d’un programme, de donnée, le pile et les attributs • Attributs Block de contrôle du processus - process control block (PCB) Système d’Exploitation Yann MORÈRE 2004 104/70 Block de contrôle du processus Identification du processus • Identifiant numérique unique Peut être un index dans la tables de processus initiaux • Identifiant utilisateur Qui est le responsable du travail Système d’Exploitation Yann MORÈRE 2004 Information d’état du processus • Contenu des registres du processeur Registres visibles par l’utilisateur Registres de contrôle et d’ état Pointeurs de Pile • Mot d’état Programme - Program status word (PSW) Contient les informations d’état Exemple: registre EFLAGS sur les machines Pentium Système d’Exploitation Yann MORÈRE 2004 105/70 Information de contrôle de processus • Informations additionnelles nécessaire au système d’exploitation pour contrôler et coordonner les différents processus actifs Information d’ordonnancement et d’état Structuration des données Communication inter processus Privilèges des processus Gestion de la mémoire Appartenance et utilisation des ressource Système d’Exploitation Yann MORÈRE 2004 106/70 107/70 Fonctions typiques d’un noyau de système d’exploitation • • • • • Gestion de Processus Création et destruction de processus Ordonnancement et répartition de processus Permutation de processus Synchronisation de processus et communication inter processus Gestion des bloques de contrôle de processus (PCB) Système d’Exploitation Yann MORÈRE 2004 108/70 Fonctions typiques d’un noyau de système d’exploitation Gestion Mémoire • Allocation d’un espace d’adresse pour les processus • « Swapping » • Gestion de la pagination et de la segmentation Système d’Exploitation Yann MORÈRE 2004 Fonctions typiques d’un noyau de système d’exploitation 109/70 • • • • • Gestion d’E/S Gestion des tampons « Buffer » Allocation des canaux et périphériques d’E/S aux processus Fonctions de Support Gestion des interruptions Comptabilité Supervision Système d’Exploitation Yann MORÈRE 2004 110/70 Création de processus • • • • Assignation d’un identifiant unique au processus Allocation d’espace mémoire pour le processus Initialisation du PCB Réglage des liens appriopriés Ex: ajouter un nouveau processus à la liste associée à la file d’attente d’ordonnancement • Autre mettre à jour un fichier statistique Système d’Exploitation Yann MORÈRE 2004 111/70 Quand changer de processus • Interruptions Horloge • Le processus est exécuté jusqu’à la fin du temps imparti E/S • Erreur Mémoire L’adresse mémoire est dans la mémoire virtuelle, donc elle doit être chargée en mémoire centrale Système d’Exploitation Yann MORÈRE 2004 112/70 Quand changer de processus • Piège Apparition d’une erreur Peut causer la mise à l’état « sortie » du processus • Appel superviseur Tel que l’ouverture d’un fichier Système d’Exploitation Yann MORÈRE 2004 Changement de l’état du processus • Sauver le contexte du processeur en incluant le compteur programme et les autres registres • Mettre à jour le PCB avec le nouvel état et les autres informations • Déplacer le PCB dans la file prêt-bloqué appropriée • Selectionner un autre processus pour exécution Système d’Exploitation Yann MORÈRE 2004 113/70 Changement de l’état du processus • Mettre à jour le PCB du processus sélectionné • Mettre à jour les structures de données du gestionnaire de mémoire • Restaurer le contexte du processus sélectionné Système d’Exploitation Yann MORÈRE 2004 114/70 Exécution du système d’exploitation • Noyau non processus Le noyau est exécuté en dehors de tout processus Le code du système d’exploitation est exécuté comme une entité séparée qui opère dans un mode privilégié • Exécution à l’intérieur des processus utilisateurs Logiciel du système d’exploitation à l’intérieur du contexte d’un processus utilisateur Le processus s’exécute dans un mode provilégié quand il exécute du code du système d’exploitation Système d’Exploitation Yann MORÈRE 2004 115/70 Exécution du système d’exploitation • Système d’exploitation basé sur les processus Les fonctions principales du noyau sont des processus séparés Un processus est invoqué par le systèmes d’exploitation Système d’Exploitation Yann MORÈRE 2004 116/70 Schéma de transition des états des processus UNIX fork Crée Préempté return to user Mémoire suffisante Exécution Utilisateur Mise en mémoire disque (swap out) préemption retour Appel système, interruption Interruption, Retour interruption Pas assez de mémoire Prêt à exécuter Processus de réordonnancement en mémoire Exécution Noyau Prêt à exécuter, Swappé Mise en mémoire centrale (swap in) Endormi réveil sortie Zombie Système d’Exploitation Endormi, en mémoire réveil Mise en mémoire disque (swap out) Endormi, Swappé Yann MORÈRE 2004 117/70 118/70 Threads, SMP, et Microkernels Chapitre 4 Système d’Exploitation Yann MORÈRE 2004 119/70 Processus • Propriété des ressources – le processus est assigné à un espace de mémoire virtuel qui maintiendra l’image du processus • Réparti – le processus est composé d’un ou plusieurs programmes L’exécution peut être intercalée avec d’autres processus • Ces deux caractéristiques sont traitées indépendamment par le SE Système d’Exploitation Yann MORÈRE 2004 120/70 Processus • La répartition en sous programmes est connue sous le nom de thread « threading » • Propriété des ressources est connue sous le nom de tâches ou processus Système d’Exploitation Yann MORÈRE 2004 121/70 « Multithreading » • Les système d’exploitation permettent l’exécution de plusieurs threads d’exécution dans un même processus • MS-DOS permet seulement un seul thread • UNIX permet plusieurs processus utilisateur et plusieurs threads par processus • Windows NT permet plusieurs threads Système d’Exploitation Yann MORÈRE 2004 122/70 Threads et Processus Un processus Un thread Un processus Plusieurs threads Plusieurs processus Un thread par processus Plusieurs processus Plusieurs threads par processus Système d’Exploitation Yann MORÈRE 2004 123/70 Processus • Possèdent un espace d’adresse virtuel qui contient l’image du processus • Accès protégés aux processeurs, aux autres processus, aus fichiers et aux ressources d’E/S Système d’Exploitation Yann MORÈRE 2004 124/70 Threads • Possède un état d’exécution (exécution, prêt, etc.) • Sauvegarde du contexte du thread quand il est bloqué • Possède une pile d’exécution • Possède un stockage statique intra-thread des variables locales • Possède un accès à la mémoire et au ressources du processus Tous les threads du processus partagent mémoire et ressources Système d’Exploitation Yann MORÈRE 2004 Modèles de processus MonoThreadé et MultiThreadé Modèle de processus Multithreadé Modèle de processus monothreadé PCB Thread Thread Thread Control Block Thread Control Block Thread Control Block PCB Pile Util. Pile Util. Pile Util. Espace Adresse Utilisateur Pile Kernel Pile Kernel Pile Kernel Pile Util. Espace Adresse Utilisateur Thread Pile Kernel Système d’Exploitation Yann MORÈRE 2004 125/70 126/70 Intérêt des Threads • Moins de temps à créer un thread, qu’un nouveau processus • Moins de temps pour stopper un thread qu’un processus • Moins de temps pour permuter entre deux threads qu’entre deux processus • Comme les threads sont à l’intérieur d’un même processus et partage la mémoire et les ressources, ils peuvent communiquer entre eux sans faire intervenir le noyau Système d’Exploitation Yann MORÈRE 2004 127/70 Threads • Suspendre le processus implique de suspendre tous les treads du processus, comme il partage le même espace d’adresse • Terminer un processus, termine tous les threads du processus Système d’Exploitation Yann MORÈRE 2004 128/70 Threads utilisateurs • Toute la gestion des threads est faite dans l’application • Le noyau n’est pas averti de l’existence de ces threads • La commutation entre threads ne demande pas de mode privilégiés • L’ordonnancement est propre à l’application Système d’Exploitation Yann MORÈRE 2004 129/70 Threads Kernel • Windows NT et OS/2 sont des exemples de cette approche • Le noyau maintient les informations de contexte pour les processus et les threads • La commutation entre 2 threads nécessite l’intervention du noyau Système d’Exploitation Yann MORÈRE 2004 Approches combinées pour les threads • Exemple de Solaris (Sun) • La création de thread est faite dans l’espace utilisateur • L’ordonnacement et la synchronisation sont faits dans l’espace utilisateur Système d’Exploitation Yann MORÈRE 2004 130/70 Relation entre Threads et Processus Threads:Processus Description 131/70 Exemple de système 1:1 Chaque thread d’exécution Est un processus unique Avec son propre espace D’adresse et ressources. La plupart des implémentations d ’Unix M:1 Un processus définit un espace D’adresse et une allocation Des ressources. Plusieurs Threads peuvent être crées et Exécutés dans u processus. Windows NT, Solaris, OS/2, OS/390, MACH Système d’Exploitation Yann MORÈRE 2004 Relation entre Threads et Processus Threads:Processus 1:M M:M Description Un thread peut migrer d’un processus vers un autre. Ceci permet à un thread d’être facilement déplacé parmi des systèmes différents Combine les caractéristiques des cas M:1 et 1:M Système d’Exploitation Exemple de système Ra (Clouds), Emerald TRIX Yann MORÈRE 2004 132/70 Categories de systèmes informatiques • Instruction Unique, Donnée Unique - Single Instruction Single Data (SISD) Un seul processeur exécute un seul flux d’instruction pour manipuler la donnée dans une mémoire • Instruction Unique, Données Multiples - Single Instruction Multiple Data (SIMD) Une instruction est exécutée sur des jeux de données différents sur des processeurs différents Système d’Exploitation Yann MORÈRE 2004 133/70 Categories de systèmes informatiques • Instructions Multiples, Donnée Unique - Multiple Instruction Single Data (MISD) Une sequence de données est transmisse à un jeu de processeurs, chacun d’eux exécute une séquence d’instruction différente. N’a jamais été implémenté • Instructions Multiples, Données Multiples Multiple Instruction Multiple Data (MIMD) Un jeu de processeurs exécute simultanément différentes séquences d’instruction sur différents jeux de données Système d’Exploitation Yann MORÈRE 2004 134/70 Symmetric Multiprocessing (SMP) • Le Kernel peut s’exécuter sur n’importe quel processeur • Tipiquement chaque processeur réalise un auto-ordonnancement à partir du groupe de processus ou threads disponibles Système d’Exploitation Yann MORÈRE 2004 135/70 Organisation du SMP (Symmetric Multiprocessing) Processor Cache Processor Cache Main Memory Système d’Exploitation . . . Processor Cache I/O Subsystem Yann MORÈRE 2004 136/70 137/70 Microkernel - Micronoyau • Petit noyau de système d'exploitation • Ne contient que quelques fonctions essentielles d’un SE • Beaucoup de services traditionnellement inclus dans le SE sont maintenant externes Pilotes de périphériques Système de fichiers Gestionnaire de mémoire virtuelle Système de fenêtrage et services de sécurité Système d’Exploitation Yann MORÈRE 2004 Avantages de l’organisation Microkernel • Uniformisation de l’interface pour les processus demandeurs Tous les services sont fournis par passage de message • Évolution Permet l’ajout de nouveaux services • Flexibilité Les dispositifs existants peuvent être enlever Système d’Exploitation Yann MORÈRE 2004 138/70 Avantages de l’organisation Microkernel • Portabilité Les changements nécessaires au portage du système sur une nouvelle architecture sont effectués dans le microkernel – pas dans les autres services • Fiabilité Conception modulaire De petit microkernel peuvent être testé rigoureusement Système d’Exploitation Yann MORÈRE 2004 139/70 Avantages de l’organisation Microkernel • Support pour système distribué Message envoyé sans connaître la machine cible • SE orienté objet Les composants sont des objets avec des interfaces définies clairement. Ils peuvent être interconnectés pour former un logiciel Système d’Exploitation Yann MORÈRE 2004 140/70 141/70 Conception Microkernel • Gestionnaire de la mémoire primaire Faire correspondre chaque page virtuelle à une trame de page physique • Communication Inter--processus • Gestionnaire E/S et interruption Système d’Exploitation Yann MORÈRE 2004 142/70 Processus Windows NT • Implémentés en objets • Un processus exécutable peut contenir un ou plusieurs threads • Les processus et les threads ont des capacités intrinsèques de synchronisation Système d’Exploitation Yann MORÈRE 2004 Processus Windows NT Attributs de l’objet Process ID Security Descriptor Base priority Default processor affinity Quota limits Execution time I/O counters VM operation counters Exception/debugging ports Exit status Système d’Exploitation Yann MORÈRE 2004 143/70 Thread Windows NT Attributs de l’objet Thread ID Thread context Dynamic priority Base priority Thread processor affinity Thread execution time Alert status Suspension count Impersonation token Termination port Thread exit status Système d’Exploitation Yann MORÈRE 2004 144/70 145/70 États des threads NT Exécutable Choisi pour exécution Veille Preempté Prêt Débloqué/Reprise Resource Disponible Resource Disponible Commutation Transition Attente Exécution Bloqué/ Suspendu Terminate Terminé Débloqué Ressource non disponible Non exécutable Système d’Exploitation Yann MORÈRE 2004 146/70 Solaris • Les processus intègrent l’espace d’adresse utilisateur, la pile et le PCB • Threads utilisateurs • Processus poids légers • Threads kernel Système d’Exploitation Yann MORÈRE 2004 147/70 Threads utilisateur Solaris Stop Runnable Wakeup Continue Preempt Stop Stopped Sleeping Dispatch Stop Sleep Active Système d’Exploitation Yann MORÈRE 2004 Processus poids légers Solaris Timeslice or Preempt Running Wakeup Dispatch Stop Stopped Runnable Blocking System Call Continue Wakeup Active Système d’Exploitation Stop Yann MORÈRE 2004 148/70 Concurrence: Exclusion Mutuelle et Synchronisation Chapitre 5 Système d’Exploitation Yann MORÈRE 2004 149/70 150/70 Concurrence • • • • Communication parmi les processus Partage de ressources Synchronisation de plusieurs processus Allocation du temps processeur Système d’Exploitation Yann MORÈRE 2004 151/70 Problèmes liés à la Concurrence • Partage des ressources globales • Gestion de l’allocation des ressources • Les erreurs de programmation sont difficiles à trouver Système d’Exploitation Yann MORÈRE 2004 152/70 Un exemple simple (pascal) procedure echo; var out, in: character; begin input(in, keyboard); out := in; output(out, display) end. Système d’Exploitation Yann MORÈRE 2004 153/70 Concernant le SE • Garder la trace des processus actif • Alloue et désalloue les ressources Temps processeur Mémoire Fichier Périphériques d’E/S • Protection des données et des ressources • Le résultat du processus doit être indépendant de la vitesse d’exécution puisque d’autres processus partagent le temps processeur Système d’Exploitation Yann MORÈRE 2004 Interaction entre processus 154/70 • Les processus s’ignorent les uns les autres • Les processus sont indirectement avertis des uns des autres • Les processus sont directement avertis des uns des autres Système d’Exploitation Yann MORÈRE 2004 155/70 Compétition parmi les processus pour les ressources • L’exécution d’un processus peut affecter le comportement des processus en compétition • Si deux processus désirent accéder à une ressource unique, la ressource sera allouée à l’un des processus et l’autre devra attendre • Il est aussi possible que le processus bloqué n’accède jamais à la ressource et ne se termine jamais Système d’Exploitation Yann MORÈRE 2004 156/70 Problèmes de Contrôle • Exclusion Mutuelle Sections critiques • Seulement un programme à un instant donné est autorisé dans la section critique • Exemple : seulement un programme à un instant est autorisé à envoyer des commandes à l’imprimante • Deadlock • Famine - Starvation Système d’Exploitation Yann MORÈRE 2004 Coopération par partage parmi les processus • Les processus utilisent et mettent à jour des données partagées telles que des variables, des fichiers et bases de données • L’écriture doit être mutuellement exclusive • Les sections critiques sont utilisées pour assurer l’intégrité des données Système d’Exploitation Yann MORÈRE 2004 157/70 Coopération par communication parmi les processus • Le communication fournit un moyen de synchroniser, ou coordonner les différentes activités • Possibilité d’avoir un « deadlock » Chaque processus attend un message d’un autre processus • Possibilité de famine Deux processus qui s ’envoie des messages pendant qu’un autre processus attend un message Système d’Exploitation Yann MORÈRE 2004 158/70 Conditions d’exclusion mutuelle • Seulement un seul processus à la fois est autorisé à entrer en section critique pour une ressources • Si un processus s’arrête dans sa section critique, il ne doit pas interférer sur d’autres processus • Un processus qui a besoin de la section critique ne doit pas être indéfiniment retardé; pas de « deadlock » ni de famine Système d’Exploitation Yann MORÈRE 2004 159/70 Condition d’exclusion mutuelle • Un processus ne doit pas être retardé pour accéder à la section critique quand il n’y a pas d’autres processus qu’il l’utilise • Aucune supposition ne doit être faite à propose des vitesses des processus et du nombre des processus • Un processus ne peut rester en section critique que pour un temps fini seulement Système d’Exploitation Yann MORÈRE 2004 160/70 Attente Active : BusyWaiting Exemple : Un Igloo a une petite entrée. Seulement un processus à la fois peut entrer pour vérifier une valeur écrite sur le tableau noir. Si la valeur écrite sur le tableau noir est la même que le processus, ce dernier peut entrer en section critique. Si la valeur écrite sur le tableau noir n’est pas celle du processus, le processus quitte l’igloo pour attendre. De temps en temps, le processus rentre de nouveau dans l’igloo pour contrôler le tableau noir Système d’Exploitation Yann MORÈRE 2004 161/70 Attente Active : BusyWaiting • Les processus accède à chacun leur tour (strictement) à la section critique • Si un processus échoue, l’autre processus est bloqué de manière permanente • Chaque processus devrait avoir sa propre clé à la section critique de manière à ce que quand un processus est éliminé, les autres puissent toujours accéder à la section critique Système d’Exploitation Yann MORÈRE 2004 162/70 Attente Active : BusyWaiting Seconde tentative 163/70 • Chaque processus peut examiner le statut de l’autre sans pouvoir le modifier • Quand un processus désire entrer en section critique, il vérifie l’état des autres processus en premier • Si aucun autre processus n’est en section critique, il met à jour son état pour l’accès à la section critique • Cette méthode ne garantie pas l’exclusion mutuelle • Chaque processus peut vérifier les drapeaux et alors entrer en section critique dans le même temps (action atomique) Système d’Exploitation Yann MORÈRE 2004 Attente Active : BusyWaiting troisième tentative • Modifier le drapeau pour entrer en section critique avant de vérifier les autres processus • Si un autre processus est en section critique alors que le drapeau est modifié, le processus est bloqué jusqu’à ce que l’autre processus libère la section critique • Un « Deadlock » est possible quand deux processus modifient leurs drapeaux pour entrer en section critique. Maintenant chaque processus doit attendre que l’autre processus libère la section critique Système d’Exploitation Yann MORÈRE 2004 164/70 Attente Active : Busy-Waiting quatrième tentative • Un processus modifie son drapeau pour indiquer qu’il désire entrer en section critique, mais est préparé à réinitialiser le drapeau • Les autres processus sont vérifiés. S’ils sont en section critique, le drapeau est réinitialiser et repositionner plus tard pour indiquer qu’il désire entrer en section critique. Ceci est répété jusqu’à ce que le processus puisse entrer en section critique Système d’Exploitation Yann MORÈRE 2004 165/70 Attente Active : Busy-Waiting quatrième tentative • Il est possible pour chaque processus de modifier leur drapeau, vérifier les autres processus et initialiser leurs drapeaux. Ce scénario ne dure pas très longtemps, il n’est donc pas bloquant. Mais ceci n’est pas désirable Système d’Exploitation Yann MORÈRE 2004 166/70 Attente Active : BusyWaiting Solution correcte • Chaque processus attends son tour pour accéder en section critique • Si un processus désire la section critique, il modifier son drapeau et devra attendre son tour Système d’Exploitation Yann MORÈRE 2004 167/70 Exclusion Mutuelle – Désactivation d’interruption • Un processus s’exécute jusqu’à ce qu’il fasse une demande de service au SE ou qu’il soit interrompu • Désactiver les interruptions garantit l’exclusion mutuelle • Le processeur est limité sa capacité à permuter les programmes • L’efficacité d’exécution peut être dégradée de manière sensible • Multi-processing Désactiver les interruptions sur un processeur ne garantit pas l’exclusion mutuelle Système d’Exploitation Yann MORÈRE 2004 168/70 Exclusion Mutuelle – Instructions machine • Une seule instruction est utilisée pour mettre à jour un emplacement mémoire de telle sorte que les autres instructions ne peuvent pas interférer • Ceci peut être utilisé pour les systèmes mono et multi processeurs • Ceci peut être utilisé pour les sections critiques multiples Système d’Exploitation Yann MORÈRE 2004 169/70 Exclusion Mutuelle – Instructions machine 170/70 • Inconvénients L’attente active consomme du temps processeur La famine est possible quand un processus quitte la section critique et que plusieurs processus attendent. Qui est le suivant? « Deadlock » • Si un processus à basse priorité est en section critique et qu’un processus de plus haute priorité l’attend, le processus de haute priorité va obtenir le processeur pour attendre la section critique Système d’Exploitation Yann MORÈRE 2004 171/70 Sémaphores • Une variable spéciale appelée sémaphore est utilisée pour caractériser la section critique (signal) • Si un processus attend un signal, il est suspendu jusqu’à ce que le signal soit envoyé • Les opérations d’attente et de transmission de signal ne peuvent pas être interrompu • Une file est utilisée pour conserver la liste des processus qui attendent le sémaphore Système d’Exploitation Yann MORÈRE 2004 Problème du producteur/consommateur • Un ou plusieurs producteurs produisent des items et les placent dans un tampon • Un consommateur prend les items dans le tampon un par un • Seulement un seul producteur ou consommateur peut accéder au tampon à la fois • Deux sémaphores sont utilisés Un, représentant la quantité d’items dans le tampon Un pour signaler qu’il est possible de d’utiliser le tampon Système d’Exploitation Yann MORÈRE 2004 172/70 173/70 Fonction producteur producer: repeat produce item v; b[in] := v; in := in + 1 forever; Système d’Exploitation Yann MORÈRE 2004 174/70 Fonction consommateur consumer: repeat while in <= out do { nothing }; w := b[out]; out := out + 1; consume item w forever; Système d’Exploitation Yann MORÈRE 2004 Producteur avec tampon circulaire producer: repeat produce item v; while ( (in + 1) mod n = out) do { nothing }; b[in] := v; in := (in + 1) mod n forever; Système d’Exploitation Yann MORÈRE 2004 175/70 Consommateur avec tampon circulaire consumer repeat while in = out do { nothing }; w := b[out]; out := (out + 1) mod n; consume item w forever; Système d’Exploitation Yann MORÈRE 2004 176/70 177/70 Tampon infini b[1] b[2] b[3] b[4] b[5] out . . . . in Note: les zones cachées indiquent les portions du tampon occupés Système d’Exploitation Yann MORÈRE 2004 178/70 Le barbier Chaises du Barbier Caisse Entrée Salle d’attente Sortie Sofa Système d’Exploitation Yann MORÈRE 2004 179/70 Moniteurs • Procédures Software • Seulement un seul processus peut s’exécuter dans le moniteur à la fois. Les autres processus sont suspendus pendant qu’ils attendent le moniteur • Les processus peuvent être suspendus lorsqu’ils sont dans le moniteur Système d’Exploitation Yann MORÈRE 2004 180/70 Passage de message • Impose l’exclusion mutuelle • Échange d’information send (destination, message) receive (source, message) Système d’Exploitation Yann MORÈRE 2004 Passage de message Synchronisation • Expéditeur et récepteur peuvent ou pas être bloquant (attente de message) • Envoi bloquant, réception bloquante Expéditeur et récepteur sont bloqués jusqu’à ce que le message soit délivré Appelé un « rendez-vous » Système d’Exploitation Yann MORÈRE 2004 181/70 Passage de message Synchronisation • Envoi non bloquant, réception bloquante L’expéditeur continue d’expédier les messages le plus rapidement possible Le récepteur est bloqué jusqu’à ce que le message demandé soit reçu • Envoi non bloquant, réception non bloquante Système d’Exploitation Yann MORÈRE 2004 182/70 183/70 Adressage • Adressage Direct Les primitives d’envoi inclus un identifiant spécifique du processus déstination La primitive de réception peut connaître à l’avance pour quel processus est destinée ce message La primitive de réception peut utiliser le paramètre source pour retourner un valeur lorsque l’opération de réception est réalisée Système d’Exploitation Yann MORÈRE 2004 184/70 Adressage • Adressage Les messages sont envoyés à une structure de données partagée constituées de files Les files sont appelées « Boîtes aus lettres « mailboxes » Un processus envoie un message à la boîte aux lettres et l’autre processus récupère le message de la boîte aux lettres Système d’Exploitation Yann MORÈRE 2004 Format général d’un message Message Type Destination ID Entête Header Source ID Message Length Control Info. Corps Body Message Contents Système d’Exploitation Yann MORÈRE 2004 185/70 Problème Lecteurs/Écrivains 186/70 • Un nombre indéterminé de lecteurs peut lire simultanément le fichier • Seulement un Écrivain à la fois peut écrire dans le fichier • Si un écrivain écrit dans le fichier, aucun lecteur ne peut y accéder Système d’Exploitation Yann MORÈRE 2004 187/70 Concurrence: « Deadlock » et famine Chapitre 6 Système d’Exploitation Yann MORÈRE 2004 188/70 « Deadlock » • Le blocage permanent un ensemble complet de processus qui sont en compétition pour l’accès à des ressources systèmes ou pour communiquer entre eux • Met en jeu des besoins conflictuels à des ressources par deux ou plusieurs processus Système d’Exploitation Yann MORÈRE 2004 189/70 Exemple de « Deadlock » Progress of Q 2 1 Release A A Required P and Q want A Release B Get A 3 B Required deadlock inevitable P and Q want B 5 Get B 4 6 Get A Get B Release ARelease B Progress of P A Required B Required Système d’Exploitation Yann MORÈRE 2004 190/70 Exemple de « No Deadlock » Progress of Q 1 2 3 Release A A Required Release B 4 P and Q want A Get A P and Q want B B Required 5 Get B 6 Get A Get B Release A Release B Progress of P A Required B Required Système d’Exploitation Yann MORÈRE 2004 191/70 Ressources réutilisables • Utilisée par un seul processus à la fois et n’est pas épuisée par l’utilisation de ce processus • Les processus obtiennent les ressources qui les libèrent plus tard pour une réutilisation par d’autres processus • Le temps processeur, les canaux d’E/S, mémoire primaire et secondaire, fichiers, bases de données et sémaphores • Des « Deadlock » apparaissent si chaque processus conservent une ressource et demande une autre Système d’Exploitation Yann MORÈRE 2004 192/70 Exemple de « Deadlock » • Il y a de la mémoire disponible pour une allocation de 200Ko, et la séquence suivante d’évènements apparaît P1 P2 ... ... Request 80K bytes; Request 70K bytes; Request 60K bytes; Request 80K bytes; ... ... • Un « Deadlock » apparaît si les deux processus réalisent leurs secondes requêtes Système d’Exploitation Yann MORÈRE 2004 193/70 Ressources consommables • Crée (produite) et détruite (consommée) par un processus • Interruptions, signaux, messages, et information dans les tampons d’E/S • Un « Deadlock » peut apparaître si un message de réception est bloqué • Seulement une certaine combinaison d’évènements peut faire apparaître un « deadlock » Système d’Exploitation Yann MORÈRE 2004 194/70 Exemple de « Deadlock » • Un « Deadlock » apparaît si le message « receive » est bloqué P1 P2 ... ... Receive(P2); Receive(P1); Send(P2); Send(P1); ... Système d’Exploitation ... Yann MORÈRE 2004 Conditions pour avoir un « Deadlock » • Exclusion mutuelle Seulement un seul processus peut utiliser une ressource à un instant donné • Prise-et-Attente Un processus peut conserver des ressources allouées tout en attendant l'attribution d'autres • Pas de préemption aucune ressource ne peut être de force enlevée d'un processus la tenant Système d’Exploitation Yann MORÈRE 2004 195/70 Conditions pour avoir un « Deadlock » • Attente circulaire Si il existe une chaîne fermée de processus telle que chaque processus possède au moins une ressource nécessaire par le processus suivant dans la chaîne conséquence des 3 premières conditions • Les autres conditions sont nécessaires mais pas suffisantes pour obtenir un « deadlock » Système d’Exploitation Yann MORÈRE 2004 196/70 197/70 Attente circulaire Resource A sts e u Re q Process P1 Hel dB Hel db y sts e u Req y Resource B Système d’Exploitation Yann MORÈRE 2004 Process P2 Empêchement de « Deadlock » 198/70 • Exclusion mutuelle ne peut pas être empêchée • Prise-et-Attente Nécessite qu’un processus demande toues ses ressources nécessaires en même temps Bloque le processus jusqu’à ce que toutes les demandes puissent être accordées simultanément le processus peut être retardé pendant longtemps en attente de toutes ses demandes Les ressources allouées à un processus peuvent rester inutilisées très longtemps. Ces ressources pourraient être utilisées par d’autres processus Système d’Exploitation Yann MORÈRE 2004 199/70 Empêchement de « Deadlock » • Pas de préemption Si un processus est refusé pour sa requête suivante, le processus doit libérer les ressources qu’il possédait si un processus ne peut pas obtenir une ressource, le processus peut devoir libérer ses ressources. Doit avoir les capacités de reconstituer l'état courant. Pratiquement, seulement quand l’état peut être facilement sauvé et restauré plus tard, tel que le processeur. Système d’Exploitation Yann MORÈRE 2004 200/70 Empêchement de « Deadlock » • Attente circulaire Définit un ordonnancement linéaire pour les ressources Une fois que la ressource est obtenue, seulement les ressources en haut de liste peut être accédées Peut rejeter les ressources non nécessaires Système d’Exploitation Yann MORÈRE 2004 201/70 Détection de « Deadlock » • Le système d’exploitation vérifie les « deadlock » • Vérification à la demande de ressource détection à l’avance de « deadlock » Vérifications fréquentes du temps processeur consommé • Vérification périodique Système d’Exploitation Yann MORÈRE 2004 202/70 Évitement de « Deadlock » • Ne pas démarrer un processus si sa demande peut conduire à une impasse « deadlock » • Ne pas autoriser une demande incrémentale de ressource à un processus si cette allocation peut conduire à une impasse « deadlock » • Préemption et relâchement de processus non nécessaire Système d’Exploitation Yann MORÈRE 2004 203/70 Évitement de « Deadlock » • Le besoin maximum de ressource doit être prévu à l’avance • Les processus pris en considération doivent être indépendant; pas de besoin de synchronisation • Il doit y avoir un nombre fixe de ressources à allouer • Aucun processus ne doit se terminer pendant qu’il possède les ressources Système d’Exploitation Yann MORÈRE 2004 Stratégies une fois l’impasse « deadlock » détectée • Abandonner tous les processus en impasse • Reprendre chaque processus en impasse à la dernière instruction contrôlée, et reprendre tous les processus L’impasse précédente peut lors se reproduire • Abandonner successivement les processus en impasse jusqu’à ce qu’il n’y aie plus d’impasse • Préemption successive des ressources jusqu’à ce qu’il n’y aie plus d’impasse Système d’Exploitation Yann MORÈRE 2004 204/70 Critère de sélection des processus en impasse • Le moins de temps processeur consommé jusqu’ici • Le moins de lignes de sortie produites jusqu’ici • Le plus grand temps restant estimé • Le moins de ressources totales allouées jusqu'ici • Priorité la plus basse Système d’Exploitation Yann MORÈRE 2004 205/70 Problème des philosophes dîneurs Système d’Exploitation Yann MORÈRE 2004 206/70 Mécanismes de concurrence UNIX 207/70 • Tubes « Pipes » Tampon circulaire permettant à deux processus de communiquer File écrite par un processus et lue par un autre le système d'exploitation impose l'exclusion mutuelle pour l'écriture et la lecture la pipe L’écriture des demandes est immédiatement exécutée s'il y a place dans la pipe, autrement le processus est bloqué La demande de lecture est bloquée si elle tente de lire plus d’octets qu’il n’y en a dans le tube Système d’Exploitation Yann MORÈRE 2004 208/70 Mécanismes de concurrence UNIX • Messages block de texte d’un certain type Le récepteur peut retrouver les messages soit par le type, soit par l’ordre FIFO Le processus est suspendu quand il essaie d’envoyé un message à une file pleine Le processus est suspendu quand il essaie de lire une file vide Si un processus échoue en essayant de lire une certain type de message, n’est pas suspendu Système d’Exploitation Yann MORÈRE 2004 209/70 Mécanismes de concurrence UNIX • Mémoire partagée Block commun de mémoire virtuelle partagée par plusieurs processus Forme rapide de la communication interprocessus L’exclusion mutuelle doit être fournie par les processus, et non par le système d’exploitation Système d’Exploitation Yann MORÈRE 2004 210/70 Mécanismes de concurrence UNIX • Sémaphores Attente et signaux Le système d’exploitation fournit toutesces demandes • Signaux Mécanisme logiciel qui informe un processus sur l’occurrence d’un évènement asynchrone Système d’Exploitation Yann MORÈRE 2004 Thread Solaris primitives de Synchronisation • Verrou d’exclusion mutuelle Empêche que plus d’un thread de s’exécuter quand le verrou est posé • Sémaphores Utilisé pour incrémenter et décrémenter (un nombre de ressources) Système d’Exploitation Yann MORÈRE 2004 211/70 Thread Solaris primitives de Synchronisation • Verrous Lecteurs multiples, Ecrivain unique « (readers/writer) locks » Plusieurs threads ont des accès lecture seule simultanément Un seul thread possède l’accès en écriture • Variables condition Utilisée pour attendre jusqu’à ce qu’une condition particulière soit vraie Système d’Exploitation Yann MORÈRE 2004 212/70 Mécanismes de concurrence Windows NT • Objets de Synchronisation processus thread fichier Entrée console Notification de modification fichier Mutex (exclusion mutuelle) sémaphore évènement Timer d’attente Système d’Exploitation Yann MORÈRE 2004 213/70 214/70 Gestion Mémoire Chapitre 7 Système d’Exploitation Yann MORÈRE 2004 215/70 Gestion Mémoire • C’est la tâche gérée par le SE et le matériel pour permettre l’exécution de plusieurs processus en mémoire principale • Si peut de processus peuvent être contenu en mémoire centrale, alors plus le temps que les processus devront attendre la CPU ou les E/S sera long • Par conséquent, la mémoire doit être allouée de manière efficace de manière à contenir un maximum de processus en mémoire • Dans la plupart des cas, le noyau occupe des portions fixes de la mémoire principale et le reste est partagé par les multiples processus Système d’Exploitation Yann MORÈRE 2004 Besoins pour la Gestion Mémoire • « Relocation » Le programmeur ne peut pas savoir ou le programme va être charger en mémoire quand il est exécuté Un processus peut être (souvent) relogé en mémoire centrale à cause du « swapping » Le « swapping » permet au SE d’avoir un plus large éventail de processus prêt à exécuter Les référence mémoire dans le code (pour les instructions et les données) doivent être traduite en une adresse physique de mémoire Système d’Exploitation Yann MORÈRE 2004 216/70 Besoins pour la Gestion Mémoire • Protection Les processus ne doivent pas pouvoir faire référence à des emplacements mémoire d’autres processus sans permissions Il est impossible de vérifier les adresses dans un programme à la compilation, si celui-ci être relogé après un « swapping » Les références d’adresses doivent être vérifiées par le matériel pendant l’exécution Système d’Exploitation Yann MORÈRE 2004 217/70 Besoins pour la Gestion Mémoire 218/70 • Partage Doit autoriser plusieurs processus à accéer à une portion de de mémoire principale commune en évitant le compromis de protection • Les processus coopérant peuvent avoir besoin de partager un accès à la même structure de données • Il est meilleur d’autoriser chaque processus d’accéder à la même copie du programme plutôt que d’avoir chacun sa propre copie Système d’Exploitation Yann MORÈRE 2004 Besoins pour la Gestion Mémoire • Organisation logique Les utilisateurs écrivent des programmes modulaires avec différentes caractéristiques • Les modules d’instructions sont en exécution seule • Les modules de données sont soit en lecture seule soit en lecture écriture • Certains modules sont privés, d’autres sont publics Pour traiter efficacement des programmes utilisateur, le SE et le matériel doivent supporter une forma basic de module pour fournir la protection requise et la partage Système d’Exploitation Yann MORÈRE 2004 219/70 Besoins pour la Gestion Mémoire • Organisation physique La mémoire secondaire permet un stockage à long terme des programmes et des données tandis que le mémoire principale conserve les programmes et les données en cours d’exécution Déplacer des informations entre ces deux niveaux de mémoire et un point très important de la gestion mémoire d’un SE • Il ne faut pas laisser cette responsabilité au programmeur d’application (inefficacité) Système d’Exploitation Yann MORÈRE 2004 220/70 Gestion simple de mémoire 221/70 • Nous étudions ici un cas simple où il n’y a pas de mémoire virtuelle • Un processus exécutant doit être complètement dans la mémoire centrale • Bien que ces techniques de gestion ne soient plus utilisées dans les SE modernes, elles posent les bases pour une bonne compréhension de la mémoire virtuelle Partitionnement fixe Partitionnement dynamique Pagination simple Segmentation simple Système d’Exploitation Yann MORÈRE 2004 Partitionnement fixe 222/70 • Partitionnement de la mémoire principale en un ensemble de zones distinctes (qui ne se recouvrent pas) appelées Partitions • Les partitions peuvent être de taille égale ou non Système d’Exploitation Yann MORÈRE 2004 Partitionnement fixe 223/70 • Tous les processus dont la taille est inférieure ou égal à la taille de la partition peut être chargé dans la partition • Si toutes le partitions sont occupées, le SE peut « swapper » un processus de la partition • Un programme peut être trop grand pour tenir partition. Le programmeur doit alors concevoir le programme avec des recouvrements « overlays » Lorsque le module nécessaire n’est pas présent le programme utilisateur doit être chargé ce module dans la partition du programme, recouvrant le programme ou les données qui y s’y trouvent Système d’Exploitation Yann MORÈRE 2004 224/70 Partitionnement fixe • L’utilisation de la mémoire principale est inefficace. N’importe quel programme (même petit) occupe une partition entière. On appelle cela la fragmentation interne. • Les partitions de taille inégale diminue ce problème mais il est toujours existant... • Les partitions de taille égale ont été utilisées sur les premiers SE d’IBM MFT (Multiprogramming with a Fixed number of Tasks) Système d’Exploitation Yann MORÈRE 2004 Algorithme de placement pour partitions • Partition de taille égale S’il y a une partition disponible, un processus peut être chargé dans cette partition • Parce que toutes les partitions sont de taille identique, la partition qui est utilisée n’a pas d’importance Si toutes les partitions sont occupées par des processus bloquant, il faut choisir une processus à « swapper » pour faire de la place à un nouveau processus Système d’Exploitation Yann MORÈRE 2004 225/70 Algorithme de placement pour partitions • Partitions de taille inégale : utilisations de plusieurs files • Assigne chaque processus à la partition la plus petite dans laquelle il tient Une file pour chaque taille de partition Essaie de minimiser la fragmentation interne Problème : des files seront vides si aucun processus ne fait la bonne taille pour être ranger dedans Système d’Exploitation Yann MORÈRE 2004 226/70 Algorithme de placement pour partitions • Partitions de taille inégale : utilisations d’une seule file Quand c’est le moment de charger un processus en mémoire, la plus petite partition qui peut contenir le programme est sélectionnée Accroît le degrès de multiprogrammation au dépend de la fragmentation interne Système d’Exploitation Yann MORÈRE 2004 227/70 Partionnement dynamique 228/70 • Les partitions sont en nombre variable et de taille variable • A Chaque processus est alloué exactement la quantité de mémoire dont il a besoin • Éventuellement des trous apparaissent dans la mémoire centrale. Cela s’appelle la fragmentation externe • Il faut utiliser la défragmentation pour déplacer les processus de telle manière qu’ils soient contigus en mémoire et que la mémoire libre soit d’un block • Utilisé sur le SE d’IBM MVT (Multiprogramming with a Variable number of Tasks) Système d’Exploitation Yann MORÈRE 2004 Partionnement dynamique : un exemple • Un trou de 64K reste après le chargement de 3 processus : plus assez pour une autre processus • Si les processus 1,2 et 3 sont bloqués, le SE « swappe » le processus 2 pour charger le processus 4 Système d’Exploitation Yann MORÈRE 2004 229/70 Partionnement dynamique : un exemple 230/70 • Une autre trou de 96K est crée • Si les processus 1 et 2 sont bloqués, le SE « swappe » le processus 1 et ramène le processus 2, et un autre trou de 96K est crée... • La défragmentation devrait produire un unique trou de 256K Système d’Exploitation Yann MORÈRE 2004 Algorithme de placement • Utilisé pour décider quel block libre sera utiliser pour un processus • But : réduire l’usage de la défragmentation (temps cpu utilisé) • Algorithmes possibles : Meilleur zone : choisir le plus petit trou Première zone : choisir le premier trou à partir du début Prochaine zone : choisir le prochain trou à partir de la zone de placement Système d’Exploitation Yann MORÈRE 2004 231/70 Algorithmes de placement : remarques 232/70 • Prochaine zone conduit souvent à l’allocation de la plus grande zone mémoire en fin de mémoire centrale • Première zone favorise les allocations en début de mémoire : occasionne moins de fragmentation que « prochaine zone » • Meilleure zone cherche le plus petit block : le fragment laissé ensuite est le plus petit possible La mémoire principale contient alors des trous si petits qu’il n’est plus possible de mettre aucun processus à l’intérieur : la défragmentation doit être faite plus souvent Système d’Exploitation Yann MORÈRE 2004 233/70 Algorithme de Remplacement • Quand tous les processus en mémoire centrale sont bloqués, le SE doit choisir quel processus remplacer Un processus doit être « swappé » (état bloqué-suspendu) et remplacé par un nouveau processus de la file suspendu-prêt Ceci sera discuté plus tard lors de la gestion de la mémoire virtuelles Système d’Exploitation Yann MORÈRE 2004 234/70 Système « Buddy » • Un compromis raisonnable pour surmonter les inconvénients des deux méthodes de partitionnement fixe et variable • Un forme modifiée est utilisée dans Unix SVR4 pour l’allocation mémoire du noyau • Les blocks mémoire sont disponibles en taille de 2^{K} où L <= K <= U et où 2^{L} = taille du plus petit block allouable 2^{U} taille du plus grand block allouable (généralement, la taille de la mémoire globale) Système d’Exploitation Yann MORÈRE 2004 Système « Buddy » 235/70 • On commence avec le block entier de taille 2^{U} • Quand une demande de taille S est faite : Si 2^{U-1} < S <= 2^{U} alors allouer le block entier de taille 2^{U} Sinon, couper en deux « buddies », chacun de taille 2^{U1} Si 2^{U-2} < S <= 2^{U-1} alors allouer un des deux buddies Sinon un des deux buddies est coupé en 2 • The procédé est répété jusqu’à ce que le plus petit block supérieur ou égal à S soit généré • Deux « buddies » sont fusionnés lorsque 2 d’entre eux sont non alloués Système d’Exploitation Yann MORÈRE 2004 236/70 Système « Buddy » • Les SE maintiennent plusieurs liste de « trou » La i-list est la liste des trous de taille 2^{i} Chaque fois qu’il y a une paire de « buddies » dans la i-list, il sont supprimés de cette liste et fusionnés en un seul trou dans la (i+1)-list • Présentation d’une requête de taille k telle que 2^{i-1} < k <= 2^{i}: La i-list est examinée en premier Si la i-list est vide, la (i+1)-list est examinée... Système d’Exploitation Yann MORÈRE 2004 Exemple de système Buddy Système d’Exploitation Yann MORÈRE 2004 237/70 Système Buddy : remarques • En moyenne, la fragmentation interne est de internal Chaque block mémoire est occupé au moins à 50% • Les programmes ne sont pas déplacés en mémoire Simplifie la gestion mémoire • La plupart du temps efficace quand la taille M de la mémoire utilisée par la système « buddy » est une puissance de 2 M = 2^{U} octets où U est un entier Alors la taille de chaque blocks est une puissance de 2 Le plus petit block est de taille 1 Ex: si M = 10, alors le plus petit block serait de taille 5 Système d’Exploitation Yann MORÈRE 2004 238/70 239/70 Relogement • A cause du « swapping » et défragmantation, un processus peut occupé différent emplacement mémoire pendant sa durée de vie • Par conséquent, les références de la mémoire physique ne peuvent pas être détermminée par le processus • Ce problème est résolu par la distinction entre adresse physique et adresse logique Système d’Exploitation Yann MORÈRE 2004 Type d’adresses 240/70 • Une adresse physique (adresse absolue) est un emplacement physique en mémoire centrale • Une adresse logique est une référence à un emplacement mémoire indépendant de la structure/organisation physique de la mémoire • Les compilateurs produisent du code dans lequel toutes les références mémoires sont des adresses logiques • Une adresse relative est un exemple d’adresse logique dans laquelle l’adresse est exprimée comme un emplacement relatif à un point connu du programme (ex.: le début) Système d’Exploitation Yann MORÈRE 2004 Traduction d’adresse • Une adresse relative est le type le plus fréquent d’adresse logique utilisées dans les modules programmes (fichiers exécutables) • De tels modules sont chargés dans la mémoire centrale avec toutes les références mémoire sous forme relatives • Les adresses physiques sont calculées « à la volée » lorsque les instructions sont exécutées • Pour une bonne performance, la traduction de la forme relative à l’adresse physique doit être faite par le matériel Système d’Exploitation Yann MORÈRE 2004 241/70 Exemple simple de traduction matériel d’adresse 242/70 • Lorsqu’un processus passe à l’état exécutant, un registre de base (en CPU) est chargé avec l’adresse physique de début du processus • Un autre registre de borne est chargé avec l’adresse physique de fin du processus • Quand une adresse relative est rencontrée, elle est ajoutée au contenu du registre de base pour obtenir une adresse physique qui est comparée au contenu du registre de borne • Ceci fournit une protection matériel : chaque processus peut uniquement accéder à la mémoire qui lui est allouée Système d’Exploitation Yann MORÈRE 2004 Exemple simple de traduction matériel d’adresse Système d’Exploitation Yann MORÈRE 2004 243/70 244/70 Pagination simple • La mémoire principale est partionnée en morceau de taille fixes (relativement petite) • Astuce : chaque processus est aussi divisé en morceau de la même taille appelés pages • Les pages du processus peuvent être assignées aux morceaux disponibles de la mémoire centrale appelés trames (ou trame de pages) • Conséquence : un processus n’a pas besoin d’occuper des portions contiguës de la mémoire Système d’Exploitation Yann MORÈRE 2004 Exemple de chargement de processus 245/70 • Maintenant, supposons que le processus B est « swappé » sur disque Système d’Exploitation Yann MORÈRE 2004 Exemple de chargement de processus (suite) • Quand le processus A et C sont bloqués, le gestionnaire de pagination charge un nouveau processus D de composé 5 pages • Le processus D n’occupe pas des parties contiguës de la mémoire • Il n’y a pas de fragmentation externe • La fragmentation interne est seulement produite par la dernière page de chaque processus Système d’Exploitation Yann MORÈRE 2004 246/70 Tables des pages 247/70 • Le SE a maintenant besoin de conserver (en mémoire centrale) une table de pages pour chaque processus • Chaque entrée de la table de page est composée d’un numéro de trame ou la page est physiquement localisée • La table de page est indexée par le numéro de page pour obtenir le numéro de trame • Une liste des trames libres (disponibles pour des pages) est aussi maintenue Système d’Exploitation Yann MORÈRE 2004 Adresse logique utilisée en pagination 248/70 • A l’intérieur de chaque programme, chaque adresse logique doit être composée d’un numéro de page et d’un offset à l’intérieur de la page • Un registre CPU conserve toujours l’adresse de départ de la table de page du processus exécutant courant • Quand une adresse logique est présentée (numéro de page, offset), le processeur accède à la table de page pour obtenir l’adresse physique (numéro de trame, offset) Système d’Exploitation Yann MORÈRE 2004 Adresse logique en pagination 249/70 • L’adresse logique devient une adresse relative lorsque la taille de la page est une puissance de 2 • Ex. : si des adresse 16 bits sont utilisée et que la taille de la page est de 1K, nous avons besoin de 10 bits pour l’offset et nous avons 6 bits disponibles pour le numéro de page • Alors l’adresse de 16 bits est obtenue avec les 10 bits de poids faible pour l’offset, et les 6 bits de poids fort pour le numéro de page, et est une zone relative au début de la zone mémoire du processus Système d’Exploitation Yann MORÈRE 2004 250/70 Adresse logique en pagination • En utilisant une puissance de 2 pour la taille de page, les pages sont invisibles pour le programmeur, compilateur/assembleur et l’éditeur de lien • La conversion d’adresse en temps réel (en exécution) est facile à implémenter de manière matériele Les adresses logique (n,m) seront converties en adresse physiques (k,m) par l’indexation de la table de page et en lui rajoutant le même offset m au numérode trame k Système d’Exploitation Yann MORÈRE 2004 Conversion d’adresse logiquephysique en pagination Système d’Exploitation Yann MORÈRE 2004 251/70 Segmentation simple 252/70 • Chaque programme est divisé en blocks de taille inégale nommée segments • Lorsqu’un processus est chargé en mémoire, ces différents segments peuvent être localisé n’importe où. • Chaque segment contient un ensemble complet d’instructions/données : il n’y a pas de fragmentation interne • Il y a de la fragmentation externe; elle est réduit si on utilise des segments de petite taille Système d’Exploitation Yann MORÈRE 2004 Segmentation simple 253/70 • Au contraire de la pagination, la segmention est visible pour le programmeur Elle est fournie comme une a facilité pour organiser logiquement des programmes (ex : données dans un segment, code dans un autre) Doit avoir la connaissance de la taille limite du segment • Le SE conserve une table de segment pour chaque processus. Chaque entrée contient : L’adresse physique de départ de ce segment La longueur de ce segment (pour la protection) Système d’Exploitation Yann MORÈRE 2004 Adresse logique utilisée en segmentation 254/70 • Quand un processus passe à l’état exécution, un registre CPU est chargé avec l’adresse de la table de segments du processus • Lorsqu’on présente une adresse logique (numéro de segment, offset)=(n,m), la CPU indexe (avec n) la table de segment pour obtenir l’adresse physique de départ k et la longueur l de ce segment • L’adresse physique est obtenue en ajoutant m à k (différent de la pagination) Le matériel compare aussi l’offset m avec la longueur l du segment pour vérifier que l’adresse soit valide Système d’Exploitation Yann MORÈRE 2004 Conversion d’adresse logiquephysique en segmentation Système d’Exploitation Yann MORÈRE 2004 255/70 Comparaison de la pagination simple et de la segmentation 256/70 • La segmentation demande un matériel plus compliqué pour la conversion d’adresse • La segmentation souffre de fragmentation externe • La pagination possède seulement une petite fragmentation interne • La segmentation est visible par le programmeur alors que la pagination est transparente • La segmentation peut être vue comme une commodité offerte au programmeur pour organiser logiquement un programme en segments et utiliser différents type de protection (ex. : exécution seul pour le code, lecture/écriture pour les données) Pour cela il est nécessaire d’utiliser les bits de protection dans les entrées de la table Système d’Exploitation Yann MORÈRE 2004 257/70 Linking and Loading Annexe au chapitre 7 Système d’Exploitation Yann MORÈRE 2004 Étapes pour le chargement d’un processus en mémoire • L’éditeur de lien fusionne les fichiers objets en un fichier exécutable unique (programme exécutable) • Le chargeur place le programme exécutable en mémoire Système d’Exploitation Yann MORÈRE 2004 258/70 259/70 Fichier objet (sans segmentation) • Seulement le code et les données seront chargés en mémoire Le reste est utilisé par l’éditeur de lien et ensuite enlevé • Les noms publiques sont utilisables par d’autres fichiers objets • Les noms externes sont définis dans d’autres fichiers objets Inclus la liste des instructions qui possèdent ces noms comme opérandes • Toutes les adresses sont relatives à un point de référence dans le fichier • Dictionnaire de readressage : Possède la liste des instructions des opérandes qui sont adressés (puisqu’ils sont réadressables) Système d’Exploitation End of module Relocation dictionary Data Machine code External names table Public names table Module identification Yann MORÈRE 2004 260/70 Fichier objet (avec segmentation) • Nous avons en plus des informations concernant tous les segments qui sont présents dans le fichiers objets Nous avons différents types de segments (ex. : segments de code, segments de données…) Chaque segment possède un nom Pour chaque segment, nous indiquons comment il va être combiné à d’autres segments de même nom localisés dans d’autres modules. Nous pouvons avoir : • Tous les segments de même nom seront concaténés en un seul segment • Tous les segments de même nom resteront intacts Système d’Exploitation Yann MORÈRE 2004 Espace d’adresses pour les fichiers objet • Initialement, chaque fichier objet possède sont propre espace d’adresses. Mais l’éditeur de lien peut modifier cela • Sans segmentation (voir figure): Tous les modules seront liés dans le même espace d’adresses (linéaire) C’est la cas le plus fréquent (Ex. : Windows 95/98/NT et Unix sur Pentium) • Avec segmentation: Chaque segment distinct possédera son propre espace d’adresses (Ex. : OS/2 sur Pentium) Système d’Exploitation Yann MORÈRE 2004 261/70 Fonction d’édition de liens et de chargement • L’éditeur de liens utilise des tables de les fichiers objet pour lier les fichiers (modules ou segment de même nom) en un seul espace d’adresses linéaire • Les nouvelles adresse sont toujours des adresses logiques (relative au début du fichier exécutable) • Le chargeur place le programme exécutable en mémoire physique • Les adresses physiques sont calculées pendant l’exécution , le programme exécutable est relogeable en mémoire physique Système d’Exploitation Yann MORÈRE 2004 262/70 263/70 La Pile Utilisateur • Le programmeur peut spécifier la taille de la pile utilisateur en utilisant une option du programme d’édition de liens • Seulement la taille de la pile est stockée dans le programme exécutable (fichier binaire) • La pile est effectivement allouée au chargement Si la segmentation est utilisée, un segment séparé est utilisé pour la pile Si la segmentation n’est pas utilisée, la pile est chargée en mémoire juste après le code et les données Système d’Exploitation Yann MORÈRE 2004 Édition de liens dynamique 264/70 • Dans certain cas, l’édition de liens de certains modules externes est faite après la création du programme exécutable Windows : les modules externes sont les fichiers DLL Unix: les modules externes sont les fichiers SO (shared Object) • Le programme exécutable contient des références à un module externe qui sont réalisées soit : Au chargement (édition de liens dynamique au chargement) À l’exécution : quand un appel est fait à une procédure définie dans le module externe (edition de lien dynamique à l’exécution) • Dans chaque cas : le SE trouve le module externe et le lie au programme exécutable Système d’Exploitation Yann MORÈRE 2004 Avantages de l’édition de liens dynamique • Les modules externes sont souvent des utilitaire su SE. Les fichiers exécutables peuvent utiliser un autre version de modules externes sans avoir besoin d ’être modifiés • Partage de code : le même module externe a besoin d’être chargé en mémoire seulement un seule fois. Chaque processus est lié au même module externe Permet de sauver l’espace mémoire et disque Système d’Exploitation Yann MORÈRE 2004 265/70 Mémoire virtuelle Chapitre 8 Caractéristiques de la pagination et de la segmentation • Les références mémoire sont traduites dynamiquement en adresses physiques à l’exécution du programme Un processus peut être « swappé » de telle manière qu’il occupe différente régions au court du temps • Un processus peut être divisé en parties qui ne doivent pas obligatoirement être placées dans les parties contiguës de mémoire Toutes les parties du programme n’ont pas besoin d’être chargées en mémoire pendant l’exécution Système d’Exploitation Yann MORÈRE 2004 267/70 268/70 Exécution d’un programme • Le SE charge en mémoire quelques morceaux du programme • C’est la partie résidente qui se trouve alors en mémoire • Une interruption est générée quand une adresse qui n’est pas en mémoire est nécessaire • Le SE place alors le processus à l’état suspendu/bloqué Système d’Exploitation Yann MORÈRE 2004 269/70 Exécution d’un programme • Un morceau de processus qui contient l’adresse logique est chargé en mémoire centrale Le SE réalise un demande de lecture E/S sur le disque Un autre processus est alors passé à l’état exécutant a lieu Un interruption apparaît lorsque l’E/S est terminée, le SE place alors le processus associé à l’état Prêt Système d’Exploitation Yann MORÈRE 2004 Avantages du morcellement de processus • Plus de processus peuvent être conservés en mémoire On charge seulement quelques partie de chaque processus • Avec beaucoup de processus en mémoire, il y aura toujours un processus prêt à être exécuter en mémoire • Il est possible d’avoir des processus qui soient plus grand que la taille mémoire maximale Système d’Exploitation Yann MORÈRE 2004 270/70 Avantages du morcellement de processus • Le programmeur utilise la taille du disque dur comme taille mémoire • Ce serait inutile de charger en mémoire les processus complet, alors que seulement une petite partie est utilisée • On économise aussi du temps, car les parties inutilisées ne sont pas « swappée » de la mémoire Système d’Exploitation Yann MORÈRE 2004 271/70 272/70 Types de mémoire • Mémoire réelle Mémoire principale • Mémoire virtuelle Mémoire sur disque (swap) Système d’Exploitation Yann MORÈRE 2004 273/70 « Thrashing » • « Swapper » hors de la mémoire un morceau de processus juste avant que ce morceau soit nécessaire • Le processeur passe alors le plus clair de son temps à « swapper » des morceaux plutôt que d’exécuter des instructions Système d’Exploitation Yann MORÈRE 2004 274/70 Principe de Localité • Les références d’un programme et de ses données à l’intérieur d’un processus tendent à se regrouper • Seulement un petit nombre de morceaux de processus seront nécessaires sur une courte période • Il est possible de deviner intelligemment quel morceau de programme sera utile dans le futur • Ceci suggère que la mémoire virtuelle devra fonctionner efficacement Système d’Exploitation Yann MORÈRE 2004 Besoins pour la mémoire virtuelle • Le matériel doit supporter la pagination et la segmentation • Le SE doit être capable de gérer le déplacement de pages et/ou de segments entre la mémoire primaire et secondaire Système d’Exploitation Yann MORÈRE 2004 275/70 276/70 Pagination • Chaque processus a sa propre table de page • Chaque entrée de la table de page contient le numéro de trame qui correspond à la page en mémoire centrale • Un bit est nécessaire pour indiquer si la page est en mémoire ou non Système d’Exploitation Yann MORÈRE 2004 Bit de modification dans la table de page • Un bit est nécessaire pour indiquer si la page a été modifiée depuis son chargement en mémoire principale • Si aucun changement a été fait, la page n’a pas besoin d’être sur le disque quand on a besoin de la « swapper » Système d’Exploitation Yann MORÈRE 2004 277/70 278/70 Pagination Virtual Address Virtual Address Page Number Offset Page Numbe r Page Table Entry P M Other Control Bits Offset Frame Number Page Table Entry P M Other Control Bits Système d’Exploitation Frame Number Yann MORÈRE 2004 Conversion d’adresse dans un système à pagination Virtual Address Page # Offset Frame # Offset Register Page Table Ptr Page Table Offset + P# Page Frame Frame # Program Paging Système d’Exploitation Main Memory Yann MORÈRE 2004 279/70 280/70 Partage de pages • Si on partage le même code entre différent utilisateurs, il est suffisant de conserver seulement une copie en mémoire principale • Le code partagé doit être ré-entrant(i.e. : pas automodifiant), de telle sorte que deux ou plusieurs processus puissent exécuter le même code • Si on utilise la pagination, chaque processus partageant va avoir une table de page aqvec des entrées qui pointent sur les mêmes trames : une seule copie est conservées en mémoire • Mais chaque utilisateurs doit avoir ses propres pages de données provées Système d’Exploitation Yann MORÈRE 2004 Partage de pages : un éditeur de texte Système d’Exploitation Yann MORÈRE 2004 281/70 282/70 Tables de page • Les tables de page peuvent nécessiter trop de mémoire principale • Les tables de page sont aussi stockées en mémoire virtuelle • Quand un processus est exécutant, une partie de ses pages est en mémoire principale Système d’Exploitation Yann MORÈRE 2004 Tampon de conversion « Translation Lookaside Buffer » • Chaque référence en mémoire virtuelle peut nécessiter deux accès à la mémoire physique Un pour retrouver la table de page Et l’autre pour récupérer la donnée • Pour éviter ce problème, un cache spécial est crée pour les entrées de la table de page Appelé le TLB - Translation Lookaside Buffer Système d’Exploitation Yann MORÈRE 2004 283/70 Tampon de conversion « Translation Lookaside Buffer » • Contient les entrées de la table de page qui ont été récemment les plus utilisées • Fonctionne de manière similaire au cache de la mémoire principale Système d’Exploitation Yann MORÈRE 2004 284/70 Tampon de conversion « Translation Lookaside Buffer » • Étant donné une adresse virtuelle, le processeur examine le TLB • Si l’entrée de la table de page est présente (hit), le numéro de trame est retrouvé et l’adresse réelle formée • Si l’entrée de la table de page n’est pas présente (misst), le numérode page est utilisé pour indexé la table de page du processus Système d’Exploitation Yann MORÈRE 2004 285/70 Tampon de conversion « Translation Lookaside Buffer » • Teste en premier si une page est déjà en mémoire Si pas en mémoire principale, un défaut de page apparaît • Le TLB est mis à jour, de manière à inclure la nouvelle entrée de page Système d’Exploitation Yann MORÈRE 2004 286/70 Utilisation du TLB « Translation Lookaside Buffer » Secondary Memory Main Memory Virtual Address Page # Offset Translation Lookaside Buffer TLB hit Offset Load page Page Table TLB miss Frame # Offset Real Address Page fault Système d’Exploitation Yann MORÈRE 2004 287/70 288/70 START Opération du TLB CPU checks the TLB Page table entry in TLB? Yes No Access page table No Page fault handling routing Page in main memory? Yes Update TLB Système d’Exploitation CPU generates Physical Address Yann MORÈRE 2004 289/70 Routine de gestion de défaut de Page Memory full? Yes Perform Page Replacement No OS instructs CPU to read the page from disk CPU activates I/O Hardware Page transferred from disk to main memory Page tables updated Système d’Exploitation Yann MORÈRE 2004 290/70 TLB : Commentaires • TLB utilise un matériel de mappage associatif pour simultanément interroger toutes les entrées TLB pour trouver le bon numéro de page • Le TLB doit être modifié à chaque fois qu’un nouveau processus passe à l’état exécutant • La CPU utilise 2 niveaux de cache sur chaque référence de mémoire virtuelle En premier le TLB : pour convertir l’adresse logique en adresse physique Un fois que l’adresse physique est formée, la CPU cherche dans le cache l’adresse référencée Système d’Exploitation Yann MORÈRE 2004 Tables de pages et mémoire virtuelle 291/70 • La plupart des ordinateurs supportent un espace d’adresse très large 32 à 64 bits sont utilisés pour ces adresses logiques Si (seulement) 32 bits sont utilisés avec des pages de 4Ko, une table peut contenir 2^{20} entrées • La table entière de page peut saturer la mémoire principale. Par conséquent, les tables de pages sont souvent stockées en mémoire virtuelle et sujettes à la pagination Quand un processus est exécutant, une partie de sa table de pages doit être chargées en mémoire principale (incluant l’entrée de la table de pages de la page courante exécutante) Système d’Exploitation Yann MORÈRE 2004 Tables de pages multi-niveaux 292/70 • Puisqu’une table de pages requiert généralement plusieurs pages pour le stockage. Une des solution est d’organiser les tables de pages en une hiérarchie multiniveau Lorsque 2 niveaux sont utilisés (ex: 386, Pentium), le numéro de page est coupé en deux nombre P1 et P2 P1 indexe la table de page de plus haut niveau (répertoire) en mémoire principale dont les entrées pointent sur une page contenant les entrées de la table de pages qui est indexée par P2. Les tables de pages autres que le répertoire sont « swappées » si nécessaire Système d’Exploitation Yann MORÈRE 2004 Mémoire virtuelle sur Windows NT (Intel x86) 293/70 • Utilise uniquement la pagination pas de segmentation) avec des taille de pages de 4KB • Chaque processus contient 2 niveaux de tables de pages : Un répertoire de page contenant 1024 entrées de répertoire de pages (PDEs) de 4 octets chacune Chaque entrée du répertoire de pages pointe sur une table de pages qui contient 1024 entrées de tables de pages (PTEs) de 4 octets chacune On a donc 4Mo de tables de pages par processus Le répertoire de pages est en mémoire principale, mais les tables de pages qui contiennent les PTEs sont « swappées » si nécessaire Système d’Exploitation Yann MORÈRE 2004 Mémoire virtuelle sur Windows NT (Intel x86) 294/70 • Les adresses virtuelles (p1, p2, d) utilisent 32 bits où p1 et p2 ont une longueur de 10 bits p1 sélectionne une entrée dans le répertoire de pages qui pointe sur une table de pages p2 sélectionne une entrée de cette table de page qui pointe sur la page sélectionnée • Lors de création, NT donne seulement un certain nombre de pages virtuelles à un processus et réserve un certain nombre d'autres pages pour les futurs besoins • Par conséquent, un groupes de bits dans chaque PTE indiquent if la page correspondante est réalisée, réservée ou non utilisée Système d’Exploitation Yann MORÈRE 2004 Mémoire virtuelle sur Windows NT (Intel x86) 295/70 • Une référence mémoire à une page non utilisée conduit à une erreur de protection (dans le SE) • Chaque PTE contient aussi : Un bit de présence Si fixé : 20 bits sont utilisés pour l’adresse de trame de la page sélectionnée • Sinon ces bits sont utilisés pour localiser la page sélectionnée dans une fichier de pagination (sur disque) Quelques bits identifient le fichier de pagination utilisé Un bit « dirty » (i.e. : une bit de modification) Quelques bits de protection (ex: lecture seule, lecture/écriture) Système d’Exploitation Yann MORÈRE 2004 Table de pages inversée 296/70 • Une autre solution (PowerPC, IBM Risk 6000) au problème de conservation de larges tables de pages est d’utiliser une table de pages inversée (IPT) • On a généralement une seule IPT pour la totalité du système • Il y a seulement une entrée IPT par trame physique (plutôt qu’une par page virtuelle) Ceci réduit beaucoup la quantité de mémoire nécessaire pour les tables de pages • La première entrée de l’IPT est pour la trame 1… la n-ième entrée pour la trame et chaque entrée contient un numéro depage virtuelle • Ainsi cette table est inversée Système d’Exploitation Yann MORÈRE 2004 Table de pages inversée • L’ID du processus avec le numéro de page virtuelle pourrait être utilisé pour rechercher l’IPT pour obtenir la trame • Pour de meilleure performance, le hachage est utilisé pour obtenir une entrée de la table de hachage qui pointe sur une entrée IPT Un défaut de page apparaît si aucun résultat n’est trouvé Le chaînage est utilisé pour gérer le dépassement de hachage Système d’Exploitation Yann MORÈRE 2004 297/70 298/70 Taille de page • Plus la taille des pages est petite, plus le taux de fragmentation interne est petit • Plus la taille des pages est petite, plus le nombre de pages par processus est important • Un plus grand nombre de pages implique des tables de pages plus grande • Un plus grand nombre de tables de pages implique un grande partie de ces tables en mémoire virtuelle • La mémoire secondaire doit être conçue de manière à transférer efficacement de large blocks de données. Donc des pages plus grande est est meilleur Système d’Exploitation Yann MORÈRE 2004 299/70 Taille de page • Petite page, un grand nombre de pages sera trouvé en mémoire principale • Au fur et à mesure de l’exécution, les pages en mémoire en mémoire vont toutes contenir des morceaux de programme avec des références récentes. Le défaut de page va donc diminuer • Augmenter la taille de page implique que les pages vont contenir des adresses au-delà des références récentes. Le défaut de page va augmenter Système d’Exploitation Yann MORÈRE 2004 300/70 Taille de page • Des tailles de page multiples offre une flexibilité nécessaire au bon fonctionnement de la TLB • De grande pages peuvent être utilisées pour les instructions programme • Les petites pages peuvent être utilisées pour les threads Système d’Exploitation Yann MORÈRE 2004 301/70 Segmentation • Peut être dynamique • Simplifie la gestion du grossissement des structures de données • Permet la modification de programme indépendamment de la recompilation • Utilisée pour la partage de données entre processus • Se prête à la protection Système d’Exploitation Yann MORÈRE 2004 302/70 Tables de segment • Chaque entrée contient l’adresse de départ du segment correspondant en mémoire principale • Chaque entrée contient la longueur du segment • Un bit est nécessaire pour déterminer si le segment est déjà chargé en mémoire • Un bit est nécessaire pour déterminer si le segment a déjà été modifié depuis son chargement en mémoire principale Système d’Exploitation Yann MORÈRE 2004 303/70 Segmentation Virtual Address Segment Number Offset Virtual Address Number Segment TableSegment Entry Offset Segment Table Entry P M Other Control BitsControl Bits Length P M Other Length Système d’Exploitation Segment Base Segment Base Yann MORÈRE 2004 Conversion d’adresse dans un système à segmentation 304/70 Virtual Address Seg # Segment Table + Offset = d Base + d Register Seg Table Ptr d + S# Segment Segment Table Length Base Program Segmentation Système d’Exploitation Main Memory Yann MORÈRE 2004 Segmentation : commentaires 305/70 • Dans chaque entrée de la table de segmendu segment Les segment peut alors grossir ou diminuer dynamiquement si besoin est La validité de l’adresse peut être facilement vérifiée avec l’information de longueur • Mais les segments de taille variable introduise de la fragmentation externe et deviennent de plus en plus difficile à « swapper »… • Il est naturel de fournir protection et partage au niveau du segment dès que les segments sont visibles au programmeur (les pages en le sont pas) • Bits de protection utiles dans l’entrée de la table de segments: Bit de lecture seule/lecture-écriture Bit administrateur/utilisateur Système d’Exploitation Yann MORÈRE 2004 Partage dans les systèmes à segmentation • Des segments sont partagés lorsque les entrées dans les tables de segment de deux processus différents pointent sur les même zone physique • Ex : le même code d’un éditeur de texte peut être partagé par plusieurs utilisateurs Seulement un seule copie est conservée en mémoire principale • Mais chaque utilisateur aura besoin de conserver son propre segment de données privées Système d’Exploitation Yann MORÈRE 2004 306/70 Partage de segments : exemple de l’éditeur de texte Système d’Exploitation Yann MORÈRE 2004 307/70 Pagination et segmentation combinée • La pagination est transparente pour le programmeur • La pagination élimine la fragmentation externe • La segmentation est visible par le programmeur • Le segmentation permet le grossissement des structures de données, la modularité et le support pour le partage et la protection • Chaque segment est découpé en pages de taille fixe Système d’Exploitation Yann MORÈRE 2004 308/70 Pagination et segmentation combinée Virtual Address Segment Number Page Numbe r Offset Virtual Address Segment Number Page Number Offset Segment TableSegment Entry Table Entry Other Control Bits Length Other Control Bits Length Page Entry Table P M Other Control Bits Page Entry Table P M Other Control Bits Segment Base Segment Base Frame Number Frame Number Système d’Exploitation Yann MORÈRE 2004 309/70 Conversion d’adresse dans un système à segmentation/pagination Seg # Page # Frame # Offset Offset Seg Table Ptr Segment Table Page Table Offset P# S# + Program Segmentation Système d’Exploitation + Paging Page Frame Main Memory Yann MORÈRE 2004 310/70 Segmentation et pagination sur Intel 386 311/70 • En mode protégé, le 386 et supérieur, utilise un schéma de segmentation et pagination combinée qui est exploitée par le système OS/2 (version 32 bits) • L’adresse logique est formée d’une paire (sélecteur, offset) • Le sélecteur contient un bit qui sélectionne soit : La table des descripteurs globaux; accessibles par tous les processus La table des descripteurs locaux; seulement accessible par le processus qui le détient (nous avons une LDT par processus • Deux bits dans le sélecteur sont pour la protection et il reste 13 bits utilisés pour sélectionner une entrée 8-Octet soit dans la LDT soit dans la GDT appelé descripteur Système d’Exploitation Yann MORÈRE 2004 Segmentation et pagination sur Intel 386 312/70 • Le 386 possède 6 registres de segment avec une partie visible de 16 bits chacun qui contient le sélecteur et une partie invisible 8-Octet qui contient le descripteur correspondant Ceci évite de lire la GDT/LDT à chaque référence mémoire • Le descripteur contient l’adresse de base et la longueur du segment référencé • L’adresse de base 32 bits est ajoutée à l’Offset 32 bits pour former une adresse linéaire (p1,p2,d) 32 bits qui est sensiblement identique au format d’adresse logique utilisé par WinNT 2 niveaux de tables de pages indexées par P1 et P2 (10 bits) Système d’Exploitation Yann MORÈRE 2004 Conversion d’adresse sur Intel386 Système d’Exploitation Yann MORÈRE 2004 313/70 Segmentation et pagination sur Intel 386 : remarques • La partie segmentation peut être effectivement désactivée en effaçant l’adresse de base de chaque descripteur de segment • Alors la partie offset de l’adresse logique est identique à l’adresse linéaire (p1,p2,d) • Ceci est utilisé par tous les OS fonctionnant sur 386 (et supérieur) qui utilisent seulement la pagination: Windows NT Unix versions: Linux, FreeBSD... Système d’Exploitation Yann MORÈRE 2004 314/70 315/70 Protection • « Ring 0 » contient les instructions kernel du SE • Un programme peut seulement accéder au données qui résident sur le même « ring », ou un « ring » en dessous (au niveau des privilèges) • Un programme devra appeler des services qui résident sur le même « ring » », ou un « ring » en dessous (au niveau des privilèges) Système d’Exploitation Yann MORÈRE 2004 Ring Protection : transfert de contrôle entre programmes Ring 0 Call Return Ring 1 Call Return Ring 2 Jump Système d’Exploitation Yann MORÈRE 2004 316/70 317/70 Ring Protection : Accès au données Ring 0 Ring 1 Data access Ring 2 Data access Système d’Exploitation Yann MORÈRE 2004 Système d’exploitation • Le logiciel de gestion mémoire dépend du support hardware : pagination, segmentation, les deux • Les systèmes à segmentation pure sont rares. Les segments sont paginés la plupart du temps – la gestion mémoire qui en résulte est la pagination • On s’intéresse donc à la pagination • Pour avoir de bon résultat, on doit avoir un faible taux de défaut de page Système d’Exploitation Yann MORÈRE 2004 318/70 319/70 Politique de recherche • Détermine si une page doit être chargée en mémoire ou non. Deux politiques connues : Demande de pagination charge seulement les pages en mémoire lorsqu’une référence est faire à un emplacement sur la page (ie: pagination à la demande seulement) • Nombreux défauts de page lorsqu’un processus est démarré, mais diminue au fur et à mesure que les pages sont chargées en mémoire La Prépagination charge en mémoire plus de pages que nécessaire • La localité des références suggère qu’il est plus efficace de charger les pages qui sont contiguës sur le disque • L’efficacité n’est pas définitivement établie : les pages supplémentaires chargées sont souvant non référencées Système d’Exploitation Yann MORÈRE 2004 Politique de recherche • Détermine où en mémoire réelle, se trouve un morceau de processus • Pour les système ) segmentation pure : first-fit, next fit... Sont des choix possibles • Pour la pagination (et segmentation paginée): Le matériel détermine où placer la page. L’emplacement de trame choisie n’est pas valide dès que toutes les trames mémoires sont équivalentes Système d’Exploitation Yann MORÈRE 2004 320/70 321/70 Politique de Remplacement • Traite de la sélection de la page qui doit être remplacée lorsqu’une nouvelle page est chargée en mémoire centrale • Ceci apparaît toutes les fois que la mémoire centrale est saturée (pas de trame libre disponible) • Apparaît dès que l’OS essaie de chargé en mémoire centrale un maximum de processus pour augmenter la multiprogrammation Système d’Exploitation Yann MORÈRE 2004 322/70 Politique de Remplacement • Toutes les pages ne sont pas disponibles pour un remplacement • Certaines trames sont verrouillées (pas de swappe sur disque) : La plupart de noyau connaissent les pages verrouillées ainsi que les buffers d’E/S et les structures de contrôle • Le SE peut décider que les pages pour le remplacement sont : Limitées à celles de processus qui ont eu des défaut de pages Toutes les pages dans des trames non verrouillées Système d’Exploitation Yann MORÈRE 2004 323/70 Politique de Remplacement • La décision des pages qui vont être prises en compte pour le remplacement est dévolue à la stratégie de gestion des pages résidentes : Combien de trames de pages seront allouées à chaque processus? • Peu importe quelles sont les pages qui vont être remplacées, la politique de remplacement utilise des algorithmes qui vont choisir la page à l ’intérieur d’un ensemble de page Système d’Exploitation Yann MORÈRE 2004 Algorithmes de bases pour la politique de remplacement 324/70 La politique optimale sélectionne la page pour laquelle le temps à la prochaine référence est le plus long Produit le plus petit nombre de défaut de page impossible à implémenter (besoin de connaître le futur) mais sert de standard pour comparer les autres algorithmes : • Moins récemment utilisé - Least recently used (LRU) • Premier arrivé – premier sortie, First-in, first-out (FIFO) • Horloge, Clock Système d’Exploitation Yann MORÈRE 2004 La politique LRU 325/70 • Remplace la page qui n’a pas été référencée depuis le plus longtemps D’après le principe de localité, ceci devrait être la page qui ne devrait pas être référencée dans un futur proche Fonctionne presque comme la politique optimale • Exemple: un processus de 5 pages avec un SE qui fixe le jeu de pages résidentes à 3 Système d’Exploitation Yann MORÈRE 2004 Note sur le comptage des défauts de page 326/70 • Lorsque la mémoire centrale est vide, chaque nouvelle page que nous chargeons provoque un défaut de page • Pour le besoin de comparaison des différents algorithmes, on ne compte pas des défauts initiaux Leur nombre est identique pour tous les algorithmes Système d’Exploitation Yann MORÈRE 2004 Implémentation de la politique LRU • Chaque page peut être marquée (dans l’entrée de la table de page) avec le temps de chaque référence mémoire. • La page LRU est celle avec la plus petite valeur (valeur doit être cherchée à chaque défaut de page) • Ceci demande un matériel coûteux et de long calcul (surcharge). • Donc peu de systèmes fournissent un support matériel suffisant pour réaliser une vraie politique de remplacement LRU • D’autres algorithmes sont utilisés à la place Système d’Exploitation Yann MORÈRE 2004 327/70 328/70 La politique FIFO • Traite les trames de pages allouées au processus comme un tampon circulaire Quand le tampon est plein, la page la plus ancienne est remplacée. D’où : first-in, first-out • Ce n’est pas nécessairement la même page que par LRU • Un page fréquemment utilisée est souvent la plus vielle, d’où un swappe répétitif par FIFO Simple à implémenter • Nécessite seulement un pointeur qui scrute de manière circulaire les trames de page du processus Système d’Exploitation Yann MORÈRE 2004 Comparaison de FIFO et LRU • LRU reconnaît que les pages 2 et 5 sont référencées plus souvent que les les autres, mais pas FIFO • FIFO est relativement pauvre en efficacité Système d’Exploitation Yann MORÈRE 2004 329/70 La politique horloge 330/70 • L’ensemble des trames candidates au remplacement est considère comme un tampon circulaire • Quand une pages est remplacée, un pointeur est chargé de pointer la prochaine trame dans le tampon • Un bit d’utilisation pour chaque trame est fixer à 1 toutes les fois que : Une page est chargée pour la première fois dans la trame La page correspondante est référencée • Lorsque l’on doit remplacé une page, la première trame rencontrée avec un bit d’utilisation à 0 est remplacée Pendant la recherche, tous les bits d’utilisation à 1 sont changés en 0 Système d’Exploitation Yann MORÈRE 2004 La politique horloge : un exemple Système d’Exploitation Yann MORÈRE 2004 331/70 Comparaison d’horloge avec FIFO et LRU 332/70 • Une astérisque indique que le bit d’utilisation est mis à 1 • L’horloge protège les pages souvent référencées en fixant le bit d’utilisation à 1 Système d’Exploitation Yann MORÈRE 2004 Comparaison d’horloge avec FIFO et LRU • Des tests ont montrés que la performance de l’algorithme horloge est proche de LRU • Expériences faites avec un nombre de trames allouées à chaque processus fixe Lorsque peut de trames sont allouées au processus (6 à 8), il y a presque un facteur 2 des d éfauts de pages entre LRU et FIFO Cet écart se réduit à 1 lorsqu’il y a plus de trames allouées (plus de 12) Système d’Exploitation Yann MORÈRE 2004 333/70 334/70 Page Buffering • Les pages qui vont être remplacées sont conservées en mémoire centrale pendant un moment pour contrer la faible performance des algorithmes de remplacement tel FIFO • Deux listes de pointeurs sont conservées : chaque entrée pointe sur une trame sélectionnée pour le remplacement Une liste de page libre pour les trames qui n’ont pas été modifiées depuis leur chargement (pas de swappe sur disque) Une liste de page modifiée pour les trames qui on été modifiées (nécessité d’écriture) • Une trame qui doit être remplacée possède un pointeur ajouté en fin d’une de ces listes et le bits de présence est effacé dans l’entrée de la table de page Mais la page reste dans la même trame mémoire Système d’Exploitation Yann MORÈRE 2004 Page Buffering 335/70 • A chaque défaut de page, les deux listes sont examinées pour voir si les pages nécessaires ne sot pas encore en mémoire Si c’est le cas, on doit juste mettre à 1 le bit de présence dans l’entrée de la table de page correspondante (et enlevé l’entrée dans la liste de page correspondante) Si ce n’est pas le cas, alors la page nécessaire est chargée, elle est placée dans la trame pointée par la tête de la liste des trames libres (ecrasant la page qui s’y trouvait) • La tête de la liste des trames libres devient l’entrée suivante de cette liste (le numéro de trame dans l’entrée de la table de page pourrait être utilisée pour scruter les deux listes, ou chaque entrée de liste pourrrait contenir le process id et le numéro de page de la trame occupée) • La liste modifiée sert aussi à écrire les pages modifiées en cluster sur le disque (pas d’écriture individuelle) Système d’Exploitation Yann MORÈRE 2004 336/70 Politique de nettoyage • Quand une page modifiée doit être écrite sur disque « swap out »? • Demande de nettoyage Une page est écrite seulement lorsque sa trame a été sélectionnée pour le remplacement • Mais un processus qui possède un défaut de page peut avoir à attendre 2 transferts de page • Pre-nettoyage Les page modifiées sont écrites avant que leur trame aient besoins d’être écrites « swap-out » • Mais cela n’a pas beaucoup de sens d’écrire des pages qui vont être de nouveau modifiées avant leur remplacement effectif Système d’Exploitation Yann MORÈRE 2004 Politique de nettoyage • Un bon compromis peut être réalisé par une mise en tampon des pages Rappel que les pages choisies pour le remplacement sont conservées soit dans une liste non modifiée soit sur une liste modifiée Les pages de la liste modifiées peuvent être écrites périodiquement et déplacée vers la liste non modifiée Il y a un bon compromis dès que : • Pas toutes les pages modifiées sont écrites, mais seulement celles choisie pour remplacement* • L’écriture est faite par lots Système d’Exploitation Yann MORÈRE 2004 337/70 338/70 Taille du jeu résident • Le SE doit décider du nombre de trame de pages allouer à un processus Grand taux de défaut de page si le nombre de trame est trop petit Petit niveau de multi programmation si trop de trames sont allouées Système d’Exploitation Yann MORÈRE 2004 Taille du jeu résident • Politique d’allocation fixe Alloue un nombre fixe de trames qui reste constant au cours du temps • Ce nombre est déterminé au chargement et dépend du type d’application • Politique d’allocation variable Le nombre de trame allouée à un processus peut varier au cours du temps • Peut augmenter si le taux de défaut de page est grand • Peut diminuer si le taux de défaut de page est très bas Demande plus de contrôle du SE pour accéder au comportement des processus actifs Système d’Exploitation Yann MORÈRE 2004 339/70 Portée de remplacement • Est le jeu de trames à considérer pour le remplacement quand un défaut de page apparaît • Politique de remplacement local Choisit seulement parmi les trames qui sont allouées au processus qui a engendré le défaut de page • Politique de remplacement global N’importe quelle trame non verrouillée est candidate pour le remplacement • Considérons les combinaisons possible de portée de remplacement et de taille de jeu résident Système d’Exploitation Yann MORÈRE 2004 340/70 Allocation fixe + Portée locale • Chaque processus possède un nombre de pages fixe Déterminé au chargement du programme et dépendant du type d’application • Quand un défaut de page apparaît : les trames de pages prises en compte pour le remplacement sont locales au processus le nombre de trames allouées est ainsi constant Les algorithmes précédents de remplacement peuvent être utilisés • Problème : difficile de déterminé à l’avance le bon nombre pour les trames allouées Si trop bas : taux de défaut de page grand Si trop grand : taux de multi programmation bas Système d’Exploitation Yann MORÈRE 2004 341/70 342/70 Allocation fixe + Portée globale • Impossible à réaliser Si toutes les trames non verrouillées sont candidate pour le remplacement, le nombre de trames allouées au processus sera nécessairement variant au cours du temps Système d’Exploitation Yann MORÈRE 2004 Allocation variable + Portée globale • Simple à implémenter – adopté^par tous les SE (Unix) • Une liste des trames libres est conservée Quand un processus engendre un défaut de page, une trame libre (de la liste) est alloué à celui-ci Par conséquent, le nombre de trames allouées à un processus en défaut de page augmente Le choix du processus qui va perdre une trame est arbitraire : loin de l’optimum • La mise en tampon de pages peut alléger ce problème : une page peut être réclamée si elle est utilisée prochainement Système d’Exploitation Yann MORÈRE 2004 343/70 Allocation variable + Portée locale 344/70 • Peut-être la meilleure combinaison (utilisé par WinNT) • Allocation au chargement d’un certain nombre de trames au nouveau processus (basé sur le type d’application) Utilise soit la pré pagination, soit la demande de pagination pour remplir l’allocation • Quand un défaut de page apparaît, sélection de la page à remplacer parmi le jeu résident du processus qui possède le défaut de page • Ré évaluation périodique de l’aa=llocation faite et augmentation ou diminution pour augmenter les performances globales Système d’Exploitation Yann MORÈRE 2004 La stratégie du jeu de travail 345/70 • Est la méthode d’allocation variable avec une portée locale basée sur la supposition de localité des références • Le jeu de travail pour un processus à l’instant t,, W(D,t), est l’ensemble des pages qui a été référencé dans la dernière unité de temps virtuel D Temps virtuel = temps écoulé pendant que le processus était en exécution (ex.: nombre d’instructions exécutées) D est une fenêtre temporelle Quelque soit t, |W(D,t)| est non décroissant par rapport à D W(D,t) est une approximation de la localité du programme Système d’Exploitation Yann MORÈRE 2004 346/70 La stratégie du jeu de travail • Le jeu de travail d’un processus grossit dans un premier temps, lorsqu’il commence à s’exécuté • Se stabilise en suite par le principe de localité • Il grossit de nouveau quand le processus entre dans une nouvelle localité (période de transition) Jusqu’au point ou le jeu de travail comporte les pages des deux localités • Diminue ensuite après un temps suffisamment long dans la nouvelle localité Système d’Exploitation Yann MORÈRE 2004 La stratégie du jeu de travail 347/70 • Le concept du jeu de travail siggère la stratégie suivante pour déterminer la taille du jeu résident Surveillance du jeu de travail pour chaque processus Enlever périodiquement du jeu de résident d’un processus, les pages qui ne sont pas dans le jeu de travail Lorsque le jeu de résident d’un processus est plus petit que son jeu de travail, allouer d’autres trames à ce dernier • S’il n’y a pas assez de trames libres, suspendre le processus (jusqu’à ce que plus de trames soient disponibles) ie: un processus ne peut s’exécuter seulement si le jeu de travail est en mémoire centrale Système d’Exploitation Yann MORÈRE 2004 La stratégie du jeu de travail • Problèmes pratiques avec cette stratégie de jeu de travail La mesure du jeu de travail pour chaque processus n’est pas faisable • Nécessité de marquer temporellement la page référencée à chaque référence mémoire • Nécessité de maintenir une file temporelle des pages référencées pour chaque processus La valeur optimale pour D est inconuue et variante dans le temps • Solution: plutôt que de surveiller le jeu de travail, surveiller le taux de défaut de page! Système d’Exploitation Yann MORÈRE 2004 348/70 La stratégie de la fréquence de défait de page • Définir une borne Sup U et une borne Inf L pour le taux de défaut de page • Allouer plus de trames à un processus si le taux de défaut est plus grand que U • Allouer moins de trames si le taux de défaut est plus petit que L • La taille du jeu résident devrait être proche de celle du jeu de travail W • On suspend le processus si le taus de défaut de page est supérieur à U et qu’il n’y a plus de trames disponibles Système d’Exploitation Yann MORÈRE 2004 349/70 Contrôle de chargement • Détermine le nombre de processus qui sera résident en mémoire centrale (ie: niveau de multi programmation) Pas assez de processus : tous les processus seront souvent bloqués et le processus sera au ralenti Trop de processus : la taille résidente de chaque programme sera trop petite et il y aura de nombreux défaut de pages Système d’Exploitation Yann MORÈRE 2004 350/70 Contrôle de chargement 351/70 • Les algorithmes du jeu de travail et de fréquence de défaut de page contiennent implicitement le contrôle de chargement Seulement les processus qui possède des jeux résidents suffisamment grand sont autorisés à s’exécuter • Une autre approche consiste à ajuster explicitement le niveau de multi programmation de telle sorte que le temps moyen entre chaque défaut de page soit équivalent au temps pour obtenir un défaut de page Des études de performance indiquent que c’est le point où le processeur est à son maximum Système d’Exploitation Yann MORÈRE 2004 Suspension de processus • Le contrôle explicite de chargement nécessite que des processus soient de temps à autre swappé (suspendu) • Critère de sélection de victime possible : Processus défaillant • Ce processus peut ne pas avoir son jeu de travail en mémoire centrale et il sera bloqué Dernier processus activé • Ce processus aura son jeu de travail résident moins volontiers résident Processus avec le plus petit jeu résident • Ce processus nécessite le moins d’effort futur pour le rechargement Le plus grand processus • Aura besoin du plus grand nombre de trames libres Système d’Exploitation Yann MORÈRE 2004 352/70 Gestion mémoire UNIX et Solaris • Système de pagination pour les processus • Allocateur de mémoire noyau pour l’allocation mémoire du noyau Système d’Exploitation Yann MORÈRE 2004 353/70 Gestion mémoire UNIX et Solaris • Structures de données Table de pages – une par processus Descripteur de block disque – décrit la copie sur disque d’une page virtuelle Table des données de trames de page – décrit chaque trame de mémoire réelle Table d’utilisation du Swap – une pour chaque dispositif de swap Système d’Exploitation Yann MORÈRE 2004 354/70 Gestion mémoire UNIX et Solaris • Remplacement de page Amélioration de la politique d’horloge connue comme l’algorithme « two-handed clock » • Allocateur de mémoire noyau La plupart des blocks sont plus petit que la taille typique d’une page Système d’Exploitation Yann MORÈRE 2004 355/70 356/70 Gestion mémoire Windows NT • Tous les processus partagent les même 2Go d’espace système • Pages disponibles Réservé pour un processus mais ne compte pas dans la quote-part de la mémoire du processus Système d’Exploitation Yann MORÈRE 2004 Ordonnancement MonoProcesseur Chapitre 9 Ordonnancement CPU 358/70 • On se concentre sur le problème de l’ordonnancement de l’utilisation d’un processeur unique parmi tous les processus existant sur le système • Les objectifs à atteindre sont Utilisation intensive du processeur « throughput » élevé • Nombre de processus terminé par unité de temps Temps de réponse bas • Temps écoulé entre la soumissiond’une demande et le début de la réponse Système d’Exploitation Yann MORÈRE 2004 Classification des activités d’ordonnancement • Long-terme: Quel processus admettre • Moyen-terme: Quel processus swapper (in out) • Court-terme: Quel processus prêt exécuter ensuite Système d’Exploitation Yann MORÈRE 2004 359/70 Diagramme de files pour l’ordonnancement Système d’Exploitation Yann MORÈRE 2004 360/70 Ordonnancement long-terme 361/70 • Détermine quel programme doit être admis dans le système pour exécution • Contrôle le degrés de multi programmation • Si plus de processus sont admis Il est moins probable que tous les processus soient bloqués • Meilleur usage CPU Chaque processus à une fraction de la CPU plus petite • L’ordonnancement long terme doit tenter de garder un compromis entre utilisation de la CPU et des E/S Système d’Exploitation Yann MORÈRE 2004 362/70 Ordonnancement moyen-terme • Les décision de « swappe » sont basées sur la nécessité de gérer la multi programmation • Réalisé par le programme de la gestion mémoire Voir allocation jeu résident et contrôle de chargement Système d’Exploitation Yann MORÈRE 2004 Ordonnancement court-terme 363/70 • Détermine quel processus va s’exécuter ensuite (appelé aussi ordonnancement CPU) • L’Ordonnanceur à court terme est aussi nommé dispatcher • Est appelé sur un évènement qui peut conduire à la sélection d’un autre processus pour exécution : Interruption horloge Interruption E/S Appels système et traitement d’erreurs Signaux Système d’Exploitation Yann MORÈRE 2004 Critère d’ordonnancement court terme • Orienté utilisateur Temps de réponse : temps écoulé entre la soumission d’une demande et le début de la réponse Turnaround Time: temps écoulé entre la soumission d’un processus et sa fin • Orienté système Utilisation processeur equitabilité throughput: nombre de processus terminé par unité de temps Système d’Exploitation Yann MORÈRE 2004 364/70 365/70 Priorités • Implémentée par l’intermédiaire de plusieurs files qui représentent chaque niveau de priorité • L’ordonnancement va toujours choisir un processus d’un niveau de priorité plus élévé. • Les basses priorité peuvent alors souffrir de famine • On permet alors à un processus de modifier sa priorité basée sur son âge ou l’historique de l’exécution • Le premier algorithme d’ordonnancement n’utilise pas les priorités • D’autres algorithmes utilisent des mécanismes de priorité dynamique Système d’Exploitation Yann MORÈRE 2004 Caractérisation des politiques d’ordonnancement 366/70 • La fonction de sélection : détermine quel processus dans la file « prêt » sera sélectionné pour exécution • Le mode de décision : spécifie les instants dans le temps auxquels la fonction de sélection est réalisée Non préemptif • Un fois qu’un processus est exécutant,il va continur jusqu’à ce qu’il se termine où se bloque lui-même pour une E/S Préemptif • Le processus exécutant courant peut être interrompu et déplacé à l ’état « prêt » par le SE • Aucun processus ne peut monopoliser le processeur pour un long moment Système d’Exploitation Yann MORÈRE 2004 367/70 Le cycle CPU – E/S • On observe que les processus demande de manière alternée et répétitive une utilisation du processeur et des E/S • Chaque cycle consiste en une giclée de CPU « CPU burst » (typiquement de 5 ms) suivie par une giclée de E/S (généralement plus longue) « I/O burst » • Un processus se termine par une giclée de CPU Système d’Exploitation Yann MORÈRE 2004 Un exemple de processus en exécution pour évalué les politiques d’ordonnancement Temps d’arrivée Temps de service 1 0 3 2 2 6 3 4 4 4 6 5 5 8 2 368/70 Processus Temps de service = temps total processeur nécessaire pendant un cycle (CPU-IO) Travaux avec temps de service long sont les référencés comme les longs travaux (CPU-Bound process) Système d’Exploitation Yann MORÈRE 2004 Premier arrivé Premier servi First Come First Served (PAPS/FCFS) 369/70 • Fonction de sélection : le processus qui attend depuis le plus de temps dans la file des processus prêts (-> PAPS) • Mode de décision : non préemptif Un processus s’exécute jusqu’à ce qu’il se bloque Système d’Exploitation Yann MORÈRE 2004 370/70 Inconvénients du PAPS/FCFS • Un processus qui ne fait pas d’E/S va monopoliser le processeur • Favorise les processus long CPU Les processus longs I/O doivent attendre jusqu’à ce que les processus long CPU soient terminé Ils peuvent même attendre lorsque leur E/S sont terminée (utilisation périphérique pauvre) On aurait pu gardé les processus E/S actif en leur donnant un peu plus de priorité au processus long E/S Système d’Exploitation Yann MORÈRE 2004 371/70 Round-Robin • Fonction de sélection : comme le PAPS • Mode de décision : préemptif Un processus est autorisé à s’exécuter jusqu’à ce qu’un quantum de temps ait expiré (quantum de 10 à 100 ms) Alors l’horloge interrompt le processus par une interruption, et le il est placé dans la file des processus prêt Système d’Exploitation Yann MORÈRE 2004 Quantum pour Round Robin 372/70 • Doit être plus grand que le temps requis pour réaliser une interruption horloge et ordonnancement • Doit être plus grand que les temps moyens d’exécution (mais pas beaucoup plus grans pour éviter de pénaliser les processus long E/S) Système d’Exploitation Yann MORÈRE 2004 Critique du Round Robin 373/70 • Favorise les processus CPU longs Un processus E/S long utilisa la CPU pour un temps plus court que le quantum et est alors bloqué en attente E/S Un processus CPU long s ’exécute sur tout le quantum et est remis dans la file des processus prêts (passe devant les processus bloqués) • Une solution: round robin virtuel Quand l’E/S est terminée, le processus bloqué est déplacé dans une file auxiliaire qui est préférée à toutes les autres files prêtes Un processus ordonnancé depuis cette file auxiliaire seraé exécuté le temps du quantum moins celui déjà exécuté quand il a été sélectionné de la file des processus prêts Système d’Exploitation Yann MORÈRE 2004 374/70 File pour le Round Robin Virtuel Système d’Exploitation Yann MORÈRE 2004 Le plus court travail ensuite Shortest Process Next (SPN) • Fonction de sélection : le processus avec le plus petit temps d’exécution CPU est choisi • Mode de décision : non préemptif • Les processus E/S long seront choisis d’abord • On doit estimer le temps CPU requis pour chaque processus Système d’Exploitation Yann MORÈRE 2004 375/70 Estimation du temps CPU requis • Soit T[i] le temps d’exécution pour la ième instance de ce processus : la durée actuelle du la ième giclée de CPU de ce processus • Soit S[i] la valeur prédite pour la ième giclée de CPU pour ce processus, le choix le plus simple est : S[n+1] = (1/n) Σ_{i=1 to n} T[i] • Pour éviter de reclaculer la somme entière, on peut réécrire S[n+1] = (1/n) T[n] + ((n-1)/n) S[n] • Mais cette combinaison donne des poids équivalent à chaque instance Système d’Exploitation Yann MORÈRE 2004 376/70 Estimation du temps CPU requis 377/70 • Mais les instances récentes reflètent plus fidèlement le comportement futur • Un technique commune pour cela est l’utilisation de la moyenne exponentielle S[n+1] = α T[n] + (1-α) S[n] ; 0 < α < 1 Un poids plus important est mis sur les instances récentes • En analysant cette équation, on remarque que les poids des instances passées décroissent exponentiellement S[n+1] = αT[n] + (1-α)αT[n-1] + ... (1-α)^{i}αT[n-i] + ... + (1-α)^{n}S[1] La valeur prédite de l’instance S[1] n’est pas calculée. Mise à 0 pour donner la priorité au nouveau processus. Système d’Exploitation Yann MORÈRE 2004 Coefficients décroissants exponentiellement Système d’Exploitation Yann MORÈRE 2004 378/70 Coefficients décroissants exponentiellement • Ici S[1] = 0 pour donner une grande priorité au nouveau processus • La moyenne exponentielle modifie le comportement des processus plus rapidement qu’une simple moyenne Système d’Exploitation Yann MORÈRE 2004 379/70 Le plus court travail ensuite : critique 380/70 • Possibilité de famine pour les processus les plus longs tant qu’il existe des processus plus courts • Manque de préemption qui n’est pas souhaitable dans un environnement à temps partagé Les processus CPU long reçoivent des priorité plus basses (qu’ils ne devraient) mais un processus qui ne fait pas d’E/S pourrait monopoliser la CPU s’il est le premier à entrer dans le système • SPN contient implicitement des priorités : on donnent des préférences aux travaux les plus courts • L’algorithme (préemptif) suivant pénalise directement les travaux longs Système d’Exploitation Yann MORÈRE 2004 Ordonnancement multi-niveau 381/70 • Ordonnancement préemptif avec priorités dynamiques • Plusieurs files « processus prêt » avec des priorités décroissantes P(RQ0) > P(RQ1) > ... > P(RQn) • Les nouveaux processus sont placés dans RQ0 • Quand ils ont atteint leur quantum de temps ils sont placé dans RQ1. S’ils l’atteignent de nouveau, il sont placé dans RQ2... Jusqu’à ce qu’il atteignent RQn • Les processus E/S longs vont rester dans les files à haute priorité. Les processus CPU longs vont descendre en priorité. • L’ordonnanceur choisit un processus pour exécution dans RQi seulement siRQi-1 à RQ0 sont vides • Par conséquent, les longs travaux peuvent souffrir de famine Système d’Exploitation Yann MORÈRE 2004 Files pour Ordonnancement multi-niveau 382/70 • PAPS est utilisé dans chaque file excepté pour la file à la priorité la plus faible ou le round robin est utilisé Système d’Exploitation Yann MORÈRE 2004 Quantum de temps pour Ordonnancement multi-niveau • Avec un quantum de temps fixe, le « turnaround time » des processus longs peut s’allonger de manière alarmante • Pour compenser, on peut augmenter le quantum de temps par rapport à la profondeur de la file Ex: quantum de temps de RQi = 2^{i-1} • Les processus les plus longs peuvent toujours souffrir de famine. Solution : donner une priorité plus grande à un processus après un certain temps Système d’Exploitation Yann MORÈRE 2004 383/70 Comparaison des Algorithmes 384/70 • Lequel est le meilleur? • La réponse dépend : De la charge du système (extrêmement variable) Support matériel pour l’ordonanceur Pondération relative des critères de performances (temps de réponse, utilisation CPU, …) La méthode d’évaluation utilisée • Trop de facteur en dépendent pour donner une seule réponse Système d’Exploitation Yann MORÈRE 2004 Ordonnancement équitable • Dans un système multiutilisateur, chacun d’eux peut posséder plusieurs processus • Les utilisateurs appartiennent à des groupes et chaque groupe devraient se partager équitablement la CPU • C’est la philosophie de l’ordonnancement équitable • Ex: S’il y a 4 départements d’importance égale (groupes) et un département possède plus de processus que les autres, la dégradation du temps de réponse dans ce département devrait être plus prononcée que dans les autres Système d’Exploitation Yann MORÈRE 2004 385/70 Ordonnancement équitable The Fair Share Scheduler (FSS) 386/70 • • • • Implanté sur quelques systèmes Unix Les processus sont divisé en groupes Le groupe k possède la fraction Wk de la CPU La priorité Pj[i] du processus j (appartenant au groupe k) au intervalles de temps i est donnée par: Pj[i] = Bj + (1/2) CPUj[i-1] + GCPUk[i-1]/(4Wk) • • • • Une grande valeur = priorité basse Le processus avec la plus haute priorité est exécuté ensuite Bj = priorité de base du processus j CPUj[i] = moyenne pondérée exponentielle de l’utilisation du processeur par le processus j dans les intervalles de temps i • GCPUk[i] = moyenne pondérée exponentielle de l’utilisation du processeur par le groupe k dans les intervalles de temps i Système d’Exploitation Yann MORÈRE 2004 Ordonnancement équitable The Fair Share Scheduler (FSS) 387/70 • La moyenne pondérée exponentielle utilise α = 1/2: CPUj[i] = (1/2) Uj[i-1] + (1/2) CPUj[i-1] GCPUk[i] = (1/2) GUk[i-1] + (1/2) GCPUk[i-1] où • Uj[i] = utilisation processeur par le processus j en intervalle de temps i • GUk[i] = utilisation processeur par le groupe k en intervalle de temps i • On rappelle que Pj[i] = Bj + (1/2) CPUj[i-1] + GCPUk[i-1]/(4Wk) • La priorité décroit au fur et à mesure que le processus et le groupe utilise le processeur • Aved un poids plus grand Wk, l’utilisation groupe décroît moins la priorité Système d’Exploitation Yann MORÈRE 2004 Ordonnancement multiprocesseur et temps réel Chapitre 10 Classifications des systèmes multiprocesseurs • Multiprocesseur à couplement faible Chaque processeur possède sa propre mémoire et ses canaux d’E/S • Processeurs à fonctionnalité spécialisée Tel que les processeurs d’E/S Contrôlé par un processeur maître • Mutiprocesseurs étroitement couplés Les processeurs partage la même mémoire Contrôlé par le SE Système d’Exploitation Yann MORÈRE 2004 389/70 390/70 Parallélisme Indépendant • Exécute des processus séparés • Pas de synchronisation • Exemple : temps partagé Temps de réponse moyen diminué pour les utilisateurs Système d’Exploitation Yann MORÈRE 2004 391/70 Parallélisme très brut • Exécution distribuée dans les nœuds d’un réseau pour former un environnement de calcul (cluster) • Très bon quand il n’y a pas d’interaction fréquente parmi les processus La totalité du réseau doit diminué la vitesse de communication Système d’Exploitation Yann MORÈRE 2004 392/70 Parallélisme brut • Similaire à l’exécution de plusieurs processus sur un seul processeur à par que l’exécution se fait sur plusieurs • -> Multiprocessing Système d’Exploitation Yann MORÈRE 2004 Parallélisme médian (intermédiaire) • Exécution parallèle ou multitâche à l’intérieur d’une même application • L’application unique est une collection de « threads » • Les « Threads » interagisse fréquemment Système d’Exploitation Yann MORÈRE 2004 393/70 Ordonnancement de processus • Une seule file pour tous les processus • Des files multiples sont utilisées pour les priorités • Toutes les files nourrissent l’ensemble des processeurs • Les politiques d’ordonnancements spécifiques sont moins importantes lorsque l’on a plus d’un processeur Système d’Exploitation Yann MORÈRE 2004 394/70 395/70 « Threads » • Exécution séparée du reste du processus • Une application peut être un ensemble de « threads » qui coopère et s’exécute de manière concurrente dans le même espace d’adresse • Les « Threads » s’exécutant sur des processeurs séparés conduisent à un très grand gain de performance Système d’Exploitation Yann MORÈRE 2004 Ordonnancement Multiprocesseur des « Thread » 396/70 • Charge partagée Les processus ne sont pas assignés à un processeur particulier • Ordonnancement des « threads » Un ensemble de « threads » est choisi pour s’exécuté sur un ensemble de processeurs en même temps Système d’Exploitation Yann MORÈRE 2004 Ordonnancement Multiprocesseur des « Thread » 397/70 • Assignation à un processeur dédié Les « threads » sont assigné à un processeur spécifique • Ordonnancement dynamique Le nombre de « threads » peut être modifié pendant la période d’exécution Système d’Exploitation Yann MORÈRE 2004 398/70 Charge partagée • Le chargement est également distribué parmi les processeurs • Assure qu’aucun processeur ne soit ralenti • Pas d’ordonnanceur centralisé requis • Utilise des files globales Système d’Exploitation Yann MORÈRE 2004 Inconvénients de la charge partagée 399/70 • Une file centrale nécessite l’exclusion mutuelle Peut être un goulot d’étranglement lorsque plus d’un processeur cherche des processus a exécuter au même instant • Les « threads » préemptifs sont peu probables. Ils réinitialise l’exécution sur le même processeur L’utilisation de cache est moins efficace • Si tous les « threads » sont dans une file globale, tous les « threads » d’un programme n’obtiendront pas l’accès aux processeurs en même temps Système d’Exploitation Yann MORÈRE 2004 Ordonnancement des « threads » 400/70 • Ordonnancement simultané des « threads » pour réaliser un seul processus • Utile pour les applications où les performances se dégradent de manière importante quand une partie de l’application ne s’exécute pas • Les « threads » ont souvent besoins de se synchroniser entre eux Système d’Exploitation Yann MORÈRE 2004 Assignation à un processeur dédié 401/70 • Quand une application est ordonnancée, ses « threads » sont assignés à un processeur • Certains processeurs peuvent être ralentis • Ceci évite la commutation de processus Système d’Exploitation Yann MORÈRE 2004 Ordonnancement dynamique • Le nombre de « threads » dans un processus peut être modifié dynamiquement par l’application • Le SE ajuste la charge pour améliorer l’utilisation Assigne des processeurs au ralenti Les nouveaux processus peuvent être assignés à un processeur qui est actuellement utilisé par un travail qui utilise plus d’un processeur Maintient la demande jusqu’à ce qu’un processeur soit disponible Les nouveaux processus se verront attribués un processeur, avant les applications déjà existantes en exécution Système d’Exploitation Yann MORÈRE 2004 402/70 403/70 Système temps réels • L’exactitude du système ne dépend plus uniquement du résultat obtenu par le calcul, mais aussi du temps que le système a mis pour produire ce résultat • Les tâches et les processus tente de contrôler ou de réagir aux évènements qui opèrent à l’extérieur • Ces évènements apparaissent en « temps réel » et les processus doivent être capable de les gérer Système d’Exploitation Yann MORÈRE 2004 404/70 Système temps réels • • • • • Contrôle d’expérience de laboratoire Contrôle de procédés industriels Robotique Contrôle aérien Télécommunications Système d’Exploitation Yann MORÈRE 2004 Caractéristiques d’un SE temps réel • Déterministe Les opérations sont effectuées à temps fixés et déterminés ou dans des intervalles de temps prédéterminés Concerné par le temps (retard) que va mettre de SE avant d’accepter une interruption Système d’Exploitation Yann MORÈRE 2004 405/70 Caractéristiques d’un SE temps réel • Réponse Combien de temps, après acceptation, cela prend au SE pour effectuer l’interruption Inclus la quantité de temps pour commencer l’exécution de l’interruption Inclus la quantité de temsp pour réaliser l’interruption Système d’Exploitation Yann MORÈRE 2004 406/70 Caractéristiques d’un SE temps réel • Contrôle utilisateur Spécifie la pagination Quel processus doit être constamment en mémoire centrale Droits des processus Système d’Exploitation Yann MORÈRE 2004 407/70 Caractéristiques d’un SE temps réel • Fiabilité Dégradation des performances peut avoir des effets catastrophiques Les tâches les plus critiques, avec les plus hautes priorités s’exécutent Système d’Exploitation Yann MORÈRE 2004 408/70 409/70 Spécificités d’un SE temps réel • Commutation de contexte rapide • Petite taille • Capacité à répondre rapidement à des interruptions externes • Multi-tâches avec outils de communications interprocessus tels que sémaphores, signaux et évènements • Stockage des données dans les fichiers à haute vitesse Système d’Exploitation Yann MORÈRE 2004 410/70 Spécificités d’un SE temps réel • Ordonnancement préemptif basé sur les priorités Préemption immédiate permet au SE de répondre rapidement à une interruption • Minimisation des intervalles pendant lesquels les interruptions sont désactivées • Les retards des tâches sont fixes • Alarmes et timeouts spéciaux Système d’Exploitation Yann MORÈRE 2004 Ordonnancement temps réel • Dirigé par une table statique Qui détermine en exécution, quand une tâche démarre son exécution • Dirigé par un ordonnancement préemptif statique à priorité Utilisation d’un ordonnanceur à priorité • Basé sur une planification dynamique • Meilleur effort dynamique Système d’Exploitation Yann MORÈRE 2004 411/70 Ordonnancement à Datelimite « deadline » • Les application temps réels ne sont pas concernées par la vitesse mais plutô par la complétion de tâches • Ordonnancer les tâches par la date-limite au plus tôt, minimise le pourcentage de tâches qui dépassent la date-limite Inclus les nouvelles tâches et la quantité de temps nécessaire pour quitter les tâches Système d’Exploitation Yann MORÈRE 2004 412/70 Ordonnancement de tâches temps réelles 0 Arrival times 10 20 A B 30 40 50 60 C D E 413/70 70 80 90 100 110 Requirements Starting deadline Arrival times Earliest deadline Service B A B A Starting deadline B (missed) Système d’Exploitation E D C E D C E D C C D A E Yann MORÈRE 2004 A 120 Ordonnancement de tâches temps réelles 0 Arrival times 10 20 A B 30 40 50 60 C D E 414/70 70 80 90 100 110 Requirements Starting deadline Arrival times Earliest deadline wi th unforced idle ti mes B A B Service C B Starting deadline B Système d’Exploitation E D C E D C E D C D A E Yann MORÈRE 2004 A 120 Ordonnancement de tâches temps réelles 0 Arrival times 10 20 A B 30 40 50 60 C D E 70 415/70 80 90 100 110 Requirements Starting deadline Arrival times First-come first-served (FCFS) Service B A B A Starting deadline B (missed) Système d’Exploitation C C D C C E D A E D E (missed) D Yann MORÈRE 2004 A 120 Ordonnancement UNIX • Ensemble de 160 niveaux de priorité divisé en 3 classes de priorité • Le niveau noyau n’est pas préemptif Priority Class Priority Class Real-ti me Real-time Gl obal Value 159 . . 159 . . . . . Global Value Scheduling Sequence first Scheduling Sequence first .100 100 Kernel Kernel 99 . . .99 . 60 60 59 Time-shared Ti me-shared . . . . .59 . . 0 . 0 Système d’Exploitation last last Yann MORÈRE 2004 416/70 Rapport entre les priorités Windows NT 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 base priority Process Priority 15 14 13 12 11 10 9 8 7 highest 6 above normal 5 normal base priority 4 highest below normal 3 lowest above21 normal 0 normal Process Thread’sThread’s Base Dynamic bel ow normal Priority Priority Priority lowest Thread’s Base Priority Système d’Exploitation Thread’s Dynamic Priority Yann MORÈRE 2004 417/70 Temps réel sous Linux Chapitre 10 bis Définition d’un système temps réel • Temps partagé et temps réel Gestion du temps = problème majeure des SE SE multitâches mais basé sur des processeurs non multitâches -> partage de temps processeur entre les tâches Gestion de passage d’une tâche à une autre (Ordonnanceur) • Opposition temps partagé/temps réel Temps partagé = impression de confort pour l’utilisateur en assurant l’exécution des tâches -> complexité ordonnanceur Système d’Exploitation Yann MORÈRE 2004 419/70 Définition d’un système temps réel • Limitations temps partagé Notion de priorité entre tâches peu utilisées But = partage équitable du temps (quantum de temps ou tick) Incertitudes temporelles dues aux accès aux ressources partagées Gestion des E/S provoques des temps morts (blocage en attente d’accès) Mémoire virtuelle -> fluctuation importante des temps d’exécution Système d’Exploitation Yann MORÈRE 2004 420/70 Définition d’un système temps réel • Notion de temps réel Un système temps réel est une association logiciel/matériel où le logiciel permet, entre autre, une gestion adéquate des ressources matérielles en vue de remplir certaines tâche ou fonctions dans des limites temporelles bien précises. Un système est dit temps réel lorsque l’information après acquisition et traitement reste encore pertinente. Système d’Exploitation Yann MORÈRE 2004 421/70 Définition d’un système temps réel • Conséquences Les temps d’acquisition et de traitement doivent rester inférieurs à la période de rafraîchissement des informations La structure du système dépend de ces contraintes Système d’Exploitation Yann MORÈRE 2004 422/70 Définition d’un système temps réel • 2 catégories de systèmes Systèmes à contraintes souples ou molles (soft real time) : acceptation de variations dans le traitement des données (500ms à 1s). Répartition égalitaire du temps cpu. Systèmes à contraintes dures (hard real time) : une gestion stricte du temps est nécessaire pour conserver l’intégrité du service rendu. Répartition totalitaire du temps cpu. Système d’Exploitation Yann MORÈRE 2004 423/70 Définition d’un système temps réel • Critères fondamentaux des systèmes à contraintes dures Déterminisme logique : les mêmes entrées appliquées aux systèmes doivent produire les mêmes effets Déterminisme temporel : une tâche donnée doit obligatoirement être exécutée dans les délais impartis, échéance Fiabilité : le système doit être disponible. Contrainte forte dans le cas d’un système embarqué. Contrainte indépendante du temps réel. Système d’Exploitation Yann MORÈRE 2004 424/70 Définition d’un système temps réel • Un système temps réel n’est pas plus rapide qu’un système à temps partagé • Il doit satisfaire des contraintes temporelles strictes, prévues à l’avance, et imposées par le processus extérieur à contrôler • Être temps réel = capable d’acquitter l’interruption périodique, traiter l’information, et le signaler au niveau utilisateur dans un temps inférieur au temps entre 2 interruptions successives. Système d’Exploitation Yann MORÈRE 2004 425/70 Définition d’un système temps réel • Un système temps réel doit être prévisible (prédictible en anglais), les contraintes temporelles pouvant s’échelonner entre quelques micro-secondes (µs) et quelques secondes. Système d’Exploitation Yann MORÈRE 2004 426/70 Définition d’un système temps réel Tâche périodique et temps réel Système d’Exploitation Yann MORÈRE 2004 427/70 Définition d’un système temps réel • Illustration de la notion de temps réel sur une tâche périodique Système non temps réel : temps de latence varie fortement avant l’exécution de la tâche Système temps réel : ce temps doit être borné et garanti inférieur à une valeur fixe, sinon défaut de fonctionnement -> crash du système Système d’Exploitation Yann MORÈRE 2004 428/70 Intérêt du temps réel : Petite expérience • Génération d’un signal périodique sur le port parallèle. • Temps séparant deux émissions est mesuré • But visualisation de l’évolution du délai en fonction de la charge du système Système d’Exploitation Yann MORÈRE 2004 429/70 Intérêt du temps réel : Petite expérience • Fréquence initiale de 25 Hz demi période de 20ms • Système classique : demi période varie de 17 à 23 ms -> variation de 22 à 29 Hz Système d’Exploitation Yann MORÈRE 2004 430/70 Intérêt du temps réel : Petite expérience • Système temps réel : demi période varie de 19.990 à 20.015 ms -> variation de 24.98 à 25.01 Hz • A charge max. : variation de +/-0.2Hz système temps réel et +/-4Hz système classique Système d’Exploitation Yann MORÈRE 2004 431/70 Préemption et commutation de contexte • Noyau = composant principal du SE • Chaque tâche décomposée en thread : exécution d’un portion de code dans un même espace d’adressage • Chaque thread caractérisé par un contexte local : priorité, variables, registres • Changement de contexte plus rapide sur thread que sur processus Système d’Exploitation Yann MORÈRE 2004 432/70 Préemption et commutation de contexte • Système temps réel : noyau préemptif -> thread peut être interrompu par ordonnanceur en fonction du niveau de priorité pour exécuter un thread de niveau plus haut • Affecter les plus hauts niveaux aux tâches critiques Système d’Exploitation Yann MORÈRE 2004 433/70 Préemption et commutation de contexte • Cas de Linux : noyau non préemptif, le thread sera interrompu par un appel au noyau. • Notion de priorité peu utilisée -> noyau décide de commuter ou non le thread actif Système d’Exploitation Yann MORÈRE 2004 434/70 435/70 Les extensions POSIX • Complexité et interopérabilité -> standardisation -> utilisation de systèmes conformes POSIX • Portable Operating System Interface (IEEE, ANSI et ISO) • But : obtenir la portabilité des logiciels au niveau de leur code source • POSIX initialement mis en place pour Unix • Maintenant Windows est POSIX Système d’Exploitation Yann MORÈRE 2004 436/70 Les extensions POSIX • IEEE 1003.1-1990 : API système, définitions des fonctions en langage C • IEEE 1003.2-1992 : Interface applicative pour le shell • IEEE 1003.1b-1993 : API temps réel. Support de programmation temps réel ou POSIX.4 • IEEE 1003.1c-1995 : API multithreading Système d’Exploitation Yann MORÈRE 2004 437/70 Les extensions POSIX • La plupart des systèmes temps sont partiellement conformes à POSIX (QNX, LynxOS • La conformité par rapport à POSIX 1003.1b est partielle en standard et application de patch nécessaire Système d’Exploitation Yann MORÈRE 2004 Les principaux systèmes temps réels • Systèmes non basés Linux • Précision noyau, exécutif et SE temps réels Noyau temps réel = système minimum Exécutif temps réel = noyau + modules/bibliothèques pour conception temps réel SE temps réel = environnement de développement temps réel natif Système d’Exploitation Yann MORÈRE 2004 438/70 Les principaux systèmes temps réels • VxWorks et pSOS VxWorks = exécutif temps réel le plus utilisé en industrie. Société Wind River http://www.windriver.com . Fiable à faible empreinte mémoire, nombreux portage, support réseau. Conforme à POSIX 1003.1b Système d’Exploitation Yann MORÈRE 2004 439/70 Les principaux systèmes temps réels • QNX Développé par QNX http://www.qnx.com . Système temps réel de type Unix Conforme POSIX Développer directement sur la plateforme cible Environnement graphique Photon Système d’Exploitation Yann MORÈRE 2004 440/70 Les principaux systèmes temps réels • µC/OS et µC/OS II Développé par un canadien J.J. Labrosse Exécutif temps réel pour environnement de très petite taille (micro-contrôleur) Disponible sur de nombreux processeurs Intègre TCP/IP sur PPP Gratuit pour l’enseignement http://www.ucosii.com Système d’Exploitation Yann MORÈRE 2004 441/70 Les principaux systèmes temps réels • Windows CE Windows CE et Embedded Windows NT victime d’un fiabilité approximative Cantonné à l’équipement des PDA • LynxOS Développé par LynuxWorks http://www.lynuxworks.com Conforme POSIX • Nucleus Développé par Accelerated Technology Inc. http://www.acceleratedtechnology.com Livré avec les sources, pas de royalties Système d’Exploitation Yann MORÈRE 2004 442/70 Les principaux systèmes temps réels • eCos Acronyme de Embeddable Configurable Operating System, développé par Cygnus et rattaché à Red Hat Solutions à faible emprunte mémoire Conformité POSIX Système d’Exploitation Yann MORÈRE 2004 443/70 Contraintes des systèmes propriétaires • Suivi de l’évolution technologique aléatoire (entreprise à petite structure) • Coûts élevés car marché de niche • Coûts plus élevé du développement d’application (personnel très spécialisé) Système d’Exploitation Yann MORÈRE 2004 444/70 Avantages de l’Open Source • Redistribution sans royalties • Disponibilité du code source -> logiciel de qualité et facilité de maintenabilité • Possibilité de réaliser un développement dérivé de ce code source économies Système d’Exploitation Yann MORÈRE 2004 445/70 Linux comme système temps réel • Linux n’est pas nativement temps réel • Conçu au départ pour faire un système généraliste -> pas de notion de temps réel • Plusieurs solutions technique disponibles pour rendre compatible temps réels Système d’Exploitation Yann MORÈRE 2004 446/70 Linux comme système temps réel • Solutions techniques de 2 types : Patchs « préemptifs », qui améliorent le comportement du noyau en réduisant les temps de latence. Noyau temps réel auxiliaire : ajout d’un ordonnanceur temps réel à priorités fixes Système d’Exploitation Yann MORÈRE 2004 447/70 Linux comme système temps réel • Patchs « préemptifs » Pas une transformation en temps réel « dur » Bons résultats dans le cas de contraintes temps réel « molles » Différents projets open sources • Prempt Kernel http://www.tech9.netrmllinux • Low Latency http://www.zip.com.au/~akpm/linux/schedlat.html Système d’Exploitation Yann MORÈRE 2004 448/70 Linux comme système temps réel • Noyau auxiliaire Il traite directement les tâches temps réel et délègue les autres tâches au noyau Linux (tâche de fond de plus faible priorité) Permet la mise en place de système temps réel « durs » Système d’Exploitation Yann MORÈRE 2004 449/70 Linux comme système temps réel • RTLinux développé par FSMLabs http://www.fsmlabs.com Brevet logiciel sur son noyau auxiliaire • RTAI cousin européen Pas de société commerciale Pas de brevet Système d’Exploitation Yann MORÈRE 2004 450/70 451/70 Système RTLinux • Principe Faire cohabiter un noyau auxiliaire avec un ordonnanceur à priorités fixes avec le noyau Linux Tâches temps réel gérées par le noyau temps réel Traitement des autres tâches déléguées au noyau Linux (tâche de plus faible priorité) Système d’Exploitation Yann MORÈRE 2004 452/70 Système RTLinux Système à double noyau Système d’Exploitation Yann MORÈRE 2004 453/70 Système RTAI • Real Time Application Interface (RTAI) École Polytechnique de Milan dpt aérospaciale Besoins internes : developper un produit s’inspirant de RTLinux en intégrant des améliorations Pas de but commercial Architecture de la distribution RTAI semble plus complexe (API) Système d’Exploitation Yann MORÈRE 2004 Gestion E/S et ordonnancement Disque Chapitre 11 Catégories de périphériques E/S 455/70 • Lisible par l’humain Utilisé pour communiquer avec l’utilisateur Afficheur vidéo clavier souris Imprimante … Système d’Exploitation Yann MORÈRE 2004 Catégories de périphériques E/S 456/70 • Lisible par la machine Utilisé pour communiquer avec les équipements électroniques Disques Lecteur de bandes contrôleurs actionneurs Système d’Exploitation Yann MORÈRE 2004 Catégories de périphériques E/S 457/70 • Communication Utilisé pour communiquer avec les périphériques pilotés Pilotes de lignes digitales modems Système d’Exploitation Yann MORÈRE 2004 Différences entre les périphériques E/S • Taux de transfert de données • Application Les disques utilisés pour le stockage de fichiers doivent avoir un logiciel de gestion de fichiers Les disques utilisés pour stocké de la mémoire virtuelle (pages) doivent avoir un matériel spécifique pour le supporter Les terminaux utilisés par les administrateurs systèmes doivent avoir une priorité plus importante Système d’Exploitation Yann MORÈRE 2004 458/70 Différences entre les périphériques E/S • Complexité de la commande (pilotage) • Unité de transfert Les données peuvent être transférée comme un flux d’octets pour un terminal ou en block plus grand pour un disque • Représentation des données Schémas d’encodage • Gestion des Conditions d’erreur Les périphériques répondent différemment aux erreurs Système d’Exploitation Yann MORÈRE 2004 459/70 Techniques pour réaliser des E/S • E/S programmée Le processus est en attente active pendant l’accomplissement de l’action d’E/S • E/S par interruption Une commande d’E/S est utilisée Le processeur continue l’exécution des instructions Un module d’E/S renvoie une interruption lorsque les E/S sont terminée Système d’Exploitation Yann MORÈRE 2004 460/70 Techniques pour réaliser des E/S • Accès direct à la mémoire - Direct Memory Access (DMA) Le module DMA contrôle l’échange de données entre la mémoire centrale et le périphérique d’E/S Le processeur est interrompu après le transfert d’un block entier de données Système d’Exploitation Yann MORÈRE 2004 461/70 Évolution de la fonction d’E/S • Le processeur contrôle directement un périphérique (modem) • Un contrôleur/module d’E/S est ajouté Le processeur utilise les E/S programmées sans les interruptions Le processeur n’a pas besoin de gérer les détails du périphériques d’E/S Système d’Exploitation Yann MORÈRE 2004 462/70 Évolution de la fonction d’E/S • Le contrôleur/module d’E/S avec interruptions Le processeur ne perd pas de temps à attendre la fin d’une opération d’E/S • Accès direct à la mémoire Les blocks de données sont déplacés dans la mémoire sans utilisation du processeur Le processeur est mis en jeu au début et à la fin de la transaction Système d’Exploitation Yann MORÈRE 2004 463/70 Évolution de la fonction d’E/S • Module d’E/S est un processeur séparé Canaux d’E/S Utilisation de mémoire centrale • Processeur d’E/S Le moduel d’E/S possède sa propre mémoire locale C’est un ordinateur à part entière Système d’Exploitation Yann MORÈRE 2004 464/70 Accès direct à la mémoire • Prise de contrôle du système par le CPU pour transférer des données et de la mémoire sur le bus système • Le vol de cycle est utilisé pour transférer les données sur le bus système • Le cycle d’instruction est suspendu de telle sorte que les données peuvent être transférées • La CPU fais une pause d’un cycle bus • Pas d’apparition d’interruption Pas besoin de sauver le contexte Système d’Exploitation Yann MORÈRE 2004 465/70 Diagramme typique d’un block DMA Data Count Data Lines Data Register Address Lines Address Register DMA Request DMA Acknowledge Inte rrupt Read Write Control Logic Système d’Exploitation Yann MORÈRE 2004 466/70 467/70 Accès direct à la mémoire • Le vol de cycle ralenti la CPU • Le nombre requis de cycle peut être réduit en intégrant le DMA et les fonctions d’E/S • Le chemin entre le module DMA et le module d’E/S ne doit pas contenir le bus système Système d’Exploitation Yann MORÈRE 2004 Point d’arrêt DMA et interruptions 468/70 Time Instruction Cycle Processor Processor Processor Processor Processor Processor Cycle Cycle Cycle Cycle Cycle Cycle Fetch Decode Execute Store Fetch Instruction Instruction Operand Instruction Result DMA Breakpoints Système d’Exploitation Process Interrupt Inte rrupt Breakpoint Yann MORÈRE 2004 469/70 Bus simple, DMA détachée Processor Processor DMA DMA I/O I/O Système d’Exploitation ... I/O I/O Memory Memory Yann MORÈRE 2004 Bus simple, DMA-E/S intégrée Processor Processor 470/70 DMA DMA DMA Memory Memory I/O I/O I/O Système d’Exploitation I/O I/O Yann MORÈRE 2004 471/70 Bus d’E/S System Bus Processor Processor DMA DMA Memory Memory I/O Bus I/O I/O I/O I/O Système d’Exploitation I/O I/O Yann MORÈRE 2004 Objectifs de conception d’un SE • Extrêmement lent vis-à-vis de la mémoire centrale • L’utilisation de la multiprogrammation permet à certains processus d’attendre un E/S pendant qu’un autre processus s’exécute • Les E/S ne peuvent pas suivre la vitesse du processeur • Le « Swapping » est utilisé pour apporter des processus prêts additionnels. C’est une opération d’E/S • L’efficacité est une chose importante Système d’Exploitation Yann MORÈRE 2004 472/70 Objectifs de conception d’un SE • L’efficacité est une chose importante • Il est préférable de gérer touts les périphériques d’E/S d’une manière unique • Cacher le plus de détails possible d’un périphériques d’E/S dans les routines de bas niveau de telles sortes que les processus ou les niveaux supérieurs voient le périphériques en termes génériques tels que Lecture/Écriture et Ouverture/Fermeture • La généricité est une chose importante Système d’Exploitation Yann MORÈRE 2004 473/70 Un modèle d’organisation des E/S User User Processes Processes User User Processes Processes User User Processes Processes Directory Management Logical I/O Comm. Architecture File System Physical Organization Device I/O Device I/O Device I/O Scheduling & Control Scheduling & Control Scheduling & Control Hardware Hardware Hardware Hardware Hardware Hardware Local peripheral device Communications port Système d’Exploitation File System Yann MORÈRE 2004 474/70 475/70 Tampon d’E/S • Pourquoi un tampon Les processus doivent attendre la fin d’E/S avant d’exécuter Les pages nécessaires doivent rester en mémoire centrale pendant l’E/S Système d’Exploitation Yann MORÈRE 2004 476/70 Tampon d’E/S • Orienté block L’information est stockée dans des blocks de taille fixe Les transferts sont fait un block à la foit Utilisé pour les disques et les bandes • Orienté flux Le transfert d’information est un flux de d’octets Utilisé pour les terminaux, les imprimantes, les ports de communication, souris et la plupart des périphériques qui ne sont pas des organes de stockage secondaire Système d’Exploitation Yann MORÈRE 2004 477/70 Pas de tampon Ope rating System I/O Device User Process In No buffering Système d’Exploitation Yann MORÈRE 2004 478/70 Tampon simple • Le SE assigne un tampon en mémoire centrale pour une requête E/S • Orienté block Les transferts des entrées faites dans le buffer Block déplacé dans l’espace utilisateur si nécessaire Un autre block est déplacé dans le buffer • Lecture suivante I/O Device Operating System In User Process Move Single buffering Système d’Exploitation Yann MORÈRE 2004 Tampon simple 479/70 • Orienté block Le processus utilisateur peut travailler sur un block de données pendant que le block suivant est lu Le « swapping » peut apparaître dès que l’entrée est en mémoire système et non en mémoire utilisateur Le SE garde trace de l’assignation des tampons systèmes aux processus utilisateurs La sortie est réalisée par le processus utilisateur en ecrivant un block dans le tampon et plus tard réellement écrit Système d’Exploitation Yann MORÈRE 2004 480/70 Tampon simple • Orienté flux Utilise une ligne à la fois (ligne par ligne) L’entrée utilisateur d’un terminal est une seule ligne terminée par un « retour chariot » qui signale la fin de ligne La sortie du terminal se fait ligne par ligne Système d’Exploitation Yann MORÈRE 2004 481/70 Tampon double • Utilise deux tampons système à la place d’un seul • Un processus peut transférer des données d’un ou vers un tampon pendant que le SE vide ou remplit l’autre buffer Ope rating System I/O Device User Process Move In Double buffering Système d’Exploitation Yann MORÈRE 2004 482/70 Tampon Circulaire • Plus de deux tampons sont utilisés • Chaque tampon est une unité d’un tampon circulaire • Utilisé lorsque les opérations d’E/S doivent suivre les processus Ope rating System In User Process Move . . I/O Device Circular buffering Système d’Exploitation Yann MORÈRE 2004 Paramètres de performance des disques • Pour lire ou écrire, la tête du disque doit être positionnée sur la piste désirée et au début du secteur désiré • Temps de recherche Temps mis pour positionner la tête sur la piste désirée • Retard de rotation ou latence de rotation Temps mis jusqu’à ce que le secteur désiré soit aligné avec la tête Système d’Exploitation Yann MORÈRE 2004 483/70 Paramètres de performance des disques • Temps d’accès Somme du temps de recherche et du retard de rotation Temps mis pour être en position de lecture ou écriture • La transfert de donnée est réalisé pendant que le secteur se déplace sous la tête • Le transfert de données pour un fichier entier est plus rapide lorsqu’il est stocké sur le même cylindre et des secteurs adjacents Système d’Exploitation Yann MORÈRE 2004 484/70 Politique d’ordonnancement disque • Le temps d’accès est un raison de la différence de performance • Pour un disque unique, il y aura un nombre important de requêtes d’E/S • Si les requêtes sont sélectionnées aléatoirement, on aura la pire des performance possible Système d’Exploitation Yann MORÈRE 2004 485/70 Politique d’ordonnancement disque • First-in, first-out (FIFO) Requêtes de processus séquentielles Equitable pour tous les processus Approche la performance de l’ordonnancement aléatoire quand il y a beaucoup de processus Système d’Exploitation Yann MORÈRE 2004 486/70 Politique d’ordonnancement disque • Priorités La but n’est pas d’optimiser l’utilisation du disque mais de réaliser les autres objectifs Les travaux courts devraient avoir une priorité plus haute Fournit un bon temps de réponse en mode interactif Système d’Exploitation Yann MORÈRE 2004 487/70 Politique d’ordonnancement disque • Last-in, first-out Bon pour les systèmes de traitements de transaction • Le service est donné au plus récent utilisateur, donc il devrait y avoir peu de mouvement du bras du disque Possiblilité de famine dès qu’un travail ne peut pas reprendre la tête de la file Système d’Exploitation Yann MORÈRE 2004 488/70 Politique d’ordonnancement disque • Shortest Service Time First Sélectionne la requête d’E/S disque qui requiert le plus petit mouvement du bras du disque à partir de la position courante Toujours choisir le temps recherche minimum Système d’Exploitation Yann MORÈRE 2004 489/70 Politique d’ordonnancement disque • SCAN Le bras se déplace seulement dans une direction en satisfaisant toutes les requêtes présentes jusqu’à ce qu’il atteigne la dernière piste dans cette direction La direction est ensuite inversée Système d’Exploitation Yann MORÈRE 2004 490/70 Politique d’ordonnancement disque • C-SCAN Restreint le « scanning » dans une direction seulement Lorsque la dernière piste a été visitée dans une direction, le bras est ramené sur l’autre bord du disque est le « scan » recommence Système d’Exploitation Yann MORÈRE 2004 491/70 Politique d’ordonnancement disque • N-step-SCAN Segemente la file de requête disque en sous files de taille N Les sous files sont exécutées une à la fois en utilisant le « SCAN » Les nouvelles requêtes sont ajoutées à une autre file quand la file est exécutée • FSCAN Deux files Un file est vide pour les nouvelles requêtes Système d’Exploitation Yann MORÈRE 2004 492/70 493/70 RAID 0 (non-redondant) strip 0 strip 1 strip 2 strip 3 strip 4 strip 5 strip 6 strip 7 strip 8 strip 9 strip 10 strip 11 strip 12 strip 13 strip 14 strip 15 Système d’Exploitation Yann MORÈRE 2004 494/70 RAID 1 (miroir) strip 0 strip 1 strip 2 strip 3 strip 4 strip 5 strip 6 strip 7 strip 8 strip 9 strip 10 strip 11 strip 12 strip 13 strip 14 strip 15 strip 0 strip 1 strip 2 strip 3 strip 4 strip 5 strip 6 strip 7 strip 8 strip 9 strip 10 strip 11 strip 12 strip 13 strip 14 strip 15 Système d’Exploitation Yann MORÈRE 2004 RAID 2 (redondance a travers code de Hamming) b0 b1 b2 Système d’Exploitation b2 f0(b) f1(b) Yann MORÈRE 2004 495/70 f2(b) RAID 3 (bit de parité bitinterleaved parity) b0 b1 Système d’Exploitation b2 b2 Yann MORÈRE 2004 496/70 P(b) RAID 4 (parité niveau block - block-level parity) 497/70 block 0 block 1 block 2 block 3 P(0-3) block 4 block 5 block 6 block 7 P(4-7) block 8 block 9 block 10 block 11 block 12 block 13 block 14 block 15 P(8-11) P(12-15) Système d’Exploitation Yann MORÈRE 2004 RAID 5 (parité niveau block distribuée - blocklevel distributed parity) 498/70 block 0 block 1 block 2 block 3 P(0-3) block 4 block 5 block 6 P(4-7) block 7 block 8 block 9 P(8-11) block 10 block 11 block 12 P(12-15) block 13 block 14 block 15 block 16 block 17 P(16-19) Système d’Exploitation block 18 block 19 Yann MORÈRE 2004 Mappage des données pour RAID niveau 0 Physical Disk 0 Physical Disk 1 Physical Disk 2 Physical Disk 3 strip 0 strip 1 strip 2 strip 3 strip 4 strip 5 strip 6 strip 7 strip 8 strip 9 strip 10 strip 11 strip 12 strip 13 strip 14 strip 15 strip 0 strip 1 strip 2 strip 3 strip 4 strip 5 strip 6 strip 7 strip 8 strip 9 strip 10 strip11 strip 12 strip 13 strip 14 strip 15 Array Management Software Système d’Exploitation Yann MORÈRE 2004 499/70 500/70 Cache disque • Tampon en mémoire centrale pour des secteurs de disque • Contient une copie de certains secteurs du disque Système d’Exploitation Yann MORÈRE 2004 Le moins récemment utilisé • Le block qui est resté le plus longtemps dans le cache sans être référencé est remplacé • Le cache consiste en un pile de blocks • Le block référencé le plus récemment est en tête de pile • Lorsqu’un block est référencé ou mis en cache, il est placé en tête de pile Système d’Exploitation Yann MORÈRE 2004 501/70 Le moins récemment utilisé • Le block en bas de pile est enlevé lorsqu’un nouveau block est mis en cache • Les blocks Les blocs ne se déplacent pas réellement dans la mémoire centrale • Une pile de pointeur est utilisée Système d’Exploitation Yann MORÈRE 2004 502/70 Le moins fréquemment utilisé • Le block qui a eu le moins de référence est remplacé • Un compteur est associé à chaque block • Le compteur est incrémenté à chaque fois qu’un block est accédé • Certains blocks peuvent être référencé plusieurs fois au cours d’une période courte et ensuite plus utilisé du tout Système d’Exploitation Yann MORÈRE 2004 503/70 Remplacement basé sur la fréquence New Section Old Section ... MRU Re-reference: count unchanged ... LRU Re-reference: count := count + 1 Miss (new block brought in) count := 1 FIFO New Section MRU ... Middle Section Old Section ... ... LRU Use of three sections Système d’Exploitation Yann MORÈRE 2004 504/70 505/70 Structure E/S Unix File Subsystem Buffer Character Cache Block Device Drivers Système d’Exploitation Yann MORÈRE 2004 Gestionnaire E/S Windows NT 4.0 I/O Manager Cache Manager File System Drivers Network Drivers Hardware Device Drivers Système d’Exploitation Yann MORÈRE 2004 506/70 Implantation de données de disque Sectors Tracks Inte r-sector gap Inte r-track gap Système d’Exploitation Yann MORÈRE 2004 507/70 Implantation de données de disque utilisant un vitesse angulaire constante Track 2, Sector 7 Système d’Exploitation Track 0, Sector 0 Yann MORÈRE 2004 508/70 Gestion Fichier Chapitre 12 510/70 Fichiers • Utilisé pour l’entrée de données dans les programmes • Sorties des applications stockées dans les fichiers pour un stockage à long terme Système d’Exploitation Yann MORÈRE 2004 Termes utilisés avec les fichiers • Champ Élément de base d’une donnée Caractérisé par le type de donnée et sa longueur • Enregistrement collection de champs connexes Traité comme un tout • Exemple: l’enregistrement employé Système d’Exploitation Yann MORÈRE 2004 511/70 Termes utilisés avec les fichiers • fichier collection d’enregistrement semblables Traité comme une entité unique Les noms de fichier sont uniques Possibilité de restreindre l’accès • Base de données collection de données connexes Des relations existent parmi les éléments Système d’Exploitation Yann MORÈRE 2004 512/70 Système de gestion de fichier • La manière dont l’utilisateur de l’application accède au fichier • Les programmeurs ne doivent pas avoir besoin de développer un logiciel de gestion de fichier Système d’Exploitation Yann MORÈRE 2004 513/70 Architecture d’un système de gestion de fichier User Program Pile Sequential Indexed Sequential Indexed Hashed Logical I/O Basic I/O Supervisor Basic File System Disk Device Driver Système d’Exploitation Tape Device Driver Yann MORÈRE 2004 514/70 515/70 Pilotes de périphériques • Le plus bas niveau • Communique directement avec les périphériques • Responsable du démarrage des opérations d’E/S sur un périphérique • Traite l’accomplissement d’une requête d’E/S Système d’Exploitation Yann MORÈRE 2004 516/70 Système de fichier de base • E/S physique • S’occupe de l’échange de blocks de données • Traite du placement des blocks • Traite de la mise en tampon en mémoire centrale des blocks Système d’Exploitation Yann MORÈRE 2004 517/70 Superviseur d’E/S de base • Responsable du commencement et de la fin d’une E/S fichier • Les structures de contrôle sont mises à jour • Traite de l’ordonnancement des accès pour optimiser la performance • Partie du système d’exploitation Système d’Exploitation Yann MORÈRE 2004 518/70 E/S logique • Permet aux utilisateurs et aux application d’accéder aux enregistrements • Met à jour les données basiques concernant le fichier Système d’Exploitation Yann MORÈRE 2004 519/70 Méthode d’accès • Reflète les différentes structures de fichiers • Différentes manières de stocker et traiter les données Système d’Exploitation Yann MORÈRE 2004 Fonction de la gestion de fichier • Identifier et localiser un fichier sélectionné • Utilisation d’un répertoire pour décrire l’emplacement d’un groupe de fichier et leurs attributs • Sur un système partagé, il y a la description du contrôle d’accès utilisateur • Blocage de l’accès aux fichiers • Allocation de blocks libres aux fichiers • Gestion de l’espace libre pour les blocks disponibles Système d’Exploitation Yann MORÈRE 2004 520/70 Critère pour l’organisation de fichier • Accès rapide Nécessaire pour l’accès à un enregistrement unique Non nécessaire pour l’accès par lots • Facilité de mise à jour Les fichiers sur CD-rom ne seront pas mis à jour, non concerné Système d’Exploitation Yann MORÈRE 2004 521/70 Critère pour l’organisation de fichier • Économie de stockage La redondance doit être minimum dans les données La redondance peut être utilisée pour accélérer l’accès, par exemple les indexes • Maintenance simple • Fiabilité Système d’Exploitation Yann MORÈRE 2004 522/70 523/70 Organisation des fichiers • La pile Les données sont collectées dans l’ordre ou elles arrivent Le but est d’accumuler une quantité de données et de la sauvegarder Les enregistrements peuvent avoir des champs différents Pas de structure L’accès aux enregistrement est fait par une recherche exhaustive Système d’Exploitation Yann MORÈRE 2004 524/70 Organisation des fichiers La pile Système d’Exploitation Yann MORÈRE 2004 525/70 Organisation des fichiers • Le fichier séquentiel Les formats fixes sont utilisés pour les enregistrements Les enregistrements ont la même longueur Tous les champs sont identiques (ordre et longueur) Les noms des champs et leurs longueurs sont les attributs du fichier Un champs est la clé (champs clé) • Identifie de manière unique l’enregistrement • Les enregistrements sont stockés en séquence de clé Système d’Exploitation Yann MORÈRE 2004 526/70 Organisation des fichiers • Le fichier séquentiel Les nouveaux enregistrements sont placés dans un fichier « log » ou dans un fichier de transaction Une mise à jour par lot est faite pour fusionner le fichier log avec le fichier maître Système d’Exploitation Yann MORÈRE 2004 527/70 Organisation des fichiers Le fichier séquentiel Champ clé Système d’Exploitation Yann MORÈRE 2004 528/70 Organisation des fichiers • Fichier séquentiel indexé L’index fournit l'index d'une fournit des possibilités de consultation pour atteindre rapidement la proximité de l’enregistrement désiré • Contient un champ clé et un pointeur sur le fichier • L’index est parcouru à la recherche de la clé la plus grande qui soit égale ou inférieure à la valeur désirée • La recherche continue dans le fichier principal à l ’endroit indiqué par le pointeur Système d’Exploitation Yann MORÈRE 2004 529/70 Organisation des fichiers • Comparaison du procédé séquentiel et séquentiel indexé Exemple: un fichier contenant 1 million d’enregistrement En moyenne 500000 accès sont nécessaires pour trouver un enregistrement dans un fichier séquentiel Si un index contient 1000 entrées, cela prendra en moyenne 500 accès pour retrouver la clé, puis 500 accès en moyenne dans le fichier principal, donc une moyenne de 1000 accès. Système d’Exploitation Yann MORÈRE 2004 530/70 Organisation des fichiers • Fichier séquentiel indexé Les nouveaux enregistrements sont ajoutés à un fichier de débordement L’enregistrement dans le fichier principal qui le précède est mis à jour pour contenir un pointeur vers le nouvel enregistrement Le fichier débordement est fusionné avec le fichier principal pendant une mise à jour par lot De multiples indexes pour le même champs clé peut être créé pour augmenter l’efficacité Système d’Exploitation Yann MORÈRE 2004 531/70 Organisation des fichiers Fichier séquentiel indexé n Index Levels 2 1 Main File Overflow File Système d’Exploitation Yann MORÈRE 2004 532/70 Organisation des fichiers • Fichier indexé Utilise plusieurs indexes pour différents champs clé Peut contenir un index exhaustif qui contient une entrée pour chaque entrée du fichier principal Peut contenir un index partiel Système d’Exploitation Yann MORÈRE 2004 533/70 Organisation des fichiers Fichier indexé Exhaustive Index Exhaustive Index Système d’Exploitation Partial Index Yann MORÈRE 2004 534/70 Organisation des fichiers • Fichier direct ou à table de hachage Accès direct au block à une adresse connue Champ clé requis pour chaque enregistrement Système d’Exploitation Yann MORÈRE 2004 535/70 Organisation des fichiers Fichier direct ou à table de hachage Hash Function Key f Primary File Overflow File Système d’Exploitation Yann MORÈRE 2004 536/70 Répertoires • Contient des informations sur les fichiers attributs emplacement propriétaire • Le répertoire lui-même est un fichier dont le propriétaire est le SE • Fournit la correspondance entre les noms de fichier des les fichiers eux-mêmes Système d’Exploitation Yann MORÈRE 2004 Structure simple pour un répertoire • Liste d’entrées, une pour chaque fichier • Fichier séquentiel avec le nom de fichier comme clé • Ne fournit aucune aide dans l’organisation de fichiers • Force l’utilisateur à faire attention de na pas utiliser un même nom pour deux fichiers différent Système d’Exploitation Yann MORÈRE 2004 537/70 Schéma à 2 niveaux pour un répertoire • Un répertoire pour chaque utilisateur et un répertoire maître • Le répertoire maître contient une entrée pour chaque utilisateur Fournit les informations d’adresses et de contrôle d’accès • Chaque répertoire utilisateur est une simple liste des fichiers pour cet utilisateur • Ne fournit toujours pas d’aide dans la structuration des collections de fichiers Système d’Exploitation Yann MORÈRE 2004 538/70 Répertoire à structure hiérarchique ou structure en arbre • répertoire principal avec des répertoires utilisateur sous lui • Chaque répertoire utilisateur peut avoir des sous répertoires et des fichiers comme entrées Système d’Exploitation Yann MORÈRE 2004 539/70 540/70 Master Directory System User A User B User C Exemple Directory “User A’ Directory “User B’ Directory “User C” Draw Word Directory “Word” Directory “Draw” Unit A ABC Directory “Unit A” ABC File “ABC” File “ABC” Pathname: /User B/Word/Unit A/ABC Système d’Exploitation Yann MORÈRE 2004 Répertoire à structure hiérarchique ou structure en arbre • Les fichiers peuvent être retrouvés en suivant le chemin (path) à partir de la racine (root) vers les branches C’est le chemin d’un fichier (pathname) • On peut donc avoir des fichiers avec un nom identique du moment qu’ils ont un « pathname » différent Système d’Exploitation Yann MORÈRE 2004 541/70 Répertoire à structure hiérarchique ou structure en arbre • Le répertoire courant est le répertoire de travail • Les fichiers sont aussi référencés relativement au répertoire courant Système d’Exploitation Yann MORÈRE 2004 542/70 543/70 Partage de fichier • Manière de contrôler l’accès à un fichier particulier • Des utilisateurs et des groupes d’utilisateurs sont autorisés à avoir certains droits sur le fichier Système d’Exploitation Yann MORÈRE 2004 544/70 Droits d’accès • Aucun L’utilisateur n’a pas connaissance de l’existence du fichier L’utilisateur n’est pas autorisé à lire le répertoire utilisateur qui contient le fichier • Connaissance L’utilisateur peut seulement déterminer si le fichier existe et qui est son propriétaire Système d’Exploitation Yann MORÈRE 2004 545/70 Droits d’accès • Exécution L’utilisateur peut charger et exécuter un programme mais ne peut pas le copier • Lecture L’utilisateur peut lire le fichier dans n’importe quel but, incluant la copie et l’exécution • Ajout en fin L’utilsateur peut ajouter des données au fichier mais ne peut pas modifier ou effacer le contenu du fichier Système d’Exploitation Yann MORÈRE 2004 546/70 Droits d’accès • Mise à jour L’utilisateur peut modifier, effacé et ajouter des données au fichier. Ceci inclut la création de fichier, l’écrasement et l’effacement d’une partie ou de toutes les données • Changement de protection L’utilisateur peut changer les droits d’accès donnés par d’autres utilisateurs • Effacement L’utilisateur peut effacer le fichier Système d’Exploitation Yann MORÈRE 2004 547/70 Droits d’accès • Propriétaires Possèdent tous les droits décrits précédemment Peut donner des droits aux autres en utilisant les classes suivantes d’utilisateurs • Utilisateur spécifique • Groupe d’utilisateur • Tous pour les fichiers publics Système d’Exploitation Yann MORÈRE 2004 548/70 Accès simultané • L’utilisateur peut bloquer le fichier entièrement lorsqu’il doit être mis à jour • L’utilisateur peut verrouiller des enregistrements de manière individuelle durant la mise à jour • L’exclusion mutuelle et l’impasse (deadlock) sont les issues pour l'accès partagé Système d’Exploitation Yann MORÈRE 2004 Méthodes de verrouillage d’enregistrement – verrouillage fixe R5 R6 R7 R8 549/70 Track 2 Data Waste due to record fit to block size Gaps due to hardware design Waste due to block size constraint from fixed record size Waste due to block fit to track size Système d’Exploitation Yann MORÈRE 2004 Méthodes de verrouillage d’enregistrement – verrouillage variable : Enjambé R1 R6 R2 R7 R3 R8 R4 R9 R4 R9 R10 R5 550/70 R6 Track 1 R11 R12 R13 Track 2 Data Waste due to record fit to block size Gaps due to hardware design Waste due to block size constraint from fixed record size Waste due to block fit to track size Système d’Exploitation Yann MORÈRE 2004 Méthodes de verrouillage d’enregistrement – verrouillage variable : NonEnjambé R1 R2 R6 R4 R3 R7 R8 Track 1 R5 R9 551/70 R10 Track 2 Data Waste due to record fit to block size Gaps due to hardware design Waste due to block size constraint from fixed record size Waste due to block fit to track size Système d’Exploitation Yann MORÈRE 2004 Gestion du stockage secondaire • L’espace doit être alloué pour des fichiers • Doit garder la trace de l’espace disponible pour l’allocation • L’espace est alloué par un ou plusieurs unités ou portions contiguës Système d’Exploitation Yann MORÈRE 2004 552/70 553/70 Préallocation • Nécessite la taille maximum pour le fichier lors de sa création • Difficile d’estimer de manière fiable la taille maximum que fera le fichier • Tend à surestimer la taille du fichier Système d’Exploitation Yann MORÈRE 2004 554/70 Taille de la portion • La contiguïté de l’espace augmente les performances • Un grand nombre de petites portions augmente la taille des tables nécessaires • La taille fixe simplifie la réallocation de l’espace • Les tailles variables minimisent la perte de place et d’espace inutilisé Système d’Exploitation Yann MORÈRE 2004 Méthodes d’allocation de fichier • Allocation contiguë Un ensemble de block est alloué au fichier lors de sa création Une seule entrée dans la table d’allocation des fichiers • Block de départ et taille du fichier • Apparition de fragmentation • Cela va devenir difficile de trouver des blocks contigus de longueur suffisant Système d’Exploitation Yann MORÈRE 2004 555/70 556/70 Allocation contiguë de fichiers File Allocation Table FileA 0 5 1 6 2 3 7 4 8 9 FileB 10 11 12 13 14 15 16 17 18 19 23 24 27 28 29 32 33 34 File Name FileA FileB FileC FileD FileE Start Block Length 2 9 18 30 26 FileC 20 21 22 FileE 25 26 FileD 30 31 Système d’Exploitation Yann MORÈRE 2004 3 5 8 2 3 Méthodes d’allocation de fichier 557/70 • Allocation chaînée Allocation sur la base de block individuel Chaque block contient un pointeur sur le prochain block dans la chaîne Une seule entrée dans la table d’allocation des fichiers • Block de départ et taille du fichier • Pas de fragmentation • N’importe quel bloque libre peut être ajouté à la chaîne • Aucun principe de la localité Système d’Exploitation Yann MORÈRE 2004 558/70 Allocation chaînée de fichier File Allocation Table FileB 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 Système d’Exploitation File Name ... FileB ... Start Block Length ... 1 ... Yann MORÈRE 2004 ... 5 ... Méthodes d’allocation de fichier • Allocation indexée La table d’allocation des fichiers contient un index séparé pour chaque fichier L’index possède une entrée pour chaque portion allouée du fichier La table d’allocation des fichiers contient le numéro de block pour l’index Système d’Exploitation Yann MORÈRE 2004 559/70 Allocation indexée avec potion de block fixe 560/70 File Allocation Table FileB 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 Système d’Exploitation File Name ... FileB ... Index Block ... 24 ... 1 8 3 14 28 Yann MORÈRE 2004 Allocation indexée avec potion de block à taille variable 561/70 File Allocation Table FileB 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 Système d’Exploitation File Name Index Block ... ... FileC ... 24 ... Start Block Length 1 28 14 3 4 1 Yann MORÈRE 2004 562/70 Gestion de fichier UNIX • Les fichiers sont des flux d’octets • Types de fichiers ordinaire – contenu fournit par l’utilisateur ou un programme répertoire – contient la liste des fichiers et les pointeur aux inodes (index nodes) spécial – utilisé pour accéder aux périphériques nommé – tubes nommés Système d’Exploitation Yann MORÈRE 2004 Système de fichier Windows NT 563/70 • Secteur – plus petite unité de stockage sur le disque • Cluster – un ou plusieurs secteurs contigus • Volume – partition logique d’un disque Système d’Exploitation Yann MORÈRE 2004 Disposition du Volume NTFS partition boot sector Master File Table System Files Système d’Exploitation File Area Yann MORÈRE 2004 564/70 Composants Windows NTFS I/O Manager Log the transaction Log File Log File Service Service Read/write the file Flush the Write the log file cache NTFS Driver Fault Tolerant Driver Disk Driver Disk Driver 565/70 Read/write a mirrored or striped volume Read/write the disk Cache Cache Manager Manager Load data from disk into me mory Access the mapped file or flush the cache Virtual Memory Virtual Memory Manager Manager Système d’Exploitation Yann MORÈRE 2004 Exécution Distribuée, Client/Serveur et cluster Chapitre 13 Traitement de données distribuées • Permet aux processeurs et aux données d’être dispersées • Fournit un système qui répond mieux aux besoins des • Minimise les coûts de communication en comparaison avec une approche centralisée Système d’Exploitation Yann MORÈRE 2004 567/70 Traitement de données distribuées • Ordinateurs personnels La plupart des employés en a un Application utilisateur simple (traitement de texte, tableur, présentation) • Mainframe Base de données de la société Logiciel compliqué pour la gestion de base de données Système d’Exploitation Yann MORÈRE 2004 568/70 Architecture du protocole TCP/IP • Développée lors de la création du réseau ARPANET • 5 couches indépendantes application host-to-host internet Accès réseau physique Système d’Exploitation Yann MORÈRE 2004 569/70 Architecture du protocole TCP/IP • Couche physique Interface physique entre le matériel de transmission de données et le réseau Est concernée par les signaux, les données, taux de transfert etc. Système d’Exploitation Yann MORÈRE 2004 570/70 Architecture du protocole TCP/IP • Couche d’accès au réseau concerné par l'échange des données Le logiciel utilisé dépend du type de réseau Concerné par l’accès et le routage des données à travers le réseau Système d’Exploitation Yann MORÈRE 2004 571/70 Architecture du protocole TCP/IP • Couche internet Utilisée lorsque 2 périphériques sont attachées à des réseaux différents internet protocol (IP) est itilisé pour fournir la fonction de routage Les routeurs sont utilisés pour transférer des données d’un réseau à un autre Système d’Exploitation Yann MORÈRE 2004 572/70 Architecture du protocole TCP/IP • Couche transport Fournit la logique pour assurer que les données échangée entre 2 machines (hôtes) est livrée de manière fiable Le protocole sur cette couche est le protocole de transmission - transmission control protocol (TCP) Système d’Exploitation Yann MORÈRE 2004 573/70 Architecture du protocole TCP/IP • Couche application Contient les protocoles pour les applications spécifiques utilisateur Système d’Exploitation Yann MORÈRE 2004 574/70 575/70 Opérations de TCP et d’IP • TCP peut couper un block en morceaux plus petits pour permettre la gestion TCP ajoute des information sur chaque morceau • Port destination • Numéro de séquence • checksum • TCP donne le message au protocole IP avec les instructions d’envoi vers un hôte Système d’Exploitation Yann MORÈRE 2004 576/70 Opérations de TCP et d’IP • IP passe le message à la couche d’accès réseau avec les instructions de l’envoyer au routeur • IP ajoute un entête d’information de contrôle Maintenant c’est un datagramme IP Adresse de l ’hôte destination • La couche d’accès réseau ajoute une entête d’information pour créer un paquet ou un trame Système d’Exploitation Yann MORÈRE 2004 Unités de donnée protocole dans une archtecture TCP/IP User data TCP Header IP Header Application Byte Stream TCP Segment IP Datagram Network-Level Packet Network Header Système d’Exploitation Yann MORÈRE 2004 577/70 578/70 Entête TCP Bit: 0 10 4 16 20 Octets Source Port 31 Destination Port Sequence Numbe r Acknowledge ment Numbe r Header Length Unused Flags Checksum Window Urgent Pointe r Options + Padding Système d’Exploitation Yann MORÈRE 2004 579/70 User Datagram Protocol (UDP) • Service sans connexion • Ne garantit pas la livraison • Il ajoute un capacité d’adressage de port à IP 16 8 Octets Bit: 0 31 Source Port Destination Port Segment Length Checksum Système d’Exploitation Yann MORÈRE 2004 580/70 Application TCP/IP • Simple Mail Transfer Protocol (SMTP) Fournit les bases pour réaliser du courrier electronique Fournit les mécanismes de transfert de message parmi des hôtes séparés Inclut les mailing lists, reçus de retour, et transfert Système d’Exploitation Yann MORÈRE 2004 581/70 Application TCP/IP • File Transfer Protocol (FTP) Utilisé pour transférer des fichiers d’un système vers un autres par des commandes utilisateurs Permet l’utilisation de ID utilisateur et mots de passe Permet à l’utilisateur de spécifier le fichier et les actions à réaliser sur ce fichier Système d’Exploitation Yann MORÈRE 2004 582/70 Application TCP/IP • TELNET Fournit un capacité de login à distance, permet à un utilisateur de travailler sur une machine distante à partir d’un terminal ou de sa machine de bureau Utilisation des fonctions comme si l’utilisateur était directement sur la machine Les terminaux distants apparaissent comme locaux pour les applications Système d’Exploitation Yann MORÈRE 2004 Architecture du protocole OSI • Open Systems Interconnection • Développé par le « International Organization for Standardization » (ISO) • Composé de 7 couches • Les protocoles sont développés pour réaliser des fonctions à chaque couche Système d’Exploitation Yann MORÈRE 2004 583/70 Couches du modèle OSI Application Presentation Session Transport Network Data Link Physical Système d’Exploitation Yann MORÈRE 2004 584/70 585/70 Programmation Client/Serveur • Les machines clientes sont souvent des PCs mono-utilisateur ou des stations de travail avec des interfaces graphiques ergonomiques pour l’utilisateur • Chaque serveur fournit un ensemble de services utilisateur partagés pour les clients • Le serveur permet à plusieurs client de partagé l’accès à la même base de données et permet l’utilisation d’un calculateur haute performance pour la gestion de la base de données Système d’Exploitation Yann MORÈRE 2004 586/70 Programmation Client/Serveur • Implique le découpage d’une application en tâches et de mettre chaque tâche sur la plateforme la plus performante pour ce travail • Traitement pour la présentation des résultats sur la machine utilisateur • Gestion et données et stockage sur un serveur • Implique un réseau Système d’Exploitation Yann MORÈRE 2004 Environnement client/serveur générique Système d’Exploitation Yann MORÈRE 2004 587/70 588/70 Applications Client/Serveur • Les plates-formes et les SE du client et du serveur peuvent être différent • Ces différences ne sont pas pertinente du moment que les client et le serveur utilisent les mêmes protocoles de communication et supportent les mêmes applications Système d’Exploitation Yann MORÈRE 2004 589/70 Applications Client/Serveur • Les fonctions actuelles réalisées par l ’application peuvent être partagées entre le client et le serveur • Optimisation des ressources plate-forme et réseau • Optimisation de la capacité des utilisateurs à réaliser des tâches variées • Optimisation de la capacité à coopérer avec d’autres en partageant des ressources Système d’Exploitation Yann MORÈRE 2004 590/70 Application base de données • Le serveur est un serveur de base de données • Interaction entre le client et le serveur se fait sous la forme de transaction Le client fait une requête à la base de données et reçoit les réponse de la base • Le serveur a en charge la maintenance et la mise à jour de la base de données Système d’Exploitation Yann MORÈRE 2004 Architecture Client/Serveur Architecture pour application base de données Client Workstation Presentation Services Application Logic Server Request Database Logic Communications Software Client Operating System Database Logic Response Protocol Interaction Communications Software Hardware Platform Database Management System Server Operating System Hardware Platform Système d’Exploitation Yann MORÈRE 2004 591/70 Classes d’applications Client/Serveur • Traitement basé hôte - Host-based processing Pas vraiment un traitement client/serveur Environnement « mainframe » traditionnel Client Server Presentation Logic Application Logic Database Logic DBMS Système d’Exploitation Yann MORÈRE 2004 592/70 Classes d’applications Client/Serveur • Traitement basé serveur - Server-based processing Le serveur fait tout le traitement La station de travail fournit uniquement une Server Client présentation convivial des interfaces Presentation Logic Application Logic Database Logic DBMS Système d’Exploitation Yann MORÈRE 2004 593/70 Classes d’applications Client/Serveur • Traitement basé client - Client-based processing Tout le traitement de l’application peut être fait sur le client Les routines de validation de données et les autres fonctions logiques de la base de Server Client données sont faites sur le serveur Presentation Logic Application Logic Database Logic Database Logic DBMS Système d’Exploitation Yann MORÈRE 2004 594/70 Classes d’applications Client/Serveur • Traitement Coopératif Le traitement de l’application est réalisé d’une manière optimisée Complexe à réaliser et à maintenir Client Server Presentation Logic Application Logic Application Logic Database Logic DBMS Système d’Exploitation Yann MORÈRE 2004 595/70 596/70 Uniformité du fichier de cache • Les fichiers caches contiennent les enregistrements des fichiers récemment accédés • Les caches sont uniforme quand ils contiennent l’exacte copie des données des fichiers distants • Le verrouillage de fichiers empêche l’accès simultané à un fichier L’écriture oblige la mise à jour des caches serveur Système d’Exploitation Yann MORÈRE 2004 Logiciels personnalisés Middleware • Ensemble d’outils qui fournissent un moyen uniforme d’accéder aux ressources d’un système quelle que soit la plate-forme • Permet aux programmeurs de construire des applications qui sont semblables dans leurs utilisations et apparences • Permet aux programmeurs d’utiliser la même méthode pour accéder aux données Système d’Exploitation Yann MORÈRE 2004 597/70 Logiciels personnalisés Middleware • Utilisation d’une interface standard de programmation et de protocoles • Il y a un composant serveur et un composant client dans le « middleware » • Fournit un accès uniforme à différents systèmes Système d’Exploitation Yann MORÈRE 2004 598/70 Rôle du Middleware dans une architecture Client/Serveur Client Workstation Presentation Services Application Logic Middleware Communications Software Client Operating System Server Middleware Interaction Protocol Interaction Hardware Platform Système d’Exploitation Middleware Communications Software Application Services Server Operating System Hardware Platform Yann MORÈRE 2004 599/70 600/70 Vue logique du Middleware Application Application APIs Middleware (distributed system services) Platform Interfaces Platform: OS Hardware Système d’Exploitation Platform: OS Hardware Yann MORÈRE 2004 Passage de message distribué • Le passage de message est utilisé pour la communication entre les processus • Message envoyés et reçus comme dans un simple système OU • Appel de Procédures à distance Système d’Exploitation Yann MORÈRE 2004 601/70 Primitives de base de passage de message 602/70 Sending Process Receiving Process Message-passing Module Message-passing Module ProcessID Message Système d’Exploitation Yann MORÈRE 2004 Message-orienté Middleware 603/70 Système d’Exploitation Yann MORÈRE 2004 Application Message-oriented Middleware Transport Application-specific messages Network Network Server Transport Message-oriented Middleware Application Client Appel de Procédure à distance • Permet aux programmes sur des machines différentes d’interagir en utilisant une sémantique simple d’appel/retour de procédure • Largement utilisé • standardisé Les modules client et serveur peuvent être déplacé parmi les ordinateurs et les SE facilement Système d’Exploitation Yann MORÈRE 2004 604/70 Mécanisme d’appel de procédure à distance Client Client Application Application Local Response 605/70 Remote Server Remote Server Application Application Local Response Local Response Local Procedure Calls Local LocalApplication Application oror Ope Operating ratingSystem System Local LocalStub Stub RPC RPC Mechanism Mechanism Remote Procedure Call Remote Procedure Call Système d’Exploitation Local Procedure Call Local LocalStub Stub RPC RPC Mechanism Mechanism Yann MORÈRE 2004 606/70 Liens Client/Serveur • Les liens spécifient la relation entre la procédure distante et le programme appelant • Liens Non persistants Connexion logique établie pendant l’appel de la procédure distante • Liens Persistants La connexion est maintenue après le retour de la procédure Système d’Exploitation Yann MORÈRE 2004 Remote Procedure Calls (RPC) Client 607/70 Server RPC Stub Program Système d’Exploitation Transport Application-specific Procedure Invocations and Returns Network Network Application Transport Application RPC Stub Program Yann MORÈRE 2004 Object Request Broker (ORB) 608/70 Client Network Transport RPC Stub Program Network Object Request Broker Application Transport Object Requests and Responses Network Système d’Exploitation Transport Server Object Requests and Responses Yann MORÈRE 2004 Object Server 609/70 Clusters • Alternative au « symmetric multiprocessing » (SMP) • Groupe d’ordinateurs interconnectés et travaillant ensemble que l’on considère comme une seule ressource de calcul Illusion d’une seule machine Le système peut fonctionner de lui même Système d’Exploitation Yann MORÈRE 2004 610/70 Clusters • Serveur séparé Chaque ordinateur est un serveur séparé Pas de disques partagés Nécessité d’un logiciel de gestion et d’ordonnancement Les données doivent être constamment copiées dans les systèmes Système d’Exploitation Yann MORÈRE 2004 611/70 Clusters Serveur sans disque partagé P P P P High-Speed Message Link M I/O I/O I/O Système d’Exploitation I/O Yann MORÈRE 2004 M 612/70 Clusters • Rien en partage réduit les temps de communication Les serveurs sont connectés à des disques communs Les disques sont partitionnés en volumes Chaque volume est possédé par un ordinateur Si un ordinateur tombe en panne un autre reçoit le volume en possession Système d’Exploitation Yann MORÈRE 2004 613/70 Clusters Disque partagé High-Speed Message Link P M P I/O I/O I/O I/O I/O P P I/O RAID Système d’Exploitation Yann MORÈRE 2004 M 614/70 Clusters • Disque partagé Plusieurs ordinateur partagent les même disque en même temps Chaque ordinateur a accès à tous les volumes sur tous les disques Système d’Exploitation Yann MORÈRE 2004 615/70 Windows NT Wolfpack • Wolfpack est le nom de code pour la technologie Cluster • Cluster ne partageant rien • Les groupes combinent les ressources qui peuvent être facilement gérées • Les ressources sont implémentées comme des DLLs dynamically linked libraries Système d’Exploitation Yann MORÈRE 2004 616/70 Windows NT Wolfpack Cluster Management Tools Cluster API DLL RPC Database Manager App Resource DLL Global Update Manager Node Manager Event Processor Failover Mgr Resource Mgr Resource Monitors Physical Resource DLL Cluster Service Logical Resource DLL Communication Manager Other Nodes Resource Management Interface App Resource DLL Non-aware app Cluster-aware App Système d’Exploitation Yann MORÈRE 2004 617/70 Solaris MC • Prototype de SE distribué construit comme un ensemble d’extensions de Solaris • Fournit un cluster avec une image de système unique Système d’Exploitation Yann MORÈRE 2004 618/70 Structure Solaris MC Applications System Call Interface Network Solaris MC File System Process Object Invocations C++ Object Frame work Other OtherNodes Nodes Existing Solaris 2.5 Kernel Système d’Exploitation Yann MORÈRE 2004 Gestion de processus distribué Chapitre 14 620/70 Migration de processus • Déplacer un processus actif d’une machine à une autre • Le processus migre vers une machine cible • Transfert d’une quantité suffisante de l’état d’un processus d’une machine à une autre Système d’Exploitation Yann MORÈRE 2004 621/70 Pourquoi migrer? • Partage de charge Déplacement de processus de systèmes fortement chargés vers des systèmes légèrement chargés La charge peut alors être répartie pour permettre une performance globale • Performances des communications Les processus qui interagissent intensivement peuvent être déplacé sur le même nœud pour réduire le coût de communication Il peut être mieux de déplacer les processus à l’endroit ou se trouvent les données quand elles ont une taille conséquente Système d’Exploitation Yann MORÈRE 2004 622/70 Pourquoi migrer? • disponibilité Les processus très long peut être obliger de bouger car la machine sur laquelle il s’exécute va être arrêtée • Utilisation de fonctionnalités spéciales Un processus peut avoir des avantages à utiliser un matériel ou logiciel spécifique Système d’Exploitation Yann MORÈRE 2004 623/70 Initiation de la Migration • SE Lorsque le but est la répartition de charge • Processus Lorsque le but est d’atteindre une ressources particulière Système d’Exploitation Yann MORÈRE 2004 624/70 Qu’est ce qui est migré? • Destruction du processus sur le système source • Le block de contrôle processus (PCB=Process control block) et tous les liens qui doivent être déplacés Système d’Exploitation Yann MORÈRE 2004 625/70 Qu’est ce qui est migré? • Eager (tout):transfert complet de l’espace s’adresse Aucune trace du processus n’est laissée Si l’espace d’adresse est grand, et si le processus n’a pas besoin de tout, cette procédure peut se révéler coûteuse Système d’Exploitation Yann MORÈRE 2004 626/70 Qu’est ce qui est migré? • Precopy: le processus continue de s’exécuter sur le nœud source pendant que l’espace d’adresse est copié Les pages modifiées sur la source pendant l’opération de « precopy » doivent être copiée dans un second temps Réduit le temps pendant lequel un processus est gelé et ne peut s’exécuter pendant la migration Système d’Exploitation Yann MORÈRE 2004 627/70 Qu’est ce qui est migré? • Eager (sale): transfert seulement de la partie de l’espace d’adresse qui est en mémoire centrale Les blocks additionnels de l’espace d’adresse virrtuel sont transféré sur demande La machine source est impliquée dans la vie du processus Bon si le processus se déplace temporairement sur une autre machine Bon pour un thread si les autres threads laissés ont besoin du même espace d’adresse Système d’Exploitation Yann MORÈRE 2004 628/70 Qu’est ce qui est migré? • Copy-on-reference: les pages sont déplacées seulement sur référencement variation de « eager » (sale) Possède la plus bas coût initial de migration de processus Système d’Exploitation Yann MORÈRE 2004 629/70 Qu’est ce qui est migré? • Flushing: les pages sont effacées de la mémoire centrale en les transférant sur disque Utilisation plus tard de la stratégie « copy-onreference » soulage la source de tenir toutes les pages du processus émigré dans la mémoire centrale Système d’Exploitation Yann MORÈRE 2004 Négociation de migration de processus 630/70 1: Will you take P? Starter Starter 2: Yes, migrate to machine 3 5: Offe r P 3: MigrateOut P A 6: MigrateIn P B P KJ KJ KJ S 0 1 KJ KJ D 2 3 4 4: Offe r P 7: Accept offer Système d’Exploitation Yann MORÈRE 2004 631/70 États globaux distribués • Le SE ne peut pas connaître l’état de tous les processus dans un système distribué • Un processus peut seulement connaître l’état courant de tous les processus sur le système local • Les processus distants connaissent seulement les informations reçues par messages Ces mesages représentent l’état dans le passé Système d’Exploitation Yann MORÈRE 2004 632/70 Exemple • Le compte bancaire est distribué sur 2 branches • Le montant total dans le compte est la somme de chaque branche • A 15 heures, la valeur du compte est déterminée • Des messages sont envoyés pour renseigner les informations Système d’Exploitation Yann MORÈRE 2004 633/70 Exemple SA = $100.00 Branch A SB = $0.00 Branch B 3:00 Total = $100.00 Système d’Exploitation Yann MORÈRE 2004 634/70 Exemple • Si au moment du calcul du montant, le montant de la branche 1 est en transit vers la branche B • Le résultat est une fausse lecture Système d’Exploitation Yann MORÈRE 2004 635/70 Exemple 2:59 SA = $0.00 Branch A msg = “Transfer $100 to Branch B” Branch B SB = $0.00 3:00 3:01 Total = $0.00 Système d’Exploitation Yann MORÈRE 2004 636/70 Exemple • Tous les messages en transit doivent être examinés au moment de l’observation • Le montant total consiste en les montants de chaque branche et le montant du message Système d’Exploitation Yann MORÈRE 2004 637/70 Exemple • Si les deux horloges de chaque branches ne sont pas parfaitement synchronisée • Le transfert du montant de A à 15:01 • Le montant arrives en B à 14:59 • A 15:00, le montant est double Système d’Exploitation Yann MORÈRE 2004 638/70 Exemple SA = $100.00 Branch A 3:00 3:01 msg = “Transfer $100 to Branch B” Branch B 2:59 SB = $100.00 3:00 Total = $200.00 Système d’Exploitation Yann MORÈRE 2004 Exemple d’Instantané Process 1 Outgoing channels 2 sent 1,2,3,4,5,6 3 sent 1,2,3,4,5,6 Incoming channels Process 3 Outgoing channels 2 sent 1,2,3,4,5,6,7,8 Incoming channels 1 received 1,2,3 stored 4,5,6 2 received 1,2,3 stored 4 4 received 1,2,3 Process 2 Outgoing channels Process 4 3 sent 1,2,3,4 Outgoing channels 4 sent 1,2,3,4 3 sent 1,2,3 Incoming channels 1 received 1,2,3,4 stored 5,6 Incoming channels 2 received 1,2 stored 3,4 3 received 1,2,3,4,5,6,7,8 Système d’Exploitation 639/70 Yann MORÈRE 2004 640/70 Ordre d’évènements • Les évènements doivent être ordonné pour assurer l’exclusion mutuelle et eviter les impasses • Les horloges ne sont pas synchronisées • Retard de communication • L’information de l’état pour un processus n’est pas à jour Système d’Exploitation Yann MORÈRE 2004 641/70 Ordre d’évènements • Doit dire uniformément qu’un évènement apparaît avant un autre • Les messages sont envoyés quand on désire entrer en section critique, et quand on quitte le section critique • Marquage Temps Ordonne les évènements sur un système distribué L’horloge système n’est pas utilisée Système d’Exploitation Yann MORÈRE 2004 642/70 Marquage temporel • Chaque système sur le réseau mat à jour un compteur qui fonctionne comme une horloge • Chaque site possède son identifiant numérique • Quand un message est reçu, le système receveur incrémente son compteur et stocke le marqueur temporel Système d’Exploitation Yann MORÈRE 2004 643/70 Marquage temporel • Si deux messages possèdent le même marqueur temporel, ils sont différencier par le numéro de sites • Pour que cette méthode fonctionne, chaque message est envoyé d’un processus vers tous les autres processus Assure que tous les sites ont le même ordre de messages Pour l’exclusion mutuelle et l’impasse, tous les processus doivent se rendre compte de la situation Système d’Exploitation Yann MORÈRE 2004 Algorithme de passage de jeton if not token_present then begin clock := clock + 1; broadcast(Request, clock I); wait(access, token); token_present := True; end endif; token_held := True: <critical section> Prelude token(i) := clock; token_head := False; for j := i + 1 to n, 1 to i - 1 do if (request(j) > token(J)) [Symbol]^token_present then begin token_present := False; send(access, token(j)) end endif; Postlude when received (Request, k, j) do request(j) := max(request(j), k); if token_present[Symbol]Ynot token_held then <text of postlude> endif enddo; 644/70 Notation: send(j, access, token) send message of type access, with token, by process j broadcast(request, clock, i) send message from process i of type request, with timestamp clock, to all other processes received(request, t, j) receive message from process j of type request, with timestamp t Système d’Exploitation Yann MORÈRE 2004 Algorithme de détection d’impasse distribuée {Date object Dj receiving a lock_request(Ti)} begin if Locked_by(Dj) = nil then send granted else begin send not granted to Ti; send Locked)by(Dj) to Ti end end. {Transaction Ti makes a lock request for data object Dj} begin send lock_request(Ti) to Dj; wait for granted/not granted; if granted then begin Locked_by(Dj) := Ti; Held_by(Ti) := φ end else {suppose Dj is being used by transaction Tj} begin Held_by(Ti) := Tj; Enqueue(Ti, Request_Q(Tj)); if Wait_for(Tj) = nil then Wait_for(Ti) := Tj else Wait_for(Ti) := Wait_for(Tj); update(Wait)for(Ti), Request_Q(Ti)) end end. Système d’Exploitation 645/70 {Transaction Tj receiving update message} begin if Wait_for(Tj) ≠ Wait_for(Ti) then Wait_for(Tj) := Wait_for(Ti); if Wait_for(Tj) ∩ Request_Q(Tj) = nil then update(Wait_for(Ti), Request_Q(Tj)) else begin DECLARE DEADLOCK; {initiate deadlock resolution as follows} {Tj is chosen as the transaction to be aborted} {Tj releases all the data objects it holds} send clear(Tj, Held_by(Tj)); allocate each data object Di held by Tj to the first requester Tk in Request_Q(Tj); for every transaction Tn in Request_Q(Tj) requesting data object Di held by Tj do Enqueue(Tn, Request_Q(Tk)); end end. {Transaction Tk receiving a clear(Tj, Tk) message begin purge the tuple having Tj as the requesting transaction from Request_Q(Tk) end. Yann MORÈRE 2004 Exemple de l’algorithme de détection d’impasse distribuée 646/70 T4 T0 T1 T2 T5 T3 T4 T0 T1 T2 T5 T3 T6 T6 Transaction Wait_for Held_by Request_Q Transaction Wait_for Held_by Request_Q T0 nil nil T1 T0 T0 T3 T1 T1 T0 T0 T2 T1 T0 T0 T2 T2 T0 T1 T3 T2 T0 T1 T3 T3 T0 T2 T4, T6 T3 T0 T2 T4, T6, T0 T4 T0 T3 T5 T4 T0 T3 T5 T5 T0 T4 nil T5 T0 T4 nil T6 T0 T3 nil T6 T0 T3 nil Système d’Exploitation Yann MORÈRE 2004 Sécurité Chapitre 15 648/70 Sécurité des ordinateurs • Collection d’outils conçus pour contrecarrez les intrus • Devenu nécessaire avec l’introduction des ordinateur • Outils automatisé utilisé aujourd’hui Système d’Exploitation Yann MORÈRE 2004 649/70 Sécurité réseau • Protection des données pendant le transfert • Incles les transmission téléphonique et les réseaux locaux Système d’Exploitation Yann MORÈRE 2004 Moyens requis pour la sécurité des ordinateurs et des réseaux • Secret Les informations d’un ordinateur sont accessibles en lecture pour des personnes autorisées seulement • Intégrité les systèmes informatiques peuvent être modifiés par les parties autorisées seulement • Disponibilité les systèmes informatiques sont disponibles aux parties autorisées Système d’Exploitation Yann MORÈRE 2004 650/70 651/70 Types de menaces • Interruption Un systèmes informatiques est détruit ou devient indisponible ou non utilisable Destruction du matériel Ligne de communication coupée invalider le système de gestion de fichier Système d’Exploitation Yann MORÈRE 2004 652/70 Types de menaces • Interception Un tiers non autorisé a accès à un sous ensemble écoute clandestine pour capturer des donnée dans le réseau Copie illicite de fichiers ou programmes Système d’Exploitation Yann MORÈRE 2004 653/70 Types de menaces • Modification Un tiers non autorisé ne possède pas seulement l’accès, mais peut modifier un système informatique Changer les valeurs dans un fichier de donnée Modification d’un programme pour qu’il agisse différemment Modification de messages transmis dans le réseau Système d’Exploitation Yann MORÈRE 2004 654/70 Types de menaces • Fabrication Un tiers non autorisé introduit des objets contrefaits dans le système Insertion de faux messages dans le réseau Ajout d’enregistrements dans un fichier Système d’Exploitation Yann MORÈRE 2004 655/70 Système informatique • Matériel Les menaces incluent les dommages accidentels ou délibérés • Logiciel Les menaces incluent l’effacement, l’altération, dommages les sauvegardes des versions les plus récentes peuvent permettre une disponibilité élevée Système d’Exploitation Yann MORÈRE 2004 656/70 Système informatique • Données Implique les fichiers Les menaces impliquent la lecture non autorisée des données l'analyse statistique peut mener à la détermination de l'information individuelle qui menace l'intimité Système d’Exploitation Yann MORÈRE 2004 657/70 Système informatique • Lignes de communication et réseaux Les menaces incluent écoute clandestine et la surveillance une conversation de téléphone, un message de courrier électronique, et un fichier transféré sont sujets à ces menaces Le cryptage masque le contenu de ce qui est transféré, de manière que même si l’information est obtenue, il ne soit pas possible de la décoder Système d’Exploitation Yann MORÈRE 2004 658/70 Système informatique • Lignes de communication et réseaux La masquage (masquerading) apparaît lorsqu’une entité prétend être une autre entité La modification de flux de message signifie qu’une portion du message original est altéré, retardé ou réordonné Le « deny » de service empêche l’utilisation ou la gestion normale des moyens de communications • Réseau désactivé ou surchargé avec des messages Système d’Exploitation Yann MORÈRE 2004 659/70 Protection • Pas de protection Les procédures sensibles sont lancées à des moments différents • Isolement Chaque processus opère séparément des autres sans partage ni communication Système d’Exploitation Yann MORÈRE 2004 660/70 Protection • Partager tout ou rien Le propriétaire d’un objet le déclare public ou privé • Partage via limitation d’accès Le SE vérifie les permissions de chaque accès par un utilisateur spécifique vers un objet spécifique Le SE opère comme un gardien Système d’Exploitation Yann MORÈRE 2004 661/70 Protection • Partage via capacités dynamiques La création dynamique de droits de partage pour les objets • Utilisation limitée d’un objet Limitation non seulement de l’accès à l’objet mais aussi de l’usage dont va être fait l’objet Exemple: un utilisateur peut determiner des résumés statistiques mais ne pas déterminer des valeurs spécifiques de données Système d’Exploitation Yann MORÈRE 2004 662/70 Protection de la mémoire • Sécurité • Assure le fonctionnement correct des différents processus s’exécutant Système d’Exploitation Yann MORÈRE 2004 Contrôle d’accès orienté utilisateur • Log on Nécessite un identifiant utilisateur (ID) et un mot de passe Le système autorise seulement les utilisateurs si l’ID est connu et le mot de passe associé est correct Les utilisateurs peuvent révéler aux autres leurs mots de passe de manière intentionnelle ou accidentelle les « hackers »intrus sont habiles à deviner des mots de passe Le fichier ID/password peut être obtenu Système d’Exploitation Yann MORÈRE 2004 663/70 Contrôle d’accès orienté données • Associé avec chaque utilisateur, il peut y avoir un profil utilisateur qui spécifie les opérations permises et les accès au fichier • Le SE renforce ces règles • Pour chaque objet, une liste de contrôle d’accès donnes les droits des utilisateurs et les accès permis Système d’Exploitation Yann MORÈRE 2004 664/70 665/70 Attaques d’intrus • Problème réel et grandissant • Globalisation • Migration vers des architectures client/serveur Les compagnies ont généralement des données clé sur les mainframes ou PCs qu’il est facile de garder • Évolution rapide de l’apprentissage des hackers Les pirates partagent les informations Système d’Exploitation Yann MORÈRE 2004 Technique d’apprentissage de mot de passe • Test des mots de passe par défaut utilisé par les comptes standards livré avec les ordinateurs • Test exhaustif des mots de passe courts • Test des mots d’un dictionnaire ou d’une liste de mots connus • Cllecte d’information à propos des utilisateurs et utilisation de ces infos dans les mot de passe Système d’Exploitation Yann MORÈRE 2004 666/70 Technique d’apprentissage de mot de passe • Test des numéros de téléphones de utilisateurs, numéro de sécurité sociale, numéro de chambre… • Numéros de permis • Utilisation d’un trojan pour passer les restrictions d’accès • Dériver une ligne entre un utilisateur distant et un système hôte Système d’Exploitation Yann MORÈRE 2004 667/70 668/70 ID fournit la sécurité • Détermine si l'utilisateur est autorisé à accéder à un système • Détermine les privilèges accordés à l'utilisateur l'invité ou les comptes anonymes ont des privilèges limités rapport à d’autres • ID est utilisé pour le contrôle d'accès discrét un utilisateur peut accorder la permission aux fichiers à d'autres par ID Système d’Exploitation Yann MORÈRE 2004 Stratégies de sélection de mot de passe • Mots de passe générés par ordinateur Les utilisateurs ont des difficultés à se souvenir de ces mots de passe Besoin de l’écrire Connu pour n’être pas bien accepté • Éliminez les mots de passe que l’on peut deviner tout en permettant à l'utilisateur de choisir un mot de passe qu’il peut retenir Système d’Exploitation Yann MORÈRE 2004 669/70 Stratégies de sélection de mot de passe • Stratégie réactive de contrôle de mot de passe Le système lance sont propre programme de crackage de mot de passe pour trouver les mot de passe facile Le système efface les mots de passe facile et prévient l’utilisateur Consommation de ressources pour cela Les hackers peuvent utiliser cela sur leur propre machine avec une copie du fichier de mot de passe Système d’Exploitation Yann MORÈRE 2004 670/70 Stratégies de sélection de mot de passe • Contrôle proactif de mot de passe Le système contrôle le mot de passe au moment de la sélection pour savoir s’il est acceptable En étant guidé par le système, les utilisateurs peuvent sélectionner des mots de passe qu’ils retiendront et difficile à deviner Système d’Exploitation Yann MORÈRE 2004 671/70 672/70 Détection d’intrusion • Suppose que le comportement d’un intrus diffère de celui d’un utilisateur légitime • Détection statistique d’anomalie Collecte des données des comportements des utilisateurs légitimes sur une période de temps Des tests statistiques sont utilisés pour déterminer si le comportement est un comportement illégitime essaie de définir la normale, ou le comportement prévu Système d’Exploitation Yann MORÈRE 2004 673/70 Détection d’intrusion • Détection à base de règles Les règles sont développées pour détecter des déviations à partir des usages précédents Les systèmes experts recherchent es comportements suspects tentative de définir le comportement approprié Système d’Exploitation Yann MORÈRE 2004 674/70 Détection d’intrusion • Enregistrement d’audit Enregistrement d’audit natif • tous les systèmes d'exploitation incluent le logiciel de log qui rassemble l'information sur l'activité d'utilisateur Enregistrement d’audit spécifique à la détection • on peut mettre en application une collection de services qui produit des enregistrements d’audit contenant seulement l’information exigée par le système de détection d'intrusion Système d’Exploitation Yann MORÈRE 2004 675/70 Virus et autres menaces • Ceux qui ont besoin d’un programme hôte Fragments de programme qui ne peuvent exister indépendamment d’un autre programme d’application, utilitaire ou programme système • Indépendant Programme complet qui peut être ordonnancé et lancé par le SE Système d’Exploitation Yann MORÈRE 2004 Taxonomie des programme malicieux Malicious Malicious Programs Programs Needs NeedsHost Host Program Program Trapdoors Trapdoors Logic LogicBombs Bombs Trojan TrojanHorses Horses Independent Independent Viruses Viruses Bacteria Bacteria Worms Worms Replicate Système d’Exploitation Yann MORÈRE 2004 676/70 677/70 Trapdoor • Point d’entrée dans un programme qui permet à la personne au courant de cette « trapdoor » d’obtenir un accès • Utilisé par les programmeurs pour tester et degugger les programmes Évite la configuration et l’authentification Méthode pour activer un programme s’il l’authentification se passe mal Système d’Exploitation Yann MORÈRE 2004 678/70 Bombe logique • Codez contenu dans un programme légitime qui est prévu pour « exploser » lorsque certaines conditions sont rencontrées présence ou absence de certains fichiers jour particulier de la semaine Utilisateur particulier lance l’application Système d’Exploitation Yann MORÈRE 2004 679/70 Cheval de Troie • Programme utile qui contient le code caché qui une fois appelé exécute une certaine fonction non désiré ou nocive • peut être utilisé pour accomplir les fonctions indirectement qu'un utilisateur non autorisé ne pourrait pas accomplir directement l'utilisateur peut placer la permission de fichier ainsi chacun a accès Système d’Exploitation Yann MORÈRE 2004 680/70 Virus • Programme qui peut « infecter » d’autres programmes en les modifiant La modification incluse la copie du programme virus Le programme infecté peut infecter d’autres programmes Système d’Exploitation Yann MORÈRE 2004 681/70 Vers • Utilise les connexions réseau pour s’étendre de système en système • Service de courrier électronique Un ver « mail » une copie de lui-même aux autres systèmes • Capacité d’exécution à distance Un ver exécute une copie de lui-même sur un autre système • Capacité de procédure de connexion à distance Un ver se logge sur un système distant comme un utilisateur et utilise les commandes pour se copier d’un système à un autre Système d’Exploitation Yann MORÈRE 2004 682/70 Bactérie • Le but est de se reproduire • Reproduction exponentielle Prend toute la capacité processeur Prend toute la capacité mémoire Prend toute la capacité disque Empêche aux utilisateurs l’accès aux ressources Système d’Exploitation Yann MORÈRE 2004 683/70 Étapes d’un Virus • Phase dormante le virus est de veille • Phase de propagation le virus place une copie identique de luimême dans d'autres programmes ou dans certaines zones de système sur le disque Système d’Exploitation Yann MORÈRE 2004 684/70 Étapes d’un Virus • Phase de déclenchement le virus est lancé pour exécuter la fonction pour laquelle on l'a destiné causé par une variété d'événements système • Phase d’exécution la fonction est exécutée Système d’Exploitation Yann MORÈRE 2004 685/70 Types de Virus • Parasite S’attache à des exécutables et se réplique quand on exécute le programme infecté, il recherche d'autres exécutables à infecter • Résident mémoire loge dans la mémoire centrale en tant qu'élément d'un programme système résident une fois dans la mémoire, il infecte chaque programme qui s’exécute Système d’Exploitation Yann MORÈRE 2004 686/70 Types of Virus • Secteur Boot Infecte le secteur boot Se lance quand le système est amorcé à partir du disque contenant le virus • Stealth Conçu pour éviter les détections par les antivirus Peut utiliser la compression Système d’Exploitation Yann MORÈRE 2004 687/70 Types of Virus • Polymorphique Subit une mutation avec chaque infection, rendant la détection par la « signature » du virus impossible crée ses copies de lui même qui sont fonctionellement équivalentes mais qui ont des configurations binaires distinctes Système d’Exploitation Yann MORÈRE 2004 688/70 Approches antivirus • Première génération Le scanner identifie le virus par sa signature Un virus possède la même structure et la même configuration binaires dans toutes les copies Maintient un enregistrement de la longueur du programme et recherche les modifications de longueur Système d’Exploitation Yann MORÈRE 2004 689/70 Approches antivirus • Seconde génération Utilise les règles heuristiques pour rechercher une probable infection virale Recherche des fragments de code qui sont souvent associés aux virus Système d’Exploitation Yann MORÈRE 2004 690/70 Approches antivirus • Troisième génération Programmes résident mémoire qui identifie le virus par ses actions plutôt que par sa structure Intervient lorsque les actions surviennent Système d’Exploitation Yann MORÈRE 2004 691/70 Approches antivirus • Quatrième génération se compose d'une variété de techniques d'antivirus utilisées en conjonction Système d’Exploitation Yann MORÈRE 2004 692/70 Systèmes de confiance • Sécurité multi niveau Informations organisées en catégories Pas de lecture vers le haut • Seulement des objets en lecture d’un niveau égal ou inférieur au niveau de sécurité Pas d’écriture vers le bas • Seulement écriture d’objets d’un niveau de sécurité égal ou supérieur Système d’Exploitation Yann MORÈRE 2004 Concept de Moniteur de Référence Audit File Subjects Reference Monitor (Policy) Objects Security Kernel Database Système d’Exploitation Yann MORÈRE 2004 693/70 Emplacements potentiels pour des attaques de sécurité 694/70 • Tous les liens de communications Insertion et capture de transmission Observation de transmission • Matériel modifications Gain d’un accès Surveillance des rayonnements électromagnétiques Système d’Exploitation Yann MORÈRE 2004 Emplacement des dispositifs de chiffrement • Lien de communication • Le message doit être crypté tout le temps • L’utilisateur n’a pas de contrôle sur la sécurité des nœuds publics Système d’Exploitation Yann MORÈRE 2004 695/70 Chiffrement à travers un réseau de commutation par paquets PSN PSN PSN PSN = end-to-end encryption device = link encryption device PSN = packet switching node Système d’Exploitation Yann MORÈRE 2004 696/70 697/70 Distribution de clé • Fournit une clé à deux parties qui souhaitent échanger des données on ne permet à aucun autre de voir la clé • La clé a pu être choisie par A et être physiquement fournie à B • Un tiers a pu physiquement fournir les clés • Chiffrez une nouvelle clé avec le vieille clé et transmettez la nouvelle clé • Un tiers a pu fournir une clé sur des liens chiffrés Système d’Exploitation Yann MORÈRE 2004 698/70 Clés • Clé de session toutes les données d'utilisateur sont chiffrées avec une clé jetable de session • Clé permanente Utilisé entre deux entités dans le but de distribuer des clés de sessions Système d’Exploitation Yann MORÈRE 2004 699/70 Sécurité Windows NT • Schéma de contrôle d’accès nom/mot de passe Jeton d’accus associé avec chaque objet de processus, indiquant les privilèges associés à un utilisateur Descripteur de sécurité • Liste de contrôle d’accès • Utilisée pour comparer avec la liste de contrôle d’accès pour les objet Système d’Exploitation Yann MORÈRE 2004 700/70 Jeton d’accès Security ID (SID) Group SIDs Privileges Default Owner Default ACL Système d’Exploitation Yann MORÈRE 2004 701/70 Descripteur de sécurité Flags Owner System Access Control List (SACL) Discretionary Access Control List (DACL) Système d’Exploitation Yann MORÈRE 2004 702/70 Liste de contrôle d’accès ACL Header ACE Header Access Mask SID ACE Header Access Mask SID . . . Système d’Exploitation Yann MORÈRE 2004 703/70 Masque d’accès Generic Access Types Delete Read Control Write DAC Write Owner Synchronize Standard Access Types Specific Access Types Access System Security Maximum allowed Generic All Generic Execute Generic Write Generic Read Système d’Exploitation Yann MORÈRE 2004