Traitement parallèle et machines virtuelles
| English | Français |
|---|---|
| virtual machines/ˈvɜːtʃuːəl məˈʃiːnz/ | machines virtuelles |
| parallelism/ˈpærəlelɪzəm/ | parallélisme |
| SIMD/ˈsɪmdiː/ | SIMD |
| MIMD/ˈmɪmdiː/ | MIMD |
| massively parallel/ˈmæsɪvli ˈpærəlel/ | massivement parallèle |
| distributed memory/ˈdɪstrɪbjuːtɪd ˈmeməri/ | mémoire distribuée |
| hypervisor/ˌhaɪpəˈvaɪzə/ | hyperviseur |
| sandboxing/ˈsændbɒksɪŋ/ | sandboxing |
| bytecode/ˈbaɪtkəʊd/ | byte-code |
| just-in-time compilation/dʒʌst ɪn taɪm ˌkɒmpɪˈleɪʃn/ | compilation juste-à-temps |
Un ordinateur faisant semblant d'en être quarante
- Une entreprise achetait autrefois un serveur physique par application : un pour le courrier, un pour le site web, un pour la comptabilité. Chacun tournait à environ 8 % de sa capacité, et chacun consommait toute la puissance dans un rack devant être refroidi.
- Puis les serveurs ont cessé d'être des machines pour devenir des fichiers. Quarante virtual machines 虚拟机 (machines virtuelles) tournent maintenant sur trois hôtes physiques, chacune convaincue d'avoir son propre processeur, mémoire et disques.
- L'économie ne concerne pas seulement l'électricité. Une machine virtuelle peut être snapshotisée avant un changement risqué, copiée vers un autre hôte en cours d'exécution, et détruite si elle est compromise.
- Cette leçon porte sur parallelism 并行 (parallélisme) et la machine virtuelle : comment ces deux architectures système diffèrent, et ce qu'une VM coûte et apporte.
Architectures parallèles, brièvement
- Parallelism (Parallélisme) signifie beaucoup d'éléments de traitement travaillant simultanément. La taxonomie de Flynn nomme les formes : SIMD 单指令多数据 (une instruction sur beaucoup de données) exécute une instruction sur beaucoup d'éléments de données, et MIMD 多指令多数据 (beaucoup d'instructions sur beaucoup de données) exécute différentes instructions sur différentes données.
- Une machine massively parallel 大规模并行 (massivement parallèle) étend le MIMD à des milliers de processeurs, chacun avec sa propre distributed memory 分布式内存 (mémoire distribuée), communiquant par messages.
- La vitesse ne vient plus de monter en fréquence, limité par la chaleur, mais de faire plus de choses en même temps. Chaque architecture de cette page est une réponse à cela.

Différentes instructions, différentes données, en même temps
SIMD signifie :
Single Instruction, Multiple Data — ex. un GPU exécutant la même opération sur des milliers de pixels.
Reliez chaque catégorie de Flynn à un exemple.
Flynn classe selon le nombre de flux d'instructions et de données s'exécutant simultanément : SISD, SIMD, MIMD (et le rare MISD).
Un ordinateur massivement parallèle utilise :
Les systèmes massivement parallèles (superordinateurs) relient des milliers de processeurs avec mémoire distribuée via un réseau rapide.
Qu'est-ce qu'une machine virtuelle
- Une machine virtuelle est une émulation logicielle d'un ordinateur complet. Le logiciel exécuté à l'intérieur voit un processeur, une mémoire et des disques qui semblent réels mais qui sont fournis et gérés par le logiciel hôte.
- Il existe deux types, et l'examen les distingue : une VM système exécute un système d'exploitation invité complet, et une VM processus exécute le code portable d'un seul programme.
- Aucune n'est l'émulateur d'une machine plus rapide. L'objectif d'une VM est l'isolation et la portabilité, pas la vitesse.
Laboratoire de concepts informatiques
Classez les exemples concrets selon le concept informatique qu'ils illustrent.
Qu'est-ce qu'une machine virtuelle ?
L'objectif est l'émulation et l'isolement, pas la vitesse. Une VM système exécute un OS invité complet ; une VM processus exécute le bytecode d'un seul programme.
Machines virtuelles système
- Un hyperviseur (虚拟机监控器) est le logiciel qui crée et gère les machines virtuelles, divisant le vrai processeur, la mémoire et les disques de l'hôte entre elles tout en gardant chacune isolée des autres.
- Chaque VM démarre son propre système d'exploitation invité, donc un hôte peut faire tourner Windows, Linux et un ancien système hérité côte à côte.
- Utilisations : exécuter différents systèmes d'exploitation sur une même machine ; consolidation de serveurs, remplacer de nombreux serveurs physiques sous-utilisés par un seul hôte ; sandboxing (沙箱), afin que les logiciels risqués ou non fiables s'exécutent isolément sans pouvoir atteindre l'hôte ; et les instantanés, pour qu'une machine puisse être restaurée à un état connu.

Un rack d'hôtes, chacun hébergeant de nombreuses machines virtuelles
Un hyperviseur est utilisé pour :
Un hyperviseur gère les VM systèmes, permettant à plusieurs systèmes d'exploitation invités de partager une machine physique.
Une VM système (gérée par un hyperviseur) exécute un système d'exploitation invité complet, tandis qu'une VM processus comme la JVM ne fait qu'exécuter le bytecode portable d'un seul programme.
Les VM systèmes partagent une machine physique parmi plusieurs OS invités ; les VM processus offrent « écrire une fois, exécuter n'importe où » pour un seul programme.
Le logiciel qui crée et gère plusieurs VM systèmes sur un hôte est appelé un ____.
Il divise le matériel réel de l'hôte entre les invités et maintient chacun isolé, ce qui rend possible le sandboxing et la consolidation.
Machines virtuelles processus
- Une VM processus, aussi appelée VM langage, exécute un seul programme écrit en code bytecode portable (字节码) plutôt qu'en code machine de l'hôte. La Machine Virtuelle Java et le CLR .NET en sont des exemples.
- Avantages : portabilité, car le même bytecode s'exécute partout où il existe une VM, ce qui correspond au principe « écrire une fois, exécuter partout » ; sécurité d'exécution, car la VM vérifie ce que fait le code ; et compilation just-in-time (即时编译) du code chaud en instructions natives, permettant aux programmes longue durée d'approcher la vitesse native.
- Inconvénients : une couche supplémentaire entre le programme et le matériel, et la VM doit être installée avant que le programme ne puisse s'exécuter.
Quels sont les avantages d'une VM processus (langage) comme la JVM ? Sélectionnez tous ceux qui s'appliquent.
La VM doit être présente ; c'est le coût de la portabilité. Portabilité, sécurité et JIT sont les avantages.
Exemple résolu : quel type de VM
- Une équipe de sécurité souhaite ouvrir des pièces jointes d'e-mails suspectes sans risquer le réseau de l'entreprise. Une VM système : le système d'exploitation invité est isolé par l'hyperviseur, donc un malware ne peut pas atteindre l'hôte, et l'instantané est restauré après coup pour effacer toute modification.
- Un développeur souhaite qu'un programme compilé unique s'exécute sur Windows, macOS et Linux sans recompiler. Une VM processus : le programme est compilé en bytecode et la VM de chaque plateforme l'exécute.
- Nommez le type, puis la propriété, isolation ou portabilité, dont la situation a besoin.
Placez les conséquences d'une panne d'un hôte physique, dans l'ordre.
La consolidation concentre le risque : un hôte est un point de défaillance unique pour tout ce qu'il héberge. C'est la limite à l'état.
Exemple résolu : avantages et limites
- Expliquez deux avantages et deux inconvénients de l'utilisation de machines virtuelles pour remplacer les serveurs physiques d'une entreprise. [4]
- Avantages : plusieurs serveurs tournent sur un seul hôte physique, réduisant ainsi les coûts en matériel, électricité et refroidissement ; et chaque VM est isolée, donc un serveur compromis ou crashé n'affecte pas les autres, et peut être restauré depuis un instantané.
- Inconvénients : les VM partagent le vrai processeur, la mémoire et les disques de l'hôte, donc les performances sont inférieures à celles du matériel dédié et une VM occupée peut privatiser les autres ; et si l'hôte tombe en panne, toutes les VM situées dessus tombent en panne simultanément.
- Deux de chaque, et chacun étant une conséquence, pas simplement une étiquette.
Pièges qui font perdre des points
- Un hyperviseur gère les VM système ; ce n'est ni le système d'exploitation invité ni le propre OS de l'hôte.
- Une VM processus exécute du bytecode, qui n'est pas du code machine. C'est cela qui lui confère sa portabilité.
- La limitation d'une machine virtuelle réside dans les ressources partagées et un point de défaillance unique, et non dans « c'est compliqué ».
- Le « sandboxing » nécessite sa conséquence : le logiciel risqué est isolé de l'hôte, il ne peut donc pas l'endommager ni y accéder.
Vous avez compris
- Le parallélisme répond à la limite de fréquence horloge : SIMD pour une instruction sur de multiples données, MIMD pour de multiples instructions, massivement parallèle pour des milliers de processeurs avec mémoire distribuée
- une machine virtuelle est une émulation logicielle d'un ordinateur complet
- une VM système exécute un OS invité complet sous un hyperviseur : différents systèmes d'exploitation sur une machine, consolidation de serveurs, sandboxing, instantanés
- une VM processus exécute du bytecode portable avec sécurité d'exécution et compilation just-in-time ; les coûts incluent une couche supplémentaire, des ressources hôte partagées et le fait qu'une panne d'hôte entraîne la panne de toutes les VM associées