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.

Contents Haut

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.

Contents Haut

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.

Contents Haut

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.

Contents Haut

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

Voir la partie consacrée aux mémoires.

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.