![]() |
|
Exercice 1
Question 1
Question 2
remarque : l'ordre d'appel des sémaphores d'exclusion mutuelle par rapport à ceux du schéma producteur consommateur n' pas
d'importance.
Exercice 2
Question 1
Lorsque l'employé saisit une commande, l'écriture sur disque d'une ligne à la fois, implique que, à un instant donné, le disque
ne contient qu'une partie de la commande. Si le processus de facturation est lancé, il ne trouvera pas toutes les lignes de
la commande pour éditer la facture, qui sera donc partielle. Au moment où on crée une commande, il faut donc interdire au
processus de facturation d'accéder aux commandes.
Question 2 - question 3
La solution proposée garantit bien l'accès en exclusion mutuelle à l'imprimante par les deux processus. Le processus de facturation
réserve l'imprimante pendant le traitement des factures d'une période. Ces factures seront donc bien éditées de manière consécutive. Par
ailleurs, comme le processus réserve également le fichier des commandes, aucune commande ne peut être en cours de saisie pendant
l'édition des factures.
Question 4
L'
interblocage
est une situation où un ensemble de processus sont bloqués en attente d'une ressource possédée par un autre processus de l'ensemble. Chacun
attend qu'un autre veuille bien libérer la ressource qu'il attend. Ceci ne peut se faire sans une intervention extérieure,
puisqu'ils sont tous bloqués. Or on ne peut débloquer un processus qu'en lui donnant toutes les ressources nécessaires, et
donc en réquisitionnant celle qu'il attend et qui est possédée par un autre processus de l'ensemble.
Question 5
Pour ne plus avoir d'interblocage, une des solutions est de réserver les ressources dans le même ordre, puisque, dans ce cas,
il ne peut plus y avoir de circularité dans les attentes de ressources. Dans le processus de facturation, il faut donc réserver
le fichier COM en premier.
Exercice 3
Question 1
Deux processus P1 et P2 exécutent chacun de leur côté, la même opération CredDeb_Compte(10, Crediter,100). le déroulement
de ces opérations peut être le suivant. le solde final sera finalement de 1100 à la place de 1200.
Question 2
Il suffit de placer l'exécution de la procédure CredDeb_Compte en exclusion mutuelle, soit avec ACCES sémaphore initialisé
à 1 :
Question 3
Cette fois, il faut mettre en place un schéma lecteurs/rédacteurs. La procédure CredDeb_Compte reste comme en Q2. La procédure
Donner_Solde devient :
Exercice 4
Lors de l'utilisation d'une
ressource critique
par une tâche, il est habituel d'ajouter aux paramètres de description de la tâche ceux supplémentaires suivant :
Question 1
Comme le montre la figure, à l'instant t=8, la tâche 3 est bloquée par la tâche 2 parce qu'elle est plus prioritaire qu'elle.
Mais comme la tâche 1 est en attente de la ressource critique (occupée par la tâche 3) depuis l'instant t=7, on observe donc
que la tâche 2 est exécutée avant la tâche 1 : c'est le phénomène d'inversion de priorité.
Question 2
Pour éviter ce problème d'inversion de priorité, à l'instant t=7, lorsque la tâche 1 se met en attente de la ressource occupée
par la tâche 3, la tâche 3 prend la priorité de la tâche 1. Par conséquent, à l'instant t=8, la tâche 3 est plus prioritaire
que la tâche 2 et continue à s'exécuter. L'exécution de la tâche 2 se trouve ainsi repoussée à l'instant t=10 après la tâche
1 (cf. figure 3.15).
|