Ce document, conçu pour les étudiants universitaires en Systèmes d'Exploitation Avancés, sert de support de Travaux Dirigés (TD2) axé sur l'ordonnancement des processus. Il vise à renforcer la compréhension des mécanismes de gestion du CPU à travers des exercices pratiques.
Il couvre les notions suivantes :
- Les paramètres clés des processus (durée d'exécution, instant de création, priorité).
- L'application de la politique d'ordonnancement Tourniquet (Round Robin) avec quantum.
- L'application de la politique d'ordonnancement à priorité préemptive.
- L'application de la politique d'ordonnancement à priorité préemptive avec quantum.
Rappel sur l'Ordonnancement des Processus dans les Systèmes d'Exploitation Avancés
Ce document est un rappel et un exercice pratique concernant l'ordonnancement des processus, un concept fondamental dans les systèmes d'exploitation avancés.
Exercice : Ordonnancement des Processus
Considérons l'ensemble de processus (ou entités) suivant. Pour chacune de ces entités, les informations données sont :
di: La durée d'exécution prévue du processus.ti: L'instant de création ou d'arrivée du processus (par exemple, "1-ε" signifie juste avant l'instant 1, ou à l'instant 1).Prioi: La priorité du processus. Une valeur plus élevée indique un processus plus prioritaire.
Liste des Processus
| Processus | di | ti | Prioi |
|---|---|---|---|
| P1 | 7 | 0 | 2 |
| P2 | 4 | 0 | 3 |
| P3 | 6 | 1 | 1 |
| P4 | 3 | 1 | 4 |
| P5 | 2 | 1 | 3 |
| P6 | 4 | 2 | 1 |
| P7 | 1 | 4 | 4 |
Politiques d'Ordonnancement à Appliquer
Pour l'ensemble de processus décrit ci-dessus, il est demandé d'appliquer et d'analyser les trois politiques d'ordonnancement suivantes :
(a) Tourniquet (Round Robin) avec un quantum = 3
Cette politique alloue un petit laps de temps fixe, appelé "quantum", à chaque processus. Lorsqu'un processus a utilisé tout son quantum ou qu'il se bloque, il est préempté et un autre processus de la file d'attente est élu pour s'exécuter. Le processus préempté est remis à la fin de la file d'attente des processus prêts.
(b) À priorité préemptive
Dans ce mode, le processus avec la plus haute priorité parmi les processus prêts est toujours exécuté. Si un processus arrive ou devient prêt avec une priorité supérieure à celle du processus actuellement en cours d'exécution, ce dernier est immédiatement préempté. Hypothèse spécifique : quand un processus se voit retirer le CPU à l'instant t, il est remis dans la file en tête.
(c) À priorité préemptive avec un quantum = 3
Cette politique combine la préemption par priorité avec la gestion par quantum. Le processus le plus prioritaire est exécuté, mais pour une durée maximale équivalente au quantum. Si son quantum s'épuise avant la fin de son exécution, il est préempté. Hypothèse spécifique : quand un processus se voit retirer le CPU à l'instant t alors qu'il n'a pas épuisé son quantum, il est remis dans la file en tête, et on note qu'il n'aura pas droit à un quantum entier lorsqu'il sera à nouveau élu, mais seulement à la quantité qu'il n'a pas pu épuiser.
Foire Aux Questions (FAQ) sur l'Ordonnancement des Processus
- Q: Qu'est-ce que l'ordonnancement des processus dans un système d'exploitation ?
- R: L'ordonnancement des processus est la méthode utilisée par le système d'exploitation pour décider quel processus doit être exécuté par le CPU et pendant combien de temps. Son objectif est d'optimiser l'utilisation du processeur, de minimiser les temps d'attente et de garantir une bonne réactivité du système.
- Q: Pourquoi le concept de "priorité" est-il important en ordonnancement ?
- R: La priorité permet de distinguer l'importance relative des processus. Les processus à haute priorité, souvent critiques pour le système ou interactifs, peuvent être exécutés avant ceux à basse priorité, assurant ainsi que les tâches essentielles ou urgentes soient traitées rapidement.
- Q: Comment un "quantum" affecte-t-il l'équité de l'ordonnancement ?
- R: Le quantum, utilisé dans des algorithmes comme le Tourniquet (Round Robin), garantit qu'aucun processus ne monopolise le CPU indéfiniment. En allouant des tranches de temps égales à chaque processus à tour de rôle, il assure une forme d'équité en donnant à tous les processus une chance d'exécuter leurs instructions, ce qui est crucial pour les systèmes multi-utilisateurs ou interactifs.