Skip to main content

Introduction et Concepts Généraux

Les principaux concepts

L'objectif des systèmes d'exploitation est de rendre le système plus facile à utiliser en utilisant l'abstraction des périphériques. D'améliorer l'efficacité du système en fournissant des ressources efficacement. Il possède une facilité d'évolution, protège les différents programmes et assure la sécurité vis-à-vis des autres utilisateurs.

Les systèmes d'exploitation proposent une interface entre l'utilisateur et la machine. C'est une interface uniforme d'accès aux périphériques (détails techniques cachés) qui permet une exécution de programmes tout en conservant un accès contrôlé aux données. Les erreurs sont gérées proprement (signalement et réaction) et l'os peut fournir des statistiques d'utilisation et de fonctionnement.

Un processus possède un contexte mémoire propre (exécution indépendante des autres processus) et une file d'exécution propre. L'exécution concurrente de processus permet de maximiser l'utilisation des ressources matérielles

La gestion mémoire se fait via l'isolation des processus ce qui empêche la collision entre leurs mémoire. Cela est possible grâce à la mémoire virtuelle et au support matériel. Cette allocation est transparente (pas de contraintes sur le programmeur).

La protection des données est assurée par le contrôle des autorisations (accès aux données critiques du système, accès et modification des données des utilisateurs) et par l'authentification des utilisateurs.

L'ordonnancement et la gestion des ressources est assuré par l'accès au ressources équitable pour les travaux de même type tout en distinguant des classes de travaux. Le contrôle est dynamique permettant d'avoir une certaine efficacité.

Structure des systèmes

Un système d'exploitation est constitué de 3 composantes principales :

  1. Le noyau qui est le coeur de l'ordinateur, il pilote les périphériques et interface vers l'utilisateur.
  2. Les bibliothèques utilisateur de bas niveau (appels système pour parler au noyau)
  3. Nos applications

Cette infrastructure est possible grâce à plusieurs mécanismes dont la gestion mémoire (processus, systèmes de fichiers, réseau), les systèmes de fichiers et stockage, l'ordonnancement, la communications entre processus et les réseaux.

Les noyaux

Les noyaux monolithiques est constitué d'un ensemble de procédures pouvant toutes s'appeler les unes les autres, ils sont souvent découpé en procédures principales, procédures de services et procédures utilitaires.

Les noyaux en couche représentent une tentative d'organisation des monolithiques cependant la limites entre les couches sont difficiles à définir (la gestion mémoire a besoin des I/O pour remplir les pages, les I/O ont besoin de mémoire pour allouer des tampons intermédiaires). De plus la traversée des couches est contraignante pour les performances

Les noyaux modulaires permettent le chargement/déchargement dynamique de code optionnel (pilotes pour périphériques, fonctionnalités spécifiques). Ils permettent la réduction du noyau initial et la possibilité d'évolution dynamique sans redémarrage.

Les micronoyaux

Les noyaux monolithiques sont trop gros, pas organisés (même avec des couches), la sécurité est difficile à intégrer car trop d'interactions sont possibles et il sont difficiles à faire évoluer. De ce constat découle les micronoyaux possédant uniquement le strict nécessaire, le reste est stocké dans des processus et serveurs dédiés.

Son design se base sur l'utilisation d'un serveur pour chaque tâche, des interfaces simples et uniformes. Mais aussi une extensibilité et flexibilité tout en assurant une fiabilité.

La comparaison de performance entre un micronoyaux et un noyau monolithique est complexe puisque aucun vrai OS fonctionnel n'est entièrement basé sur un micronoyau.