Routine de section critique (csr)

Définition - Que signifie la routine de la section critique (CSR)?

La routine de section critique (CSR) est une section de code pour laquelle un processus obtient un verrou exclusif afin qu'aucun autre processus ne puisse l'exécuter simultanément. Souvent, un ou plusieurs processus s'exécutent simultanément dans un système d'exploitation, forçant ces processus à se concurrencer pour accéder aux fichiers et aux ressources. Un seul processus doit être autorisé à accéder à la ressource pendant qu'une partie du code lié à la ressource est exécutée.

Pour garantir qu'un processus du CSR n'échoue pas pendant que d'autres processus sont en attente, une limite de temps est fixée par le composant de gestion de processus. Ainsi, un processus ne peut avoir accès à un verrou exclusif que pendant une durée limitée.

Definir Tech explique la routine de la section critique (CSR)

Les principales exigences pour la mise en œuvre d'un CSR sont:

  • Exclusion mutuelle: Lorsqu'un processus s'exécute dans un CSR, aucun autre processus ne peut entrer.
  • Condition de progression: si aucun processus n'est en cours d'exécution dans un CSR et que certains processus souhaitent y entrer, ils peuvent le faire dans un laps de temps défini. L'un des processus entre dans le CSR pendant que d'autres attendent.
  • Attente limitée: Lorsqu'un processus demande à entrer dans un CSR et avant que la demande ne soit accordée, il doit y avoir une limite supérieure sur le nombre de processus en attente pour entrer dans le CSR pendant cette période pour garantir qu'aucun processus ne meurt de faim et que chaque processus dans la file d'attente. obtient un tour pour entrer dans le CSR.

Le CSR, dans un certain morceau de code, peut être identifié grâce aux propriétés suivantes:

  • Le code est caractérisé par une séquence d'opérations de lecture-écriture-mise à jour.
  • Des sections du code modifient des variables dans un autre code, qui exécute une séquence d'opérations de lecture-écriture-mise à jour.
  • La présence de code qui accède à une structure de données d'un autre code en le modifiant, ou de code qui utilise une structure de données qui pourrait être modifiée par un autre processus.

Le concept de section critique peut être appliqué au matériel qui utilise la fonction d'interruptions. Chaque fois qu'un processus entre dans une section critique, toutes les interruptions sur le processeur doivent être désactivées afin que les autres processus ne puissent pas demander un verrou sur la ressource. De même, lorsqu'un processus termine l'exécution, les interruptions sont à nouveau activées. Une autre approche consiste à utiliser un sémaphore, une variable spéciale qui agit comme un signal pour diriger l'exécution ou la fin d'un processus.