⌂  Menu général
Architectures matérielles

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.

Durée · 2h Chapitre · B.1 / 2
Au programme

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.
Activité 1

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 ?
Le processeur alterne très rapidement entre les différents processus prêts, donnant l'illusion d'une exécution simultanée. Sur une machine multi-cœurs, plusieurs processus s'exécutent en plus réellement en même temps, un par cœur.
Cours

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).

Cours

Le cycle de vie d'un processus

Nouveau Prêt élu Élu préemption attente Bloqué ressource obtenue Terminé
Nouveau

Le processus vient d'être créé par le système.

Prêt

En mémoire, attend son tour d'être exécuté.

Élu

En cours d'exécution : utilise le processeur.

Bloqué

Attend un événement extérieur (ex. donnée du disque).

Terminé

A fini son exécution (ou a été arrêté).

Cours

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.

FIFO
Le premier arrivé est exécuté en premier, jusqu'à la fin.
Round-robin
Chaque processus reçoit un quantum de temps, puis retourne en fin de file.
Par priorité
Le processus le plus prioritaire est exécuté en premier.
Exercice guidé

Simuler un ordonnancement round-robin

P1 (durée 6), P2 (durée 4), P3 (durée 2), quantum = 2.

P1
P2
P3
P1
P2
P1
0-22-44-66-88-1010-12

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.

Exercice 2

Simuler avec une file (Python)

class Processus: def __init__(self, nom, duree_restante): self.nom = nom self.duree_restante = duree_restante def executer_un_cycle(p, quantum): temps_execute = min(quantum, p.duree_restante) p.duree_restante -= temps_execute def est_termine(p): return p.duree_restante <= 0

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.

Exercice type bac

À toi de jouer

1. Que se passe-t-il quand un processus élu demande à lire une donnée sur le disque dur ?
Il passe de l'état élu à l'état bloqué. L'ordonnanceur donne le processeur à un autre processus prêt. Une fois la donnée disponible, il repasse à l'état prêt.
2. Pourquoi a-t-on l'impression que plusieurs programmes s'exécutent « en même temps » avec un seul cœur ?
Le processeur alterne très rapidement entre les processus (changement de contexte fréquent), donnant l'illusion d'une exécution simultanée.
À ton rythme

Exercices gradués

Niveau 1

Place dans l'ordre logique : élu, terminé, nouveau, prêt (processus qui s'exécute sans interruption).

Voir la correction
Nouveau → Prêt → Élu → Terminé.
Niveau 2

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
Élu → Bloqué (attente de la donnée) → Prêt (donnée reçue, en attente de son tour) → Élu.
Niveau 3 — défi

Avec un FIFO non préemptif, un processus très long peut bloquer tous les autres. Propose une amélioration.

Voir la correction
Passer en round-robin avec un quantum : chaque processus reçoit un temps limité, ce qui empêche un processus long de monopoliser le processeur et garantit une progression régulière de tous.
Bilan

Vocabulaire clé de la séance

Processus Ordonnanceur Nouveau Prêt Élu Bloqué Terminé Quantum FIFO Round-robin
Séance 2

La suite : l'interblocage

Que se passe-t-il quand plusieurs processus bloqués s'attendent mutuellement pour toujours ? Le dîner des philosophes, et comment l'éviter.