Processus et ordonnancement
Comment un système d'exploitation fait-il exécuter des dizaines de programmes avec seulement quelques cœurs ? Réponse : les processus et leur ordonnancement.
Objectifs de la séance
- Décrire la création d'un processus par le système d'exploitation.
- Décrire l'ordonnancement de plusieurs processus par le système.
Observer les processus de sa machine
Ouvre le gestionnaire de tâches (Windows), le Moniteur d'activité (Mac) ou exécute ps aux / top dans un terminal (Linux).
Comment plusieurs dizaines de processus peuvent-ils s'exécuter avec un nombre limité de cœurs ?
Qu'est-ce qu'un processus ?
Un programme est un fichier statique stocké sur le disque. Un processus est un programme en cours d'exécution : il possède un état, une portion de mémoire allouée, et progresse dans le temps.
Un même programme peut donner naissance à plusieurs processus (ex. plusieurs fenêtres du même navigateur).
Le cycle de vie d'un processus
Le processus vient d'être créé par le système.
En mémoire, attend son tour d'être exécuté.
En cours d'exécution : utilise le processeur.
Attend un événement extérieur (ex. donnée du disque).
A fini son exécution (ou a été arrêté).
L'ordonnancement
L'ordonnanceur (scheduler) décide quel processus prêt devient élu, et pendant combien de temps. Il maintient une file d'attente des processus prêts.
Simuler un ordonnancement round-robin
P1 (durée 6), P2 (durée 4), P3 (durée 2), quantum = 2.
P3 termine en premier (durée 2 ≤ quantum), puis P2 et P1 terminent après un second passage. Durée totale : 12 unités de temps.
Simuler avec une file (Python)
Cet exercice fait écho à un sujet de bac réel (Amérique du Nord 2024) qui demande de simuler l'ordonnancement avec des classes Python et une file.
À toi de jouer
1. Que se passe-t-il quand un processus élu demande à lire une donnée sur le disque dur ?
2. Pourquoi a-t-on l'impression que plusieurs programmes s'exécutent « en même temps » avec un seul cœur ?
Exercices gradués
Place dans l'ordre logique : élu, terminé, nouveau, prêt (processus qui s'exécute sans interruption).
Voir la correction
Un processus P est élu, puis demande une donnée au disque dur. Décris la suite des états jusqu'à ce qu'il redevienne élu.
Voir la correction
Avec un FIFO non préemptif, un processus très long peut bloquer tous les autres. Propose une amélioration.