La machine réelle comporte principalement : un ou plusieurs processeurs, de la mémoire, un bus, et des périphériques (clavier, souris, écran, disque(s), imprimante, carte(s) réseau).
Machine virtuelle = machine réelle + système d'exploitation ; seule utilisable.
Chaque tâche a l'illusion de disposer:
Le système d'exploitation peut également être défini comme le gestionnaire des ressources suivantes :
D'autres fonctions importantes sont ou non considérées comme faisant partie du système d'exploitation :
Evolution des systèmes d'exploitation | |||
Caractéristiques | Avantages | Inconvénients | |
Au tout début | Une seule console. Le programmeur est aussi l'opérateur | Très intéractif. | Le temps de préparation est long, et un seul utilisateur à la fois. L'UC est très mal utilisée. |
Traitement par lots | L'opérateur est spécialisé et il regroupe les taches en lots. | Meilleure utilisation de l'UC | Plus d'intéractivité. Le ``debuggage'' passe par un vidage mémoire. |
Job Control Language | Un moniteur résident qui enchaine les travaux. | ||
Traitements hors ligne | Il y a un pré et un post traitement des entrées et des sorties afin que lors de l'exécution, elles soient faites à partir de bandes. | Meilleure utilisation de l'UC qui est moins ralenti par les Entrées et les sorties. | Le temps de restitution du fait des traitements supplémentaires peut être moins bon. |
Spooling | Les disques remplacent les bandes. L'accès direct vs l'accès séquentiel. | Le disque bufferise les entrées et les sorties. Le chevauchement des travaux pendant les entrées sorties est possible. | |
La multiprogrammation | L'ordonnancement des travaux est réalisé par commutation au moment des entrées sorties, ou par l'utilisateur. Le SE prend des décisions. | Meilleure utilisation de l'UC. | |
Le temps partagé | Commutation entrées sorties, et d'autres très fréquentes. L'utilisateur peut pendant l'exécution soit intervenir, soit passer des commandes au système d'exploitation | Très intéractif | L'utilisation de l'UC peut être moins bonne. |
Des systèmes d'exploitation spécialisés | |||
Caractéristiques | Avantages | Inconvénients | |
Ordinateur personnel | Sécurité inutile. Mono-tâche : MSDOS. Multiprogrammation : Mac-Intosh. | Très intéractif et conviviaux. | Pas de protection du système. Virus |
Parallèle multi-processeurs | Calcul vectoriel | Capacité de calcul. Fiabilité. | Programmation spécifique plus difficile. |
Système réparti pour réseaux | Processus spécialisés. Découpage fonctionnel des tâches. | Partage des ressources. Fiabilité. Meilleure utilisation du matériel. | |
Système temps-réel | Contraintes temporelles. Contrôle-Commande. Systèmes embarqués. |
Le noyau du système d'exploitation intervient par déroutement (trap) :
Exécution schématique d'un déroutement :
Le passage du processeur en mode superviseur modifie le fonctionnement de la mémoire, et permet donc l'accès à une partie de la mémoire invisible depuis un programme utilisateur: protection contre les erreurs de programmation ou les virus.
Certains processeurs possèdent plusieurs modes privilégiés : anneaux concentriques, points d'entrée contrôlés (gateways).
Ne pas confondre les bibliothèques de fonctions (procédures) système, qui facilitent la vie (exemple : printf), et la liste (courte) des appels-systèmes.
Généralement, les interruptions sont désactivées pendant le traitement d'un déroutement.
Le noyau est l'ensemble des procédures qui, en mode superviseur, traitent les déroutements ; il assure les fonctions de base : gestion des processus, de la mémoire, et des E/S de bas niveau. Les autres parties du système d'exploitation peuvent être réalisées sous formes de serveurs (exemples : NFS, X-Window). Unix a un gros noyau, on préfère aujourd'hui un micro-noyau (qui gère aussi les messages) et des serveurs. Solution bien adaptée aux réseaux.