Adloun

Systèmes d'exploitation et processus

Cours · NSI (terminale), chapitre 13 · terminale, spécialité numérique et sciences informatiques · le début du chapitre, la suite sur Adloun

L'ordonnancement des processus : le système d'exploitation répartit le temps du processeur, comme le montre ce diagramme.

Entre le matériel d'un ordinateur (processeur, mémoire, disque, périphériques) et les applications que nous utilisons (navigateur, éditeur de texte, interpréteur Python) se trouve une couche logicielle essentielle : le système d'exploitation (en anglais Operating System, abrégé OS). Sans lui, chaque programme devrait connaître les détails du matériel et il serait impossible de faire fonctionner plusieurs applications en même temps sur une seule machine.

Ce chapitre présente le rôle d'un système d'exploitation, la notion de processus et ses différents états, les principes de l'ordonnancement qui permet à un processeur d'exécuter de nombreux programmes simultanément, les problèmes de concurrence entre processus partageant des ressources (dont le redoutable interblocage), puis la gestion des fichiers et des droits. Nous terminerons par une prise en main des commandes de base d'un système, manipulées dans un interpréteur de commandes appelé shell.

13.1 Le rôle d'un système d'exploitation

13.1.1 Une couche d'intermédiaire

Le système d'exploitation est le premier programme lancé au démarrage de la machine (après le micrologiciel d'amorçage). Il reste actif en permanence et sert d'intermédiaire entre les programmes des utilisateurs et le matériel.

Définition 13.1Système d'exploitation

Un système d'exploitation est un ensemble de programmes qui gère les ressources matérielles d'un ordinateur (processeur, mémoire, disques, périphériques) et fournit aux applications des services communs au travers d'une interface unifiée. Il assure le partage équitable et sécurisé de ces ressources entre les différents programmes et utilisateurs.

Parmi les systèmes d'exploitation les plus répandus, on trouve la famille Unix (dont Linux, macOS, Android) et Windows. Au cœur du système se trouve le noyau (kernel), qui s'exécute dans un mode privilégié lui donnant un accès direct au matériel.

Proposition 13.2Les grandes fonctions d'un OS

Un système d'exploitation assure principalement :

  • la gestion des processus : création, exécution, arrêt des programmes, et partage du processeur entre eux (ordonnancement) ;
  • la gestion de la mémoire : attribution et protection des zones de mémoire, mémoire virtuelle ;
  • la gestion des fichiers : organisation des données sur les disques au sein d'un système de fichiers ;
  • la gestion des entrées/sorties : communication avec les périphériques via des pilotes (drivers) ;
  • la gestion des utilisateurs et des droits : authentification et contrôle des accès.

13.1.2 Le mode protégé et les appels système

Pour garantir la stabilité et la sécurité, le processeur distingue deux modes d'exécution : le mode noyau (privilégié) et le mode utilisateur (restreint). Une application ne peut pas accéder directement au matériel ; elle doit demander un service au noyau au moyen d'un appel système (system call).

Exemple 13.3Lecture d'un fichier

Lorsqu'un programme Python exécute open("data.txt").read(), la bibliothèque standard finit par déclencher des appels système (open, read, close). C'est le noyau qui, en mode privilégié, dialogue réellement avec le disque, vérifie les droits d'accès, puis recopie les octets dans la mémoire du programme. L'application n'a jamais eu à connaître le modèle du disque dur.

13.2 Les processus

13.2.1 Programme et processus

Il faut distinguer un programme (un fichier exécutable stocké sur le disque, statique) d'un processus (une exécution de ce programme, en cours, dynamique). Lancer deux fois le même programme crée deux processus distincts.

Définition 13.4Processus

Un processus est l'instance d'un programme en cours d'exécution. Il est caractérisé par :

  • un identifiant unique (le PID, Process IDentifier) ;
  • le code à exécuter et la valeur courante du compteur ordinal ;
  • un espace mémoire propre (variables, pile, tas) ;
  • un état et des ressources ouvertes (fichiers, connexions).

Sur un système Unix, chaque processus possède un processus parent : les processus forment ainsi une arborescence dont la racine est le premier processus lancé par le noyau (souvent appelé init ou systemd).

13.2.2 Les états d'un processus

À un instant donné, un seul processus par cœur de processeur est réellement en train de s'exécuter. Les autres attendent. Le système modélise cette situation par trois états principaux.

Définition 13.5États d'un processus

Un processus passe au cours de sa vie par trois états fondamentaux :

  • prêt (ready) : le processus pourrait s'exécuter, il attend seulement que le processeur lui soit attribué ;
  • élu (running) : le processus est en train de s'exécuter sur le processeur ;
  • bloqué (blocked, ou en attente) : le processus ne peut pas progresser car il attend un événement extérieur (fin d'une lecture disque, saisie clavier, libération d'une ressource).

Exercices du chapitre

La suite du cours · Tous les exercices du chapitre