Devoir 6 : Gestion Processus ⚓︎
Exercice 1⚓︎
Ordonnancement de processus⚓︎
D'après 2021, Métropole, Candidats Libres, J2, Ex. 2
Question 1
Les états possibles d'un processus sont : « prêt », « élu », « terminé » et « bloqué ».
1.a. Expliquer à quoi correspond l'état « élu ».
1.b. Proposer un schéma illustrant les passages entre les différents états.
Question 2
On suppose que quatre processus C₁, C₂, C₃ et C₄ sont créés sur un ordinateur, et qu'aucun autre processus n'est lancé sur celui-ci, ni préalablement ni pendant l'exécution des quatre processus.
L'ordonnanceur, pour exécuter les différents processus prêts, les place dans une structure de données de type file. Un processus prêt est enfilé et un processus élu est défilé.
2.a. Parmi les propositions suivantes, recopier celle qui décrit le fonctionnement des entrées/sorties dans une file :
- Premier entré, dernier sorti
- Premier entré, premier sorti
- Dernier entré, premier sorti
2.b. On suppose que les quatre processus arrivent dans la file et y sont placés dans l'ordre C₁, C₂, C₃ et C₄.
- Les temps d'exécution totaux de C₁, C₂, C₃ et C₄ sont respectivement 100 ms, 150 ms, 80 ms et 60 ms ;
- Après 40 ms d'exécution, le processus C₁ demande une opération d'écriture disque, opération qui dure 200 ms. Pendant cette opération d'écriture, le processus C₁ passe à l'état bloqué ;
- Après 20 ms d'exécution, le processus C₃ demande une opération d'écriture disque, opération qui dure 10 ms. Pendant cette opération d'écriture, le processus C₃ passe à l'état bloqué.
Sur la frise chronologique ci-dessous, les états du processus C₂ sont donnés. Compléter la frise avec les états des processus C₁, C₃ et C₄.
Question 3
On trouvera ci- dessous deux programmes rédigés en pseudo-code.
Verrouiller un fichier signifie que le programme demande un accès exclusif au fichier et l'obtient si le fichier est disponible.
Programme 1 | Programme 2 |
---|---|
Verrouiller fichier_1 | Verrouiller fichier_2 |
Calculs sur fichier_1 | Verrouiller fichier_1 |
Verrouiller fichier_2 | Calculs sur fichier_1 |
Calculs sur fichier_1 | Calculs sur fichier_2 |
Calculs sur fichier_2 | Déverrouiller fichier_1 |
Calculs sur fichier_1 | Déverrouiller fichier_2 |
Déverrouiller fichier_2 | |
Déverrouiller fichier_1 |
3.a. En supposant que les processus correspondant à ces programmes s'exécutent simultanément (exécution concurrente), expliquer le problème qui peut être rencontré.
3.b. Proposer une modification du programme 2 permettant d'éviter ce problème.
Corrige
1.a Un processus élu est en cours d'exécution par le processeur actuellement.
1.b.
flowchart LR
A(prêt) --> B(élu)
B --> A
B --> C(bloqué)
C --> A
B ---> D(terminé)
2.a La file correspond au paradigme " Premier entré, premier sorti ".
2.b.
3.a. Il s'agit d'un problème d'interblocage car les deux processus verrouillent simultanément les fichiers 1 et 2.
3.b. On échange simplement les deux premières lignes du programme 2 :
Programme 1 | Programme 2 |
---|---|
Verrouiller fichier_1 | Verrouiller fichier_1 |
Calculs sur fichier_1 | Verrouiller fichier_2 |
Verrouiller fichier_2 | Calculs sur fichier_1 |
Calculs sur fichier_1 | Calculs sur fichier_2 |
Calculs sur fichier_2 | Déverrouiller fichier_1 |
Calculs sur fichier_1 | Déverrouiller fichier_2 |
Déverrouiller fichier_2 | |
Déverrouiller fichier_1 |
Exercice 2 :⚓︎
D'après 2022, Amérique du Sude, J1, Ex. 3
Exo
Les parties A et B peuvent être traitées indépendamment.
A. Ordonnancement des processus⚓︎
Dans le laboratoire d'analyse médicale d'un hôpital, plusieurs processus peuvent demander l'allocation du processeur simultanément.
Le tableau ci-dessous donne les demandes d'exécution de quatre processus et indique :
- le temps d'exécution du processus (en unité de temps) ;
- l'instant d'arrivée du processus sur le processeur (en unité de temps) ;
- le numéro de priorité du processus (classé de 1 à 10).
Plus la priorité est grande plus le numéro de priorité est petit.
Ainsi le processus P3, du tableau ci-dessous, est plus prioritaire que le processus P1. L'ordonnancement est de type préemptif, ce qui signifie qu'à chaque unité de temps, le processeur choisit d'exécuter le processus ayant le plus petit numéro de priorité (un seul processus à la fois). Ceci peut provoquer la suspension d'un autre processus qui reprendra lorsqu'il deviendra le plus prioritaire dans la file d'attente.
Processus | Temps d'exécution |
Instant d'arrivée |
Numéro de priorité |
---|---|---|---|
P1 | 3 | 0 | 4 |
P2 | 4 | 2 | 2 |
P3 | 3 | 3 | 1 |
P4 | 4 | 5 | 3 |
Question 1
1.a Reproduire le diagramme ci-dessous, sur votre copie, et indiquer dans chacune des cases le processus exécuté par le processeur entre deux unités de temps (il peut y avoir des cases vides).
1.b Donnez le diagramme de Gantt pour l'exécution de ces différents processus
Question 2
Recopier et compléter les temps de séjour ainsi que les temps d'attente de chacun des processus (toujours en unités de temps).
Temps de séjour= instant de terminaison - instant d'arrivée
Temps d'attente = temps de séjour - temps d'exécution
Processus | Temps d'exécution |
Instant d'arrivée | Temps de séjours | Temps d'attente |
---|---|---|---|---|
P1 | 3 | 0 | 14-0=14 | 14-3=11 |
P2 | 4 | 2 | ||
P3 | 3 | 3 | ||
P4 | 4 | 5 |
Question 3
À quelles conditions le temps d'attente d'un processus peut-il être nul ?
Corrige
Partie A : Ordonnancement des processus
Processus | Temps d'exécution | Instant d'arrivée | Temps de séjour | Temps d'attente |
---|---|---|---|---|
P1 | \(3\) | \(0\) | \(14-0=14\) | \(14 - 3 = 11\) |
P2 | \(4\) | \(2\) | \(9-2=7\) | \(7 - 4 = 3\) |
P3 | \(3\) | \(3\) | \(6-3=3\) | \(3 - 3 = 0\) |
P4 | \(4\) | \(5\) | \(13-5=8\) | \(8 - 4 = 4\) |
- Le temps d'attente d'un processus est nul lorsque le temps de séjour est égal au temps d'exécution. C'est à dire lorsque le processus était le plus prioritaire durant la totalité de son temps d'exécution.