Vous êtes sur la page 1sur 191

Filière Ingénieur SICOM,

S4, FST, Fès

Pr. Mohammed Talibi Alaoui


AU:2020/2021
Pr. M. Alaoui Talibi 2
 Introduction au parallélisme
 Classification des architectures parallèles.
 Programmation parallèle impérative :
 Notionsde base
 Programmation par variables partagées
 Stratégiesde conception d'algorithmes parallèles.
 Exemples de langages.
 Mesures de performance.
 Programmation parallèle avec mémoire distribuée
et MPI.

Pr. M. Alaoui Talibi 3


Pr. M. Alaoui Talibi 4
 MOTIVATIONS

Pr. M. Alaoui Talibi 5


 Loi de Moore :

Pr. M. Alaoui Talibi 6


 La loi de Moore concerne l’évolution de la
puissance des ordinateurs.

 Selon cette loi :


Le nombre de transistors, c’est-à-dire l’élément
principal qui compose les processeurs des
ordinateurs, double tous les deux ans.

Et parallèlement double également la puissance


des appareils.

Pr. M. Alaoui Talibi 7


 Moore fixa ensuite le cycle non plus sur 2 ans mais
dix- huit mois.

 Donc selon Moore :

Tous les 18 mois, il y a doublement du nombre de


transistors, rendant les ordinateurs plus rapide.

Vous l’avez compris, cette loi porte le nom de celui


qui l’a énoncée en 1965, le cofondateur de la société
Intel, Gordon Moore.
Pr. M. Alaoui Talibi 8
 Et Moore avait raison.

 Pourpreuve en 2014, les premières puces gravées


en 14 nanomètres (nm) – environ 5.000 fois plus fin
qu’un cheveu – sont arrivées avec un an de retard.

 Et
celles de 10 nanomètres n’étaient pas prêtes
avant 2017.

Pr. M. Alaoui Talibi 9


 Les 7 nanomètres pas avant 2020.

 Orcomme l’avait dit Moore, à cette taille, certains


éléments du transistor ne sont désormais
constitués que de quelques atomes.

Nous touchons aux limites de la physique.

Pr. M. Alaoui Talibi 10


 Lerecours au parallélisme pour accélérer des calculs
n’est pas une idée récente.

 Cependant, les contraintes matérielles imposèrent


l’utilisation d’un unique processeur.

 L’évolutiontechnologique des années 80 a permis de


réduire les couts de production des divers composants
d’un calculateur,

 Enmême temps qu’elle en augmentait les performances


à la fois en temps de calcul, en volume et en fiabilité.
Pr. M. Alaoui Talibi 11
 Leralentissement du gain en vitesse des circuits
électroniques ( entre 1976 et 1986 ) a conduit à la
recherche de nouvelles techniques pour gagner de la
puissance soit :

- au niveau algorithmique

- soit au niveau architectural

Pr. M. Alaoui Talibi 12


 Leconcept de parallélisme rompt avec l’approche
classique qui consiste à diminuer le temps de calcul
en effectuant plus vite chaque opération.

 Encalcul parallèle, le gain de temps provient de la


réalisation simultanée de plusieurs opérations.

 L’algorithmique
parallèle consiste à réduire la
complexité de certains problèmes en les rendant
parallèles.
Pr. M. Alaoui Talibi 13
 De plus, le niveau technologique atteint est tel
qu’il est maintenant possible de construire des
architectures multiprocesseurs et de les utiliser
efficacement :

Avec quelques processeurs pour des systèmes


généraux ( plusieurs dizaines )
OU
Beaucoup plus pour des systèmes spécialisées (
quelques milliers )

Pr. M. Alaoui Talibi 14


 Afin
d’atteindre cette objectif, les diverses
architectures parallèles ont poussé les algorithmiciens
à imposer de nouvelles contraintes à leurs modèles
pour les rendre plus proche de la réalité.

 Face aux demandes toujours croissantes en


puissance de calcul, le domaine du parallélisme
s’est considérablement développé depuis 1985.

Pr. M. Alaoui Talibi 15


 Généralement le parallélisme :
peut y être très spécialisé et transparent à
l’utilisateur.
ou bien, au contraire, nécessiter de gros efforts
pour être vraiment efficace.

Dans tous les cas, une connaissance profonde des


mécanismes élémentaires permettra de tirer le
meilleur parti des machines.

Pr. M. Alaoui Talibi 16


 La parallélisation d’une méthode requiert plusieurs
phases :

Tout d’abord, il est commode :

 de partir de diverses écritures de la méthode sous


forme algorithmique.
 puis d’en faire une étude théorique de complexité
pour bien saisir le parallélisme intrinséque.
 Après avoir choisi la (les) bonne version, on peut
examiner son implémentation, càd
Pr. M. Alaoui Talibi 17
 Lafaçon d’exécuter les instructions sur une machine
cible.

Cela pose en particulier les problèmes :


- de placement d’instructions,
- de circulation des données,
- d’utilisation efficace des communications, ..

Pr. M. Alaoui Talibi 18


 Pourparalléliser un algorithme, on commence par
partitionner le problème en sous-taches.

 Restealors à affecter les taches aux processeurs,


en respectant les contraintes de précédence ainsi
que les contraintes matérielles liées à l’architecture
de la machine.

 Ces dernières permettent de sélectionner, parmi


toutes les versions parallèles obtenues, celle qui
est la plus efficace pour l’ordinateur utilisé.
Pr. M. Alaoui Talibi 19
 En général, ces contraintes sont de deux types :

 Accès limité aux données

 Et problèmes de synchronisation des processus.

Pr. M. Alaoui Talibi 20


 Aujourd’hui, on divise l’évolution de l’informatique
en cinq générations déterminées par :

 un niveau technologique,
 par un mode d’exploitation et de traitements,
 par les langages utilisées
 et par les objets traités.

Pr. M. Alaoui Talibi 21


Du séquentiel au parallèle :

Pr. M. Alaoui Talibi 22


1938 : premier ordinateur électronique analogique

1945 : premier ordinateur électronique digital


ENIAC.

1950 :
 premier ordinateur avec programme enregistré
 Technologie mécanique ou électromécanique
 UAL séquentielle
 Langage binaire

Pr. M. Alaoui Talibi 23


 1954 : premier ordinateur à transistors TRADIC ( 800
transistors)

 Mémoire magnétique
 UAL évoluée
 Langage assembleur, puis fortran et Algol.
 Exécution par batch d’un seul programme

Pr. M. Alaoui Talibi 24


 Utilisationdes circuits intégrés
 Compilateurs intelligents de langages de haut niveau.
 Multiprogrammation
 Processeurs vectoriels
 Temps partagé et multiprogrammation
 Machines virtuelles
 Du traitement des données à l’extraction de
l’information en renvoyant une série de processus.

Pr. M. Alaoui Talibi 25


 Circuit à haute intégration (LSI)
 Mémoire de grande taille
 Langages permettant le traitement vectoriel
 UAL parallèle et pipeline
 Plusieurs processeurs
 Du traitement de l’information au traitement des
connaissances (systèmes experts).

Pr. M. Alaoui Talibi 26


 Circuits spécialisés à très haute intégration (VLSI)

 Multiprocesseurs parallèles

 Parallélisme massif

 Du traitement des connaissances au traitement de


l’intelligence.

Pr. M. Alaoui Talibi 27


 Au plus haut niveau, le traitement parallèle permet
l’exécution simultanée de plusieurs programmes
indépendants.

 Il utilise la multiprogrammation, le temps partagée


et le multitraitement: Mode de fonctionnement d'un ordinateur
selon lequel plusieurs processeurs ayant accès à des mémoires communes
peuvent opérer en parallèle sur des programmes différents.

 Il s’emploie dans des systèmes de grande taille


(mainframe) et se traite au niveau du système
d’exploitation.

Pr. M. Alaoui Talibi 28


 L’introduction
du parallélisme à l’intérieur d’un
programme peut se faire au niveau des procédures.

 Ilnécessite la décomposition du programme en


taches, la recherche des relations de dépendance
entre ces taches et la programmation en parallèle
des taches indépendantes.

Pr. M. Alaoui Talibi 29


 Il peut se traiter au niveau du système d’exploitation :

 parallélisation automatique de programmes,


 compilateurs intelligents

 ou au niveau algorithmique.

Pr. M. Alaoui Talibi 30


 Le traitement parallèle d’instructions indépendantes
utilise la technique de vectorisation.

 Ilse traite au niveau du système (vectoriseur), du


langage de programmation (Fortran vectoriel) ou au
niveau algorithmique.

Pr. M. Alaoui Talibi 31


 Latechnique du pipeline permet l’introduction du
parallélisme au niveau d’une instruction. Il s’agit de
décomposer une instruction en plusieurs étapes
successives et de faire exécuter, en même temps,
des étapes différentes de plusieurs instructions.

 Ce
type de parallélisme est traité au niveau du
matériel.

 Lesgrands ordinateurs font appel maintenant tous


à ces techniques.
Pr. M. Alaoui Talibi 32
Le parallélisme dans les
monoprocesseurs

Pr. M. Alaoui Talibi 33


 Les architectures monoprocesseurs ont en général
une structure de base commune :

 Une mémoire principale


 Un processeur centralisé
 Un ensemble de communications

Les relations entre ces 3 unités peuvent être réalisées


de manières diverses, par exemple par l’intermédiaire
d’un bus commun (VAX -11/780) par exemple.
Pr. M. Alaoui Talibi 34
 L’introduction du parallélisme peut se faire de
plusieurs façons :

 UAL parallèle : Plusieurs unités fonctionnelles


 par exemple Fonctionnement simultané des trois
unités
 Multiprogrammation et temps partagé

Pr. M. Alaoui Talibi 35


Exemple :
Les diverses fonctions d’une UAL sont distribuées à des
unités indépendantes opérant en parallèle.

Les CDC 6600 possède 10 unités fonctionnelles (addition,


soustraction, décalage,..) dans son UAL.

L’IBM 360/91 a deux unités arithmétiques parallèles :


l’une pour les opérations en virgule fixe,
l’autre pour les opérations en virgule flottante,
divisée en deux unités fonctionnelles (additions et
multiplications).
Pr. M. Alaoui Talibi 36
 LesUAL possèdent maintenant des additionneurs
parallèles à anticipation de retenue et de multiplieurs
intégrés.

 Leur traitement est pipeline

Pr. M. Alaoui Talibi 37


 L’utilisation
des multiprocesseurs conduit à une
programmation effective de divers processeurs.

 Un ordinateur est donc parallèle dés qu’il dispose


de plus d’un processeur pour effectuer le
traitement d’un seul programme.

 Le Cray 2 possède 4 processeurs très puissants.

Pr. M. Alaoui Talibi 38


 Problème d’optimisation :

Une très grande partie des programmes actuels


n’utilise pas la puissance des multi-cœurs.

Limite théorique : loi d’Amdahl

Pr. M. Alaoui Talibi 39


Soit f la fraction intrinsèquement séquentielle (non
parallèlisable) de l’algorithme à paralléliser.

Alors l’accèleration maximale sur p processeurs de


l’algorithme parallèle correspondant est :

S(n,p)≤1/(f+(1-f)/p)

Pr. M. Alaoui Talibi 40


 Exemple :

20% d’un algorithme n’est pas parallélisable.


L’accéleration est donc limité à 5.

50% d’un algorithme n’est pas parallélisable.


L’accéleration est donc limité à 2.

Pr. M. Alaoui Talibi 41


 En pratique, le (sur)cout dû au parallélisme est dû
aux parties séquentielles, mais aussi aux aspects
suivants :

 Démarrage et terminaison des taches


 Synchronisation
 Communications
 Surcouts logiciels dus aux compilateurs,
bibliothèques, outils, systèmes d’exploitation…

Pr. M. Alaoui Talibi 42


Pr. M. Alaoui Talibi 43
Questions :

 Comment construire et analyser des algorithmes et


des programmes pour des machines si différentes.

 Peut-on concevoir une méthode de programmation


identique ?

 Existe-ildes outils de parallélisation automatique et


quels sont leur principes ?

Pr. M. Alaoui Talibi 44


 Certains
problèmes sont ils intrinsèquement
séquentiels ?

 Leparallélisme massif a-t-il un avenir et peut-il


être utilisé efficacement?

Voila quelques unes des questions auxquelles nous


nous proposons d’apporter des Réponses.

Pr. M. Alaoui Talibi 45


Paradigmes de base de la
programmation concurrente

Pr. M. Alaoui Talibi 46


 Permettre d'effectuer plusieurs traitements, spécifiés
distinctement les uns des autres,« en même temps ».

 En général, dans la spécification d'un traitement,


beaucoup de temps est passé à « attendre ».

 Idée : exploiter ces temps d'attente pour réaliser


d'autres traitements, en exécutant en concurrence
plusieurs traitements.

Pr. M. Alaoui Talibi 47


 Peut simplifier l'écriture de certains programmes
(dissocier différentes activités).

 La programmation concurrente permet à des


processus multiples, de pouvoir partager des
ressources (structures de données, ressources
matériels, CPU, mémoire, dispositifs I/O).

Pr. M. Alaoui Talibi 48


 Utilisation des temps d’attente de saisie :

Pr. M. Alaoui Talibi 49


 Programme concurrent :

programme qui contient plusieurs processus (ou


threads) qui coopèrent.
 coopération Communication, échange
d’information

 Deux principales façons de communiquer :


 par l’intermédiaire de variables partagées.
 par l’échange de messages et de signaux (par ex.
canaux de communications).
Pr. M. Alaoui Talibi 50
 Note: on considère un thread comme étant un
processus léger (lightweight process)

Pr. M. Alaoui Talibi 51


 Processus vs thread :

 Processus :

- Un processus représente un programme en cours


d’exécution.

– Un processus possède un espace mémoire privé,


indépendant de celui des autres processus.

– Parce qu’ils ne partagent aucun espace mémoire


commun, deux processus qui veulent collaborer doivent le
faire en utilisant un mécanisme d’échange de messages .

Pr. M. Alaoui Talibi 52


– Le contexte d’un processus est lourd : code,
registres (dont SP, FP et IP1)

- Créer et activer un processus est donc (très!)


coûteux!

Pr. M. Alaoui Talibi 53


 Thread :
– Un thread représente une fonction en cours
d’exécution.

– Un processus peut contenir un ou plusieurs threads.

- Ces threads partagent alors la mémoire ainsi que


diverses autres ressources.

- Parce qu’ils partagent un même espace mémoire,


deux threads qui veulent collaborer peuvent le
faire par l’intermédiaire de variables partagées.
Pr. M. Alaoui Talibi 54
- Le contexte d’un thread est léger.

- Créer et activer un thread est donc moins coûteux


que dans le cas d’un processus!

Pr. M. Alaoui Talibi 55


 Interaction entre processus : communication

La communication est un échange de données entre processus,

• Soit par messages explicites (convient plus aux systèmes répartis


qu'aux systèmes à mémoire partagée).

Deux manières d'envoyer un message :

Synchrone : permet autant la synchronisation que la communication.

Le Processus Emetteur doit attendre que son message soit reçu;


Et il est possible qu'un processus Récepteur doive attendre qu'un
message soit envoyé.
Pr. M. Alaoui Talibi 56
Asynchrone :

L'émetteur poursuit son exécution après l'envoi du


message.

• soit à travers des variables partagées (visibles à


chaque processus; convient aux systèmes à mémoire
commune);

• ou bien par RPC (Remote Procedure Call).

Pr. M. Alaoui Talibi 57


 RPC (remote procedure call) est :

 Un protocole réseau

 Ce protocole est utilisé dans le modèle client-serveur

 Pour assurer la communication entre le client, le serveur et


d’éventuels intermédiaires.

 Permettant de faire des appels de procédures sur


un ordinateur distant à l'aide d'un serveur d’applications.

Pr. M. Alaoui Talibi 58


 Interaction entre processus : Synchronisation

La synchronisation, implique l'échange d'information de


contrôle entre processus.

Exemples :

Un processus dépend des données produites par un autre;


Si les données ne sont pas disponibles, le processus doit
attendre jusqu'à ce qu'elles soient disponibles.

Un processus peut changer son état à "Blocked"(Wait(Pi)),


et peut signaler aux Processus "Blocked" qu'ils peuvent
continuer (signal(Pi)).
Pr. M. Alaoui Talibi 59
 Entrelacement
de threads : C'est un dispositif technique
commode pour étudier l'exécution concurrente de
processus.

 Définition:
Un entrelacement de deux séquences s et t est une
séquence U construite à partir des événements de s
et de t, de telle sorte que les événements de s
préservent leur ordre dans U ainsi que ceux de t.

Pr. M. Alaoui Talibi 60


 Exemple :

Si a et z sont des événements concurrents,


On considère le cas ou a se produit avant z ou bien
z se produit avant a, mais on ignore le cas ou a et z
se produisent en même temps.

Pr. M. Alaoui Talibi 61


 Concurrence comme entrelacement : Exemple
Soient deux Processus :

A:a;b
Z:x;y;z

L'exécution concurrente de A et Z, peut être étudiée en considérant les


entrelacements possibles (10):
 a b x y z
 a x b y z
 .....
 x y za b

L'entrelacement préserve l'ordre relatif dans le thread:

a doit se produire avant b, mais x y z étant dans un autre thread peuvent se produire
dans n'importe quel ordre relativement à a et b. Il en est de même pour x, y et z...

Pr. M. Alaoui Talibi 62


Une autre façon de classifier
les paradigmes de
programmation parallèle

Pr. M. Alaoui Talibi 63


 Une autre classification intéressante des modèles
de programmation parallèle, qui peut aussi aider à
mieux comprendre certaines notions importantes
de conception d’algorithmes parallèles, est celui
qui distingue entre :

 parallélisme de données,
 parallélisme de contrôle
 et parallélisme de flux.

Pr. M. Alaoui Talibi 64


 Correspond à l’application d’une même opération
sur tous les éléments d’une collection des données
homogènes, (de même type).

 Onparle dans ce cas de structures des données


régulières.

 Paropposition aux structures de données


dynamiques basées sur l’utilisation des pointeurs (
et donnant lieu à des arbres ou des graphes : donc
des structures de formes non régulières ).
Pr. M. Alaoui Talibi 65
 L’ensemble du travail effectué consiste en une
série de phases de calcul.

 Chaque phase est une application d’une opération


sur une collection.

 Et
ou les différentes phases peuvent évidemment
manipuler des collections différentes.

Pr. M. Alaoui Talibi 66


 La forme la plus simple de parallélisme de données
survient lorsque les calculs sur les différents
éléments sont complètement indépendants les uns
des autres.

L’ordre d’exécution n’a aucune importance et, donc,


que tous les calculs peuvent se faire en parallèle.

Pr. M. Alaoui Talibi 67


 Soit
l’opération consistant à multiplier chacun des
éléments d’une collection par l’entier 2.

 L’applicationd’une telle opération sur les éléments


d’un tableau d’entiers a pour obtenir un tableau b
pourrait alors s’écrire comme suit :

int a[n], b[n]


pour i varie de 1 … n
b[n]=2*a[n]

Pr. M. Alaoui Talibi 68


Ici, c’est le compilateur qui s’occupe de générer le
code qui permettra l’exécution en parallèle des
diverses multiplications et affectations.

C’est aussi le compilateur qui s’occupera de


distribuer les données entre les processeurs, en
fonction des directives spécifiés par le programmeur.

Pr. M. Alaoui Talibi 69


 Lafigure suivante illustre les deux principaux
types de décomposition et distribution d’un
tableau à deux dimensions 8*8 sur 4 processeurs, à
savoir distribution par bloc ou distribution
cyclique (ou des combinaisons entre les deux
modes).

Pr. M. Alaoui Talibi 70


Pr. M. Alaoui Talibi 71
 Consiste :

 à décomposer le travail à effectuer en


différentes taches,

 à identifier celles qui peuvent s’exécuter en


parallèle,

 puis finalement à ordonner, à l’aide de


structures de contrôle appropriés, l’exécution
de ces diverses taches.

Pr. M. Alaoui Talibi 72


 Correspond au principe du travail à la chaine.

 Uneséquence d’opérations doit être appliquées en


cascade à une série de données similaires.

 Lesopérations à réaliser sont associées à des


éléments de calculs chainées de façon à ce que
l’entrée d’une opération soit la sortie de
l’opération précédente.
Pr. M. Alaoui Talibi 73
 Leparallélisme de flux n’est donc rien d’autre
qu’un fonctionnement en mode pipeline des
éléments du calcul.

Pr. M. Alaoui Talibi 74


Systèmes parallèles et
distribués

Pr. M. Alaoui Talibi 75


 Définition :

 On dit que deux processus s'exécutent en parallèle


lorsqu'ils s'exécutent sur des CPU différents.

 Ils sont concurrents lorsqu'ils concourent pour


l'obtention d'une même ressource CPU.
Leur exécution est alors entrelacée. Chacun
dispose à son tour d'un quantum de temps calcul.

Pr. M. Alaoui Talibi 76


 Découper un gros problème en de nombreux petits
problèmes :

- Super calculateurs pour le calcul scientifique


- Stations multiprocesseurs
- Grilles :
 SETI@Home
 folding@home
 défi cryptographiques (distributed.net)
 ....

Pr. M. Alaoui Talibi 77


A l’intérieur du processeur :

 instructions en parallèle (pipeline)


 multi-cœurs

 Multi-processeurs

Pr. M. Alaoui Talibi 78


Le parallélisme au
sein du processeur :

Pr. M. Alaoui Talibi 79


 L’exécutiond’une instruction (multiplication par ex.)
nécessite plusieurs cycles d’horloge).

⇒ On exécute en parallèle les instructions indépenda-


ntes pour gagner du temps.

 Un processeur possède plusieurs Unités Arithmétique


et Logiques.

 Les
instructions peuvent être réarrangées afin
d’améliorer le rendement (out of order execution).
Pr. M. Alaoui Talibi 80
 Cœur :
Unité exécutant les instructions dans un processeur
Multi-cœur : plusieurs unités exécutant des
instructions en parallèle.

 Multi-cœur(tous sur un même circuit) ≠multi-


processeur (circuits différents).

Pr. M. Alaoui Talibi 81


 Une très grande partie des processeurs actuels sont
multi-cœurs (généralement de 2 à 8 cœurs).

 Encore plus de cœurs dans l’avenir :

 Prototype tera-scale (80 cœurs) d’Intel.

 Processeurs multi-cœurs pour les appareils mobiles


(smartphones, tablettes).

Pr. M. Alaoui Talibi 82


Le parallélisme multiprocesseurs :

Pr. M. Alaoui Talibi 83


 Un concept ancien :

 premier ordinateur multi-processeur en 1962,

 premier ordinateur multi-processeur parallèle en


1969.

 Similaire au multi-cœur à l’exception de la


mémoire cache qui n’est pas partagée.

Pr. M. Alaoui Talibi 84


 Supercalculateurs :
- Le plus puissant : Computer K
- 88,128 processeurs 8-cœurs (2GHz)

- Le deuxième : Tianhe-1A
- 14 336 processeurs
- 7 168 processeurs graphiques

Pr. M. Alaoui Talibi 85


Les systèmes distribués :

Pr. M. Alaoui Talibi 86


 Ensemble de processeurs autonomes.

 Qui ne se partagent pas de mémoire primaire.

 Maisqui coopèrent par envoi de messages à travers


un réseau de communication.

Pr. M. Alaoui Talibi 87


 Mise en commun d'un grand nombre de ressources à
faible coûts :
– Bon rapport performance / prix.
– Puissance globale virtuellement illimitée.
- Supérieure à celle des gros calculateurs

 Disponibilité et flexibilité :

– Un élément peut tomber en panne sans bloquer tout


le système.
– Flexibilité : Distribution de la charge (permet
d’exécuter un travail sur la machine la plus disponible.).
Pr. M. Alaoui Talibi 88
 Distribution naturelle de certaines applications :
- distribution géographique d’agences bancaires.

 Partage de ressources coûteuses entre plusieurs


utilisateurs/machines.
– Accès à distance à une ressource indisponible en
local.
– Accès aux mêmes ressources depuis tous les endroits
du système.

Pr. M. Alaoui Talibi 89


 Problèmes inhérents aux communications
– Si pas de mémoire partagée, communications explicites

– Lenteur, saturation, perte de messages.

 Partage et distribution de données impose mécanismes


complexes :
– Synchronisation.
– Sécurité.

Pr. M. Alaoui Talibi 90


Internet :

Contient de nombreux sous-systèmes selon le


protocole considéré :

– Web (http)

– Bittorrent (peer-to-peer) : permet à plusieurs ordinateurs


de communiquer entre eux via un réseau.

Pr. M. Alaoui Talibi 91


Seti@home !
– Les machines de tout le monde :

 Puissance virtuellement illimitée


- N Gflop/s par machine, des millions des
machines.

 Calculsindépendants
 Modèle plus distribué que parallèle

Pr. M. Alaoui Talibi 92


 Cray Jaguar à ORNL :

- 20 000 noeuds à 2 opterons six-core


Assemblés par réseau Cray spécifique

- Presqu'un Cluster, mais réseau trop spécifique

- Plus d'1 PetaFlop/s

Pr. M. Alaoui Talibi 93


 Tianhe en Chine :

- 7000 nœuds à 2 processeurs et 2 GPUs.


- Un cluster avec des accélérateurs.
- 2 Petaflop/s.

Pr. M. Alaoui Talibi 94


 Architecture matérielle et/ou logicielle
- Un système parallèle peut être distribué
Si assemblage de machines à mémoires
indépendantes
- ou non
Si une seule grosse machine parallèle.

 Application cible
– Applications parallèles dans les systèmes
parallèles :
Communication, synchronisation, …
Pr. M. Alaoui Talibi 95
Classification des
Architectures parallèles

Pr. M. Alaoui Talibi 96


 Dans ce chapitre, nous passons en revue les divers
concepts sous-jacents aux architectures parallèles.
 La distinction entre les architectures synchrones et
asynchrones conduit à une classification qui va :

 Des pipelines,
 Des processeurs vectoriels,
 Des machines SIMD,
 Des réseaux systoliques

 Aux machines MIMD à mémoire partagée et

 Aux réseaux de processeurs.


Pr. M. Alaoui Talibi 97
 Réseauxsystoliques :
Composés des cellules élémentaires et opérant
de manière synchrone :

à l’instant t, elles reçoivent des variables en


provenance des cellules voisines en entrée.

et après traitement sur les variables, elles


les envoient à l’instant t+1 aux cellules
voisines en sortie.
Pr. M. Alaoui Talibi 98
 Nous définissons un modèle théorique important
pour les études de complexité algorithmique :

 Les PRAM

 Nous présentons enfin, les mesures de performances


des ordinateurs parallèles.

Pr. M. Alaoui Talibi 99


1. Présentation informelle des ordinateurs parallèles:

La notion de parallélismes recouvre de nombreux


concepts, allant :

- de la manipulation des bits


à
- Un niveau plus grossier (découpage d’un programme
en procédures complexes indépendantes ).

Pr. M. Alaoui Talibi 100


 Plusieursclassifications ont été proposées dans la
littérature. La plus populaire celle de Flynn.

 Elles
est basée sur le type d’organisation des flots
de données et des flots d’instructions.

Pr. M. Alaoui Talibi 101


 Cependant, cette classification, ne permet pas de
tenir compte de beaucoup de facteurs tels que :

- Le mode de fonctionnement des processeurs,

- L’organisation de la mémoire ou encore

- La granularité des processeurs càd la taille des


éléments logiques de base des processeurs.

Pr. M. Alaoui Talibi 102


 Partant des réalisations concrètes, on peut
dégager trois grandes classes de machines
parallèles :

 Les machines généralistes à mémoire partagée.

 Les réseaux de processeurs asynchrones à mémoire


Distribuée.

 Les machines distribuées synchrones massivement


parallèles (machines généralistes ou spécialisées).
Pr. M. Alaoui Talibi 103
Problèmes :

 L’augmentation du nombre des processeurs modifie


énormément la structure de base de l’ordinateur.

 Les problèmes d’accès mémoire deviennent cruciaux


pour pouvoir acheminer des données au rythme du
traitement des processeurs.

 De même, les problèmes de communication entre


processeurs sont importants.

Pr. M. Alaoui Talibi 104


 Denombreuses solutions ont été proposées à ces
problèmes et plusieurs architectures ont vu le jour.

 La plus simple, et la plus utilisée est celle de Flynn.

 Celle-ci,
a pour critère de sélection :
le mode de contrôle des suites d’opérations
élémentaires effectuées par les différents processeurs.

 Leprocessus essentiel dans un ordinateur est


l’exécution d’une suite d’instructions sur un
ensemble de données. Pr. M. Alaoui Talibi 105
 En général, les ordinateurs peuvent être classifiées
selon la multiplicité des flots d’instructions et de
données disponibles matériellement.

 En conservant les initiales anglaises consacrées par


l’usage, on obtient essentiellement les architectures
suivantes :
- SIMD : un seul flot d’instructions, plusieurs flots de
données.
- SPMD : chaque processeur dispose du même
programme.
Pr. M. Alaoui Talibi 106
 MISD : plusieurs instructions successives traitent la
même donnée.
 MIMD : plusieurs flots d’instructions et de données.

 Un flot d’instructions est une suite d’instructions


issues d’une partie contrôle en direction d’un ou
plusieurs processeurs.

 Un flot de données est une suite de données venant


d’une zone mémoire en direction d’un processeur ou
venant d’un processeur en direction d’une zone
mémoire.
Pr. M. Alaoui Talibi 107
 Principe de l’ordinateur séquentiel :
Les instructions sont exécutées séquentiellement
mais peuvent être pipelinées.

Figure.
Architecture
synchrone

Pr. M. Alaoui Talibi 108


Architectures pipeline et vectorielle :
Le principe des architectures pipelines est le suivant :

 Ondivise l’opération à effectuer en étapes de


durées égales qui s’exécutent successivement.

 Lesentrées d’une étape sont constituées par les


sorties de l’étape précédente.

 Lepipeline est une unité matérielle qui reproduit


cette division.
Pr. M. Alaoui Talibi 109
 Ilest donc composé d’étages séparés par des
registres nécessaires au stockage des données
intermédiaires.

 Au sens de la classification de Flynn, ces architectures


révèlent du mode MISD.

 Eneffet, une même donnée est traitée par un flot


multiple d’instructions élémentaires successives.

Pr. M. Alaoui Talibi 110


Architecture vectoriel :
 Un vecteur est un ensemble ordonnée de n éléments.

 Chaque élément est un scalaire, nombre réel


flottant, entier, booléen ou caractère.

 Un processeur vectoriel est une unité permettant


de traiter des vecteurs.

 Ilest constitué de registres de stockage et d’une


ou plusieurs unités pipelines.

Pr. M. Alaoui Talibi 111


Architecture SIMD :
 Plusieurs unités de traitement sont supervisées par
la même unité de contrôle.

 Toutes les unités de traitement reçoivent la même


instruction ( ou le même programme, auquel cas
on parle d’une structure SPMD ) diffusée par
l’unité de contrôle,

Mais opèrent sur des ensembles de données


distincts, provenant de flots de données distincts.
Pr. M. Alaoui Talibi 112
Figure : Structure SIMD

Pr. M. Alaoui Talibi 113


 Chaque unité de traitement exécutant la même
instruction au même instant, on obtient un
fonctionnement synchrone des processeurs.

 la mémoire partagée peut être subdivisée en


plusieurs modules.

 Dans ce cas, l’accès des unités de traitement aux


différents modules se fait par un réseau
d’interconnexion que nous étudierons au chapitre
suivant.
Pr. M. Alaoui Talibi 114
 Un calculateur SIMD peut être considéré comme un
monoprocesseur exécutant des instructions sur des
tranches de plusieurs éléments.

 Ilest donc particulièrement bien adapté aux


traitements d’opérations vectorielles.

Pr. M. Alaoui Talibi 115


 Par exemple, les ordinateurs :

- ILLIAC IV
- BSP
- STARAN
- MPP
- Et plus récemment les DAP de AMT

Par contre, OPSILA ou les hypercubes FPS de la série T sont


des machines SIMD/SPMD.

 Notons que la plupart des machines actuelles MIMD peuvent


s’utiliser en mode SPMD.

Pr. M. Alaoui Talibi 116


 Parallélisme partagé :

Les premiers ordinateurs parallèles à avoir


effectivement connu un succès industriel sont les
machines à mémoire partagée.

Considérons p processeurs vectoriels reliés à une grande


Mémoire commune.

Le fonctionnement des processeurs s’effectue en mode


MIMD.
Pr. M. Alaoui Talibi 117
 Càdchaque processeur peut évoluer indépendamment
des autres.

 Leséchanges d’informations entre les processeurs se


font par l’intermédiaire de la mémoire.

 Lesmachines appartenant à cette classe possèdent


un nombre relativement faible des processeurs (une
dizaine), mais chacun assez puissant.

 Ladiminution des temps d’exécution n’est pas le seul


but que les utilisateurs (constructeurs) recherchent.
Pr. M. Alaoui Talibi 118
 Ils voudraient aussi disposer de plus en plus de
mémoire pour pouvoir traiter des problèmes
toujours plus grands.

 Or, l’accès à des mémoires de grandes dimensions


est lent.

 Comme la vitesse de base des unités de traitement


augmente sans cesse, il faut organiser les mémoires
de telle sorte que l’accès soit rapide.

Pr. M. Alaoui Talibi 119


Figure. Structure MIMD
Pr. M. Alaoui Talibi 120
 La grande mémoire est divisée en modules distincts
possédant chacun son propre canal d’entrées-sorties
(les bancs mémoire).

 Ces bancs sont reliées aux processeurs par


l’intermédiaire de bus ou d’un réseau
d’interconnexion.

 la différence entre le SIMD et le MIMD, est que pour


le dernier, chaque processeur possède sa propre
unité de contrôle.
Pr. M. Alaoui Talibi 121
 Lesprocesseurs ont donc un fonctionnement
indépendant : en particulier asynchrone, et
exécutant des programmes différents.

Pr. M. Alaoui Talibi 122


 Architectures MIMD distribuées :

Les difficultés d’accès à la mémoire limitent le


nombre de processeurs :

au-delà de quelques dizaines


de processeurs, les performances du réseau
d’interconnexion se dégradent.

Pr. M. Alaoui Talibi 123


 Chaque processeur doit disposer d’une mémoire
locale à accès rapide et n’est connecté qu’a un
certain nombre de processeurs voisins.

 nous avons deux modèles :


1.
 Les processeurs travaillent en partageant des
données de la mémoire commune.
 Chaque processeur lit en mémoire les données dont
il a besoin, effectue son traitement, puis écris les
résultats en mémoire.
Pr. M. Alaoui Talibi 124
2.
 Les processeurs travaillent en échangeant des
messages : mémoire distribué

 Chaque processeur lit sur un ou plusieurs canaux de


communications les données dont il a besoin en
provenance d’autres processeurs, effectue son
traitement, puis transfère les résultats en direction
des processeurs qui les demandent.

Pr. M. Alaoui Talibi 125


 Cherchent à exploiter au maximum le parallélisme
d’un algorithme en s’affranchissant des contraintes
liées à l’ordre d’exécution des instructions.

 Le principe de base est d’autoriser l’exécution d’une


instruction dés que ses opérandes sont disponibles.

 Le début d’une instruction ne dépend alors que de la


disponibilité des données et non pas de sa position
dans le programme.

 Les réseaux systoliques peuvent être considérés


comme des machines à flots de données.
Exemple
Pr. M. Alaoui Talibi 126
 Explication
: L’exécution du programme est liée
aux contraintes de dépendance entre données.

Pr. M. Alaoui Talibi 127


 Elle comporte :
 Une unité mémoire contenant les opérandes et les
instructions non actives,

 Une unité de recherche des instructions actives

 Une file des instructions actives en attente d’exécution.

 Une unité de traitement avec plusieurs processeurs,

 Une unité de mise à jour dont le rôle est d’affecter


leurs valeurs aux opérandes à l’issue du traitement.
Pr. M. Alaoui Talibi 128
Pr. M. Alaoui Talibi 129
 Présentation générale :

L’étude de la complexité algorithmique parallèle


nécessite que soit défini un modèle de calcul, que
nous appelons un modèle de machines, pour
exécuter des algorithmes.

 Ilexiste donc des notions différentes de complexité


algorithmique suivant le modèle utilisé.

Pr. M. Alaoui Talibi 130


 Dans ce paragraphe, nous allons étudier :

 les PRAM, Parallel Random Access Machines,

Et les circuits booléens et arithmétiqu.

Pr. M. Alaoui Talibi 131


 Thèse du calcul parallèle :

Se fonde sur l’idée intuitive d’une relation entre le


temps de calcul des machines parallèles et l’espace
de calcul (taille de la mémoire) des machines
séquentielles.

Tout problème qui peut être résolu sur un ordinateur


séquentiel (raisonnable) en utilisant un espace de
taille mémoire (polynomiale) peut être résolu en temps
Polynomial sur un ordinateur parallèle
et vice versa.
Pr. M. Alaoui Talibi 132
 Un algo qui s’execute en temps polynomiale
est un algo dont le temps d’execution est
proportionnel à un polynome en fonction des
entrees.

Pr. M. Alaoui Talibi 133


 Thèse d’invariance :

Des machines raisonnables peuvent se simuler entre


elles avec au plus :

 un accroissement polynomial en temps

 et une multiplication constante de l’espace.

Pr. M. Alaoui Talibi 134


 Lemodèle PRAM :
Le modèle séquentiel de référence que nous adopterons
dans ce chapitre est la Random Access Machine (RAM).

Un Parallel Random Access Machine PRAM est un


Ensemble de processeurs séquentiels indépendants,
des RAM :
 qui possèdent donc chacun une mémoire privée (ou
locale)
 Et qui communiquent entre eux en utilisant une
mémoire globale qu’ils se partagent.

Pr. M. Alaoui Talibi 135


 Opérations fondamentales :

Considérons une PRAM composée de :

p processeurs numérotées de P0 à Pp-1


m positions mémoires M0 à Mm-1

Chaque processeur peut effectuer des opérations


atomiques en une unité de temps :
Lire(Mi)
Calculer(f)
Ecrire(Mi)
Pr. M. Alaoui Talibi 136
 L’atomicité
est une propriété utilisée en
programmation concurrente qui désigne :

Une opération ou un ensemble d’opérations


d’un programme s’executent entièrement
sans pouvoir être interrompu avant la fin de
leur déroulement.

Pr. M. Alaoui Talibi 137


 Toutes
ces opérations atomiques s’effectuent de
manière synchrone,

 Autrement dit, au même instant, tous les processeurs


lisent, calculent et écrivent.

 Extensions :

Le modèle PRAM doit être modifié pour prendre en


compte les accès mémoire dans le cas d’une mémoire
distribuée.
Pr. M. Alaoui Talibi 138
 Définition:
Une DRAM ( Distributed RAM ) est un ensemble de p
processeurs Pi, de p zones mémoires Mi et d’une
famille de couples X=(i,j).

Nous noterons Xi l’ensemble des couples (i,.).

Le processeur Pi ne peut accéder qu’aux zones


mémoire Mj quel que soit j appartenant à Xi.

X est le réseau d’interconnexion de la DRAM.


Pr. M. Alaoui Talibi 139
 Pour lire une donnée située dans une case mémoire
à laquelle il n’est pas directement connecté :

Un processeur doit donc obtenir l’aide d’autres


processeurs qui, en lisant et en écrivant, déplaceront
la donnée de la case mémoire initiale à une case
accessible par le processeur intéressé.

Pr. M. Alaoui Talibi 140


 Le facteur d’accélération :

Considérons un algorithme qui s’exécute sur un


ordinateur parallèle comportant p processeurs
(identiques) en un temps tp, et soit t1 son temps
d’exécution séquentiel (sur un ordinateur avec un
seul processeur).
On définit le facteur d’accélération par le rapport :

Sp = t1/tp

Théorème : quel que soit p, 1 ≤ Sp ≤ p (A démontrer).


Pr. M. Alaoui Talibi 141
 Limitations du facteur d’accélération :

Divers auteurs ont essayé de préciser les bornes du


facteur d’accélération suivant l’architecture (à
chercher):

 Loi d’Amdahl
 Loi de Minsky
 Table de Stone

Pr. M. Alaoui Talibi 142


 Dansce chapitre, nous introduisons les principales
notions de complexité parallèle.

 Lemodèle utilisé est principalement le modèle PRAM


et ses dérivées.

 Nous étudions la complexité parallèle de quelques


algorithmes de base, à la fois en analyse numérique
Et pour des problèmes non numériques.

Pr. M. Alaoui Talibi 143


 Description des hypothèses :
 La structure de l’ordinateur est de type SIMD ou
MIMD avec une mémoire commune partagée.

 Nous supposerons que notre modèle peut admettre


un nombre illimité de processeurs.

 L’unité de base est le temps d’exécution d’une


opération arithmétique

 Nous négligeons les temps de communication entre


la mémoire et les processeurs.
Pr. M. Alaoui Talibi 144
 Objectifs de l’étude de la complexité parallèle :

 Il s’agira de trouver dans l’algorithme les opérations


susceptibles d’être exécutées simultanément.

 Considérons un problème donné : calcul du produit


scalaire de deux vecteurs de taille n.

 Une question classique : chercher la complexité


séquentielle de ce problème.

 Càd le temps de calcul minimum pour résoudre le


problème.
Pr. M. Alaoui Talibi 145
 Lesalgorithmes que nous étudierons s’exécutant
en un nombre fini d’opérations,

 2n-1 (nb d’opérations) pour le cas du produit scalaire,

 Cecirevient à supposer que le nombre de processeurs


est égal à ce nombre d’opérations.

Pr. M. Alaoui Talibi 146


 Evaluation d’une expression arithmétique :

Dans une première partie, nous étudions les relations


entre algorithmes d’évaluation d’une expression et
arbres binaires étiquetés.

Définition :
1. Une expression de taille n est un problème
possédant n données (variables ou atomes) et
fournissant un seul résultat, et dont toutes les
opérandes sont binaires.
Pr. M. Alaoui Talibi 147
 L’expression est simple si chacune des variables
n’est utilisée qu’une seule fois comme opérande.

 E est une expression simple si E satisfait une des


conditions suivantes :

1. E = xi où xi est une variable


2. E = o G où G est une expression simple et où o
appartient {+,-}.
3. E = G o D où G et D sont des expressions simples
portant sur des ensembles de variables disjoints
et où o appartient à {+,-,*,/}.
Exemple.
Pr. M. Alaoui Talibi 148
 Nousdéfinissons maintenant les arbres binaires
étiquetés.

 Ladéfinition dépend d’un entier p qui représente


le nombre de processeurs.

 L’arbre
étiqueté conduit à un algorithme d’évaluation
avec p processeurs : chaque nœud représente une
opération et l’étiquette du nœud la date d’exécution
de cette opération.

Pr. M. Alaoui Talibi 149


 Définition :

Soit p un entier positif. Nous appelons A(p) l’ensemble des


arbres binaires étiquetés construits de la manière suivante :

1. l’arbre avec un seul nœud étiqueté 0 appartient à A(p) et


a une profondeur égale à 0.

2. Pour d≥0, un élément de A(p) de profondeur d+1 est


obtenu à partir d’un élément de A(p) de profondeur d en
ajoutant 1 à toutes les étiquettes et en remplaçant au plus
p de ses feuilles par l’arbre binaire à trois sommets dont
les feuilles sont étiquetées 0 et la racine 1.

Pr. M. Alaoui Talibi 150


 L’arbrebinaire à trois sommets dont les feuilles
sont étiquetées 0 et la racine 1 est appelé arbre de
base.

Exemple : prenons p=3;

Pr. M. Alaoui Talibi 151


 Relationsentre évaluation de expressions et arbres
binaires étiquetés :

Lemme :
1. Tout algorithme parallèle d’évaluation d’une
expression de taille n avec p processeurs peut être
représenté par un élément de A(p) admettant au
moins n feuilles.

Pr. M. Alaoui Talibi 152


2. Toute expression simple de taille n peut être
représentée par un élément de A(p) possédant n feuilles.
Cet arbre détermine un algorithme parallèle d’évaluation
de l’expression avec p processeurs.

 Pour tout arbre de A(p), de profondeur d et possédant n


feuilles, il existe une expression simple de taille n et un
algorithme parallèle d’évaluation de cette expression,
représenté par cet arbre.

Pr. M. Alaoui Talibi 153


 Laprofondeur d’un élément de A(p) est la durée
d’exécution de l’algorithme correspondant.

Définition :

F(p,d) est le nombre maximum de feuilles d’un


élément de A(p) de profondeur d et

D(p,n) la profondeur minimum d’un élément de A(p)


possédant n feuilles.
Exemple : Exercice1
Pr. M. Alaoui Talibi 154
Pr. M. Alaoui Talibi 2018-2019 155
 Introduction
 Processus
 Appels système
 Ordonnancement des processus : exclusion
mutuelle
 Communication et synchronisation des
processus
 Gestion des processus sous Unix

Pr. M. Alaoui Talibi 2018-2019 156


 Un processus est un programme en exécution qui a
son propre environnement

 Espace d’adressage
 Code (instructions du programme)
 Pile
 Compteur ordinal
 Registres
 Variables
 …
 Un programme peut être exécuté par plusieurs processus.

Pr. M. Alaoui Talibi 2018-2019 157


Les systèmes d’exploitation ont besoin de savoir que tous

les processus nécessaires existent bel et bien.

Pour les systèmes les plus simples, ou ceux conçus pour

exécuter une seule application (par exemple le contrôleur

d’un four à micro-ondes), il peut être envisageable que

tous les processus susceptibles d’intervenir soient actifs

pendant le fonctionnement du système.


Pr. M. Alaoui Talibi 2018-2019 158
En général, les systèmes d’exploitation ont besoin de
disposer d’une méthode pour créer et arrêter les
processus, selon le cas, au cours de leur activité.

Pr. M. Alaoui Talibi 2018-2019 159


 Création des processus
 Quatre événements sont à l’origine de la création d’un
processus.
 Initialisation du système.
 Exécution d’un appel système de création de processus par un
processus en cours d’exécution.
 Requête utilisateur sollicitant la création d’un nouveau
processus.
 Initiation d’un travail en traitement par lot.

Pr. M. Alaoui Talibi 2018-2019 160


1. Lors de l’amorçage (déclenchement) du système
d’exploitation, plusieurs processus sont crées, à
savoir :
 Certains sont des processus de premier plan : des
processus qui interagissent avec l’utilisateur et
accomplissent des taches pour eux.
 D’autres sont des processus d’arrière plan, non
associé à une utilisation particulière de l’ordinateur.

Pr. M. Alaoui Talibi 2018-2019 161


Ces processus ont des fonctions spécifiques.
On peut trouver par exemple un processus d’arrière plan
conçu pour accepter les courriers électroniques
entrants; celui-ci sera inactif la plupart du temps, mais
se réactivera lors de l’arrivée d’un message.
 Les processus qui restent à l’arrière plan pour gérer des
activités qui concernent les courriers électroniques, les
pages web, les news, les impressions, etc. s’appellent
des démons (daemons).

Pr. M. Alaoui Talibi 2018-2019 162


 Sur les gros systèmes, on en trouve généralement des
dizaines.
 Sous UNIX, la commande ps sert à afficher la liste
des processus en cours d’exécution.
 Sous windows 95/98/Me, le fait de taper Ctrl+Alt+Del
une seule fois permet de voir les processus en cours.
 Sous Windows 2000/XP, c’est le gestionnaire des
taches qui intervient.

Pr. M. Alaoui Talibi 2018-2019 163


2. Au-delà des processus crées lors de l’amorçage, de
nouveaux processus peuvent être crées.
 Il arrive souvent qu’un processus en cours d’exécution
émettent des appels système pour créer un ou plusieurs
nouveaux processus qui l’aideront dans son activité.
 Il est particulièrement utile de créer de nouveaux
processus lorsque la tache à accomplir peut être divisée
en plusieurs processus, qui interagissent entre eux tout
en étant indépendants.

Pr. M. Alaoui Talibi 2018-2019 164


Par exemple, si l’on récupère d’importantes quantités
de données sur un réseau afin de les traiter
ultérieurement, il peut être pratique :

 de créer un processus pour récupérer les données et


les placer dans un tampon partagé,

 tandis qu’un autre processus ôtera (enlever) les


éléments de données et les traitera.

Pr. M. Alaoui Talibi 2018-2019 165


3.
 Sur un ordinateur multiprocesseur, le fait que chaque processus
puisse s’exécuter sur un processeur différent peut également
en accélérer l’exécution.

 Sur les systèmes interactifs, les utilisateurs peuvent démarrer


un programme en saisissant une commande ou en cliquant
sur une icône.

 L’une ou l’autre de ces actions lance un nouveau processus


qui exécute le programme concerné.
Pr. M. Alaoui Talibi 2018-2019 166
4.
 Le dernier cas de figure impliquant la création de
processus : ne s’applique qu’aux systèmes de traitement
par lots que l’on trouve sur les gros mainframes.

 En informatique, un traitement par lots (batch


processing en anglais) est un enchaînement
automatique d'une suite de commandes (processus)
sur un ordinateur sans intervention d'un opérateur.

LST Info, FSTF 2018-2019 167


 Les utilisateurs peuvent soumettre des taches de
traitements par lots aux système (même à distance).
 ?Un Mainframe est un ordinateur. Il renferme énormément de
mémoire RAM (20 Go est très courant *), une puissance (64
processeurs à plusieurs centaines de mégahertz *) de traitement
très importante. Pour le stockage de masse (les disques durs), il
fait le plus souvent appel à d’autres machines physiques (souvent
conçues spécialement pour ce même mainframe) qui gère les
disques. La capacité de ceux ci peut avoisiner plusieurs dizaines
de Tera Octets de données.
Typiquement, les données sont transmises sur un réseau FDDI
(fibre optique) entre le Mainframe et le stockage.

Pr. M. Alaoui Talibi 2017-2018 168


 Dans ce cas, lorsque le système d’exploitation
constate qu’il dispose des ressources nécessaires à
l’exécution d’un job supplémentaire,

il crée un nouveau processus et exécute le job


suivant la file d’attente.

Pr. M. Alaoui Talibi 2018-2019 169


Création des processus :
 En résumant, la création d’un processus se traduit
toujours par un :
appel système déclenché à partir de :
 Processus utilisateur OU
 Processus système, OU
 Processus gestionnaire de traitements par lots.

Cet appel demande au système d’exploitation de créer un


nouveau processus et indique, directement ou indirectement,
quel programme y exécuter.

 Sous Unix : fork() crée un clone du processus appelant


 Sous Win32 : Create_Process.

Pr. M. Alaoui Talibi 2018-2019 170


 Dans les deux cas, une fois qu’un processus a été
crée, le parent et le fils disposent désormais de leur
propre espace d’adressage.

 S’il arrive que l’un des processus modifie un mot dans


son espace d’adressage, le changement n’est pas
visible par l’autre processus.

Pr. M. Alaoui Talibi 2018-2019 171


Fin d’un processus :

 Une fois qu’un processus a été créé, il commence à


s’exécuter, quelle que soit sa tache.

 Mais tôt ou tard, le nouveau processus s’arrete pour


diverses raisons :

Pr. M. Alaoui Talibi 2018-2019 172


 Fin d’un processus

 Arrêt normal (volontaire)


 Exécution de toutes les instructions du programme correspondant.
 Arrêt à cause d’une erreur fatale
 Erreur imprévisible (division par 0)
 Par exemple, saisir la commande gcc foo.c

Pour compiler le programme foo.c et que le fichier correspondant


n’existe pas, le compilateur s’arrete.

Pr. M. Alaoui Talibi 2018-2019 173


 Le quatrième motif d’ arrêt d’un processus :

Intervient lorsqu’il exécute un appel système indiquant

au SE d’ Arrêter un ou plusieurs autres processus.

Sous UNIX, cet appel est kill.

Pr. M. Alaoui Talibi 2018-2019 174


 Hiérarchie des processus
 Chaque processus a un et un seul processus parent
 Sous Unix le processus « init » est le seul qui n’a pas de
parent.
 C’est le processus qui initialise le système.

 Un processus peut avoir des processus fils 0,1,2


ou plus.
 Sous Unix, il est possible d’envoyer des signaux à toute
une arborescence de processus
 Demande d’arrêt par exemple
 Le principe de l’hiérarchie n’existe pas sous Windows
 Tous les processus sont égaux

Pr. M. Alaoui Talibi 2018-2019 175


 Etats des processus
 Un processus peut être dans l’un des trois états
 Elu : En cours d’exécution
 C’est lui qui détient la CPU
 Prêt
 A toutes les ressources nécessaires et attend son tour pour la
CPU.
 Bloqué
 Attend une ressource ou un événement
 Ne peut pas être candidat pour obtenir la CPU avant qu’il soit
débloqué

Pr. M. Alaoui Talibi 2018-2019 176


 La transition 1 : rend le processus
bloqué en attente d’une ressource ou
d’un événement.

 La transition 2 : reprend la CPU au


processus et la donne à un autre
processus. Elu
1: réquisition
Notre processus doit attendre son tour. d’une ressource 2: réquisition
de la CPU
3: attribution
 La transition 3 : donne (redonne) la CPU de la CPU
à notre processus.
Bloqué
 La transition 4 : débloque le processus Prêt
ce qui le rend candidat pour obtenir la 4: acquisition
de toutes les ressources
CPU.

 Un processus prêt ne peut pas devenir


bloqué sans passer par l’état « élu ».

 Un processus bloqué ne peut pas


prendre la CPU sans passer par l’état «
prêt ». Pr. M. Alaoui Talibi 2018-2019 177
 Appels système de gestion des processus
 fork
 Crée une copie conforme du processus appelant
 Même code
 Mêmes descripteurs de fichiers
 …
 Sauf la valeur retournée par fork
 Nulle dans le nouveau processus (fils)
 PID du fils dans le processus père
 Les deux processus évolueront, en général, différemment.
 Le seul moyen de créer les processus.

Pr. M. Alaoui Talibi 2018-2019 178


Pr. M. Alaoui Talibi 2018-2019 179
 Comment un processus passe des informations à un
autre processus ?

 Comment éviter des conflits entre des processus


concurrents qui s’engagent dans des activités
critiques ?

 Comment synchroniser les processus dépendants ?

Pr. M. Alaoui Talibi 2018-2019 180


 Les conditions de concurrence
 La section critique
 L’exclusion mutuelle avec attente active
 Le sommeil et l’activation
 Les sémaphores
 Les moniteurs
 L’échange de message
 Les barrières
Pr. M. Alaoui Talibi 2018-2019 181
 Appelée aussi région critique, c’est l’ensemble
d’instructions d’un processus (par exemple :
accès à la mémoire ou fichiers partagés)
susceptibles de provoquer les conditions de
concurrence avec d’autres processus.
 Pour éviter les conditions de concurrence il faut
éviter que les processus concernés ne se trouvent
en même temps dans la section critique.

L’Exclusion mutuelle

Pr. M. Alaoui Talibi 2018-2019 182


 L’exclusion mutuelle est une méthode qui permet de
s’assurer que si un processus utilise une variable
ou un fichier partagé, les autres processus seront
exclus de la même activité.

La partie du programme à partir de laquelle on accède à


la mémoire partagée se nomme région critique, ou
section critique.

Si l’on pouvait empêcher que deux processus se trouvent


simultanément dans leurs sections critiques, on éviterait les
conditions de concurrence.

Pr. M. Alaoui Talibi 2018-2019 183


 Quatre conditions sont nécessaires pour éviter les
conditions de concurrence tout en assurant la
coopération et l’utilisation adéquate des ressources
partagées :
 Deux processus ne doivent pas se trouver simultanément
dans leurs sections critiques (exclusion mutuelle)
 Il ne faut pas faire de suppositions quant à la vitesse ou le
nombre de processeur mis en œuvre.
 Aucun processus s’exécutant à l’extérieur de la section
critique ne doit bloquer d’autres processus.
 Aucun processus ne doit attendre indéfiniment pour
pouvoir entrer dans sa section critique.

Le comportement que nous voulons mettre en œuvre est celui


illustré à la figure suivante.
Pr. M. Alaoui Talibi 2018-2019 184
A entre dans sa A quitte sa
section critique section critique

Processus A

B tente B entre dans B quitte sa


d’entrer dans sa section section
sa section critique critique
critique
Processus B

B est
T T2 bloqué T3 T4
1
temps

2018-2019 185
 Plusieurs manières d’assurer l’exclusion mutuelle

 L’exclusion mutuelle avec attente active

 Le sommeil et l’activation

 Les sémaphores

 …

Pr. M. Alaoui Talibi 2018-2019 186


 Leprincipe est que lorsqu’un processus se trouve
dans sa section critique, les autres processus ne
peuvent pas y entrer, mais restent actifs et
attendent que le processus en cours termine la
région critique.

 Plusieurs techniques sont utilisées


 Désactivation des interruptions
 Variables de verrou
 Alternance stricte
 Solution de Peterson
 Instruction TSL
Pr. M. Alaoui Talibi 2018-2019 187
 Désactivation des interruptions :

 Le processus qui entre dans sa section critique, désactive les interruptions


  Dans ce cas, l’horloge aussi ne pourrait pas envoyer les interruptions, ce qui
implique que le processeur ne pourrait pas basculer vers un autre processus.
 Le processus en cours est sûr maintenant qu’aucun processus concurrent (ou
autre) ne pourra entrer dans la section critique.
 Les autres processus n’ont même pas la possibilité d’avoir le processeur tant que les
interruptions sont désactivées.
 Le processus en cours doit réactiver les interruptions à la fin de la section critique.
 Attention!!
 Donner aux processus utilisateurs de bloquer les interruptions n’est pas une bonne idée
 Un processus (utilisateur) qui termine sa section critique et oublie de réactiver les
interruptions.
 Un processus (utilisateur) qui, volontairement, ne réactive pas les interruptions pour
s’emparer (l’utiliser tout seul) exclusivement du processeur.
 La désactivation des interruptions peut être intéressante pour les processus en
mode noyau (qui n’impose pas des restrictions sur les instructions exécutées).

Pr. M. Alaoui Talibi 2018-2019 188


 Variables verrou : Solution logicielle
 Le processus qui veut exécuter sa section critique, teste une variable
verrou ( ou lock) partagée dont la valeur initiale est 0.
 Si cette variable est à 0, alors il la remet à 1 et entre dans la section critique

 Si le verrou est déjà à 1, ce qui signifie qu’un autre processus se trouve dans la
section critique  le processus doit attendre que le verrou passe à 0
 Le processus remet le verrou à 0 quand il termine la section critique
 Problème :
 La variable verrou est partagée  pour y accéder, les conditions de concurrence

peuvent se produire
 Un processus qui a testé le verrou et le trouve à 0, perd le processeur avant

de remettre le verrou à 1 (un autre processus s’exécute et le fait à sa place).


 Un deuxième processus teste aussi le verrou (toujours à 0) et le remet à 1
ensuite, il entre dans sa section critique.
 Lorsque le premier processus reprend son exécution, il remet le verrou à 1(il est

déjà à 1) et commence sa section critique.

Résultat : les deux processus se trouvent en même temps dans la section


critique!!
Pr. M. Alaoui Talibi 2018-2019 189
 Alternance stricte
 Deux processus alternent strictement leur entrées dans la
section critique
 Entre deux exécutions de la section critique par l’un des
processus, il est impératif que l’autre processus exécute aussi la
section critique.
 Pratique pour représenter le modèle basique de producteur /
consommateur.
 Principe
 Les deux processus inspectent une variable « turn »
 Le processus 1 entre dans sa section critique si turn est à 0.
Sinon, il entre dans une phase d’attente active
 A l’inverse du processus 1, le processus 2 entre dans sa section
critique si turn est à 1. Sinon il entre dans une phase d’attente
 Chacun des deux processus alterne la variable turn à la fin de sa
section critique.
 Le processus 1 : 01
 Le processus 2 : 10
Pr. M. Alaoui Talibi 2018-2019 190
 Alternance stricte
 Code d’entrée dans la section critique des deux
processus

Processus 1 Processus 2

Pr. M. Alaoui Talibi 2018-2019 191

Vous aimerez peut-être aussi