Architectures de Systèmes d'Exploitation et Machines Virtuelles
Classé dans Informatique
Écrit le en français avec une taille de 4,36 KB
Machine Virtuelle
Une machine virtuelle est un logiciel qui émule un ordinateur et peut exécuter des programmes comme un véritable ordinateur. Ce logiciel a été initialement défini comme « un système efficace, isolé, double exemplaire d'une machine physique. » La signification du terme inclut désormais les machines virtuelles qui n'ont pas de correspondance directe avec un matériel réel.
Système d'Exploitation
Un système d'exploitation est un ensemble de programmes qui s'intègrent au matériel pour permettre à l'utilisateur l'utilisation des ressources disponibles. Certains de ses principaux objectifs sont les suivants :
- Fournir un environnement de travail commode.
- Permettre une utilisation efficace du matériel.
- Offrir une répartition adéquate des ressources.
Un véritable système d'exploitation doit satisfaire les fonctions suivantes :
- Gouverner le système.
- Attribuer les ressources.
- Gérer et contrôler l'exécution des programmes.
Structure Monolithique
La structure du premier système d'exploitation est essentiellement un programme unique composé d'un ensemble de routines interconnectées, afin que chacune puisse appeler n'importe quelle autre (voir figure 2). Les principales caractéristiques de cette structure sont :
- Construction du programme final à partir de modules compilés séparément, assemblés par l'éditeur de liens.
- Définition précise des paramètres reliant les différentes routines existantes, ce qui peut entraîner de nombreuses interdépendances.
- Manque de protections et de privilèges pour l'accès aux routines qui gèrent les différents aspects des ressources informatiques (mémoire, disque, etc.).
- Ils sont généralement conçus sur mesure, ce qui les rend efficaces et rapides en exécution et en gestion, mais ils manquent de flexibilité pour supporter différents environnements de travail ou types d'applications.
Structure Hiérarchique
À mesure que les besoins des utilisateurs et les systèmes évoluaient, il est devenu nécessaire d'organiser davantage le logiciel du système d'exploitation. Une partie de ce système contient des sous-parties organisées sous forme de niveaux.
Le système devait être fractionné en petites parties, de sorte que chacune était bien définie et dotée d'une interface claire avec les autres éléments.
Il s'agissait d'une structure hiérarchique ou à niveaux dans les systèmes d'exploitation, dont le premier exemple fut celui de Dijkstra (Technische Hogeschool, Eindhoven), utilisé à des fins d'enseignement (voir Figure 3). On peut aussi considérer ces systèmes comme des systèmes « multi ». Multics et Unix entrent dans cette catégorie. [Feld93].
La plupart des systèmes d'exploitation étaient basés sur la structure précédente. Une autre façon de voir ce type de système est sous forme d'anneau concentrique ou de « cycles » (voir Figure 4).
Client-Serveur (Micro-Noyau)
Le système d'exploitation le plus récent est le client-serveur, qui peut être exécuté sur la plupart des ordinateurs, qu'ils soient petits ou grands.
Ce système fournit toutes sortes d'applications ; il est donc d'usage général et répond aux mêmes activités que les systèmes d'exploitation classiques.
La mission principale est d'établir la communication entre clients et serveurs. Les processus peuvent être à la fois des serveurs et des clients. Par exemple, un programme d'application normal est un client qui appelle le serveur approprié pour accéder à un fichier ou exécuter une opération d'entrée/sortie sur un dispositif. À son tour, un processus client peut agir comme un serveur pour un autre. [Alcal92].
Ce paradigme offre une grande souplesse pour les services possibles dans le système final, car le noyau ne fournit que des fonctions de base (mémoire, entrées/sorties, fichiers et processus), laissant la plupart des services aux serveurs que l'utilisateur final ou le programmeur peut utiliser. Ces serveurs doivent disposer de mécanismes de sécurité et de protection qui, à leur tour, sont filtrés par le noyau qui contrôle le matériel. Des travaux sont actuellement en cours sur une version d'Unix qui intègre ce paradigme dans sa conception.