Actuellement, je lis “Comprendre le kernel Linux, 3ème édition” et p.22 je peux lire:
Dans le cas le plus simple, le processeur exécute un chemin de contrôle du kernel séquentiellement de la première instruction à la dernière. Lorsque l’un des événements suivants se produit, cependant, la CPU intercale les chemins de contrôle du kernel:
- Un processus exécuté en mode utilisateur appelle un appel système et le chemin de contrôle du kernel correspondant vérifie que la demande ne peut pas être satisfaite immédiatement; il appelle ensuite le planificateur pour sélectionner un nouveau processus à exécuter. En conséquence, un commutateur de processus se produit. Le premier chemin de contrôle du kernel n’est pas terminé et le processeur reprend l’exécution d’un autre chemin de contrôle du kernel. Dans ce cas, les deux chemins de contrôle sont exécutés pour le compte de deux processus différents.
Le chemin de contrôle du kernel peut être interrompu par un processus d’espace utilisateur effectuant un appel système? Je pensais que la priorité était plutôt:
J’ai vérifié les errata et je n’ai rien trouvé à ce sujet.
Vous avez raison à propos de la liste de priorités, mais ce que le livre essaie de dire, je pense, est:
getpid()
. Donc “Non”: le “chemin du kernel” ne peut pas être interrompu par un processus d’espace utilisateur effectuant un appel système.
Le chemin du kernel peut être interrompu pendant qu’il exécute un appel système au nom d’un processus d’espace utilisateur car: une interruption se produit ou le chemin du kernel doit attendre qu’une ressource soit disponible ou …