Module : Système d’exploitation II Chapitre IV : Introduction aux architectures parallèles
Responsable : NINI B. Page 3
Potentiellement, cette caractéristique permet de doubler le taux de traitement de la machine.
Mais en fait, ce doublement est rarement atteint à cause de goulets d'étranglements apparaissant dans
le système : interférence d'accès à la mémoire retardant l'arrivée de l'information requise par l'une des
phases, retards dus au traitement des instructions de branchement conditionnel qui empêchent
l'arrivée de l'instruction suivante jusqu'au moment où la direction de branchement est connue, ou
retards dus à la durée variable d'exécution de certaines instructions en fonction des opérandes
(division, par exemple), ce qui immobilise l'unité d'exécution pendant une période plus ou moins
longue et retarde donc le démarrage de l'instruction suivante.
1.2.3 Entre les instructions
Le parallélisme entre instructions repose sur la multiplication de certaines unités
fonctionnelles. Le parallélisme est d'ailleurs souvent limité à la phase d'exécution. Ceci repose sur la
technique du "pipe-line" qui est une extension de la technique "look-ahead". La phase d'exécution des
instructions est fragmentée en plusieurs étapes intermédiaires. A un instant donné, il y a plusieurs
instructions en train d'être exécutées, chacune à une étape différente de son exécution. A un instant
donné, on peut avoir par exemple une multiplication virgule flottante, un transfert à mémoire, une
addition d'entier s'exécutant simultanément.
1.2.4 Entre régions d'un programme
On appellera région une zone de code telle que son exécution peut avoir lieu indépendamment
d'autres zones. Par exemple, deux zones constituent des régions si elles ne se passent pas de
paramètre et si leur exécution peut être lancée de façon indépendante. Le parallélisme entre régions
d'un même programme est obtenu par diverses combinaisons entre machine et logiciel. Pour qu'il y ait
simultanéité réelle dans l'exécution des différentes régions, la machine doit être dotée de possibilités
de parallélisme au niveau de la phase de décodage/préparation d'instructions multiples. Par contre, la
simultanéité apparente entre régions d'un programme peut être obtenue avec un logiciel de
multiprogrammation. Les techniques machine/logiciel nécessaires pour une simultanéité réelle ou
apparente entre deux régions impliquent l'existence d'un moyen de :
reconnaître leur indépendance,
démarrer leur exécution "en parallèle",
établir les conditions d'une fusion ultérieure des deux chemins parallèles.
1.2.5 Entre tâches formalisées
Le parallélisme entre tâches formalisées d'un programme structuré est obtenu par
l'intermédiaire du programme de contrôle du système répondant à des directives données par le