Aller au contenu

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

Frise à compléter

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.

Frise complétée

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

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