Sommaire

Les sémaphores

Les sémaphores sont des outils de synchronisation entre processus. Ils sont gérés en mémoire vive par le noyau et permettent à différents processus de contrôler le bon déroulement de leur coopération, en particulier pour accéder à des ressources partagées en évitant les conflits d’accès.

Un sémaphore est un objet logique qui peut être pris ou libéré par un processus. Par convention entre les différents processus d’une application, seul le processus qui a pris le sémaphore peut accéder à une ressource, les autres processus se mettant en attente du sémaphore. Dès que celui-ci est relâché, un autre processus peut le prendre et accéder à la ressource.

Cette méthode est de type coopératif, car rien n’empêche un processus de ne pas tenir compte du sémaphore et d’accéder directement à la ressource, contrairement à d’autres méthodes de type impératif, comme par exemple le verrouillage impératif d’une zone de fichier.

Linux implémente deux mécanismes ayant des fonctionnalités similaires, les sémaphores System V et les sémaphores POSIX.

Les sémaphores System V sont les plus anciens dans le monde Unix, ils sont très complets, mais complexes à gérer et présentent quelques limites de conception.

Les sémaphores ...