Systèmes d'exploitation
L'OS (Operating System, ou système d'exploitation) est probablement un des logiciels les plus importants et un des plus complexes de notre ordinateur. Il est constitué d'une multitude de programmes qui simplifient la vie de l'utilisateur.
L'OS peut donc être considéré comme une interface entre la machine et l'utilisateur ou les programmes de l'utilisateur.
Comme les machines sont toutes différentes, le système d'exploitation devra assurer la gestion des échanges entre l'unité centrale, les mémoires, les périphériques, etc.
La gestion des périphériques est établie par des programmes spécifiques, les pilotes (drivers) ajoutés au système d'exploitation.
Le système d'exploitation offre une grande souplesse aux programmeurs, les soulageant des disparités existantes entre les langages machine.
Il permet un partage des possibilités de l'ordinateur entre plusieurs utilisateurs de manière simultanée (multiprogramming & multiusers).
De plus, il augmente le rendement par une gestion des entrées/sorties (I/O) basée sur des interruptions, indiquant un besoin d'utilisation du processeur (CPU) ou en signalant à ce dernier la fin d'une opération, le tout visant à utiliser un maximum des ressources du CPU.
Définition du système d'exploitation
Définir précisément le système d'exploitation n'est pas aisé car les tàches qui lui sont dévolues sont de plus en plus nombreuses, mais nous pouvons dégager deux aspects de base : la machine étendue et la gestion des ressources.
- Machine étendue : un système d'exploitation est un ensemble d'algorithmes qui permettent d'offrir à l'utilisateur une vision simple, détachée des mécanismes complexes de bas niveau (interruptions, horloges, gestion de la mémoire, etc.). Le système d'exploitation présente à l'utilisateur l'équivalant d'une machine étendue, ou machine virtuelle plus facile à programmer que le matériel. L'expression anglophone "beautification principle" est souvent utilisée pour décrire le fait qu'un système d'exploitation rend l'environement de travail plus convivial en masquant tous ces détails.
- Gestionnaire de ressources : un système d'exploitation est un ensemble d'algorithmes qui contrôlent l'allocation des ressources aux processus, les mémoires, les entrées/sorties.
Modules d'un système d'exploitation
Au stade actuel de développement des systèmes d'exploitation, les ressources du processeur sont partagées entre les différentes applications.
Nous allons essayer de comprendre comment ce partage peut être géré.
Processus
Un programme est statique. Il s'agit d'une série d'instructions, une sorte de recette.
Le processus est actif, c'est le programme en cours d'exécution, avec les données dont il a besoin :
- son compteur ordinal (program counter)
- son pointeur de pile (stack pointer)
- ses registres
Les informations sont le plus souvent conservées dans une table du système d'exploitation : la table des processus. Il s'agit d'un tableau, ou d'une liste chaînée, de structures nommées PCB (Process Control Bloc). Chaque processus ayant une structure (PCB) qui lui est propre.
Nous retrouvons dans cette table tout processus suspendu, caractérisé par son adresse mémoire (image du noyau - core image).
Comme un processus peut créer un ou plusieurs processus fils qui peuvent à leur tour faire de même, nous avons une structure en arbre des processus.
Le distributeur (Dispatcher)
Nous ne devons pas perdre de vue que le processeur n'est capable de traiter qu'un et un seul processus en un temps donné.
Le dispatcher (dispatch = expédition) assure la commutation des différents processus au sein du processeur en suivant l'activité du processeur.
Il choisit le processus en file d'attente à traiter. Il gère donc l'allocation du processeur et peut le réquisitionner en fonction d'une priorité des processus en attente et de la portion de temps utilisée par celui qui est en cours d'exécution.
Nous pouvons déterminer trois états pour un processus :
- Nous dirons d'un processus actif en cours d'exécution (running) qu'il est élu.
- S'il présente toutes les qualités pour être exécuté, mais que le processeur est indisponible, nous l'appellerons processus éligible (Ready).
- Dans le cas où le processus est en attente d'un évènement externe (entrées-sorties...) ou volontairement arrêté nous le déclarerons bloqué (blocked).
Un processus éligible est exécuté au moment où le processeur devient disponible.
Si le processeur est requis par un processus d'une priorité plus haute ou s'il a consommé la tranche de temps qui lui est allouée (quantum), le processus actuellement en cours d'exécution peut retourner à un état éligible.
Des files d'attentes nous seront donc nécessaires pour le stockage des processus éligibles et des processus bloqués.
Nous nous pencherons de manière plus approfondie sur ces différents états dans la partie consacrée aux modèles à 2, 3, 5 et 7 états.
L'ordonnanceur (Scheduler)
Nous avons vu que les processus sont placés dans une file d'attente avant que le service demandé leur soit fourni tour à tour, selon la gestion spécifiques du planificateur, ou ordonnanceur (scheduler).
Il gère la file d'attente des processus, l'arrivée des demandes et les place dans la file.
Gestion de la mémoire
Planification et allocation des ressources
Deux aspects sont à envisager : l'allocation de ressources, et la protection de ces dernières.
Système de fichier
Le système d'exploitation est aussi responsable de la gestion des fichiers.
Nous devons pouvoir localiser les fichier pour les atteindre. Un nom est donc nécessaire, mais d'autres informations peuvent êtres contrôlées : nom du créateur, date de création, date de modification, etc.
Le système d'exploitation doit aussi gérer les accès aux fichiers.
Ce point est généralement considéré du point de vue des utilisateurs, et il est vrai que de nombreux systèmes gèrent les droits d'accès des visiteurs aux ressources, mais ce n'est pas le seul aspect de la gestion des droits.
Le système d'exploitation est chargé de veiller à assurer une bonne protection contre les accès (non autorisés) de certains processus.
Les fichiers doivent aussi être protégés contre la perte ou la corruption.
Enfin, les systèmes actuels gèrent l'espace de stockage disponible.
Voir la partie consacrée aux systèmes de fichiers.
English translation
You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.
Thank you in advance.
Document created the 15/02/2004, last modified the 07/04/2023
Source of the printed document:https://www.gaudry.be/en/systeme-exploitation-introduction.html
The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.