La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Systèmes multiprocesseurs Système dexploitation Chapitre 8 Andrew Tanenbaum 1.

Présentations similaires


Présentation au sujet: "Systèmes multiprocesseurs Système dexploitation Chapitre 8 Andrew Tanenbaum 1."— Transcription de la présentation:

1 Systèmes multiprocesseurs Système dexploitation Chapitre 8 Andrew Tanenbaum 1

2 Rappels sur les systèmes dexploitation Agit comme interface (Machine virtuelle) Gère les ressources –Gestion des processus –Gestion de la mémoire –Gestion des fichiers –Gestion des E/S 2

3 Les processus Un processus est une structure de donnée représentant un programme en cours d'exécution. Un processus contient toute l'information qu'il est nécessaire de conserver pour poursuivre l'exécution d'un programme interrompu. En particulier, chaque processus possède: –Un espace d'adressage (programme,données, pile) –Des registres (incluant PC, SP, PSW) –D'autres informations (fichier ouverts, priorité, etc.) 3

4 Table des processus La table des processus est un tableau de structures contenant une entrée pour chaque processus actifs dans le système. Périodiquement, le système d'exploitation décide d'interrompre un processus pour en exécuter un autre. Il doit alors: –suspendre l'exécution d'un processus A –sauver l'information de A dans la table des processus –choisir un nouveau processus B –recupérer l'information de B –démarrer l'exécution de B 4

5 5 Implémentation des processus Différent champs dune entrée de la table des processus

6 6 Les threads (1) Chaque processus possède un ou plusieurs threads (fils dexécution) Deux threads dun même processus partage un même espace dadressage mais des piles et des compteurs ordinaux distincts. Quelque fois appelés processus légers Utile même lorsquil ny a quun seul processeur –Dans le contexte dappels systèmes bloquants

7 7 Les threads (2) Items partagés par tous les threads dun processus Items à chaque thread

8 Ordonnanceur Partie du SE qui détermine si un processus doit poursuivre son exécution ou être temporairement arrêté pour être remplacé par un autre Doit choisir le prochain processus à être exécuté –Priorités 8

9 9 Les priorités sous Windows 32 niveaux de priorité

10 10 Les priorités sur Solaris

11 Mémoire virtuelle (1) Solution au problème des programmes trop gros pour entrer en mémoire. Chaque programme possède son propre espace dadressage découpé en petite entités appelées pages. Cet espace dadressage représente une mémoire virtuelle qui peut être plus grande que la mémoire physique. Chaque page est une suite dadresses contiguëes de la mémoire virtuelle. La taille des page est fixe (typiquement entre 512 octets à 64Ko) Une adresse virtuelle est une adresse de la mémoire virtuelle. 11

12 Mémoire virtuelle (2) Il nest pas nécessaire davoir toutes les pages en mémoire physique pour exécuter le programme. Chaque page est indivisible: –Elle est entièrement en mémoire physique ou elle ny est pas du tout. Les pages qui ne sont pas en mémoire sont placées sur le disque. Une table indique quelles sont les pages en mémoire ainsi que ladresse physique de celles-ci. Le tout est géré de façon transparente par l unité de gestion de la mémoire (MMU) 12

13 La pagination (1) Localisation et fonction du MMU 13

14 La pagination (2) La relation entre les adresses virtuelles et physiques est indiquée dans la table des pages Dans lexemple, un ordinateur peut produire des adresses sur 16bits (64 Ko) mais il ny a que 32 Ko de mémoire physique. La mémoire virtuelle est divisée en pages de 4K La mémoire physique est divisée en cadre de page (page frame) 14

15 La pagination (3) Par exemple, Ladresse virtuelle 0 est transformée en adresse physique 8192=2*4096 Ladresse virtuelle 8192=2*4096 est transformée en adresse physique 24576=6*4096 Ladresse virtuelle 20500=5* est transformée en adresse physique 12308=2*

16 La pagination (4) Sur les systèmes Unix on peut obtenir la taille des pages à laide de la commande: pagesize Sur Solaris la taille des page est de 8Ko Sur Mac OS X la taille des pages est de 4Ko 16

17 Systèmes dexploitation pour multiprocesseurs(1) Type 1: Chaque processeur possède son propre SE Bus 17

18 SE pour multiprocesseurs(2) Inconvénients: Pas de partage des processus Pas de partage des pages Comment gérer la cohérence des caches? Bus 18

19 SE pour multiprocesseurs(3) Type 2: Multiprocesseur maître-esclaves Simple et efficace Le maître est un goulot détranglement Bus 19

20 SE pour multiprocesseurs(4) Type 3: Multiprocesseurs symétriques –Tous les processeurs sont égaux –Une seule copie du SE –Problème: Il faut éviter les conflits. Deux processeurs voulant utiliser la même page mémoire Deux processeurs voulant éxécuter le même processus Bus 20

21 SE pour multiprocesseurs(5) Multiprocesseurs symétriques –Mauvaise solution: une seule section critique pour tout le système dexploitation –Solution raisonnable: Plusieurs section critiques. –Le SE a plusieurs parties indépendantes: Ordonnanceur Système de fichiers Gestion de la mémoire Bus 21

22 Synchronisation des MPs (1) Comment faire en sorte que linstruction TSL fonctionne? 22

23 Synchronisation des MPs (1) Solutions matérielles: Verouiller le bus Verouiller une adresse mémoire (DPRAM) 23

24 Synchronisation des MPs (2) Utilisation dun verrou pivotant (spinlock) –Consommation inutile du temps processeur –Encombrement du bus et de la mémoire 24

25 Synchronisation des MPs (3) Utilisation de verrous multiples en cache Chaque processeur possède sa propre copie de variable mutex à tester 25

26 Synchronisation des MPs (4) Boucler ou changer de thread Dans certains cas le processeurs est obligé dattendre –Processeur inactif qui désire acquérir le verrou des processus en attente Dans dautres cas un choix existe –Boucler gaspille du temps processeur –Changer de thread aussi –Choix difficile 26

27 Ordonnancement(1) Sur monoprocesseur –Quel est le prochain thread à exécuter? Sur multiprocesseur On doit maintenant se poser deux questions plutôt quune seule –Quel est le prochain thread a exécuter? –Sur quel processeur? 27

28 Ordonnancement(2) Temps partagé –Utilisation dune seule structure de données (niveaux de priorités) –Un ordonnancement à deux niveaux est souvent utilisé Un nouveau processus est affecté au processeur ayant la plus petite charge On tente ensuite daffecter ce processus au même processeur Dune certaine façon, chaque processeur possède sa propre collection de processus –Un processus qui détient un verrou pivotant peut difficilement être arrêté à lexpiration de son quantum 28

29 Ordonnancement(3) Espace partagé –On tient compte du lien existant entre certains processus ou threads –On ordonnance plusieurs threads dun même processus sur plusieurs processeurs –Lalgorithme le plus simple consiste à ordonnancer les processus plutôt que les threads. Sil ny a pas assez de processeurs disponibles pour tous les threads dun processus alors on choisit un autre processus (pas de multiprogrammation). 29

30 Ordonnancement(4) Multiprogrammation Problème de communication entre deux threads –Deux threads A 0 et A 1 dun même processus A veulent communiquer –Les threads A 0 et B 0 sexécutent sur le processeur 0 –Les threads A 1 et B 1 sexécutent sur le processeur 1 –Le délai de communication est inacceptable 30

31 Ordonnancement(5) Solution: ordonnancement par bande 1.Les groupes de threads liés sont ordonnancés comme une unité (bande) 2.Tous les membres dune bande sexécutent simultanément sur différents processeurs en temps partagé. 3.Tous les membres de la bande commencent et terminent ensemble leurs intervalles de temps. 31

32 Ordonnancement(6) Ordonnancement par bande 32

33 33

34 Multi-ordinateurs Processeurs fortement couplés qui ne partagent pas de mémoire commune. Les processeurs communiquent par lenvoie de messages –Transmis sous la forme de paquets Également connu sous dautres noms: –Cluster –COW (clusters of workstations) 34

35 Différentes topologies (a) étoile (b) anneau (c) grille (d) double tore (e) cube (f) hypercube 35

36 Commutateur de paquets 36 P.S. Dans la « commutation par circuit », un chemin est dabord établi et ensuite la communication est ensuite plus rapide.

37 Utilisation de cartes dinterface Les cartes dinterface possède une mémoire afin de garantir un débit constant dans le réseau. Certaines possède même un processeur complet gérant la transmission, le multicast, etc. Carte dinterface CPU optionnel RAM du module dinterface 37

38 Difficultés dimplémentation Vitesse de transmission –Lexemple précédent nécessite 3 copies de chaque message –5 copies sont nécessaire si la carte dinterface est mappé dans lespace noyau 38

39 Difficultés dimplémentation Carte dinterface dans lespace utilisateur pour réduite le temps de communication Problèmes lorsquil y a plusieurs processus désirant utiliser la carte –Que se passe-t-il lorsquun processus attend un message et quil est remplacé par un autre. –S ynchronisation: mais les mutex sont conçus pour les processus coopératifs –Ne fonctionne bien que lorsquil ny a quun seul processus utilisateur par processeur. 39

40 Autre problème Le SE peux aussi avoir besoin du réseau –Par exemple pour accéder au système de fichier dun noeud distant Il nest pas souhaitable que le noyau partage la carte dinterface avec les processus usagers Solution: deux cartes dinterface distinctes 40

41 Logiciels de communication au niveau utilisateur Passage de messages 2 méthodes: –Appels systèmes permettant denvoyer et de recevoir des messages Envoyer(adresse, message) Recevoir(adresse,&message) Ladresse doit identifier la machine et le processus –On fait passer la communication distante pour un appel de procédure standard. Remote procedure call (RPC) 41

42 Appels bloquants et non bloquants (a)Appels systèmes bloquants Synchrone (b)Appels systèmes non bloquants asynchrone 42

43 Remote Procedure Call (1) Les étapes dun RPC Le programme client est lié à une bibiothèque (stub client) qui représente la procérure du serveur dans lespace dadressage du client. Idem pour le programme serveur 43

44 Remote Procedure Call (2) Limitations On ne peut pas passer de pointeurs en paramètre –Cela na pas de sens Fonctionne mal avec les langages faiblement typés –Comment déterminer la taille dun tableau en C? Le type des paramètre peut être difficile à déterminer –Ex. printf On ne peut pas utiliser de variable globale 44

45 Mémoire partagée distribuée (1) Plusieurs couches où il est possible dimplémenter la mémoire partagée a)Matériel (multiprocesseurs) b)Système dexploitation c)Niveau utilisateur 45

46 Mémoire partagée distribuée (2) (a) Pages distribuées sur 4 machines ( b) Le CPU 0 lit la page 10 La page est transféré (c) La page 10 est en lecture seule et on utilise la duplication de pages 46

47 Mémoire partagée distribuée (3) Des pages de trop grande taille peuvent conduire au problème du faux partage 47

48 Ordonnancement Sur un multi-ordinateur chaque ordinateur possède son propre SE ainsi que sa propre table des processus Léquilibrage de la charge est plus compliqué que pour les multiprocesseurs Plusieurs algorithme dordonnancement existent. 48

49 Équilibrage de la charge (1) Algorithme 1: Lorsquun processus est créé, si la charge du processeur est trop importante il recherche un autre processeur où assigner le nouveau processus Ajoute une charge de travail à un processeur déjà très occupé 49

50 Équilibrage de la charge (2) Algorithme 2: Lorsquun processus se termine, si le processeur na plus de travail alors il en demande à dautres processeurs. 50


Télécharger ppt "Systèmes multiprocesseurs Système dexploitation Chapitre 8 Andrew Tanenbaum 1."

Présentations similaires


Annonces Google