Iset Siliana Systéme d’exploitation 1 TI11-16 http://www.academiepro.com/enseignants-104-Chaabani.Nizar.html IsetSiliana CHaabani Nizar 1 PLAN du COURS I. II. III. IV. V. VI. Chapitre 1: Introduction Chapitre 2: Gestion de Processus Chapitre 3: Gestion de la mémoire physique Chapitre 4: Gestion de la mémoire virtuelle Chapitre 5: Gestion des entrées-sorties Chapitre 6: Gestion des fichiers http://www.academiepro.com/enseignants-104-Chaabani.Nizar.html IsetSiliana CHaabani Nizar 2 Chapitre 1: Introduction C’est quoi un OS? Grands Systèmes Systèmes Personnels Systèmes Multiprocesseurs Systèmes Distribués Systèmes Temps Réel Systèmes “à la main” Historique des OSs et des Concepts Architecture pour les systèmes IsetSiliana CHaabani Nizar 3 C’est quoi un OS? Programme intermédiaire entre l’utilisateur d’un ordinateur et le matériel But d’un OS: Exécuter les programmes des utilisateurs Rendre l’ordinateur (système informatique) facile à utiliser Exploiter le système informatique d’une manière efficace IsetSiliana CHaabani Nizar 4 Quelques mots sur les systèmes d’exploitation Définition Un système d'exploitation (SE; en anglais: OS = operating system) est un ensemble de programmes de gestion du système qui permet de gérer les éléments fondamentaux de l'ordinateur: Le matériel - les logiciels - la mémoire - les données – les réseaux. • Typiquement, un Système d'Exploitation est composé d'un noyau ; de bibliothèques dynamiques ; d'un ensemble d'outils système ; de programmes applicatifs de base. IsetSiliana CHaabani Nizar 5 Le système d’exploitation Le noyau IsetSiliana CHaabani Nizar 6 Le système d’exploitation Le noyau gestion des périphériques (au moyen de pilotes) • gestion des processus : attribution de la mémoire à chaque processus ordonnancement des processus (répartition du temps d’exécution sur le ou les processeurs) synchronisation et communication entre processus (services de synchronisation, d’échange de messages, mise en commun de segments de mémoire, etc.) • gestion des fichiers (au moyen de systèmes de fichiers) • gestion des protocoles réseau (TCP/IP, IPX, etc.) IsetSiliana CHaabani Nizar 7 Le système d’exploitation Autres composantes de l’OS • Les bibliothèques dynamiques regroupent les opérations les plus utilisées dans les programmes informatiques – éviter la redondance de ces opérations dans tous les programmes – certains systèmes ne proposent pas de bibliothèques dynamiques • Les outils système permettent : – de configurer le système – de passer le relais aux applications proposant des services à un ou plusieurs utilisateurs ou à d'autres ordinateurs • Les programmes applicatifs de base offrent des services à l'utilisateur (calculatrice, éditeur de texte, navigateur web, etc.) IsetSiliana CHaabani Nizar 8 Petit retour historique • 1ère génération (1945-1955) – Tubes à vides – Tableaux d’interrupteurs, cartes perforées • 2ème génération (1955-1965) – Transistors – Traitements par lots • 3ème génération (1965-1980) – Circuits intégrés – Mini-ordinateurs, faible rapport qualité/prix • 4ème génération (1980-aujourd’hui) – Microprocesseurs (circuits intégrés IsetSiliana CHaabani Nizar 9 Système d’exploitation (SE) Fournit l’interface usager/machine: Masque les détails du matériel aux applications Le SE doit donc traiter ces détails Contrôle l’exécution des applications Le fait en reprenant périodiquement le contrôle de l’UCT Dit à l’UCT quand exécuter tel programme Il doit optimiser l’utilisation des ressources pour maximiser la performance du système IsetSiliana CHaabani Nizar 10 Différents niveaux d’un Système IsetSiliana CHaabani Nizar 11 Kernel Mode vs. User Mode Kernel mode: • Mode de fonctionnement du S.E – Acces complet et total a toutes les ressources materielle Execute n’importe qu’elle instruction que la machine peut executer IsetSiliana CHaabani Nizar User Mode Mode de fonctionnement de tous les programmes Une partie seulement des instructions sont accessibles Les instructions qui affectent les I/O sont inaccessibles 12 Fonctions d’un système d’exploitation Gestion de la mémoire Gestion des systèmes de fichiers Gestion des processus Mécanismes de synchronisation Gestion des périphériques Gestion du réseau Gestion de la sécurité. IsetSiliana CHaabani Nizar 13 Vue abstraite d’un SE IsetSiliana CHaabani Nizar 14 Ressources et leur gestion Ressources: physiques: mémoire, unités E/S, UCT... Logiques = virtuelles: fichiers et bases de données partagés, canaux de communication logiques, virtuels... les ressources logiques sont bâties par le logiciel sur les ressources physiques Allocation de ressources: gestion de ressources, leur affectation aux usagers qui les demandent, suivant certains critères IsetSiliana CHaabani Nizar 15 Évolution historique des SE Le début: routines d’E/S, amorçage système Systèmes par lots simples Systèmes par lots multiprogrammés Systèmes à partage de temps Ordinateurs personnels SE en réseau SE répartis Les fonctionnalités des systèmes simples se retrouvent dans les systèmes complexes. Les problèmes et solutions qui sont utilisés dans les systèmes simples se retrouvent souvent dans les systèmes complexes. IsetSiliana CHaabani Nizar 16 Systèmes de traitement par lots (batch) simples Sont les premiers SE (mi-50) L’usager soumet un job (ex: sur cartes perforées) à un opérateur L’opérateur place un lot de plusieurs jobs sur le dispositif de lecture Un programme, le moniteur, gère l'exécution de chaque programme du lot Le moniteur est toujours en mémoire et prêt à être exécuté Les utilitaires du moniteur sont chargés au besoin Un seul programme à la fois en mémoire, et les programmes sont exécutés en séquence La sortie est normalement sur un fichier, imprimante, ruban magnétique… IsetSiliana CHaabani Nizar 17 Schéma Mémoire d’un Système de Traîtement par lots IsetSiliana CHaabani Nizar 18 Systèmes Batch Multiprogrammés Plusieurs tâches sont simultanément en mémoire, et le CPU est multiplexé entre elles; si une doit attendre une E/S, une autre tâche est choisie IsetSiliana CHaabani Nizar 19 Systèmes à Temps Partagé Sert pour le pilotage et le contrôle des déroulements externes (p.ex. centrale électrique) doit garantir des temps de réactions données pour des signaux extérieur urgents plusieurs systèmes d'exploitations n'y arrivent pas car l'interruption de certaines activités met le système dans un état instable IsetSiliana CHaabani Nizar 20 Systèmes Personnels Ordinateurs Personnels – Systèmes dédiés à un seul utilisateur Périphériques d’E/S – clavier, souris, écrans, imprimante, …. Convivialité et interactivité avec l’utilisateur Peuvent tourner différents types d’OS (Windows, MacOS, UNIX, Linux) IsetSiliana CHaabani Nizar 21 Systèmes Parallèles Systèmes avec plusieurs CPUs en communication Aussi connus comme systèmes multiprocesseurs Systèmes fortement couplés – processeurs partagent la mémoire et l’horloge; communication a lieu via la mémoire partagée Avantages des systèmes parallèles: Augmentation de la capacité de traitement Economiques Tolérance aux pannes IsetSiliana CHaabani Nizar 22 Systèmes Répartis Répartir la computation sur plusieurs processeurs physiques Systèmes faiblement couplés – chaque processeur possède sa propre mémoire; les processeurs communiquent entre eux via des lignes de communication, tels des bus, des lignes de téléphone, des réseaux, etc … Avantages des systèmes répartis Partage des ressources Puissance de computation plus grande – Partage de charge Tolérance aux pannes Communications IsetSiliana CHaabani Nizar 23 Systèmes Répartis (cont) Requière une infrastructure réseau Réseaux Locaux (LAN) ou Réseaux Large Echelle (WAN) Peuvent être des systèmes client-serveur ou peer-topeer IsetSiliana CHaabani Nizar 24 Structure Générale d’un ClientServeur IsetSiliana CHaabani Nizar 25 Systèmes Temps Réel Souvent utilisés dans des environnements spécialisés, tels les expérimentations scientifiques, l’imagerie médicale, les systèmes de contrôle industriels, … Contraintes de temps bien définies Systèmes temps réel souples ou rigides IsetSiliana CHaabani Nizar 26 Systèmes “à la main” Personal Digital Assistants (PDAs) Téléphones Mobiles Contraintes: Mémoire limitée Processeurs lents Ecrans d’affichage petits IsetSiliana CHaabani Nizar 27 Introduction au système d’exploitation (Ex : MS-DOS). http://www.academiepro.com/enseignants-104-Chaabani.Nizar.html IsetSiliana CHaabani Nizar 28 Exemples : Système Mono-utilisateur DOS X WIN9X X Multi-utilisateur Mono-Tâche Multi-Tâche X X WIN NT\2000 X X Unix X X Mac \ OS X X X IsetSiliana CHaabani Nizar 29 Organisation de fichiers et répertoires Organisation basée sur le concept d'arbres : " \ " racine de' l'arborescence correspondant à un disque (C: ou A:) Repertoire1 fichier1 R2 fichier2 R5 R3 R4 R6 R7 .. R8 . fichier3 IsetSiliana CHaabani Nizar 30 IsetSiliana CHaabani Nizar 31 Introduction au système MS-DOS (MicroSoft Disk Operating System) Le DOS, comme tout système d'exploitation, contrôle les activités de l'ordinateur. Il gère des opérations telles que la circulation, l'affichage, et l'entrée de données entre les divers éléments constitutifs du système. Le rôle du DOS est d'interpréter les commandes saisies au clavier par l'utilisateur. Ces commandes permettent d'effectuer les tâches suivantes: IsetSiliana •la gestion des fichiers et des répertoires. •la configuration du matériel. •l'optimisation de la mémoire. •l'exécution des programmes. •… CHaabani Nizar 32 Les fichiers sous MS-DOS Sous MS-DOS chaque fichier peut être aussi volumineux que possible, cependant le nom que vous lui donnez est soumis à des restrictions, on ne peut en effet lui donner un nom d'une longueur maximale de 8 caractères plus 3 pour l'extension. De plus, les fichiers ne doivent contenir que les caractères suivants: •lettres de A à Z •chiffres de 0 à 9 •caractères spéciaux suivants: _ ^ $ ~ ! # % & - { } ( ) @ ' Enfin, les noms de fichiers ne doivent pas contenir: IsetSiliana •de blanc (espace). •de virgule. •de barre oblique inverse. •de point (hormis le point qui sépare le nom de l'extension). CHaabani Nizar 33 Les fichiers sous MS-DOS et ils ne doivent pas non plus appartenir à la liste de noms réservés: CLOCK$ CON LPT1 LPT2 LPT3 NUL AUX COM1 COM2 COM3 COM4 PRN Sous MS-DOS, les noms de ces répertoires sont soumis aux mêmes restrictions de longueur que les fichiers (8 caractères pour le nom). IsetSiliana CHaabani Nizar 34 Quelques commandes MS-DOS Rôle : Afficher le contenu d'un répertoire La commande " DIR " fait la liste des fichiers correspondant aux spécifications précisées par l ’argument de la commande et donne quelques renseignements sur les fichiers. Remarque : Si on veut afficher la liste des fichiers dont l ’extension est « .txt », on envoie la commande : C:\DIR *.txt IsetSiliana CHaabani Nizar 35 IsetSiliana Quelques commandes MS-DOS Rôle : Créer un répertoire La commande MKDIR (MaKe DIRectory) peut être abrégée en MD. Il suffit de taper : C:\MD Nom du répertoire CHaabani Nizar 36 IsetSiliana Quelques commandes MS-DOS Rôle : Effacer un répertoire La commande RMDIR (ReMove DIRectory) peut être abrégée en RD. C:\RD Nom du Répertoire Rôle : Changer de répertoire La commande "CD" ou encore "CHDIR" permet de passer d'un répertoire à l'autre (CD pour Change Directory) C:\cd Nom du Répertoire CHaabani Nizar 37 Quelques commandes MS-DOS Rôle : copier un ou une liste de fichiers Syntaxe : COPY [fichier départ] [fichier destinataire] Il faut passer en premier argument le nom du fichier à copier, et en deuxième argument le nom que nous voulons donner à la copie. IsetSiliana CHaabani Nizar 38 Quelques commandes MS-DOS Exemple : Pour copier « fichier1.txt » dans le sous répertoire « R2 » en lui donnant un nouveau nom copie1.txt. " \ " racine de' l'arborescence correspondant Répertoire courant IsetSiliana à un disque (C: ou A:) Repertoire1 fichier1 fichier2 R2 R5 R3 R4 R6 R7 R8 fichier3 CHaabani Nizar 39 Quelques commandes MS-DOS Rôle : Renommer un fichier • La commande RENAME peut être abrégée en REN • Exemple : C:\ren fichier1.txt IsetSiliana CHaabani Nizar surnom.txt 40 IsetSiliana Quelques commandes MS-DOS Rôle : Supprimer un fichier Elle sert à détruire un fichier ou une liste de fichier. On lui donne comme argument le nom d ’un fichier (et éventuellement son extension) ou bien les spécifications d ’une liste de fichiers à l ’aide des caractères « ? » ou « * ». Il est possible de supprimer tous les fichiers d ’un répertoire en une seule fois : ERASE *.* Exemple: C:\erase Nom de fichier CHaabani Nizar 41 Quelques commandes MS-DOS dir liste le contenu d'un répertoire cd change de répertoire cd .. répertoire parent md ou mkdir crée un nouveau répertoire deltree supprime un répertoire, ainsi que l'ensemble de ses sous-répertoires. copy, xcopy copie de fichier move déplacement de fichier del supprime le fichier help aide sur la commande demandée format formate le lecteur demandé ver donne le numéro de version IsetSiliana CHaabani Nizar 42 IsetSiliana IsetSiliana CHaabani Nizar CHaabani Nizar 4343 La commande EXECUTER Commandes DOS et WINDOWS MsConfig CleanMGR (Nettoyage de disque) RegEdit CONF (NetMeeting) SysEdit DxDiag (DirectX Diagnostics) MsInfo32 HelpCtr (Centre d’aide) MMC IcwConn1 (Assistant connexion) WinMSD Magnify (Utilisation de la loupe) Ping MstSc (Assistant de bureau à distance) IpConfig Wab (Carnet d’adresse Outlook Express) MsMsgs Sfc (Intégrité des fichiers « système » Perfmon Winver (N° version Windows) Charmap (table des caractères IsetSiliana CHaabani Nizar 44 Ordinateur Un ordinateur est une machine électronique qui permet l'exécution des programmes Un programme est un ensemble d'instructions qui seront traduites en signaux électriques La sortie de ces programmes est convertie à nouveau pour que l'utilisateur puisse la comprendre Un ordinateur est composé au moins de : processeur, carte mère; mémoire vive; mémoires de masse; périphériques IsetSiliana CHaabani Nizar 45 Principes de fonctionnement Ordinateur IsetSiliana Unité centrale de traitement Unité de contrôle ou Unité de commande Mémoire Cache Unité arithmétique et logique ou Unité de traitement ou Unité de calcul Instructions Mémoire centrale ou principale Données Unités d’entrée/sortie ou d’I/O Contrôleur de périphériques CHaabani Nizar Carte réseau 46 Bus de données CPU Mémoire Centrale Unité d ’E/S Périphériques IsetSiliana Autre représentation Bus d ’adresses Bus de contrôle CHaabani Nizar 47 Principes de fonctionnement CPU Mémoire centrale IsetSiliana Reg Adr Reg Mot résultats adresse mot instruction mémoire PC ou CO RI Horloge Décodeur Unité de commande Séquenceur État Unité de calcul Unité arithmétique et logique opérandes Registres résultat CHaabani Nizar 48 Chap. I I GESTION DES PROCESSUS et THREADS Partie 1. La GESTION DES PROCESSUS Un SE tourne en permanence après son démarrage avec l’ordinateur IsetSiliana il permet le développement et l’exécution de nouveaux programmes Description le fonctionnement d’un SE Concept fondamental : La décomposition ! Le SE fait tourner les programmes utilisateurs sur le processeur Abstraction du processeur ? Introduire la notion de Processus CHaabani Nizar 49 IsetSiliana CHaabani Nizar 50 IsetSiliana CHaabani Nizar 51 Processus et terminologie (aussi appelé job, task, user program) Concept de processus: un programme en exécution Possède des ressources de mémoire, périphériques, etc Ordonnancement de processus Opérations sur les processus Processus coopérants Processus communicants IsetSiliana CHaabani Nizar 52 1. Notion de Processus Qu’est-ce qu’un programme ? Ensemble de modules sources/objets Résultat de l'édition de liens (actions manipulant des données) Description Statique (Code + données) Que désigne le terme processeur ? Entité matérielle capable d'exécuter des instructions ‘’parfois ’’ aussi entité logicielle (interpréteur, ...) Qu’est-ce qu’un processus ? Entité dynamique représentant l’exécution d’un programme sur un processeur créée à un instant donné, a un état qui évolue au cours du temps et qui disparaît, en général, au bout d’un temps fini Début Etat Temps t Fin Un programme est une suite d'instructions (un objet statique). • Un processus est un programme en exécution et son contexte (un objet dynamique). IsetSiliana CHaabani Nizar 53 Notion de Processus (suite) Définition technique: un processus est l’abstraction du SE pour l’allocation de la MC (code, données, pile) espace d’adressage l’allocation du processeur (CO, …) Intérêt de la notion de processus Abstraction de la notion d'exécution séquentielle Représentation des activités parallèles et de leurs interactions –unité de structuration Exemples de processus : L'exécution d’un programme Copie d’un fichier sur disque la transmission d ’une séquence de données sur un réseau IsetSiliana CHaabani Nizar 54 2. Parallélisme et Concurrence Soient deux processus P1 et P2 en mémoire centrale (prêts à s’exécuter) Mise en œuvre concrète de l’exécution de P1 et P2 : P1 P2 P1 P2 Exécution séquentielle (1 processeur) Exécution parallèle (2 processeurs) P2 P1 Exécution concurrente (1 processeur) Système T IsetSiliana CHaabani Nizar 55 Parallélisme et Concurrence (2) Multiprogrammation / Pseudo-parallélisme : Un SE doit, en général, traiter plusieurs processus en même temps Il y a un seul processeur (la plupart du temps) Entrelacement des exécutions (simuler une exécution parallèle) A tout moment le SE ne traite qu’un seul processus à la fois La commutation étant très rapide Les processus utilisateurs sont lancés par un interprète de commandes. Ils peuvent eux-mêmes lancer ensuite d’autres processus P1 Hiérarchie des processus (arborescence) P2 Fils : processus créés Père : processus créateur P3 P4 P5 Au lancement du système, il n’existe qu’un seul processus : l'ancêtre de tous IsetSiliana CHaabani Nizar 56 3. Processus en Mémoire Centrale L'état de la mémoire centrale associé à un processus est défini par le contenu de 3 segments (le code, la pile et les données) et d’un contexte. Segment code -- Lecture seulement Contient les instructions Invariant (toute la durée d'exécution du processus). Segment données -- Lecture/Ecriture Contient les variables globales + données statiques (Constantes), qui sont initialisées à la compilation Pile d'exécution -- Lecture/Ecriture Un programme est constitué d’un ensemble de fonctions (procédures) qui s'échangent d ’informations Contient les variables échangées + variables locales File d’attente gérée selon LIFO IsetSiliana CHaabani Nizar Pile d’exécution Données Code Les segments d’un processus 57 4. Notion de Ressources -- Contexte du Processeur Contexte du processeur: Hypothèses : 1 seul processeur + plusieurs processus le processeur est réservé à l’usage d’un seul processus Contexte = Contenu des registres adressables/spécialisés -- Mot d'état (PSW Program Status Word ) Etat d'exécution : Actif/Attente Mode de fonctionnement : Superviseur/utilisateur Masque d’interruption Contexte accessible en mémoire IsetSiliana CHaabani Nizar 58 Contexte d’exécution d’un processus Etat courant du processus Code du programme exécuté Données statiques et dynamiques Informations qui caractérisent l’état dynamique du processus Compteur de programme (PC / CO) Etat des registres Liste des fichiers ouverts Variables d’environnement Image mémoire (état de l’espace d’adressage) À sauvegarder lorsque le processus est commuté À restaurer lorsque le processus reprend la main IsetSiliana CHaabani Nizar 59 Ordonnanceur UCT Dans un système multitâches, le système d'exploitation doit gérer l'allocation du processeur aux processus. On parle d'ordonnancement des processus IsetSiliana CHaabani Nizar 60 État de processus IMPORTANT Au fur et a mesure qu’un processus exécute, il change d’état nouveau: le processus vient d’être créé exécutant-running: le processus est en train d ’être exécuté par une UCT attente-waiting: le processus est en train d ’attendre un événement (p.ex. la fin d’une opération d’E/S) prêt-ready: le processus est en attente d’être exécuté par une UCT terminated: fin d’exécution IsetSiliana CHaabani Nizar 61 5. Contexte d’un Processus (1) Quand un processus n’est pas en exécution, son état doit être sauvegarde dans son descripteur associé. Exécuter processus Changer Etat Sauvegarder Etat Qu’est-ce qu’on sauvegarde? Le contexte du processus (info. nécessaires à la gestion des processus) PID Contexte du processus CO Contexte du processeur Info. d’ordonnancem ent Info. Complem. + divers Masque d’It Contexte accessible Allocation mémoire BCP (Process Control Block) IsetSiliana Etat d’exécution Mode de fonctionnement Contexte de processus CHaabani Nizar CO PSW 6 2 62 Contexte d’un Processus (2) Contexte d’un processus: ensemble de paramètres regroupés dans les segments du programme en cours d'exécution (code + données) Le SE détient une table, contenant la liste de tous les processus chaque entrée conserve le descripteur de processus, appelé Bloc de Contrôle de processus –BCP ((Process Control Block) BCP : structure de données associée à l'exécution de chaque programme Représente la situation actuelle d ’un processus IsetSiliana CHaabani Nizar 63 6. Etat d’un Processus Commutation des taches (passage d ’une tache à une autre) est réalisé par un ordonnanceur (dispatcher/short term scheduler) Nouveau processus PRET Commutatio n It -- Tps dépassé E/S terminées BLOQUE Terminaison ACTIF Demande d’E/S Attente 3 états d’un processus : actif, prêt, bloqué actif bloqué = action volontaire (lecture sur disque) bloque prêt = action extérieure au processus (ressource disponible) prêt actif = Décision de l’allocateur du processeur IsetSiliana CHaabani Nizar 64 Le multithreading En fait, chaque processus peut lui-même fonctionner comme le système d'exploitation en lançant des soustâches internes au processus Ces sous-tâches sont nommées "flux d'exécution" "processus légers "ou Threads. IsetSiliana CHaabani Nizar 65 Trait de Texte ultithreaded Absbjshd Absbjshd Absbjshd Dnddjkjdq Dnddjkjdq Dnddjkjdq HqdjlqdjlHqdjlqdjlHqdjlqdjl JddmkmJddmkmJddmkm Djdlqjdjdq Djdlqjdjdq Djdlqjdjdq djdqkmkd djdqkmkd djdqkmkd clavier Disque noyau Thread 1: remet en forme le document Thread 2: interaction avec l’utilisateur Thread 3: écrit périodiquement le contenu de la RAM sur le disque IsetSiliana CHaabani Nizar 66 Différences et similitudes entre threads et processus : La communication entre les threads est plus rapide que la communication entre les processus. Les Threads possèdent les mêmes états que les processus. Deux processus peuvent travailler sur une même donnée (un tableau par exemple) en lecture et en écriture dans une situation de concurrence de Deux processus il en est de même pour les threads. IsetSiliana CHaabani Nizar 67 7. Mécanisme de Commutation (1) pointeur: les PCBs sont rangés dans des listes enchaînées (à voir) état de processus: ready, running, waiting… compteur programme: le processus doit reprendre à l ’instruction suivante autres registres UCT bornes de mémoire fichiers qu’il a ouvert etc., v. manuel IsetSiliana CHaabani Nizar 68 Mécanisme de Commutation (2) Commutation de processus = commutation des contextes de processus Quand l’UCT passe de l’exécution d ’un processus 0 à l ’exécution d`un proc 1, il faut mettre à jour et sauvegarder le PCB de 0 reprendre le PCB de 1, qui avait été sauvegardé avant remettre les registres d ’UCT tels que le compteur d ’instructions etc. dans la même situation qui est décrite dans le PCB de 1 IsetSiliana CHaabani Nizar 69 IsetSiliana Mécanisme de Commutation (3) -- Schéma CHaabani Nizar IsetSiliana CHaabani Nizar 70 70 8. Relations entre Processus (1) -- Compétition Il existe entre les processus un certain nombre de relations, appelées INTERACTIONS; ces interactions peuvent être de compétition ou de coopération s Compétition Situation dans laquelle plusieurs processus doivent utiliser simultanément une ressource à accès exclusif (1 seul processus à la fois), encore appelée ressource critique. Exp. IsetSiliana L ’usage du processeur (pseudo-parallélisme) Accès à un périphérique (imprimante) 2 processus en compétition sont dits en exclusion mutuelle pour cette ressource. Une solution possible : Faire attendre les processeurs demandeurs que l ’occupant actuel ait fini (FIFO) P1 R Ressource Critique CHaabani Nizar P2 Ordre d’utilisation : Indifférent P1; P2 ou P2; P1 71 Relations entre Processus (2) -- Coopération Coopération Situation dans laquelle plusieurs processus collaborent à une tache commune et doivent se synchroniser pour réaliser cette tache. Deux processus qui coopèrent peuvent également se trouver en exclusion mutuelle pour une ressource commune. P2 imprime le fichier F P1 produit un fichier F F P2 ne peut s'exécuter que si: P1 a terminé son exécution P1 < P2 Synchronisation Un processus doit attendre qu’un autre processus ait franchi un certain point de son exécution point de synchronisation Imposer des contraintes de synchronisation aux processus Précédence des processus Conditions de franchissement de certains points critiques IsetSiliana CHaabani Nizar 72 Relations entre Processus (3) -- Faire Attendre un Processus Relations entre deux processus í Faire attendre un processus Solution 1: attente active P1 while (ressouce occupee) occupee = True; { }; P2 Ressource Utiliser Ressource; Ressource occupee = True; occupee = False; .... Ressource Très peu économique si pseudo-parallélisme Difficulté d’une solution correcte (chap. Suivant) Solution 2 : Blocage du Processus IsetSiliana Processus bloqué : attente d ’une ressource non disponible jusqu’a son réveil explicite par un autre processus Blocage Arrêter l'exécution ACTIF BLOQUE Réveil Reprendre exécution CHaabani Nizar 73 9. Conditions d'Exécution Concurrente (1) Augmenter le degré de multi-programmation et donc IsetSiliana le taux d’utilisation du processeur ? Etablir les contraintes de précédence (relation <) Construire un graphe de précédence : graphe acyclique où chaque nœud, Si, représente une instruction chaque arc SiSj signifie que l ’instruction Sj ne pourra s'exécuter que si Si ait terminée son exécution. Exemple : Soit la séquence d ’instructions suivante : S1 S2 S1 lire(x) S2 lire(y) S3 S3 z=x*y S4 écrire(z) S4 CHaabani Nizar 74 Iset Siliana IsetSiliana CHaabani Nizar 75 IsetSiliana Chap. I I GESTION DES PROCESSUS et THREADS Partie 2. ORDONNANCEMENT DES PROCESSUS 1. Introduction 2. Types d’ordonnancement 3. Modèle simple d'ordonnancement 4. Politiques d’ordonnancement Organisations des files d’attente Ordonnancement FCFS / SJF/ RR/ priorité/ SRTF/ Multiniveaux 5. Hiérarchie d’ordonnancement CHaabani Nizar 76 1. Introduction -- Généralités Le SE permet 2 types de décisions sur le processeur : Ordonnancement des processus : L’ordonnanceur (scheduler) choisit quel est le processus qui doit tourner Problème: Dans quel ordre les processus sont servis?; par exemple, un processeur et plusieurs processus. Allocation du processeur : l’allocateur (dispatcher) lance l’exécution du processus choisi par le scheduler Ordonnanceur -- Scheduler Objectif : Sur un intervalle de temps assez grand, faire progresser tous les processus, tout en ayant, à un instant donné, un seul processus actif (dans le processeur). Rôle : Prendre en charge la commutation de processus, qui règle les transitions d’un état à un autre des différents processus. IsetSiliana CHaabani Nizar 77 Types d’ordonnancement Il existe différentes politiques d'allocation : - avec ou sans priorité sans : premier arrivé premier servi (first come, first served : FCFS) avec : • la priorité peut être fixe ou dynamique • il peut y avoir préemption, ou non IsetSiliana CHaabani Nizar 79 3. Modèle Simple d’Ordonnancement Représentation de l’ordonnancement des processus Terminaison File des processus prêts Scheduler dispatch UC File d’attente E/S E/S Demande E/S Tranche de temps expirée exit Fils s’exécute Interruption IsetSiliana CHaabani Nizar Fork un fils Attente It 80 4. Politique d’Ordonnancement – Organisations des FAs H : Un seul processeur + plusieurs processus Une file d’attente, soit FA, des processus prêts Principe de chaînage d’une FA : avant/ arrière/ mixte Plusieurs processus sont mis dans une FA, et le service demandé IsetSiliana leur est fourni tour à tour, en fonction de critères de gestion spécifiques à la FA. Réquisition File d’attente des prêts Arrivée Scheduler= Ordi UC Service satisfait Sortie Dispatcher = allocateur Gère la FA : Arrivée des processus et Gère l’allocation du processeur, leur placement il peut réquisitionner CHaabani Nizar 81 4. Politiques d’ordonnancement – Algorithmes sans préemption (sans réquisition) (FCFS, SJF, Priorité) (1) Algorithme FCFS (First Come First Served) -- Premier Arrivé Premier Servi Un processus s'exécute jusqu'à sa terminaison, sans retrait forcé de la ressource. Modèle adapté au partage du processeur par des processus de même priorité (aucun privilège entre les processus) Avec les algorithmes d'ordonnancement sans réquisition, un processus affecté au processeur ne peut pas être interrompu. Facile à implanter, mais peu efficace (le choix n’est pas lié à l’utilisation de l’UC) Exemple Processus Durée estimée Date d’arrivée P1 24 0 P2 P3 P4 8 12 3 1 2 3 Schématiser l’exécution des processus selon leur ordre d'arrivée. Pour cela, on utilise le DIAGRAMME DE GANTT P1 0 P2 24 P3 32 P4 44 47 Temps de vie des processus Temps de traitement moyen = [(24 - 0) + (32 - 1) + (44 -2) + (47 -3)]/4 = 35,25 IsetSiliana CHaabani Nizar 82 4. Politiques d’ordonnancement – Algorithmes sans préemption (FCFS, SJF, Priorité) (2) Algorithme SJF -- Shortest Job First (STCF -- Shortest Time to Completion First) : Algorithme du ’’Plus Court d’Abord ’’ : Suppose la connaissance des temps d'exécution : estimation de la durée de chaque processus en attente Les processus sont disponibles simultanément préemption) Exécuter le processus le plus court ë Algorithme optimal (sans ë Minimise le temps moyen d'exécution Dans le cas où plusieurs processus possèdent la même durée, la politique FCFS sera alors utilisée. IsetSiliana CHaabani Nizar 83 4. Politiques d’ordonnancement – Algorithmes sans préemption (FCFS, SJF, Priorité) (2) Le principe de cet algorithme consiste à attribuer à chaque processus une valeur qui indique sa priorité. Le processeur est alloué au processus de plus haute priorité. Un classement possible des processus est donné comme suit (des processus les plus prioritaires aux processus les moins prioritaires) : 1. Processus système. 2. Processus interactifs. 3. Processus batch. 4. Processus utilisateurs. L'ordonnancement avec priorité sans réquisition peut engendrer un problème de famine puisque les processus de faible priorité risquent d'attendre indéfiniment. IsetSiliana CHaabani Nizar 84 4. Politiques d’ordonnancement – Algorithmes avec préemption (Priorité, RR, SRTF) (1) L'idée de la réquisition est d'interrompre un processus en cours d'exécution à n'importe quel moment. A chaque processus est assignée (automatiquement par le SE /externe) une priorité Assignation statique -- priorités fixes ë facile à implanter Assignation dynamique : la priorité initiale assignée à un processus peut être ajustée à d ’autres valeurs ë difficile à implanter Pb. de famine : un processus de faible priorité peut ne jamais s'exécuter si des processus plus prioritaires se présentent constamment Recalculer périodiquement le numéro de priorité des processus (plusieurs FA) ë la priorité d’un processus décroît (croit) au cours du temps pour ne pas bloquer les autres FA Principe : On lance le processus ayant la plus grande priorité IsetSiliana Algorithme d’ordonnancement à classes de priorité CHaabani Nizar 85 IsetSiliana CHaabani Nizar 86 IsetSiliana CHaabani Nizar 87 IsetSiliana CHaabani Nizar 88 IsetSiliana CHaabani Nizar 89 IsetSiliana CHaabani Nizar 90 IsetSiliana CHaabani Nizar 91 4. Politiques d’ordonnancement – Algorithmes avec préemption (Priorité, RR, SRTF) (1) IsetSiliana Algorithme d’ordonnancement à classes de priorité CHaabani Nizar 92 4. Politiques d’ordonnancement – Algorithmes avec préemption (Round Robin, Priorité, SRTF) (2) L'idée de la réquisition est d'interrompre un processus en cours d'exécution à n'importe quel moment. Algorithme tourniquet -- RR : l’un des algorithmes les plus utilises et des plus fiables Ordonnancement selon l’ordre FCFS ë Equitable Chaque processus possède un quantum de temps pendant lequel il s’exécute Lorsqu’un processus épuise son quantum de temps : au suivant ! S’il n’a pas fini : le processus passe en queue du tourniquet et au suivant ! Exemple : Le quantum de temps, Q, est égale à 2 unités; quel est le temps de traitement moyen? P2 (4 unités) Exécution CPU P1 (3 unités) Q Q Q Q Q P8 (2 unités) Q Q P7 (4 unités) IsetSiliana P3 (2 unités) CHaabani Nizar Q P4 (3 unités) P5 (3 unités) P6 (5 unités) 93 Algorithme Tourniquet -- Round Robin (suite) P1 P2 0 2 P3 4 P4 6 P5 8 P6 10 12 P7 P8 14 P1 16 P2 P4 17 19 P5 20 21 P6 P7 23 P6 25 26 Temps de vie Diagramme de Gantt (Q=2 unités) Temps de traitement moyen = [(17-0) + (19-1) + (6-2) + (20-3) + (21-4) + (26-5) + (25-6) + (16-7)] /8 = 15,25 Problème = réglage du quantum (petit/grand; fixe/variable; est-il le même pour tous les processus ?) Les quanta égaux rendent les différents processus égaux Quantum trop petit provoque trop de commutations de processus Le changement de contexte devient coûteux (perte de temps CPU) Quantum trop grand : augmentation du temps de réponse d’une commande (même simple) RR dégénère vers FCFS Réglage correct : varie d’un système (resp. d’une charge) à un autre et d’un processus à un autre Il existe d ’autres variantes de RR, telle que RR avec priorités IsetSiliana CHaabani Nizar 94 Le système de gestion possède n FA à différents niveaux de priorités (+ différents quanta) Algorithme Tourniquet avec priorités - FA n-1 (Q n1) Arrivée FA1 (Q1) FA 0 (Q 0) Réquisition CPU Q 0 Q 1 Q 2 ... Q n-1 Terminaison + Priorité Scheduler Dispatcher A son arrivée, le processus est rangé dans la FA la plus prioritaire FA0 Si un processus dans FAi épuise son quantum de temps Qi (0 i n-2), il sera placé dans la FAi+1 (moins prioritaire) Une FAi (0 < i n-1) ne peut être servie que si toutes les FAj (0 j< i) sont vides un processus qui a traversé toutes les FA sans épuiser son temps de traitement reste dans la FA la moins prioritaire. IsetSiliana CHaabani Nizar 95 4. Politiques d’ordonnancement – Algorithmes avec préemption (Round Robin, Priorité, SRTF) (3) Algorithme SRTF (Shortest Remaining Time First) -- SJF avec réquisition Choisir le processus dont le temps d'exécution restant est le plus court Il y a réquisition selon le critère de temps d'exécution restant et l'arrivée d’un processus Nécessité de sauvegarder le temps restant Exemple : Processus Durée estimée Date d’arrivée P1 P2 P3 P4 8 5 5 2 0 2 3 4 Diagramme de Gantt P1 P2 0 2 P4 4 6 P2 P3 9 P1 P1 14 20 Temps de vie Temps de traitement moyen = [(20 - 0) + (9 -2) + (14 -3) + (6-4)]/4 = 9,5 Théoriquement, + SRTF offre un minimum de temps d’attente; - difficile de prédire le futur IsetSiliana CHaabani Nizar 96 Pour TAB 1 ,Donner et comparer le temps moyen d'exécution produit par les algorithmes d'ordonnancement a. FIFO (FCFS, PAPS) b. PCTE (SJF), c. tourniquet avec un quantum de 5 d. Algorithme SRTF (Shortest Remaining Time First ) Pour TAB 2,Donner le diagramme de Gantt et le temps moyen d’exécution pour un ordonnancement de type tourniquet avec priorités TAB1 Etudiant E1 E2 E3 E4 Ordre d’arrivée 0 1 2 4 TAB2 Temps requis 45 min 15 min 10 min 5 min IsetSiliana Etudiant E1 E2 E3 E6 CHaabani Nizar Date ‘arrivée 0 5 5 5 Temps requis 45 min 15 min 10 min 20 min Priorité 1 2 3 1 97 5. Hiérarchie d’Ordonnancement (1) L’ensemble des processus prêts est-il souvent en mémoire centrale? Un processus élu, qui est sur disque, prend beaucoup plus de temps qu’un processus en RAM pour être chargé. Les algorithmes d’ordonnancement complexes permettent de distinguer entre 2 types différents: Ordonnancement à court terme (short term scheduling) : considère seulement les processus prêts en mémoire centrale. Ordonnancement à long terme (long term scheduling) : consiste à utiliser un deuxième algorithme d’ordonnancement pour gérer les ‘’swapping ’’ des processus prêts entre le disque et la RAM IsetSiliana ’’Swap out’’ Processus File d’attente des Prêts Arrivée UC E/S CHaabani Nizar Sortie Files d’attente des E/S 98 5. Hiérarchie d’Ordonnancement (2) Ordonnancement multi-niveaux permet de satisfaire : Favoriser les processus courts Favoriser les processus ‘’’, qui ne demandent pas trop l ’UC Déterminer la nature de chaque processus le plutôt possible et effectuer l’ordonnancement correspondant Files d’attente sans liens : un processus se trouvant dans dans FAi ne peut se trouver dans FAj (j i); il reste dans FAi jusqu’à ce qu’il se termine’I/O Bound IsetSiliana (RR) FA n-1 Réquisition FA1 (FCFS/SJF) + Priorité fixe CHaabani Nizar Processus Interactifs CPU FA 0 Terminaison Processus Système 99 5. Hiérarchie d’Ordonnancement (3) Files d’attente avec liens : hiérarchiser les FAs Arrivée niveau n-1 FA n-1 (RR) Réquisition Arrivée niveau 1 (FCFS) Arrivée niveau 0 (FCFS) FA1 FA CPU Terminaison 0 Un processus dans FAi ne peut être sélectionné que si toutes les FAj (j<i) sont toutes vides Permettre aux processus de se déplacer d’une FA à une autre Hiérarchie descendante/ascendante/bidirectionnelle Changement dynamique dans le comportement des processus Chaque FA a son propre algorithme d’ordonnancement Descendante FAn-1 est gérée avec FCFS Ascendante F0 est gérée avec FCFS IsetSiliana CHaabani Nizar 100 IsetSiliana CHaabani Nizar 101 Plan du chapitre 1. Introduction 2. Fonctions attendues 3. Va-et-vient (swapping) 4. Mémoire Virtuelle 5. Algo. de Replacements de Pages http://www.academiepro.com/enseignants-104-Chaabani.Nizar.html IsetSiliana CHaabani Nizar 102 1. Introduction La mémoire centrale est une ressource requise par tout processus Un programme doit être chargé dans la mémoire centrale pour être exécuté Demarrer_processus(p) Allouer(taille(p)) Terminer_processus(p) Liberer(zone_allouée_à (p)) Problématique Gérer les processus associés à des programmes trop volumineux Gérer le partage de la mémoire physique entre différents processus IsetSiliana CHaabani Nizar 103 2. Fonctions attendues Monoprogrammation: Mémoire réservée au SE Mémoire réservée au seul processus en exécution. Multiprogrammation: La Multiprogrammation améliore le taux d’utilisation du CPU mais requiert un bon partitionnement de la mémoire. A l’initialisation du système, la mémoire est divisée en n partitions de taille fixe. De préférence, des partitions inégales en taille. Comment allouer les processus aux partitions? une file d’attente par partition –(a) une file d’attente pour toutes les partitions –(b) IsetSiliana CHaabani Nizar 104 Multiprogrammation avec des partitions de taille fixe File vide File pleine IsetSiliana CHaabani Nizar 105 2. Fonctions attendues Principe de partage de la ressource mémoire Fournir une mémoire logique à chaque processus (2K) Gérer les translations entre les mémoires logiques et la mémoire physique (liaisons d'adresses) IsetSiliana CHaabani Nizar 106 2. Fonctions attendues Mémoire physique: mémoire principale RAM de la machine Adresses physiques: les adresses de cette mémoire Mémoire logique: l’espace d`adressage d’un programme Mémoire physique : Suite contiguë de mots (8, 16, 32, 64 bits selon processeur) Adressage direct aléatoire Tailles courantes : 256 Mega 2 à 4 Giga Mémoire logique : Espace logiquement contigu Adressage direct aléatoire de mots Taille maximum = 2K – 1 (k = la capacité d’adressage) IsetSiliana CHaabani Nizar 107 2. Fonctions attendues Mise en œuvre des mémoires logiques au dessus de la mémoire physique Swapping (partage de la mémoire dans le temps) Découpage (partitionnement) Multiplexage Il est difficile de donner à chaque programme son propre espace d’adressage solution Réallocation dynamique Réallocation dynamique: mapper l’espace d’adressage de chaque processus sur une partie différente de la mémoire physique. IsetSiliana CHaabani Nizar 108 …Ex. d’application Un ordinateur dispose de 32Mo de mémoire. L’OS occupe 16Mo Un processus utilisateur nécessite 4Mo Déterminer le niveau de multiprogrammation max? Déterminer le taux d’utilisation de CPU, si les processus sont indépendants et qu’un processus passe 80% de son temps en attente d’E/Ss ? De combien améliore-t-on ce taux si on ajoute 16Mo de mémoire? IsetSiliana CHaabani Nizar 109 3. Le va-et-vient (swapping) C’est l’utilisation de la mémoire secondaire : la « swap file » Stratégie pour pallier les pénuries en mémoire. Elle considère chaque processus dans son intégralité: Le processus est dans son intégralité en mémoire ou est supprimé intégralement de la mémoire IsetSiliana CHaabani Nizar 110 IsetSiliana CHaabani Nizar 111 Le va-et-vient (swapping) i. (a) A est en mémoire ii. (b,c) B et C sont crées ou chargés depuis le disque iii. (d) A est transférer sur le disque iv. (e,f) D arrive, tandis que B s’en va v. (g) A revient IsetSiliana CHaabani Nizar 112 Les différentes techniques de partitionnement de la mémoire centrale Fonction attendue : Allouer-zone (t : taille) adresse Libérer-zone (a : adresse, t : taille) Objectifs : Optimiser l’utilisation de la mémoire (limiter la fragmentation) Optimiser les algorithmes d’allocation / libération Techniques : Zones contiguës de taille fixées Zones contiguës de taille variables Zones non contiguës de taille fixe (systèmes paginés) Zones non contiguës de taille variable (systèmes segmentés) IsetSiliana CHaabani Nizar 113 Allocation Contigue Registre de relogement contient la valeur de l’adresse physique la plus petite; le registre de limite contient l’étendue des adresses logiques possibles chaque adresse logique doit être plus petite que la valeur du registre limite IsetSiliana CHaabani Nizar 114 Allocation Contigue (Cont.) Allocation à plusieurs partitions Trous – bloc de mémoire disponible; trous de taille variable dispersés dans la mémoire physique Quand un processus arrive, on lui alloue de la mémoire dans un trou assez large pour accomoder ses besoins OS retient de l’information sur: a) blocs alloués b) blocs libres (trous) OS OS OS OS process 5 process 5 process 5 process 5 process 9 process 9 process 10 process 8 process 2 process 2 IsetSiliana process 2 CHaabani Nizar process 2 115 Traduction adresses logiques adr. physiques MMU: unité de gestion de mémoire unité de traduction adresses (memory management unit) Module 7 116 Fragmentation: mémoire non utilisée Un problème majeur dans l`affectation contiguë: Il y a assez d ’espace pour exécuter un programme, mais il est fragmenté de façon non contiguë La fragmentation peut être: externe: l`espace inutilisé est entre partitions interne: l ’espace inutilisé est dans les partitions IsetSiliana CHaabani Nizar 117 Partitions fixes Mémoire principale subdivisée en régions distinctes: partitions Les partitions sont soit de même taille ou de tailles inégales N’importe quel progr. peut être affecté à une partition qui soit suffisamment grande (Stallings) IsetSiliana CHaabani Nizar 118 Algorithme de placement pour (Stallings) partitions fixes Partitions de tailles inégales: utilisation de plusieurs files assigner chaque processus à la partition de la plus petite taille pouvant le contenir 1 file par taille de partition tente de minimiser la fragmentation interne 8M 12M Problème: certaines files seront vides s’il n’y a pas de processus de cette taille (fr. externe) IsetSiliana CHaabani Nizar 119 Algorithme de placement pour partitions fixes Partitions de tailles inégales: utilisation d’une seule file On choisit la plus petite partition libre pouvant contenir le prochain processus le niveau de multiprogrammation augmente au profit de la fragmentation interne 8M On pourrait allouer trop de mémoire à un programme 12M (Stallings) IsetSiliana CHaabani Nizar 120 Partitions dynamiques: exemple (Stallings) (d) Il y a un trou de 64K après avoir chargé 3 processus Le prochain processus pourrait demander plus Si tous les proc sont bloqués (p.ex. attente d’un événement), P2 peut être suspendu ou permuté et P4=128K peut être chargé. Swapped out IsetSiliana CHaabani Nizar 121 Partitions dynamiques: exemple (Stallings) (e-f) Progr. 4 est chargé. Un trou de 224 – 128 = 96K est créé (fragmentation externe) (g-h) P1 se termine ou il est suspendu, P2 est repris à sa place: produisant un autre trou de 320-224=96K... Nous avons 3 trous petits et probabl. inutiles. 96+96+64=256K de fragmentation externe COMPACTAGE pour en faire un seul trou de 256K IsetSiliana CHaabani Nizar 122 la mémoire centrale comporte 3 zones libres mais aucune d'elles n'est assez grande pour contenir un programme 8 de 180K. Pourtant l'ensemble des 3 zones libres forme un espace de 120 + 20 + 150 = 350K suffisant pour le programme 8. Pour permettre l'allocation du programme 8, il faut donc réunir l'ensemble des zones libres compactage IsetSiliana CHaabani Nizar 123 Compactage Une solution pour la fragmentation externe Définition : Le compactage (ou défragmentation) est une opération réalisée par le système d'exploitation consistant à déplacer toutes les pages vers des emplacements contigües pour avoir un grand espace libre et minimiser ainsi le nombre de trous mémoires. désavantages temps de transfert programmes besoin de rétablir tous les liens entre adresses de différents programmes IsetSiliana CHaabani Nizar 124 Problème de l’Allocation Dynamique Comment satisfaire une requête de taille n à partir d’une liste de blocs First-fit: Allouer le premier bloc assez grand Best-fit: Allouer le plus petit bloc assez grand; doit parcourir la liste entière de blocs, sauf si ordonnée par taille. Produit des restes de blocs les plus petits. Worst-fit: Allouer le plus grand bloc; doit aussi rechercher dans toute la liste, sauf si ordonnée. Produit des restes de blocs les plus larges. First-fit et best-fit sont meilleurs que worst-fit en termes de rapidité et utilisation de la mémoire IsetSiliana CHaabani Nizar 125 Exercice On considère le schéma d'allocation de la mémoire représenté par la Figure 1 et les processus A, B, C et D (c. Ces processus sont ordonnés suivant l'ordonnancement Round Robin avec Quantum égal à 2. Il est demandé de représenter le schéma d'allocation mémoire en traitant les deux cas suivants : L'allocation first Fit ;• • L'allocation Best Fit ;• L'allocation Worst Fit. IsetSiliana CHaabani Nizar 126 Systèmes d'Exploitation Chapitre 2. La Gestion de la Mémoire Centrale Partie II. La Mémoire Virtuelle Contenu du cours Présentation La pagination -- transformation des adresses Les algorithmes de Remplacement FIFO/LRU/OPTIMAL/NRU IsetSiliana CHaabani Nizar 127 1. Présentation Objectif : fournir un espace d’adressage indépendant de celui de la mémoire physique : Les processus n’utilise pas tous les mémoire alloué et il y’a des programmes qui nécessite un grand partition pour exécuté. La mémoire virtuelle permet d'exécuter des programmes dont la taille excède celle de la mémoire physique L ’espace d’adressage > l’espace physique Réalisation de la mémoire virtuelle (MV) Représentation physique : MC + MS (disque) Gestion basée sur les techniques de pagination Pagination -- Principe : l’espace d’adressage virtuel est divisé en petites unités -- PAGES l‘ espace d’adressage physique est aussi divisé en petites unités -- CASES (frames) Les pages et les cases sont de même tailles IsetSiliana CHaabani Nizar 128 128 Pagination Espace d’adressage virtuel est divisé en pages. Les unités correspondantes dans la mémoire physique sont appelées cadres de pages (page frame). IsetSiliana CHaabani Nizar 129 2. Pagination -- Principe l'espace d'adressage du programme est découpé en morceaux linéaires de même de taille : la page. L'espace de la mémoire physique est lui-même découpé en morceaux linéaires de même taille : la case. charger un programme en mémoire centrale consiste à placer les pages dans n'importe quelle case disponible taille case = taille page Page Disque (MV) 7 6 5 4 3 2 1 0 3 Case X 0 3 2 1 0 X 2 1 X X Espace d’adressage Ne charger que les pages utiles Virtuel à un instant donné IsetSiliana Processus en MC charger un programme en mémoire centrale consiste à placer les pages dans n'importe quelle case disponible. CHaabani Nizar 130 130 IsetSiliana CHaabani Nizar 131 IsetSiliana CHaabani Nizar 132 IsetSiliana CHaabani Nizar 133 Pagination Table de Pages Processeur 16 bits 216 adresses virtuelles et 64Ko Mémoire physique de 32Ko Page de 4Ko Nbr pages virtuelles = 64/4 = 16 Nbr cadres de pages = 32/4 = 8 8192 - 12287 4096 - 8191 0 - 4095 IsetSiliana CHaabani Nizar 134 2.1. Transformation des adresses virtuelles (1) Les adresses manipulées par le programmes sont des adresses virtuelles Lorsqu’une adresse est générée, elle est transcodée, grâce à une table, pour lui faire correspondre son équivalent en mémoire physique UC Nºcase déplacement Nºpage déplacement Nº case Table des pages Mémoire physique L'adresse d'un octet est donc formé par le couple <n°de page à laquelle appartient l'octet, déplacement relativement au début de cette page >. IsetSiliana CHaabani Nizar 135 Transformation des adresses virtuelles (2) Ce transcodage est effectué par des circuits matériels de gestion : unité de gestion de mémoire -- MMU (Memory Management Unit) Carte CPU @ Virtuelle CPU MMU B. Données (lecture/écriture) @ Physique Mémoire Centrale Si l’adresse générée correspond à une adresse mémoire physique, le MMU transmet sur le bus l’adresse réelle, sinon il se produit un DEFAUT DE PAGE Chaque table des pages contient les champs nécessaires au transcodage, avec notamment : 1 bit de présence (P 1/0) pour marquer la présence de la page en mémoire physique 1 bit de modification (M 0/1) pour signaler si on écrit dans la page IsetSiliana CHaabani Nizar 136 136 Mémoire Virtuelle P1 P0 IsetSiliana CHaabani Nizar 137 Mémoire Virtuelle Dans cet exemple, les pages ont une taille de 4Ko. L’adresse virtuelle 12292= (1024*12)+4 . elle correspond à un déplacement de 4octets dans la page virtuelle 3, correspondant à son tour à la page physique 2. Donc l’adresse physique correspond à un déplacement de 4 octets dans la page physique 2 soit: (8*1024)+4=8196. ● La page virtuelle 2 n’est pas mappée. Donc toute adresse virtuelle comprise entre 8192 et 12287, donnera lieu à un défaut de page. ● L’accès à une adresse virtuelle correspondant à une page non mappée donne lieu à un défaut de page. IsetSiliana CHaabani Nizar 138 8192 = 1024*8 12287 = 1024*12 12292 = (1024 *12) +4 (8*102 4)+4 = 8196 IsetSiliana CHaabani Nizar 139 IsetSiliana CHaabani Nizar 140 Bit de Présence et Défaut de Page 3 la page est sur disque SE P M Nº case Déroutement (Défaut de page) 0 Table des pages Processus Case libérée Restaurer la table des pages Référence Redémarrer l’instruction IsetSiliana Ramener en MC la page absente Mémoire Centrale CHaabani Nizar 141 141 Exemple et Représentation d’une Table des Pages Codage des @ virtuelle ou réelle on réserve les bits de poids nécessaires pour coder les numéros des pages ou des cases les bits de poids faibles codent le déplacement Par exemple, dans un système ayant une mémoire de 32 Mo et des pages de 512 octets, chaque tableau des pages devrait contenir: 32 Mo/ 512 = 64 K pages Taille(page) = 4Ko; Taille(MC) = 4 cases; Taille(processus) = 16 pages Combien de bits a-t-on besoin pour représenter les @ virtuelles et les @ réelles? Chaque processus a sa propre table des pages IsetSiliana CHaabani Nizar 142 142 Le calcul de l'adresse réelle à partir de l'adresse virtuelle se réalise ainsi : le numéro de page virtuelle donne l'entrée de la TPV dans laquelle se trouve le numéro de page physique ; le déplacement est le même (les pages physiques et virtuelles ont la même taille) ; si la page virtuelle n'est pas présente en m.physique, produit un défaut de page. IsetSiliana CHaabani Nizar 143 Pour accélérer le processus, on utilise des mémoires associatives qui recensent les dernières pages utilisées : IsetSiliana CHaabani Nizar 144 3. Algorithmes de Remplacement de Pages A la suite d’un défaut de page, le SE doit retirer une page de la MC pour libérer de la place manquante Problème : quelle page choisir à décharger afin de récupérer l’espace et minimiser le nombre de défauts de pages? Définition : si un processus cherche à accéder à une page non présente en mémoire centrale, il se produit ce qu’on appelle un défaut de page . Lors d'un défaut de page, la page manquante est chargée dans une case libre -----> La totalité des cases de la mémoire centrale peuvent être occupées -----> Il faut libérer une case Plusieurs algorithmes de remplacements : Aléatoire Première entrée, première sortie – FIFO Remplacement de la page la moins récemment utilisée -- LRU (Least Recently Used) Optimal Remplacement d ’une page non récemment utilisée -- NRU (Not Recently Used) IsetSiliana CHaabani Nizar 145 145 Algorithmes de Remplacement (2) Algorithme aléatoire -- Random: La victime est choisie au hasard FIFO : Lors d’un défaut de page, la page la plus anciennement chargée est la page retirée pour être remplacée Facile à implanter Remplacement d’une page très référencée í trop de défaut de pages Exemple 1 : Supposons avoir 3 cases et 4 pages avec la chaîne de référence suivante : ABCABDADBCB cases\ref. A 1 A 2 3 B C A B D A D B D B C B C A C B 4 défauts de pages IsetSiliana CHaabani Nizar 146 146 FIFO : la page la plus anciennement chargée est la page remplacée 3 frames, 15 page faults IsetSiliana CHaabani Nizar 147 Algorithmes de Remplacement (3) Algorithme Optimal : Principe : choisir comme victime la page qui sera référencée le plus tard possible Nécessite la connaissance, pour chacune des pages, le nombre d’instructions qui seront exécutées avant que la page soit référencée Algorithme irréalisable dans un contexte ’’offline’’ Connaissance des références qui seront faites Intérêt : permet de comparer les performances des autres algorithmes Exemple : reprendre exemple 1 en appliquant optimal cases\ref. A 1 A 2 3 B C A B D A D B C C B 2 défauts de pages B C IsetSiliana D CHaabani Nizar 148 148 Algorithmes de Remplacement (4) Algorithme LRU (Least Recently Used) : Principe : remplacer la page la moins récemment utilisée (accédée) Remplacer la page qui est restée inutilisée le plus de temps Une bonne approximation de l’algorithme optimal Théoriquement réalisable mais très coûteux Nécessite des dispositifs matériels particuliers (compteur pour chaque référence) Exemple 2 : énoncé exemple 1 + la chaîne de référence A B C D A B C D A B C D cases\ réf. A 1 A 2 3 B C D A B D B IsetSiliana D A C A C C B C D B D B C A CHaabani Nizar LRU : 9 défauts de pages Optimal : ? D 149 149 IsetSiliana CHaabani Nizar 150 IsetSiliana CHaabani Nizar 151 12 DEFAUT PAGE IsetSiliana CHaabani Nizar 152 Algorithmes de Remplacement (5) Algorithme NRU (Not Recently Used) : Idée : marquer les pages référencées Principe : A chaque page sont associées deux bits R et M : Au lancement d’un processus, le SE met à zéro R et M de toutes les pages Périodiquement, le bit R est remis à 0 pour différencier les pages qui n’ont pas été récemment référencées des autres Lors d’un défaut de page, le SE retire une page au hasard dont la valeur RM est la plus petite : R=1 chaque fois que la page est référencée (lecture/écriture), R=0 sinon M=1 lorsque la page a été modifiée dans la mémoire centrale RM = 00 : non référencée, non modifiée RM = 01 : non référencée, modifiée RM = 10 : référencée, non modifiée RM = 11 : référencée, modifiée Algorithme basé sur une solution matérielle IsetSiliana CHaabani Nizar 153 153 Algorithmes de Remplacement -- Conclusion Critère de performance: Optimal LRU NRU + FIFO/Aléatoire - La taille de la MC influe beaucoup sur les performances que l ’algorithme : N’essayer pas de raffiner un algorithme, mais plutôt augmenter, si nécessaire, la taille de la mémoire, et ce afin de minimiser le remplacement. Question : est-ce que le rajout de mémoire réduit toujours le nombre de défauts de pages? Oui pour seulement optimal et LRU Non pour FIFO!! Exemple 3 : on dispose de 3 cases mémoires. Appliquer FIFO à la chaîne de références suivante : ABCDABEABCDE Rajouter 1 case et reprendre l ’algorithme de remplacement FIFO. Conclure IsetSiliana CHaabani Nizar 154 154 4. La Mémoire Virtuelle Principe Taille programme + données + pile peut être > Taille mémoire disponible Le SE conserve les parties en cours d’utilisation en mémoire et le reste sur disque. Quand un programme attend le chargement d’une partie de lui-même il est en attente d’E/S Pagination Les adresses générées par un programme s’appellent des adresses virtuelles, et forment l’espace d’adressage virtuel. La MMU (Memory Management Unit, unité de gestion mémoire) fait la correspondance entre les adresses virtuelles et les adresses physiques. IsetSiliana CHaabani Nizar 155 … Tables de pages multiniveaux Processeur 32bits, page de 4Ko nombre de pages = 232/ 212 = 220 pages: une table de pages de plus que un million d’entrées! Sans oublier que chaque processus a son propre espace d’adressage et donc sa propre table de pages! Tables de pages multiniveaux: On ne garde pas en mémoire toutes les tables de pages Tables de pages inversées Mémoire Associative ou TLB (Translation Lookaside Buffer): une petite table des pages les plus référencées IsetSiliana CHaabani Nizar 156 Tables de pages multiniveaux Second-level page tables Exple: une adresse virtuelle sur 32 bits est partitionnée en 3 champs A quoi correspond l’adresse virtuelle sur 32 bits 0x00403004 ? IsetSiliana CHaabani Nizar 157 Tables de pages inversées Cas d’un processeur 64 bits, 256Ko de mémoire et page de 4Ko IsetSiliana CHaabani Nizar 158 … Structure d’une entrée de la Table des pages Présent/ Absent: 1 bit, indique si la page est en mémoire ou non. Protection: 1 bit (0: RW, 1: R) ou 3 bits (RWX). Modifié: 1 bit, une page modifiée doit être écrite sur le disque. Référencé: 1 bit, chaque fois que la page est référencée (lue ou écrite) il est mis à 1. Cache inhibé: 1 bit, permet d’inhiber le cache pour une page. IsetSiliana CHaabani Nizar 159 Algo de remplacement de pages Défaut de page Chercher une page à évincer, pour faire de la place pour la page à charger en mémoire. Si le bit M de la page à évincer = 1, la page doit être sauvée sur disque. Algo. optimal Question de performances, afin d’éviter le rechargement de pages, la page à évincer doit être peu utilisée. Étiqueter chaque page avec le nombre d’instructions qui seront exécutées avant que cette page ne soit référencée Evincer la page dont l’étiquette est la + grande (on repousse ainsi le défaut de page aussi tard que possible) Cet algo est irréalisable, le SE ne sait pas si la page serait référencée ou pas ultérieurement. Par contre, pour une 2éme exécution, il est possible d’implanter cet algo. IsetSiliana CHaabani Nizar 160 … Algo NRU (Not Recently Used) Principe R 1, chaque fois que la page est lue ou écrite. M 1, chaque fois que la page est modifiée. A chaque interruption, R 0, afin de distinguer les pages récemment référencées. Classes de pages Classe 0: non référencée, non modifiée Classe 1: non référencée, modifiée Classe 2: référencée, non modifiée Classe 3: référencée, modifiée La classe 1 est obtenue par conséq de l’effacement du bit R de la classe 3. L’algo NRU vire une page au hasard dans la + basse classe IsetSiliana CHaabani Nizar 161 … Algo FIFO (1st In, 1st out) Algo. FIFO Le SE conserve une liste de pages couramment en mémoire. En cas de défaut de page, la + ancienne étant en tête de liste est évincée. (-) cet algo peut virer des pages importantes. En effet, la page la + ancienne peut être la page la + utilisée. Algo. seconde chance C’est l’algo FIFO modifié, tel que le bit R de la page la + ancienne est inspecté, Si R = 1 de la page en tête de liste, la page est référencée, et est placée à la fin de la liste avec R 0 et un instant de chargement actualisé Si R = 0, page à virer (ancienne et non référencée). (-) cet algo déplace constamment des pages de la liste. IsetSiliana CHaabani Nizar 162 … Algo de l’horloge Page chargée récemment Page chargée en premier En cas de défaut de page et A tel que R = 1 Algo de l’horloge C’est l’algo de seconde chance avec une liste circulaire (horloge) et un pointeur sur la page la + ancienne. Quand un défaut de page survient, la page pointée est examinée: Si R = 0, la page est évincée Sinon, R 0, le pointeur avance vers la page suivante, Le processus se répète jusqu’à trouver une page avec R = 0 IsetSiliana CHaabani Nizar 163 … Algo LRU (Least Recently Used Principe Cet algo est fondé sur l’observation les pages les + référencées lors des dernières instructions seront probablement utilisées. Un défaut de page évince la page qui n’a pas été utilisée pendant le plus de temps. Implantations Compteur de 64 bits / cadre de page Un défaut de page examen de tous les compteurs de la table des pages à la recherche du plus petit compteur Matrice (n n), n cadres Cellules initialisées à 0 Quand une page k est référencée, tous les bits de la rangée k 1, tous les bits de la colonne k 0 Un défaut de page évince la page dont la rangée est la + petite IsetSiliana CHaabani Nizar 164 … Algo LRU – pages référencées dans l’ordre 0,1,2,3,2,1,0,3,2,3 IsetSiliana CHaabani Nizar 165 … Algo de vieillissement Principe Cet algo nécessite un compteur/ page (init: 0) A chaque interruption, le SE examine toutes les pages en mémoire, et pour chaque page son bit R est ajouté à son compteur, comme suit: D’abord, le compteur est décalé d’un bit à droite Puis, le bit R est ajouté au bit de poids le plus fort (de gauche) Une page qui n’a pas été référencée depuis 4 tops d’horloge a 4 zéros dans son compteur, et aura une + petite valeur qu’une page qui n’a pas été référencée depuis 3 tops d’horloge. Défaut de page: évincer la page dont le compteur est le + petit IsetSiliana CHaabani Nizar 166 … Algo de vieillissement IsetSiliana CHaabani Nizar 167 … Algo de vieillissement vs LRU Différence 1: Slide 27 –(e)>> les pages 3 (00100000) et 5 (00101000) n’ont pas été référencées depuis 2 tops d’horloge LRU: aucun moyen de distinguer les 2 pages car on ne mémorise qu’un seul bit/ intervalle de temps Algo. Vieillissement: la page 3 est virée Différence 2: Le compteur de l’algo de vieillissement a un nombre fini de bits (8 dans l’exple), on ne peut pas distinguer 2 pages ayant la même val du compteur. Dans la pratique un compteur sur 8 bits est suffisant pour des tops d’horloge qui se produisent toutes les 20ms, une page non référencée depuis 160ms n’est pas très utilisée IsetSiliana CHaabani Nizar 168 … Algo « ensemble de travail» Pagination à la demande Les pages sont chargées à la demande et non à l’avance beaucoup de défauts de page au début Ensemble de Travail C’est l’ensemble de pages exploitées par le processus lors des k références en mémoire les + récentes Il est intéressant que le SE mémorise l’ensemble de travail de chaque processus et pré-charge en mémoire l’ensemble de travail du processus En cas de défaut de page, évincer une page qui à l’ensemble de travail du processus IsetSiliana CHaabani Nizar 169 … Algo « ensemble de travail» IsetSiliana CHaabani Nizar 170 … Algo WSClock Working Set Clock (ensemble de travail + horloge) Optimisation de l’algo basé sur l’ens. de travail, qui nécessite le parcours de toute la table des pages à chaque défaut de page. Chaque entrée contient: le Temps de la dernière utilisation, le bit R et le bit M. A chaque défaut de page, la page pointée est examinée: Si R = 1, càd la page a été utilisée pendant le top courant, R 0, màj d temps et le pointeur avance d’une page. Si R = 0 et age > et M = 0, càd la page à l’ens de travail cadre de page à libérer Si R = 0 et age > et M = 1, càd la page à l’ens de travail une écriture sur disque de la page est ordonnancée, le pointeur avance d’une page. Ainsi, même si le pointeur revient à son point de départ, l’écriture serait terminée. IsetSiliana CHaabani Nizar 171 … Algo WSClock IsetSiliana CHaabani Nizar 172 3.2. Conversion d’une Adresse Virtuelle Procédure Conversion (Entrée : advirt; Sortie : adphysique) Début index = advirt.page + adresse_table(processus) Si (non index.P) /* page absente */ Alors /* Défaut de page*/ charger_page(advirt.page, adresse_case index.P = 1 index.case = adresse_case finsi adphysique = adresse_case + advirt.deplacement Fin Procédure charger_page (E : page; S : case) Début Si (Non trouver_case_libre()) Alors choisir_case_à_libérer(case_à_libérer, page_victime) Si (page_victime.M) Alors ecrire_disque(page_victime) finsi lire_disque(case_voila_liberer, page) finsi Fin IsetSiliana CHaabani Nizar 173 173 4. Autres Considérations (1) Politique d’allocation locale/globale : Remplacement de la page la plus ancienne : Globale -- la plus ancienne du système Locale -- la plus ancienne du processus En général, l ’allocation globale produit de meilleurs résultats Redémarrage d’une instruction après le défaut de page La taille d’une page? Influe sur les tables de pages utilisées par la MMU Mémoire de SWAP où stocker les pages délogées de la MC? sur un ou plusieurs disques locaux partition de swap : + rapide, - de place pour le SGF Fichier de swap : - rapide, + de place pour les autres fichiers En général, le SE utilise les deux simultanément Plusieurs disques = swap en parallèle sur un serveur (de disques) distant : Net PC, TX, STB, ... IsetSiliana CHaabani Nizar 174 174 4. Autres Considérations (2) Ecroulement -- thrashing Si le nombre de processus est très grand, l’espace propre à chacun est insuffisant et ils passeront leur temps à gérer des défauts de pages Ecroulement du système : une haute activité de pagination un processus s'écroule lorsqu’il passe plus de temps à paginer qu’à s'exécuter Limiter le risque d'écroulement : Allocation plus de page Défaut de pages Limite supérieure Limite inférieure Retrait de page Nombre de pages Si un processus provoque trop de défauts de pages : au dessus d ’une limite supérieure : on lui allouera plus de pages en dessous d’une limite inférieure : on lui en retirera S’il y a plus de pages disponibles et trop de défauts de pages, on devra suspendre un des processus IsetSiliana CHaabani Nizar 175 175 4. Autres Considérations (3) L’espace de travail -- Working set (W) W = les pages d’un processus référencées sur un court instant de temps Une allocation optimale : allouer à un processus actif autant de pages que nécessite W les défauts de pages seront provoqué lors des changements d’espace de travail Ce modèle n’est utilisé que pour la prépagination Prépagination Lors du lancement d ’un processus ou lors de sa reprise après suspension, on provoque obligatoirement un certain nombre de défauts de page Essayer de les limiter -- enregistrer W avant suspension Au lancement d ’un programme les 1eres pages de code seront vraisemblablement exécutées Conclusions Découpage en pages et cases de même taille Les pages d’un processus ne sont chargées en mémoire physique que lorsque le processus y accède les pages peuvent être mises dans n’importe quelle case Lorsqu’un processus accède à une page non présente en mémoire physique, il se produit un DEFAUT DE PAGE : la page manquante est alors chargée dans une case libre pas de case libre, le système utilise un algorithme de remplacement de page pour choisir une case à libérer IsetSiliana CHaabani Nizar 176 176 Chap. II SYNCHRONISATION ET COMMUNICATION ENTRE PROCESSUS --IPC 1.Exemple introductif Int i; P1 P2 i=0; while (i<10) i++; printf(‘’P1 GAGNE! \n’’); i=0; while (i>-10) i--; printf(‘’P2 GAGNE !\n’’); i variable « partagée » risque de conflit d’accès! Les instructions i++ et i– doivent s’exécuter de manière indivisible! Lequel des processus P1 ou P2 gagne? Vont-ils terminer? Si l’un se termine, est-ce que l’autre termine aussi? Est-ce que P1 peut commencer? 177 IsetSiliana CHaabani Nizar 177 Présentation du problème Pas d’interaction: Exécution dans n’importe quel ordre Exécution parallèle ou concurrente Interactions entre processus: Nécessité de synchroniser L’ordre d’exécution est important Cas particulier: Exclusion mutuelle –sérialisation des exécutions Moyens de synchronisation: Matériel: masquage d’interruption et TAS—Test-And-Set Logiciel: verrous, sémaphores, moniteurs, et passage par messages 178 IsetSiliana CHaabani Nizar 178 2. Définitions de synchronisation, Section critique Synchronisation Utilisation d’opérations atomiques afin de garantir une bonne coopération entre processus. Une opération qui consiste à distribuer, dans le temps, les accès à une ressource partagée entre plusieurs processus. Conditions de rapidité un ordre quelconque de processus/instructions peut produire des résultats incorrects La commutation dépend, dans le cas de concurrence, de l’ordonnancement de parallélisme, de la vitesse d’exécution relative– on synchronise le processus le plus rapide sur le processus le plus lent.. 179 IsetSiliana CHaabani Nizar 179 Section critique --SC Une partie d’un programme où se produit un conflit d’accès. Comment éviter ce conflit? Besoin de contrôler l’entrée à une SC Besoin de supporter l’exclusion mutuelle dans la SC. Une bonne solution au problème de SC doit satisfaire: 1. Exclusion mutuelle: accès exclusif: à tout instant un seul processus exécute sa SC (ressource partagée). 2. Avancement et absence de blocage: un processus qui n’est pas dans sa SC ne doit bloquer un autre processus à entrer en SC; c-àd pas d’attente s’il n’y a pas de compétition 3. Attente bornée (pas de famine): une fois la demande d’entrée en SC est lancée, le processus ne doit pas attendre indéfiniment. La demande est assurée de manière équitable, si possible. Aucune hypothèse ne doit être faite sur les vitesses relatives des processus 180 IsetSiliana CHaabani Nizar 180 Structure Typique d’un Processus Soient N processus exécutant le programme suivant: Do … // ’’Entrer en SC’’ ] Prologue SC // ’’Sortir de la SC’’ SNC While (1); ] Epilogue 181 IsetSiliana CHaabani Nizar 181 3. Solutions Possibles Hypothèses: Vitesses relatives des processus quelconque et inconnu tout processus quitte sa SC au bout d’un temps fini Aperçu Opérations atomiques de Verrous Sémaphores haut niveau Send/Receive (API) Opérations atomiques de Load/Store bas niveau TAS (matériel) IsetSiliana Moniteurs + Masquage Interruption 182 CHaabani Nizar 182 3.1. Solutions Matérielles Permettre à l’utilisateur d’interdire momentanément les interruptions (difficile et dangereuse!) Augmenter l’ensemble des actions atomiques Masquage d’interruptions Problème: les processus users ne peuvent pas garantir le test et la modification d’une variable Solution: Interdire la commutation de processus pendant qu’un processus est en SC ou encore masquer les Its (le système peut le faire en mode SVC par un appel spécifique). Masquer It SC Demasquer It 183 IsetSiliana CHaabani Nizar 183 Solutions Matérielles --TAS TAS (Test-And-Set): Instruction spéciale cablée dont le rôle est de rendre atomique le ‘’test and set’’ du contenu d’un mot. Int TAS (int *val) { int temp; temp= *val; //implantée de manière atomique *val = 1; return temp; } Une solution au problème de SC pour n processus: Int verrou = 0; void MutexDebut() Processus Pi { Do while (TAS(&verrou)) MutexDebut(); ; SC } MutexFin(); void MutexFin() SNC { verrou = 0; } while (1); Preuve? 184 IsetSiliana CHaabani Nizar 184 3.2. Solutions Soient deuxLogicielles processus –Attente P0 et P1 Active sur un Verrou Algorithme1: A qui le tour! Public //Variables partagées int tour=0; //tour =i si Pi veut entrer en SC Processus Pi Do while (tour != i) ; // on fait rien SC tour = (i+1)%2; SNC While (1); Démontrer que c’est une fausse solution? Exclusion mutuelles satisfaite Avancement non vérifié: si P0 est plus lent que P1 alors P0 bloque P1; bien qu’il n’est pas dans sa SC Nécessité d’une alternance stricte (jeton) 185 IsetSiliana CHaabani Nizar 185 Algorithme2 Algorithme2: deux drapeaux Public //Variables partagées int flag[2]=[0]; //flag[i]=0 si Pi est prêt pour entrer en SC Processus Pi Do flag[i] = 1; while (flag[i]) ; // on fait rien SC flag[i] = 0; SNC While (1); Démontrer que c’est une fausse solution? Exclusion mutuelles satisfaite Avancement non vérifié: si les processus arrivent en même temps, c-a-d flag[0] = flag[1] =1! Une vraie solution consiste delà combiner les deux dernieres! 186 IsetSiliana CHaabani Nizar 186 Solution de Peterson Algorithme3 //pour deux processus Public //Variables partagées int flag[2]=[0]; //flag[i]=0 si Pi est prêt pour entrer en SC int tour = 0; Processus Pi Do flag[i] = 1; tour = j; // j = (i+1)%2; while (flag[i] && tour == j) ; // on fait rien SC flag[i] = 0; SNC While (1); Preuve de correction? Cet algorithme satisfait les 3 conditions de SC, à démontrer? Généralisation à n processus: voire algorithme de Bakery 187 IsetSiliana CHaabani Nizar 187 3.3. Attente active --Conclusion Solutions qui fournissent des attentes actives Inefficace: il faut que le processus en attente libère le processeur explicitement (exemple la fonction sleep sous Unix). Les processus de priorité élevé peuvent être prives (inversion de priorité) Solutions de blocage Sémaphores Moniteurs Send/Receive 188 IsetSiliana CHaabani Nizar 188 4. Les SEMAPHORES Motivation : synchronisation des processus concurrents Une approche par attente active n’est pas intéressante, puisque le processeur est immobilisé simplement pour attendre Gaspillage de la puissance CPU disponible Une approche alternative = utilisation de sémaphores Principe et définition des sémaphores Mécanisme de synchronisation simple et ancien entre des processus concurrents Le principe est directement hérité des chemins de fer -- Signal muni d’un bras indiquant si la voie ferrée est libre ou occupée Sémaphore levé : le processus P peut continuer son chemin Sémaphore baissé : il doit attendre jusqu'à ce qu’un autre processus Q le lève Eviter des collisions en assurant l'accès exclusif à un croisement ferré Inventés par le mathématicien Allemand Dijkstra (1965) 4.1. Syntaxe et Sémantique Un sémaphore S est une variable spéciale contenant un nombre entier (IN) et manipulé uniquement par 3 opérations atomiques : initialisation, P et V 189 IsetSiliana CHaabani Nizar 189 4.1. Syntaxe et Sémantique d’un Sémaphore P --passer : P(S)/Wait(S)/Down(S) Décrémenter la variable S (à moins qu’elle ne soit déjà à 0) Utilisée (lorsque déjà 0) pour bloquer (suspendre) le processus appelant jusqu'à ce qu’un événement survienne. V --relâcher : V(S)/Signal(S)/Up(S) Incrémenter le sémaphore de 1 Utilisée pour signaler un événement, et si possible, réactiver un processus en attente. Initialisation de S : interprétée comme un nombre d’autorisations (disponibles quand l’entier est positif, attendues quand le le nombre est négatif). Déclaration de sémaphores -- Notation d’Andrews Sem S1, S2; Sem ingred[3]=([3] 1); S1 = 0; S2 = 1; Apres initialisation, les seules opérations permises sont P et V P(S) : < attendre(S>0); S--; > V(S) : < S++; > Sémaphores général vs. sémaphore binaire : Sémaphore général : peut prendre n ’importe quelle valeur nonnégative Sémaphore binaire : la valeur peut être uniquement 0 ou 1 190 IsetSiliana CHaabani Nizar 190 4.1. Syntaxe et Sémantique d’un Sémaphore (suite) Sémaphore associé à une file d’attente -- Sémaphore de blocage A chaque sémaphore est associée une file d’attente pour les processus bloqués Création d’un sémaphore général typedef struct semaphore { int valeur; bcp *tete; } void P(semaphore *S) { if ( --S->valeur < 0) { insérer ce processus dans la FA associée Bloquer } } void V(semaphore *S) { if ( ++S->valeur <= 0) { supprimer le processus courant de la FA associée à ce sémaphore Réveiller } } L’utilisation correcte des sémaphores ne doit pas dépendre d’une gestion particulière de la file d’attente 191 IsetSiliana CHaabani Nizar 191 4.2. Utilisation des Sémaphores Les sémaphores peuvent être utilisés tant pour la réalisation des sections critiques que pour diverses formes de synchronisation conditionnelle Compétition entre 2 processus privé Variables partagées Semaphore Mutex=1; Processus Pi Repeat P(Mutex); V(Sync); Coopération -- sémaphore Variables partagées Semaphore Sync = 0; Processus P0 Processus P1 ....... ....... P(Sync); ....... SECTION CRITIQUE V(Mutex); until flase; précédence P1 < P0 ....... Il existe une relation de Conséquence : Un sémaphore est toujours initialisé à une valeur non-négative mais peut devenir négative après un certain nombre d'opérations P(S) -- nombre des processus en attente. 192 IsetSiliana CHaabani Nizar 192 4.3. Problèmes de dysfonctionnement des sémaphores Remarques : La plupart des mises en œuvre des sémaphores assurent que les processus en attente sont réactivés dans l’ordre dans lequel ils ont été suspendus sur le sémaphore. Equité dans l’ordonnancement des processus Les sémaphores sont les principales primitives de synchronisation dans Unix Un sémaphore est un mécanisme qui permet le blocage et le réveil explicite. Servir à traiter tous les paradigmes de la programmation concurrente Aucune garantie qu’une synchronisation est exempte de problèmes!! : Interblocage (Deadlock) -- attente circulaire Un processus est bloqué indéfiniment s’il est en attente d’un événement qui ne peut être produit que par le processus déjà en attente Considérons 2 processus utilisant 2 sémaphores d’exclusion mutuelle P1 P2 P(S1) P(S2) P(S2) P(S1) ... ... Famine (starvation) : des processus qui s'exécutent indéfiniment sans aucun changement; certains processus peuvent ne jamais obtenir les ressources! 193 IsetSiliana CHaabani Nizar 193 4.4. Attente active vs. Blocage L ’attente active est-elle plus coûteuse que le blocage? Coût de blocage contre le coût de manipulation des files d ’attente + la commutation de contexte? La durée de l ’attente? L’attente active peut être meilleure pour des sections critiques de courtes durées, plus particulièrement pour les multiprocesseurs, elle est incontournable. 194 IsetSiliana CHaabani Nizar 194 4.5. Problèmes Classiques de Synchronisations Rendez-vous -- Principe général P1 P2 Pn Point de rendez-vous Point de synchronisation Version simplifiée du problème pour 2 processus (généralisation -- voir TD) Synchronisation par sémaphores privés : Semaphores arrivee1=0, arrivee2 = 0; Processus P1 ...... V(arrivee1); ....... V(arrivee2); // signaler mon arrivée P(arrivee2); ...... Processus P2 P(arrivee1); // attendre l'arrivée de l’autre ...... 195 IsetSiliana CHaabani Nizar 195 4.5. Problèmes Classiques de Synchronisations (2) Problème de Producteur/Consommateur (tampon borné) Vide N cases Producteur Consommateur Plein Contraintes de synchronisation : Relation de précédence : Producteur < Consommateur Section critique (tampon) tampon plein Producteur se bloque tampon vide Consommateur se bloque Exclusion mutuelle au tampon 196 IsetSiliana CHaabani Nizar 196 Solution au Problème de Producteur/Consommateur (tampon borné) Variables partagées #define N 100 Semaphore mutex=1; /* protège l'accès au tampon */ Semaphore plein=0; /* compte le nombre d ’informations produites dans le tampon */ Semaphore vide = N; /* Nb d ’emplacements libres dans le tampon */ Processus Producteur Processus Consommateur Repeat Repeat ...... ...... Produire_objet(); P(plein); /* décrémenter nb info. */ ...... P(mutex); /* entrée en SC */ P(vide) /* dec. Cases libres */ retirer_objet(); P(mutex); /* entrée en SC */ V(mutex); /* sortie de SC */ deposer_objet(); V(vide); cases vides */ V(mutex); /* sortie de SC */ V(plein); /* Incr. nb info. */ until false; /* Incr. nb Consommer_objet() until false; 197 IsetSiliana CHaabani Nizar 197 Synchronisations (4) Problème des Lecteurs/Rédacteurs Considérons ce problème comme étant un système de réservation de billets d’avions où plusieurs processus tentent de lire et d'écrire des informations: On accepte que plusieurs lisent ensemble (degré d'accès 1) On n’autorise qu’un seul processus à modifier (on exclut les lecteurs et les autres rédacteurs) Exclusion mutuelle (degré = d'accès 1) On suppose que les lecteurs sont prioritaires par rapport aux rédacteurs Un rédacteur bloqué doit attendre le dernier des lecteurs pour qu’il puisse entrer en section critique Solution Variables partagées Semaphore mutex1=1; Semaphore mutex2=1; Semaphore wrt=1; rédacteurs */ int nblect=0; /* protège le compteur des lecteurs */ /* garantir la priorité des lecteurs) /* exclusion mutuelle pour les /* Nombre de lecteurs actifs */ 198 IsetSiliana CHaabani Nizar 198 Solution au Problème des Lecteurs/Rédacteurs avec priorité des lecteurs par rapport aux rédacteurs Processus Lecteur Processus Rédacteur ...... P(mutex1); /* accès exclusif à nblect */ P(mutex2); /* priorité des lecteurs*/ if (++nblect == 1) P(wrt); /* accès exclusif */ P(wrt); /* bloquer les rédacteurs */ Ecriture V(mutex1); /* libérer l ’utilisation de nblect */ V(wrt); /* libérer l'accès exclusif */ Lecture V(mutex2); P(mutex1); if (--nblect == 0) /* si le dernier lecteur */ V(wrt); /* autoriser une écriture */ V(mutex1); ...... 199 IsetSiliana CHaabani Nizar 199 5. Les MONITEURS Motivation : Les sémaphores peuvent être utilisés pour résoudre à peu près n'importe quel problèmes d'exclusion mutuelle ou synchronisation ... mais les sémaphores possèdent certains désavantages : Mécanisme de bas niveau qui demande une discipline sévère dans la façon dont ils sont utilisés, sous peine d'erreurs: que se passe-t-il si on oublie d'indiquer un appel à V? ou si on effectue une action P en trop? Le rôle d'une opération P ou V (exclusion mutuelle? synchronisation conditionnelle?) dépend du type de sémaphore, de la façon dont il est initialisé et manipulé par les divers processus pas explicite Moniteur : Mécanisme de synchronisation de haut niveau, proposé par Hoare et Brinch Hansen. Forme de module qui supporte, à l ’aide de deux mécanismes indépendants, l ’exclusion mutuelle et la synchronisation conditionnelle. Conceptuellement, un moniteur simule une classe en OO (des variables partagées et les méthodes qui les manipulent) Un moniteur est censé assurer une exclusion mutuelle (un seul processus actif dans le moniteur) d’accès aux données qu’il contient IsetSiliana CHaabani Nizar 2 0 200 0 5.1. Syntaxe et Sémantique d’un Moniteur Structure d’un Moniteur VARIABLES Partagées - d’Etat - Condition Procédures Points d'entrée Externe s Interne s Sémantique d’un Moniteur = Type abstrait, mais avec des propriétés d’exclusion mutuelle et de synchronisation lorsque le moniteur est partagé par plusieurs processus. On n’a accès qu’aux procédures externes, pas aux variables Les procédures sont exécutées en exclusion mutuelle et donc les variables internes sont manipulées en exclusion mutuelle On peut bloquer et réveiller des taches. Le blocage et le réveil s’exprime au moyen de conditions. IsetSiliana CHaabani Nizar 2 0 201 1 5.1. Syntaxe et Sémantique d’un Moniteur (suite) Syntaxe : la forme générale d’une déclaration de moniteur : Monitor nom_moniteur { /* --- Déclarations des variables --- */ .....; /* variables d'états */ Condition ... ; /* variables conditions */ /* ------------ Déclarations des procédures ------------ */ Public nom_fonction (...) { .... } Public void nom_procedure (..) { .... } Private .... (...) { ..... } { /* -- Initialisation des variables ---*/ } IsetSiliana CHaabani Nizar 2 0 202 2 5.1.1. Exclusion Mutuelle Philosophie des moniteurs = séparer de façon claire l ’exclusion mutuelle de la synchronisation conditionnelle (coopération): L ’exclusion mutuelle est supportée de façon implicite : un appel, par un processus, d’une procédure exportée par le moniteur assure que la procédure sera exécutée de façon exclusive, c-à-d, au plus un appel d’une procédure du moniteur sera actif à un instant donné le moniteur maintient une FA des processus en attente d'entrée. Les synchronisations conditionnelles doivent être décrites de façon explicite à l ’aide de variables condition (Condition variables) En d ’autres termes, l’exclusion mutuelle est automatique, sa mise en œuvre étant assurée par le langage (compilateur), la librairie, ou le système d ’exploitation, pas le programmeur lui-même. Langages de programmation JAVA (le meilleur) déclarations en exclusion mutuelle (‘’synchronized’’) certaines méthodes d ’une classe. ADA95 -- type protégé, objet protégé « protected »; ainsi, toutes les procédures de ces objets protégés sont exécutées en exclusion mutuelle. IsetSiliana CHaabani Nizar 2 0 203 3 5.1.2. Variables de Condition Une variable condition est utilisée pour suspendre un processus jusqu'à ce qu’une certaine condition devienne vraie. Déclarée comme une variable, mais on ne peut ni lui attribuer de valeur ni la tester) -- Condition C; Servir de FA des processus qui attendent sur cette condition 3 opérations possibles sur une variable condition C : Empty(C) // La FA associée est-elle vides ? Mise en attente d’un processus : Wait(C) // le processus appelant se bloque et doit libérer le moniteur. Réactivation de processus en attente : Signal(C) // reprend exactement un processus (en tête de la FA associée à C). Si aucun processus n ’est suspendu alors cette opération est sans effet. Problème de signalisation : un processus P fait un signal et réveille un processus Q, alors qui aura le contrôle exclusif du moniteur? 2 approches : Signaler et continuer : le processus qui exécute signal continue son exécution, donc conserve l'accès exclusif au moniteur. Le processus ayant été signalé sera exécuté plus tard Approche non-préemptive -- la plus couramment utilisée (Unix, Java, Pthreads). Signaler et Attendre : le processus qui signale attend pendant que celui qui vient d'être signale acquiert l accès exclusif au moniteur IsetSiliana CHaabani Nizar 2 0 204 4 IsetSiliana CHaabani Nizar 2 0 205 5 5.2. Similitudes/Différence entre P/Wait et V/Signal Les opérations Wait et P peuvent toutes deux avoir pour effet de suspendre un processus qui exécute cette opération : Wait suspend toujours le processus P ne le fait que si la valeur du sémaphore est négative ou nulle Signal et V peuvent réactiver un processus suspendu : Signal n ’a aucun effet si aucun processus n’est suspendu, alors que V aura pour effet d’incrémenter la valeur du sémaphore si aucun processus n ’est suspendu. Implantation des moniteurs par des sémaphores : Assurer l ’exclusion mutuelle au moniteur mutex (P entrée V après sortie) A chaque variable condition sont associés un sémaphore et un compteur Wait (V(mutex); P(semcond)) IsetSiliana CHaabani Nizar 2 0 206 6 Exemple: Producer-consumer Monitor ProducerConsumer condition full, empty; integer count; procedure insert(item:integer); begin if count = N then wait(full); insert_item(item); count := count + 1; if count = 1 then signal(empty) end; function remove: integer; begin if count = 0 then wait(empty); remove = remove_item; count := count - 1; if count = N-1 then signal(full) end; procedure producer; begin while true do item = produce_item(); ProducerConsumer.insert(item) end; procedure consumer; begin while true do ProducerConsumer.remove(); consume_item(item); end count := 0; end monitor; IsetSiliana CHaabani Nizar 2 0 207 7 Lecteurs/Rédacteurs 1.Un objet (par ex. un fichier, un enregistrement dans un fichier ou une base de données toute entière) est partagé entre plusieurs activités concurrentes. 2.Certaines activités les lecteurs) ne modifient pas le contenu de l’objet contrairement à d’autres (les écrivains). 3.Les lecteurs peuvent donc accéder simultanément au fichier. 4.Un écrivain au contraire doit accéder seul au fichier. 5.Si le fichier est disponible, lecteur et rédacteur ont la même priorité. Il existe plusieurs versions classiques du problème. IsetSiliana CHaabani Nizar 2 0 208 8 Lecteurs/Rédacteurs variante n°1 : Priorité aux lecteurs. S’il existe des lecteurs sur le fichier, toute nouvelle demande de lecture est acceptée. risque : le rédacteur peut ne jamais accéder au fichier (famine). variante n°2 : Priorité aux lecteurs, sans famine des rédacteurs. S’il existe des lecteurs sur le fichier, toute nouvelle demande de lecture est acceptée sauf s’il y a un rédacteur en attente. variante n°3 : Priorité aux rédacteurs. Un lecteur ne peut lire que si aucun rédacteur n’est présent ou en attente. risque : famine des lecteurs. IsetSiliana CHaabani Nizar 2 0 209 9 Lecteurs/Rédacteurs variante n°4 : FIFO. Les demandes d’accès à l’objet sont servies dans l’ordre d’arrivée. S’il y a plusieurs lecteurs consécutifs, ils sont servis ensemble. risque : Le regroupement des lecteurs est inefficace si les demandes sont lecteur/écrivain en alternance. IsetSiliana CHaabani Nizar 2 1 210 0 IsetSiliana CHaabani Nizar 2 1 211 1 Exemple: Lecteurs/Rédacteurs type lecture_écriture = moniteur private écriture: booléen; private lecteurs: entier; private accord_lecture,accord_écriture: condition; procédure début_lecture; début si écriture ou accord_écriture.non_vide alors accord_lecture.wait findesi; lecteurs:= lecteurs + 1; accord_lecture.signal fin; procédure fin_lecture; début lecteurs:= lecteurs − 1; si lecteurs = 0 alors findesi fin; IsetSiliana ? accord_écriture.signal CHaabani Nizar 2 1 212 2 procédure début_écriture; début si lecteurs > 0 ou écriture alors accord_écriture.wait findesi; écriture:= vrai fin; procédure fin_écriture; début écriture:= faux; si accord_lecture.non_vide alors accord_lecture.signal sinon accord_écriture.signal findesi fin; début {du moniteur} écriture:= faux; lecteurs:= 0 fin; IsetSiliana CHaabani Nizar 2 1 213 3 import lecture_écriture processus lecteur { lecture_écriture.début_lecture ; < lecture > lecture_écriture.fin_lecture ; } processus écrivain { lecture_écriture.début_écriture ; < écriture > lecture_écriture.fin_écriture ; } IsetSiliana CHaabani Nizar 2 1 214 4 Structure des Systèmes Informatiques Opérations des Systèmes Informatiques Structure des E/S Structure de stockage Hiérarchie de stockage Protection matérielle Structure réseau IsetSiliana CHaabani Nizar 215 Opérations des SI Périphériques d’E/S et la CPU peuvent s’exécuter simultanément Chaque contrôleur de périphérique est en charge d’un type particulier de périphériques Chaque contrôleur de périphérique a un tampon local CPU transfère les données de/à la mémoire centrale au/du tampon local E/S se fait du périphérique au tampon local du contrôleur Le contrôleur de périphérique informe la CPU qu’il a fini l’opération en générant une interruption IsetSiliana CHaabani Nizar 216 Traîtement des Interruptions L’OS sauvegarde l’état de la CPU (registre, compteur de programme) Détermine quelle interruption a eu lieu: polling Vecteur d’interruption Différentes fonctions du noyau correspondent aux traîtement rattachés à chaque interruption IsetSiliana CHaabani Nizar 217 Structure des E/S E/S Synchrones – Après le début de l’E/S, le contrôle ne retourne au processus utilisateur qu’à la terminaison de l’opération d’E/S Instruction Wait qui fait attendre la CPU jusqu’à la nouvelle interruption Boucle Wait (contentieux sur l’accès mémoire) E/S Asynchrones – Après le début de l’E/S, le contrôle retourne au processus utilisateur sans attendre la fin de l’E/S Appel système – requête à l’OS pour permettre à l’utilisateur d’attendre la fin de l’E/S Table de Statut de Périphérique contient une entrée par périphérique d’E/S indiquant son type, son adresse, et son état L’OS regarde dans cette table d’E/S pour déterminer l’état du périphérique, pour y ajouter une requête, et pour refléter l’occurrence d’une interruption IsetSiliana CHaabani Nizar 218 Deux Méthodes d’E/S Synchronous IsetSiliana Asynchronous CHaabani Nizar 219 Storage Structure Mémoire Principale – le seul média de stockage que la CPU peut accéder directement Mémoire Secondaire – extension de la mémoire centrale qui offre un espace de stockage persistent Disques Magnétiques – plateaux couverts de matériel magnétique pour le stockage d’informations Surface du disque décomposée logiquement en pistes, divisées elles-mêmes en secteurs Le contrôleur de disque fait l’intermédiaire entre la vue logique du disque par l’OS et sa disposition physique réelle IsetSiliana CHaabani Nizar 220 Hiérarchie des Périphériques de Stockage IsetSiliana CHaabani Nizar 221 La lecture sur le disque IsetSiliana CHaabani Nizar 222 Principe – les plateaux tournent à très haute vitesse (entre 3600 et 15000 tours/min) – la tête de lecture flotte au-dessus du plateau grâce au coussin d’air induit (à 10 nm de la surface) – lecture / écriture • écriture : le courant électrique dans la tête génère un champ magnétique qui magnétise la surface • lecture : la magnétisation du support induit un courant électrique dans la tête IsetSiliana CHaabani Nizar 223 Capacité d’un disque Taille d’une piste = nb de secteurs par piste * taille d’un secteur • Taille d’un cylindre = nb de faces * taille d’une piste • Taille d’un plateau = nb de pistes par face * taille d’une piste * 2 • Taille du disque = nb de cylindres * taille d’un cylindre = nb de plateaux * taille d’un plateau IsetSiliana CHaabani Nizar 224 Qu’est-ce qu’un fichier ? Une suite de secteurs – l’ordre est essentiel !!! IsetSiliana CHaabani Nizar 225 Qu’est-ce qu’un répertoire ? une collection de noms de fichiers + un accès à la liste de leurs secteurs un répertoire est lui-même un fichier (rangé dans une suite de secteurs) Les temps d’accès Quand on demande à lire un secteur, la carte d'interface va 1. Placer les têtes de lecture sur le bon cylindre 2. Attendre que le secteur cherché arrive sous la tête 3. Copier le secteur sur la carte d'interface. 4. Envoyer les données de la carte à l'ordinateur. IsetSiliana CHaabani Nizar 226 Temps de lecture Temps de lecture d’un secteur = durée de 1 tour / nombre de secteurs par piste • Durée constante (ex : 0,5 ms) • Débit = le nombre d'octets lus par seconde si on lisait sans arrêt = le nombre d'octets qui passent sous la tête en 1 seconde • Temps de latence = durée moyenne d’attente d’un secteur = durée d’un 1/2 tour • Exemple – secteurs de 512 octets, 32 secteurs par piste, 7200 tours/min • 16 ko par piste, 120 tours / s • débit max = 1920 ko/s = 1,875 Mo/s • temps de lecture d’un secteur = 1/(120*32) = 2,5.10-4s = 0,25ms • temps de latence = 1/(120*2) = 4,2ms IsetSiliana CHaabani Nizar 227 Cache Utilisation d’une mémoire très rapide d’accès pour maintenir des informations dernièrement accédées Besoin d’une polititque de gestion de cache Le cache introduit un autre niveau de stockage Besoin que les données stockées à plusieurs niveaux soient cohérents IsetSiliana CHaabani Nizar 228 Transfert d’un Entier “A” du Disque au Registre IsetSiliana CHaabani Nizar 229 Architecture Système Générale Composition Un (ou plusieurs) processeur(s) Mémoire Contrôleurs de périphériques Périphériques associés Bus de liaison d’n système informatique IsetSiliana CHaabani Nizar 230 Exemple : architecture Pentium IsetSiliana CHaabani Nizar 231 Cycle de Von Neumann Scenario Extraction d’une instruction Stockage dans le registre d’instruction Décodage Extraction de données éventuelles (opérandes) Exécution Implémentation Jeu d’instructions spécifique à chaque CPU Utilisation de registres CPU. Registres spéciaux : PC (Program Counter), SP (Stack Pointer), PSW (Program Status Word) Architectures modernes : pipelines, CPU super-scalaires, RISC etc. IsetSiliana CHaabani Nizar 232 Initialisation BIOS (Basic Input Output System) initialise le matériel (registres processeur, mémoire etc.) scanne les bus (ISA et PCI d’abord) pour trouver un périphérique amorçable (bootable) Premier secteur =) partition active =) deuxième « boot loader » ou système charge le système d’exploitation en mémoire Système d’Exploitation lance le premier processus (« init ») attend un événement Les événements sont produits par des « interruptions » IsetSiliana CHaabani Nizar 233