Syst - PowerPoint PPT Presentation

About This Presentation
Title:

Syst

Description:

Syst mes multiprocesseurs Syst me d exploitation Chapitre 8 Andrew Tanenbaum * – PowerPoint PPT presentation

Number of Views:153
Avg rating:3.0/5.0
Slides: 52
Provided by: SteveA271
Category:
Tags: cluster | serveur | syst

less

Transcript and Presenter's Notes

Title: Syst


1
Systèmes multiprocesseursSystème dexploitation
Chapitre 8Andrew Tanenbaum
2
Rappels sur les systèmes dexploitation
  • Agit comme interface (Machine virtuelle)
  • Gère les ressources
  • Gestion des processus et des threads
  • Gestion de la mémoire
  • Gestion des fichiers
  • Gestion des E/S

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 (fichiers ouverts,
    priorité, etc.)

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

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

6
Les threads (1)
  • Chaque processus possède un ou plusieurs threads
    (fils dexécution)
  • Deux threads dun même processus partagent 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
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

9
Les priorités sous Windows
32 niveaux de priorité
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.

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)

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

14
La pagination (2)
  • La relation entre les adresses virtuelles et
    physiques est indiquée dans la table des pages
  • Par exemple, 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)

15
La pagination (3)
  • Par exemple,
  • Ladresse virtuelle 0 est transformée en adresse
    physique 819224096
  • Ladresse virtuelle 819224096 est transformée
    en adresse physique 2457664096
  • Ladresse virtuelle 205005409620 est
    transformée en adresse physique 123082409620

16
La pagination (4)
  • Sur certains systèmes Unix on peut obtenir la
    taille des pages à laide de la commande
    pagesize
  • Sur linux getconf PAGESIZE
  • Sur dim-linuxmpi la taille des page est de 4Ko
  • Sur Mac OS X la taille des pages est de 4Ko
  • Sur Solaris la taille des pages est 8K

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

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

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

20
SE pour multiprocesseurs(4)
Bus
  • 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

21
SE pour multiprocesseurs(5)
Bus
  • 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

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

old x if (old 0) x1 return old
?
tsl x
23
Synchronisation des MPs (1)
  • Solutions matérielles
  • Verouiller le bus
  • Verouiller une adresse mémoire

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

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

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
    de la liste des processus en attente
  • Dans dautres cas un choix existe
  • Boucler gaspille du temps processeur
  • Changer de thread aussi
  • Choix difficile

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?

28
Ordonnancement(2)
  • Temps partagé
  • Utilisation dune seule structure de données
    (niveaux de priorités)
  • Équilibre automatiquement la charge des
    processeurs
  • Une structure de données unique limite le nombre
    de processeurs
  • Inconvénient de la multiprogrammation les
    changements de contextes.

29
Ordonnancement(2)
  • Temps partagé
  • 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

30
Ordonnancement(3)
  • Espace partagé (pas de multiprogrammation)
  • 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.
  • Cela revient à partitionner les processeurs. Les
    partitions évoluent avec lexécution des
    processus.

31
Ordonnancement(4)
  • Avec multiprogrammation
  • Problème de communication entre deux threads
  • Deux threads A0 et A1 dun même processus A
    veulent communiquer
  • Les threads A0 et B0 sexécutent sur le
    processeur 0
  • Les threads A1 et B1 sexécutent sur le
    processeur 1
  • Le délai de communication peut être inacceptable

32
Ordonnancement(5)
  • Une solution ordonnancement par bande
  • Les groupes de threads liés sont ordonnancés
    comme une unité (bande)
  • Lordonnancement sur tous les processeurs doit
    donc être synchrone
  • Tous les membres dune bande sexécutent
    simultanément sur différents processeurs en temps
    partagé.
  • Tous les membres de la bande commencent et
    terminent ensemble leurs intervalles de temps.

33
Ordonnancement(6)
  • Ordonnancement par bande

34
(No Transcript)
35
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)

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

37
Commutateur de paquets
P.S. Dans la  commutation par circuit , un
chemin est dabord établi et ensuite la
communication est ensuite plus rapide.
38
Utilisation de cartes dinterface
CPU optionnel
Carte dinterface
RAM du module 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.

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

40
Difficultés dimplémentation
  • Carte d interface dans lespace utilisateur pour
    réduire 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.
  • Synchronisation
  • mais les mutex sont conçus pour les processus
    coopératifs
  • Ne fonctionne bien que lorsquil ny a quun seul
    processus utilisateur par processeur.

41
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

42
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)

43
Appels bloquants et non bloquants
  • Appels systèmes bloquants
  • Synchrone
  • Appels systèmes non bloquants
  • asynchrone

44
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

45
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
  • Conclusion On doit prendre des précautions. Par
    exemple, on restreint le type des paramètres

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

47
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

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

49
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.

50
É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é

51
Équilibrage de la charge (2)
  • Algorithme 2 Lorsquun processus se termine, si
    le processeur na plus de travail alors il en
    demande à dautres processeurs.
Write a Comment
User Comments (0)
About PowerShow.com