Environnement d'interruption

Une routine s'exécute dans l'environnement d'interruption lorsqu'elle est appelée pour le compte d'un gestionnaire d'interruption. Une routine de noyau en cours d'exécution dans cet environnement ne peut pas demander de données qui ont été paginées hors de la mémoire et ne peuvent donc pas provoquer de défauts de page en accédant au code ou aux données pagables. De plus, la routine du noyau a une pile de taille limitée, n'est pas sujette à un remplacement par un autre processus et ne peut exécuter aucune fonction qui le ferait dormir.

Une routine de cet environnement n'est interruptible que par des interruptions dont la priorité est plus favorisée que la priorité en cours ou par des exceptions. Ces routines ne peuvent pas utiliser les appels système et ne peuvent utiliser que les services de noyau disponibles dans les environnements de processus et d'interruption.

Un processus en mode noyau peut également placer Lui-même dans un environnement similaire à l'environnement d'interruption. Cette action, qui se produit lorsque la priorité d'interruption est remplacée par une priorité plus favorisée que INTBASE, peut être effectuée en appelant le service de noyau I_disable ou Verrouillage disable_lock . Un processus en mode noyau est parfois nécessaire pour sérialiser l'accès à une ressource partagée par une routine en cours d'exécution dans l'environnement d'interruption. Dans ce cas, le processus fonctionne sous la plupart des mêmes restrictions qu'une routine en cours d'exécution dans l'environnement d'interruption. Toutefois, les processus _sommeil, E_attente, E_sleepl, Et_wait, Verrouillageet Unlockl peuvent dormir, attendre et utiliser les services de noyau de verrouillage si le mot d'événement ou le mot de verrouillage est épingle.

Les routines exécutées dans cet environnement peuvent affecter négativement les performances en temps réel du système et sont donc limitées à une longueur de chemin maximale spécifique. Les instructions relatives à la longueur maximale du chemin d'accès sont déterminées par la priorité d'interruption à laquelle les routines sont exécutées. Compréhension Interruptions fournit plus d'informations.