Question

Je lis juste un article qui dit:

Lesquelles des raisons de contrôler le système d'interruption revient généralement pour avoir besoin de la synchronisation.En désactivant les interruptions, vous pouvez garantir qu'un gestionnaire d'interruption ne préemptera pas votre code actuel.De plus, Les interruptions désactivées désactive également la préemption des noyaux .Ni la désactivation de la livraison interruption ni de désactivation de la préemption de noyau fournit toute protection contre l'accès simultané d'un autre processeur.

Alors je me demande simplement la différence entre la préemption d'interruption et du noyau.

ou pourrions-nous dire désactiver la préemption du noyau désactive également les interruptions?

Était-ce utile?

La solution

Lorsqu'un processus est interrompu, le noyau exécute du code, qui peut ne pas être lié à ce que le processus fait.
Quand cela est fait, deux choses peuvent arriver:
1. Le même processus aura à nouveau la CPU.
2. Un processus différent obtiendra la CPU.Le processus actuel a été préempté.

Ainsi, la préemption ne se produira qu'après une interruption, mais une interruption ne provoque pas toujours de préemption.

Autres conseils

Ils sont différents.Les interruptions peuvent se produire à l'extérieur même du contexte du noyau, modifiant ainsi la manière dont la préemption des poignées du noyau n'affectera pas les interruptions.Cela apparaît simplement que dans le contexte de votre article, la préemption du noyau dépend des interruptions de travail (probablement parce qu'elle est mise en œuvre à l'aide d'une minuterie d'une sorte).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top