Noyau, shell, syscall Flashcards
Quels sont les deux modes d’exécution d’un CPU ?
Mode utilisateur et mode superviseur
Quel mode d’exécution est utilisé par les applications ?
Mode utilisateur
Quel mode d’exécution est utilisé par le noyau ?
Mode superviseur
Pourquoi existe-t-il un mode utilisateur et un mode superviseur ?
Sécurité et stabilité du système
Quelles sont les limitations du mode utilisateur ?
Accès restreint au matériel et aux instructions privilégiées
Comment un programme utilisateur peut-il exécuter une instruction privilégiée ?
En effectuant un appel système (syscall)
Comment un programme repasse-t-il du mode superviseur au mode utilisateur ?
Via l’instruction de retour d’interruption (RETI)
Pourquoi une application ne peut-elle pas accéder directement à la mémoire du noyau ?
Pour éviter les failles de sécurité et l’instabilité du système
Quel est le mode d’exécution par défaut au démarrage d’un ordinateur ?
Mode superviseur
Quelles instructions permettent de passer en mode superviseur ?
Syscall, INT (x86), SWI (ARM)
Quel est le risque si une application pouvait exécuter des instructions en mode superviseur ?
Risque de corruption du système ou de compromission de la sécurité
Que se passe-t-il si un programme en mode utilisateur tente d’exécuter une instruction privilégiée ?
Une exception est levée par le CPU
Quel mécanisme permet de revenir au mode utilisateur après un syscall ?
Le noyau utilise une instruction de retour d’interruption
Qu’est-ce qu’une trappe (trap) ?
Une interruption logicielle pour appeler le noyau
Pourquoi utilise-t-on des trappes en OS ?
Pour exécuter du code en mode superviseur depuis une application
Quelle est la différence entre une trappe et un appel système ?
Une trappe est une interruption logicielle, un syscall est une trappe volontaire
Donne un exemple de trappe involontaire.
Division par zéro
Donne un exemple de trappe volontaire.
Un appel système (syscall)
Pourquoi une trappe force-t-elle un passage en mode superviseur ?
Pour que le noyau puisse gérer l’événement
Quelle est la relation entre syscall et trappe ?
Un syscall est un type de trappe utilisé volontairement
Quelle est la principale différence entre un syscall et une exception ?
Un syscall est volontaire, une exception est une erreur
Quel est le rôle d’une trappe dans la gestion des erreurs ?
Permet au noyau de traiter une exception et éviter un crash
Quelle instruction est utilisée pour revenir d’une trappe ?
RETI
Quels sont les principaux composants d’un ordinateur ?
CPU, RAM, bus, périphériques
Quel est le rôle principal du noyau ?
Gérer les ressources et assurer la communication entre matériel et applications
Pourquoi le noyau fonctionne-t-il en mode superviseur ?
Pour contrôler l’accès aux ressources système
Quelles sont les principales fonctions du noyau ?
Gestion des processus, mémoire, périphériques et stockage
Qu’est-ce qu’un processus ?
Un programme en cours d’exécution
Qu’est-ce que le PID d’un processus ?
Son identifiant unique
Quel syscall permet de créer un processus ?
fork()
Quel syscall permet d’exécuter un autre programme dans un processus ?
exec()
Quel syscall permet d’attendre la fin d’un processus enfant ?
wait()
Quelle est la différence entre un programme et un processus ?
Un processus est un programme en cours d’exécution
Quel est le rôle de l’ordonnanceur en OS ?
Gérer l’exécution des processus
Comment une application peut-elle fermer un processus proprement ?
En appelant exit()
Quel syscall permet de connaître son propre PID ?
getpid()
Comment une application accède-t-elle au matériel ?
Via des appels système (syscalls)
Pourquoi les appels système sont-ils nécessaires ?
Pour éviter qu’un programme accède directement aux ressources critiques
Quel est le rôle principal des syscalls ?
Permettre aux programmes d’accéder aux services du noyau
Quel est le rôle du syscall dispatcher ?
Identifier et exécuter le bon appel système
Comment un programme peut-il lire un fichier sans accès direct au matériel ?
En utilisant un syscall (read())
Que signifie IRQ ?
Interrupt Request
Un message envoyé par un périphérique vers le processeur de manière asynchrone.
Quelle est la différence entre IRQ et polling ?
IRQ est asynchrone, tandis que polling nécessite une vérification continue de l’état des périphériques (inefficace)
Que contient chaque IRQ ?
Un numéro identifiant le périphérique d’origine
Cela permet de savoir quel périphérique a généré l’interruption.
Qu’est-ce qu’une ISR ?
Interrupt Service Routine
Un fragment de programme exécuté par le CPU à chaque occurrence de l’événement matériel associé.
Que signifie RETI dans le contexte des ISR ?
Retour d’interruption
Instruction qui termine toujours une ISR.
Que se passe-t-il pendant l’exécution d’une ISR ?
Les nouvelles IRQ sont temporairement mises en attente
Cela permet au programmeur d’être «seul au monde».
Qu’est-ce qu’une Table des Vecteurs d’Interruptions ?
Tableau de pointeurs indiquant l’adresse de chaque ISR
Le CPU utilise le numéro d’IRQ pour savoir où sauter
Que définit le noyau d’une machine ?
L’ensemble des ISR de la machine et toutes les fonctions qu’elles appellent