Vous êtes sur la page 1sur 9

41

Correction TD
42

Correction TD
Accès concurrent
dans les SR
2

Les accès concurrents : rappels


• Un problème d'accès concurrent a lieu quand deux processus partagent une
ressource logicielle ou matérielle: on parle de section critique au niveau du
programme.
• Exemples:
– section de ligne ferroviaire à voie unique. Trains dans un sens ou dans l'autre,
mais pas dans les deux sens en même temps.
– Lecteurs/rédacteurs, producteurs/consommateurs

• On rentre en section critique, par une section d'entrée qui met en œuvre une
condition et on la quitte par une section de sortie.
– Section d'entrée
• Section critique : inst1, inst2, inst3…
– Section de sortie
3

Les accès concurrents : rappels


• Rappelons tout d'abord en quoi consiste ce problème. Des applications s'exécutant
de manière concurrente et partageant des ressources peuvent, dans certaines
circonstances, avoir besoin d'accéder de manière exclusive à une ou plusieurs de
ces ressources appelées ressources critiques.
• Le code exécuté nécessitant cet accès exclusif est lui-même appelé une section
critique. On fait couramment le parallèle avec une voie de chemin de fer ou un pont
étroit supportant une charge limitée susceptibles d'être empruntés par des véhicules
dans les deux sens. Le bon fonctionnement (et la survie des usagers) suppose que
seul un véhicule ne puisse utiliser, à un instant donné, la section de rail ou de route
correspondante.
• D'un point de vue informatique, ce problème est fréquent. Citons-en quelques
exemples :
– suite d'opérations dans un fichier ou une base de données ;
– accès à une ressource telle qu'une imprimante ;
– accès à une zone de mémoire centrale ; (segment de mémoire partagée) par
plusieurs processus
4

Les états d'un processus


• Un processus est dans 3 états possibles, par rapport à
l'accès à la ressource
• Demandeur : demande à utiliser la ressource, à entrer dans la section
• Dedans : dans la section critique, utilise la ressource partagée
• Dehors : en dehors de la section et non demandeur d'y entrer
• Changement d'état par un processus
• De dehors à demandeur pour demander à accéder à la ressource
• De dedans à dehors pour préciser qu'il libère la ressource
• Le passage de l'état demandeur à l'état dedans est géré par le système
et/ou l'algorithme de gestion d'accès à la ressource
5
Propriétés d'un algorithme d'exclusion
mutuelle
• Une solution n'est considérée correcte que si elle respecte les propriétés
suivantes
– Sûreté (safety) : au plus un processus est à la fois dans la section
critique (dans l'état dedans)
– Vivacité (liveness) : tout processus demandant à entrer dans la section
critique (à passer dans l'état dedans) y entre en un temps fini

• Un algorithme qui assure ces deux propriétés assure également l'absence


de deux problèmes, l'interblocage et la famine:
– Interblocage (Deadlock) : est une situation du système où il y a
plusieurs sites à l'état Demandeur et aucun ne peut accéder à la SC.
– Famine (Starvation) : aura lieu si un site qui se trouve à l'état
Demandeur ne passe jamais à l'état Dedans.
6

Solutions
• On parle d'exclusion mutuelle quand un seul processus à la fois a le droit de
rentrer en section critique.
– Solutions logicielles : Sémaphores, Moniteurs.
– Solutions matérielles : Désactiver les interruptions.
7

Solutions matérielles
• La solution la plus simple, mais qui ne peut s'appliquer que dans le cas de machines
monoprocesseurs, consiste à masquer les interruptions susceptibles de provoquer
une concurrence relativement à une ressource critique. Dans le mode superviseur
des processeurs, il est possible de manipuler le masque d'interruption du processeur,
ce qui est largement utilisé lors du développement des systèmes d'exploitation.

Vous aimerez peut-être aussi