Exercice Corrigé Ordonnancement Des Processus – Partie 1
L‘ordonnancement du processus est à la base des systèmes d’exploitation multiprogrammés. En répartissant l’unité centrale entre les processus, le système d’exploitation peut rendre l’ordinateur plus productif. Dans ce chapitre, nous présentons des exercices corrigés sur les concepts de base de l’ordonnancement, l’idée d’allocation de ressources et discutons en détail de l’ordonnancement de l’unité centrale. FCFS, SJF, Round-Robin, Priorité et les autres algorithmes d’ordonnancement devraient être familiers à vous.
Exercice 1: Stratégies d’ordonnancement
1.1) Expliquez pourquoi certains systèmes d’exploitation ont un ou plusieurs processus inactifs.
Les processus inactifs, souvent appelés « processus zombie » ou « processus idle », sont présents dans de nombreux systèmes d’exploitation pour plusieurs raisons.
Si aucun processus n’est dans l’état « prêt », le processus inactif du système se voit attribuer l’unité centrale. Le processus inactif du système est toujours actif mais avec la priorité la plus basse, permet au planificateur de garantir qu’il y a toujours un processus prêt à s’exécuter, même lorsque aucun autre processus n’est disponible. Cela évite des situations où l’unité centrale (UC) serait inoccupée. En créant un processus inactif pour chaque cœur de processeur, les systèmes d’exploitation modernes assurent une gestion efficace des ressources et optimisent l’utilisation de l’UC.
En résumé, les processus inactifs sont essentiels pour la performance, la réactivité et l’efficacité des systèmes d’exploitation.
1.2) Expliquez la différence entre l’ordonnancement préemptif et l’ordonnancement non préemptif.
Ordonnancement préemptif: Permet à un processus en cours d’exécution d’être interrompu pour donner la priorité à un autre processus. Utilisé dans les systèmes multitâches pour assurer une réactivité élevée. Par exemple, un processus avec une priorité plus élevée peut prendre le contrôle du CPU à tout moment.
Ordonnancement non préemptif: Un processus en cours d’exécution doit se terminer ou libérer le CPU volontairement avant qu’un autre processus puisse être exécuté. Utilisé dans des systèmes où la prévisibilité est essentielle, comme certains systèmes embarqués.
En résumé, l’ordonnancement préemptif permet des interruptions pour un meilleur contrôle, tandis que l’ordonnancement non préemptif laisse les processus terminer leur exécution sans interruption.
1.3) Citez un inconvénient de l’ordonnancement préemptif.
Un inconvénient de l’ordonnancement préemptif est l’augmentation de l’overhead du système. Les interruptions fréquentes pour passer d’un processus à un autre peuvent entraîner un coût en termes de temps de gestion et de ressources, ce qui peut nuire à la performance globale, surtout si les processus sont courts et que le temps de commutation devient significatif par rapport à leur temps d’exécution.
1.4) Citez un inconvénient de l’ordonnancement non préemptif.
Un inconvénient de l’ordonnancement non préemptif est le risque de starvation. Si un processus à faible priorité est bloqué par des processus à priorité plus élevée, il peut ne jamais obtenir l’accès au CPU, entraînant des délais d’exécution imprévus et une mauvaise réactivité du système.
1.5) Expliquer comment fonctionne l’ordonnancement par queues à plusieurs niveaux (Multilevel Queues).
Il fonctionne avec plusieurs files d’attente. Chaque file d’attente a une priorité différente ou un multiplex temporel. Chaque nouveau processus est inséré dans la file d’attente supérieure, ce qui lui confère la priorité la plus élevée. Pour chaque file d’attente, le système Round Robin est utilisé. Si un processus abandonne volontairement l’unité centrale, il est réinséré dans la même file d’attente. Si un processus a utilisé toute sa tranche de temps, il est inséré dans la file d’attente immédiatement inférieure, avec une priorité plus faible.
1.6) Décrivez ce que signifie « Partage équitable » (fair share).
Une méthode d’ordonnancement est équitable lorsque chaque processus se voit attribuer l’unité centrale à un moment donné.
1.7) Laquelle des méthodes suivantes est la méthode d’ordonnancement équitable ?
A Ordonnancement en fonction des priorités
B Premier arrivé, premier servi (First Come First Served)
C Round Robin avec quantum de temps
D Ordonnancement EDF (Earliest Deadline First: Échéance la plus proche d’abord)
E Partage équitable
Les méthodes d’ordonnancement équitables sont les suivantes:
- C. Round Robin avec quantum de temps: Cette méthode alloue des tranches de temps égales à chaque tâche, ce qui favorise l’équité.
- E. Partage équitable: Cette méthode vise à garantir que tous les utilisateurs ou toutes les tâches reçoivent une part équitable des ressources.
1.8) Laquelle des méthodes suivantes est la méthode d’ordonnancement préemptif ?
A Premier arrivé, premier servi
B Round Robin avec quantum de temps
C Partage équitable
D Ordonnancement par queues à plusieurs niveaux (Multilevel Queues)
Les méthodes d’ordonnancement préemptif sont les suivantes:
- Round Robin avec quantum de temps: Cette méthode permet aux tâches d’être préemptées après l’expiration de leur tranche de temps, ce qui garantit la réactivité.
- Multilevel Queues: Cette méthode peut également préempter des tâches en fonction de leur priorité et de leur comportement, ce qui permet des ajustements dynamiques.
1.9) Laquelle des méthodes suivantes est la méthode d’ordonnancement non-préemptif ?
A Premier arrivé, premier servi
B Round Robin avec quantum de temps
C Partage équitable
D Ordonnancement par queues à plusieurs niveaux (Multilevel Queues)
Les méthodes non préemptives sont les suivantes:
- Premier arrivé, premier servi: Une fois qu’une tâche commence à s’exécuter, elle est exécutée jusqu’à son terme.
- Partage équitable: Typiquement non préemptive, car elle se concentre sur la distribution des ressources sans interrompre les tâches en cours.
Exercice 2: Ordonnancement
+-----------+-----------+----------+ | Processus | Temps CPU | Priorité | +-----------+-----------+----------+ | A | 5 ms | 15 | +-----------+-----------+----------+ | B | 10 ms | 5 | +-----------+-----------+----------+ | C | 3 ms | 4 | +-----------+-----------+----------+ | D | 9 ms | 12 | +-----------+-----------+----------+ | E | 8 ms | 7 | +-----------+-----------+----------+
Cinq processus doivent être traités sur un seul système CPU/core. Tous les processus se trouvent au point temporel 0, dans l’état « prêt ». Les priorités élevées sont caractérisées par des valeurs élevées.
2.1) Dessinez l’ordre d’exécution des processus à l’aide d’un diagramme de Gantt (ligne temporelle) pour Round Robin (quantum de temps q = 1 ms), FCFS et l’ordonnancement par priorités.
La colonne Priorité du tableau n’est pertinente que pour l’ordonnancement par priorités (Priority-Driven Scheduling) et non pour Round Robin ou FCFS.
2.2) Calculez les durées d’exécution moyennes et les temps d’attente moyens des processus.
- Round Robin (RR): Chaque processus reçoit un quantum de temps fixe (q = 1 ms). Si le processus n’a pas terminé à la fin de son quantum, il est préempté et remis à la fin de la file d’attente. Ce cycle continue jusqu’à ce que tous les processus soient terminés.
- First Come First Served (FCFS): Les processus sont exécutés dans l’ordre de leur arrivée. Le premier processus dans la file d’attente est servi jusqu’à sa terminaison, puis le suivant est exécuté.
- Priority-Driven Scheduling: Chaque processus se voit attribuer une priorité. Les processus avec une priorité plus élevée sont exécutés avant ceux avec une priorité plus basse. Si un processus de priorité plus élevée arrive, il peut préempter le processus en cours.
Le temps CPU est le temps dont le processus a besoin pour accéder au CPU afin de terminer son exécution.
Durée d’exécution = durée de vie = période de temps entre la création et la fin d’un processus = (temps CPU + temps d’attente).
+------------------------------------------+----+----+----+----+----+ | Durée d'exécution | A | B | C | D | E | +------------------------------------------+----+----+----+----+----+ | Round Robin | 20 | 32 | 13 | 25 | 30 | +------------------------------------------+----+----+----+----+----+ | FCFS(First Come First Served) | 5 | 15 | 18 | 24 | 32 | +------------------------------------------+----+----+----+----+----+ | Ordonnancement par priorités | 5 | 29 | 32 | 11 | 19 | +------------------------------------------+----+----+----+----+----+
RR (20 + 32 + 13 + 25 + 30) / 5 = 24 ms FCFS (5 + 15 + 18 + 24 + 32) / 5 = 18,8 ms PS (5 + 29 + 32 + 11 + 19) / 5 = 19,2 ms
Temps d’attente = temps pendant lequel un processus est dans l’état prêt.
Temps d’attente = temps d’exécution – temps CPU.
+------------------------------------------+----+----+----+----+----+ | Temps d'attente | A | B | C | D | E | +------------------------------------------+----+----+----+----+----+ | Round Robin | 15 | 22 | 10 | 19 | 22 | +------------------------------------------+----+----+----+----+----+ | FCFS(First Come First Served) | 0 | 5 | 15 | 18 | 24 | +------------------------------------------+----+----+----+----+----+ | Ordonnancement en fonction des priorités | 0 | 19 | 29 | 5 | 11 | +------------------------------------------+----+----+----+----+----+
RR (15 + 22 + 10 + 19 + 22) / 5 = 17,6 ms FCFS (0 + 5 + 15 + 18 + 24) / 5 = 12,4 ms PS (0 + 19 + 29 + 5 + 11) / 5 = 12,8 ms
- Exercice Corrigé Ordonnancement Des Processus – Partie 1
- Exercice Corrigé Ordonnancement Des Processus – Partie 2
- Exercice Corrigé Ordonnancement Des Processus – Partie 3
- Exercice Corrigé Ordonnancement Des Processus – Partie 4
- Exercice Corrigé Ordonnancement Des Processus – Partie 5
- Exercice Corrigé Système d’Exploitation Linux – Partie 1
- Exercice Corrigé Système d’Exploitation Linux – Partie 2
- Exercice Corrigé Système d’Exploitation Linux – Partie 3
- Exercice Corrigé Gestion Des Processus Linux – Partie 1
- Exercice Corrigé Gestion Des Processus Linux – Partie 2
- Exercice Corrigé Gestion Des Processus Linux – Partie 3
- Exercice Corrigé Gestion Des Processus Linux – Partie 4
- Exercice Corrigé Gestion Des Processus Linux – Partie 5
- Exercice Corrigé Gestion Des Processus Linux – Partie 6
- Exercice Corrigé Gestion Des Processus Linux – Partie 7
- Exercice Corrigé Gestion Des Processus Linux – Partie 8
- Exercice Corrigé Gestion Des Processus Linux – Partie 9
- Exercice Corrigé Gestion Des Processus Linux – Partie 10
- Exercice Corrigé – Gestion de la mémoire – Partie 1
- Exercice Corrigé – Gestion de la mémoire – Partie 2
- Exercice Corrigé – Gestion de la mémoire – Partie 3
- Questions techniques sur MYSQL
- QCM MySQL Corrigé – Optimisation de requêtes
- QCM Base de données avec correction
- QCM sur PHP
- QCM Symfony
- QCM AngularJS
- QCM React
- QCM HTML / CSS
- QCM Java – Programmation Orientée Objet
- QCM Python
- QCM Cloud Computing
- QCM Framework Spring
- QCM Javascript
- QCM jQuery
- QCM Oracle
- QCM sur GIT – Gestionnaire de version
- QCM Linux – Gestion de processus
- QCM Réseau
- QCM Architecture des ordinateurs
- QCM Securité informatique
- QCM En Informatique Générale
- QCM en C
- QCM en C#
- QCM sur l'algorithmique
- QCM Word
- QCM Excel
- QCM PowerPoint
- QCM Access
L’article Exercice Corrigé Ordonnancement Des Processus – Partie 1 est apparu en premier sur WayToLearnX.