À retenir
- Accès exclusif : un seul utilisateur à la fois.
- Nécessite une protection (verrouillage) pour éviter les crashs.
- Un mauvais partage peut mener à une condition de concurrence (race condition).
Une ressource critique est un composant (matériel ou logiciel) qui ne peut être utilisé que par un seul programme ou une seule tâche à la fois. Si plusieurs processus essayaient d'y accéder en même temps, cela provoquerait des erreurs ou des incohérences, un peu comme deux personnes essayant d'écrire simultanément sur la même feuille de papier avec le même stylo.
Étymologie
Le terme vient du latin resurgere (ressource, ce qui aide) associé à l'adjectif critique (du grec kritikos), qui désigne ici un point de décision crucial ou une zone de danger. En informatique, cela souligne l'aspect vital de la gestion de cet élément pour la stabilité du système.
Exemples d'usage
- Une imprimante : elle ne peut imprimer qu'un seul document à la fois.
- Un fichier de configuration : si deux logiciels tentent de le modifier exactement au même instant, le fichier risque d'être corrompu.
- Une variable globale dans un code informatique partagé entre plusieurs fils d'exécution (threads).
Cas d'usage
On rencontre ce concept principalement en programmation concurrente (multithreading) et dans la conception des systèmes d'exploitation. Il intervient dès qu'un système doit coordonner l'accès à du matériel (disque dur, port série) ou à des données partagées pour éviter les conflits.
Bonnes pratiques
Pour gérer une ressource critique, il est impératif d'utiliser des mécanismes de synchronisation comme les verrous (locks), les mutex ou les sémaphores. La règle d'or est de libérer la ressource le plus rapidement possible après usage pour ne pas bloquer les autres programmes.
Synonymes
Antonymes
Conseil
Si vous débutez en programmation, voyez la ressource critique comme une place de parking unique : avant de s'y garer, il faut vérifier qu'elle est libre et mettre un panneau 'occupé' pour que personne d'autre ne tente de s'y mettre en même temps que vous.
Questions fréquentes
Que se passe-t-il si on ne protège pas une ressource critique ?
Cela crée une 'race condition' (condition de concurrence) : les données peuvent être corrompues, le programme peut produire des résultats imprévisibles ou le système peut totalement planter.
Comment un programme réserve-t-il une ressource ?
Il utilise généralement un 'mutex' (mutual exclusion), une sorte de ticket qui donne le droit exclusif d'accès tant qu'il n'est pas rendu.