Spé. NSI · Terminale · cours rédigé et vérifié par Claryo, conforme au Bulletin officiel
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.
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).
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.
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.