Gestion des processus et des ressources par un système d’exploitation

Spé. NSI · Terminale · cours rédigé et vérifié par Claryo, conforme au Bulletin officiel

L'essentiel

Un système d'exploitation (SE) est le logiciel de base qui pilote la machine : il gère les ressources (processeur, mémoire, périphériques, fichiers) et offre aux applications une interface stable pour les utiliser. Ses grandes fonctions sont la gestion des processus, de la mémoire, du système de fichiers, des entrées-sorties et des droits des utilisateurs. Exemples : Linux, Windows, macOS, Android.

Il faut distinguer programme et processus. Un programme est une suite d'instructions stockée (fichier passif). Un processus est une instance en cours d'exécution de ce programme, avec son propre contexte : espace mémoire, état, registres, compteur d'instructions. Un même programme peut donner naissance à plusieurs processus.

Au cours de sa vie, un processus passe par trois états : - élu : il s'exécute actuellement sur le processeur ; - prêt : il pourrait s'exécuter mais attend que le processeur se libère ; - bloqué : il attend une ressource ou la fin d'une entrée-sortie (lecture disque, réseau).

L'ordonnanceur du SE choisit quel processus prêt devient élu et pour combien de temps. Cela crée l'illusion du parallélisme même sur un cœur unique, par commutation rapide. La politique du tourniquet (round-robin) donne à chaque processus un quantum de temps fixe puis le renvoie en fin de file s'il n'a pas terminé.

Quand plusieurs processus se partagent des ressources, un interblocage (deadlock) peut survenir : chacun détient une ressource que l'autre attend, et tous restent bloqués.

Formules et schémas clés

Diagramme des états et transitions : \text{prêt} \xrightarrow{\;\text{élection}\;} \text{élu} \xrightarrow{\;\text{préemption}\;} \text{prêt}, \qquad \text{élu} \xrightarrow{\;\text{E/S}\;} \text{bloqué} \xrightarrow{\;\text{ressource prête}\;} \text{prêt}.

Round-robin : avec n processus de durée d chacun et un quantum q tel que q < d, le temps total avant fin du dernier est la somme de toutes les tranches exécutées. On calcule en déroulant les tours un par un.

Commandes Unix utiles : ps, top, kill <PID>, & (arrière-plan).

Méthode type bac

1. Pour un calcul d'ordonnancement round-robin, dérouler les tours dans l'ordre : à chaque passage, retrancher \min(q, \text{restant}), noter l'instant courant cumulé, et marquer la fin d'un processus dès que son reste atteint 0. 2. Pour un interblocage, identifier le cycle d'attente : qui détient quoi, qui demande quoi. 3. Pour les états, toujours nommer les trois (élu, prêt, bloqué) et justifier chaque transition par sa cause.

Pièges

  • Confondre programme (passif, sur disque) et processus (actif, en mémoire).
  • Oublier qu'un processus en attente d'E/S est bloqué, pas « prêt » : il ne peut pas s'exécuter même si le processeur est libre.
  • Dans le round-robin, oublier le dernier reste partiel d'un processus (souvent < q) au moment de calculer son instant de fin.
  • Croire que l'ordonnancement réalise un vrai parallélisme sur un cœur unique : c'est une commutation rapide qui en donne l'illusion.

Pour l'épreuve

Maîtrisez la distinction programme/processus, le rôle du SE et ses fonctions principales. Sachez tracer le diagramme des trois états avec ses transitions et leurs causes. Le calcul de round-robin est un grand classique : entraînez-vous à dérouler les tours et à donner l'instant de fin exact de chaque processus, sans oublier le reste partiel final. Connaissez la définition de l'interblocage et un exemple à deux ressources, ainsi que les commandes Unix ps, top, kill et l'usage de &. À l'épreuve pratique, une file (collections.deque) avec popleft et append modélise parfaitement un ordonnanceur tourniquet.