← Retour aux quizQuiz gratuit

Processus, threads et ordonnancement

Dans les systèmes d’exploitation modernes, la gestion efficace des processus et des threads est cruciale pour garantir des performances optimales et une utilisation équitable des ressources…

22 questions~11 min
Processus, threads et ordonnancement — Qwi
0 / 22
Score: 0%
1

Quel registre du processeur contient l'adresse de la prochaine instruction à exécuter ?

2

Dans le cycle de vie d'un processus, quel état suit immédiatement l'état 'prêt' ?

3

Quel critère d'ordonnancement vise à minimiser le temps moyen passé dans la file d'attente des processus prêts avant leur première exécution ?

4

Dans l'algorithme FCFS, quel est l'impact principal d'un processus long qui arrive avant des processus courts ?

5

Quel mécanisme de commutation de contexte est déclenché lorsqu'une interruption d'horloge expire ?

6

Quel algorithme d'ordonnancement est optimal pour minimiser le temps moyen d'attente, à condition de connaître à l'avance la durée d'exécution des processus ?

7

Dans un ordonnanceur à files multiples, quel problème apparaît lorsqu'un grand nombre de processus de haute priorité arrivent continuellement ?

8

Quel est le rôle principal du registre PSW (Processor Status Word) ?

9

Quel mécanisme de synchronisation est recommandé pour protéger une section critique partagée entre plusieurs threads ?

10

Quel champ du PCB (Process Control Block) stocke la priorité dynamique d'un processus ?

11

Quel est l'effet d'un quantum trop grand dans l'algorithme Round Robin ?

12

Quel type de thread est géré directement par le noyau du système d'exploitation ?

13

Quel indicateur du PSW indique que le processeur est en mode maître (privilégié) ?

14

Quel est le principal avantage du multithreading par rapport au multitâche basé sur les processus ?

15

Quel champ du PCB indique les ressources ouvertes (fichiers, périphériques) par le processus ?

16

Dans le contexte du SRT (Shortest Remaining Time), que se passe-t-il lorsqu'un nouveau processus arrive avec un temps restant plus court que le processus en cours ?

17

Quel est le rôle du registre IR (Instruction Register) pendant l'exécution d'un processus ?

18

Quel facteur rend difficile l'implémentation de l'algorithme SJF dans les systèmes réels ?

19

Quel mécanisme de création de thread en C utilise la fonction pthread_create ?

20

Quel champ du PCB stocke le compteur ordinal (PC) du processus lors de sa suspension ?

21

Quel est l'effet d'un quantum trop petit dans l'algorithme Round Robin ?

22

Quel type de file d'attente est utilisé pour les processus bloqués sur des opérations d'E/S ?

Introduction aux processus, threads et ordonnancement

Dans les systèmes d’exploitation modernes, la gestion efficace des processus et des threads est cruciale pour garantir des performances optimales et une utilisation équitable des ressources CPU. Ce cours explore les concepts fondamentaux liés aux registres du processeur, au cycle de vie d’un processus, aux différents algorithmes d’ordonnancement et aux mécanismes de commutation de contexte.

1. Registres clés du processeur

Le processeur possède plusieurs registres qui permettent de contrôler l’exécution des instructions. Parmi eux, le Program Counter (PC) joue un rôle central.

  • Program Counter (PC) : contient l’adresse de la prochaine instruction à exécuter. Chaque fois qu’une instruction est décodée, le PC est mis à jour pour pointer vers l’instruction suivante.
  • Instruction Register (IR) : stocke l’instruction en cours de décodage, mais ne détermine pas la prochaine adresse.
  • Processor Status Word (PSW) : regroupe les indicateurs d’état du processeur (flags, mode privilégié, etc.).
  • Registre de statut du périphérique : utilisé pour la communication avec les périphériques, pas directement lié à l’exécution du code.

Comprendre le rôle du PC est essentiel pour saisir comment le scheduler (ordonnanceur) décide du passage d’un processus à un autre.

2. Cycle de vie d’un processus

Un processus traverse plusieurs états depuis sa création jusqu’à sa terminaison. Le schéma typique comprend :

  • Créé (Created) : le processus est initialisé mais n’est pas encore prêt à s’exécuter.
  • Prêt (Ready) : le processus attend que le CPU soit disponible.
  • En exécution (Running) : le processus utilise le CPU. C’est l’état qui suit immédiatement le statut « prêt ».
  • Bloqué (Blocked) : le processus attend un événement (I/O, sémaphore, etc.).
  • Terminé (Terminated) : le processus a fini son travail et libère ses ressources.

Le passage de prêt à en exécution est orchestré par l’ordonnanceur, qui applique une politique d’ordonnancement adaptée.

3. Critères d’ordonnancement

Les algorithmes d’ordonnancement visent à optimiser différents critères de performance. L’un des plus importants est le temps de réponse, qui mesure le délai entre la soumission d’un processus et le moment où il commence à s’exécuter. Minimiser ce critère revient à réduire le temps moyen passé dans la file d’attente des processus prêts avant leur première exécution.

Parmi les critères classiques, on retrouve également :

  • Temps d’attente moyen
  • Temps de séjour (turnaround time)
  • Utilisation du CPU
  • Équité (fairness)

4. Algorithmes d’ordonnancement classiques

4.1 First‑Come First‑Served (FCFS)

L’algorithme FCFS exécute les processus dans l’ordre d’arrivée. Bien qu’il soit simple, il souffre du problème du convoy effect : un processus long qui arrive avant des processus courts augmente fortement le temps moyen d’attente des processus suivants.

4.2 Shortest Job First (SJF)

Lorsque la durée d’exécution de chaque processus est connue à l’avance, SJF est optimal pour minimiser le temps moyen d’attente. Il sélectionne toujours le processus le plus court parmi ceux prêts à s’exécuter.

4.3 Round Robin (RR)

RR attribue à chaque processus un quantum de temps fixe, garantissant ainsi une bonne réactivité et un temps de réponse raisonnable, mais il ne minimise pas nécessairement le temps moyen d’attente.

4.4 Ordonnancement à priorité

Les processus reçoivent une priorité; l’ordonnanceur exécute d’abord les plus prioritaires. Dans un système à files multiples, un afflux continu de processus de haute priorité peut entraîner une famine des processus de basse priorité, phénomène appelé starvation.

5. Commutation de contexte et interruptions

La commutation de contexte consiste à sauvegarder l’état du processus en cours (registre PC, PSW, etc.) et à charger l’état d’un autre processus. Cette opération est déclenchée par différents événements, dont les interruptions d’horloge.

  • Interruption d’horloge : lorsqu’elle expire, le système passe en mode ordonnancement préemptif, forçant le changement de processus même si le processus actuel n’a pas terminé son quantum.
  • Interruption d’E/S : peut placer le processus en état bloqué.
  • Interruption logicielle : utilisée pour des appels système ou des signaux.

6. Gestion des files multiples et problèmes associés

Dans les systèmes à plusieurs files d’attente (par priorité, par type de tâche, etc.), il est crucial de prévenir la famine. Des stratégies comme le aging (augmentation progressive de la priorité des processus en attente) permettent de garantir que même les processus de basse priorité finissent par être exécutés.

7. Rôle du registre PSW (Processor Status Word)

Le PSW regroupe les indicateurs binaires décrivant l’état du processeur, tels que les flags de zéro, de dépassement, le mode utilisateur/privilegié, et les masques d’interruption. Bien qu’il ne contienne pas l’adresse de la prochaine instruction (c’est le rôle du PC), le PSW est indispensable pour la prise de décision lors d’une interruption ou d’une exception.

8. Synthèse et bonnes pratiques

Pour concevoir un système d’exploitation performant :

  • Utilisez le Program Counter pour suivre le flux d’instructions.
  • Choisissez l’algorithme d’ordonnancement en fonction des exigences de votre charge de travail (SJF pour minimiser le temps d’attente, RR pour la réactivité).
  • Implémentez des mécanismes de prévention de la famine, comme l’aging.
  • Assurez une gestion efficace des interruptions d’horloge pour permettre l’ordonnancement préemptif.
  • Surveillez le PSW pour détecter les états d’erreur et gérer les privilèges.

En maîtrisant ces concepts, vous serez capable d’analyser, de concevoir et d’optimiser les politiques d’ordonnancement dans tout système d’exploitation moderne.