Accueil
 1  Qu'est ce qu'un système d'exploitation ?
 2  Comment passer en mode noyau ?
 2.1  Observer les appels systèmes
 2.2  Gestion de la mémoire
 2.3  Primitives de synchronisation: les sémaphores
   
   
   
   
 

 Contacts

W3C validator

Département INF  
 Titre du cours


2 Comment passer en mode noyau ?

2 méthodes:

  • interruption
    • interruption logicielle
      • Générée par le processeur en exécutant une instruction
      • division par zéro, accès mémoire illicite
    • interruption générée par le matériel (IRQ)
      • “Je viens de recevoir un message.” – la carte réseau
      • “J’ai fini de copier les données sur le disque dur.” – le moteur DMA
  • appel système
    • l’utilisateur demande à l’OS un service

    previous     next 


Lorsqu’une interruption est reçue, le processeur suspend l’exécution du thread, bascule en mode noyau, et appelle la routine traitant l’interruption. Lorsque la routine se termine, le processeur rebascule en mode utilisateur est reprend l’exécution du thread.

Un appel système consiste à appeler une fonction exécuté en mode noyau. Le passage du mode utilisateur au mode noyau peut se faire en générant une interruption logicielle particulière (par exemple sur les processeurs ARM ou les processeurs x86 32 bits), ou en exécutant une instruction particulière (par exemple, l’instruction syscall sur les processeurs x86 64 bits) qui a un effet équivalent. Le kernel exécute alors la fonction correspondant au numéro de l’appel système demandé. Lorsque l’appel système se termine, on sort du traitant d’interruption, et le processeur rebascule en mode utilisateur.

François Trahay, Télécom SudParis, CSC4103 – Programmation système, 2019–2020