Podcast
Questions and Answers
Qu'est-ce qu'un SoC (System on Chip)?
Qu'est-ce qu'un SoC (System on Chip)?
- Un processeur spécialisé pour les opérations graphiques.
- Un circuit contenant un système entier, le processeur, la mémoire et les contrôleurs de périphériques. (correct)
- Un type de mémoire utilisée dans les ordinateurs modernes.
- Un logiciel utilisé pour le développement de systèmes embarqués.
Quelle est la différence principale entre la mémoire RAM et ROM?
Quelle est la différence principale entre la mémoire RAM et ROM?
- La RAM est utilisée pour le stockage à long terme et la ROM pour le stockage temporaire.
- La ROM est plus rapide que la RAM.
- La RAM est volatile et la ROM est non-volatile. (correct)
- Il n'y a pas de différence significative.
Quel composant permet de faire des entrées-sorties dans almo1 (le SoC vu en cours)?
Quel composant permet de faire des entrées-sorties dans almo1 (le SoC vu en cours)?
- Le composant TTY. (correct)
- Le composant ICU.
- Le composant TIMER.
- Le composant BUS.
Quel composant peut initier une requête de lecture et d'écriture sur le bus dans almo1?
Quel composant peut initier une requête de lecture et d'écriture sur le bus dans almo1?
Quel est le rôle de l'ICU (Interrupt Controller Unit) dans almo1?
Quel est le rôle de l'ICU (Interrupt Controller Unit) dans almo1?
Qu'est-ce que le registre TTY_STATUS indique dans le contrôleur TTY?
Qu'est-ce que le registre TTY_STATUS indique dans le contrôleur TTY?
Dans quel fichier se trouve la description de l'espace d'adressage du SoC?
Dans quel fichier se trouve la description de l'espace d'adressage du SoC?
Comment imposer le placement d'adresse d'une fonction ou d'une variable en mémoire lors de la production d'un programme exécutable?
Comment imposer le placement d'adresse d'une fonction ou d'une variable en mémoire lors de la production d'un programme exécutable?
Comment le vecteur de syscall est-il structuré dans le système d'exploitation ?
Comment le vecteur de syscall est-il structuré dans le système d'exploitation ?
Quelle est la principale fonction de la fonction _start lors du démarrage d'un programme utilisateur ?
Quelle est la principale fonction de la fonction _start lors du démarrage d'un programme utilisateur ?
Que se passe-t-il avec l'exécution d'un programme utilisateur lorsqu'une interruption se produit ?
Que se passe-t-il avec l'exécution d'un programme utilisateur lorsqu'une interruption se produit ?
Comment une IRQ est-elle généralement déclenchée ?
Comment une IRQ est-elle généralement déclenchée ?
Que se passe-t-il après qu'une interruption est traitée par le système d'exploitation ?
Que se passe-t-il après qu'une interruption est traitée par le système d'exploitation ?
Comment le noyau détermine-t-il quelle routine d'interruption appeler lors d'une IRQ ?
Comment le noyau détermine-t-il quelle routine d'interruption appeler lors d'une IRQ ?
Quelle est la signification de masquer une IRQ dans le système d'exploitation ?
Quelle est la signification de masquer une IRQ dans le système d'exploitation ?
Qui a le pouvoir de demander le masquage d'une IRQ ?
Qui a le pouvoir de demander le masquage d'une IRQ ?
Pourquoi utilise-t-on le mot clé volatile en C pour les registres de périphériques ?
Pourquoi utilise-t-on le mot clé volatile en C pour les registres de périphériques ?
Quel est le rôle de l'éditeur de liens (linker) dans la chaîne de compilation ?
Quel est le rôle de l'éditeur de liens (linker) dans la chaîne de compilation ?
Qu'est-ce qu'un fichier objet dans la chaîne de compilation ?
Qu'est-ce qu'un fichier objet dans la chaîne de compilation ?
Qu'est-ce que la 'compilation croisée' ?
Qu'est-ce que la 'compilation croisée' ?
Quel est le rôle principal du système d'exploitation dans un ordinateur ?
Quel est le rôle principal du système d'exploitation dans un ordinateur ?
Comment une application utilisateur utilise-t-elle les services du kernel ?
Comment une application utilisateur utilise-t-elle les services du kernel ?
Comment le kernel se protège-t-il des applications utilisateur dans un système MIPS ?
Comment le kernel se protège-t-il des applications utilisateur dans un système MIPS ?
Quel est le rôle principal de kentry dans un système d'exploitation ?
Quel est le rôle principal de kentry dans un système d'exploitation ?
Quelle instruction spécifique permet de sortir de kentry et de revenir à l'exécution normale après le traitement d'une interruption?
Quelle instruction spécifique permet de sortir de kentry et de revenir à l'exécution normale après le traitement d'une interruption?
Quelle est la syntaxe correcte des instructions mtc0 et mfc0 dans MIPS?
Quelle est la syntaxe correcte des instructions mtc0 et mfc0 dans MIPS?
Que contient le champ XCODE du registre c0_cause?
Que contient le champ XCODE du registre c0_cause?
Quelle est la principale différence entre les modes kernel et user sur un processeur MIPS?
Quelle est la principale différence entre les modes kernel et user sur un processeur MIPS?
Une adresse mappée en mémoire est-elle toujours accessible quel que soit le mode d'exécution du MIPS?
Une adresse mappée en mémoire est-elle toujours accessible quel que soit le mode d'exécution du MIPS?
Quel est le rôle des registres c0_sr, c0_cause et c0_epc dans le coprocesseur 0 du MIPS?
Quel est le rôle des registres c0_sr, c0_cause et c0_epc dans le coprocesseur 0 du MIPS?
Quel rôle joue l'instruction 'syscall' dans le traitement des interruptions MIPS?
Quel rôle joue l'instruction 'syscall' dans le traitement des interruptions MIPS?
Comment les instructions mtc0 et mfc0 peuvent-elles être décrites par rapport aux autres instructions?
Comment les instructions mtc0 et mfc0 peuvent-elles être décrites par rapport aux autres instructions?
Flashcards
Mot clé volatile en C
Mot clé volatile en C
Indique que la valeur du registre peut changer à tout moment, utile pour les registres de périphériques.
Rôle du linker
Rôle du linker
Le linker fusionne des fichiers objet et des bibliothèques pour créer un fichier exécutable.
Fichier objet
Fichier objet
Un fichier contenant du code binaire pour le processeur, généré par le compilateur.
Compilation croisée
Compilation croisée
Compiler un programme sur une plateforme pour qu'il s'exécute sur une autre.
Signup and view all the flashcards
Fonctionnement du système d'exploitation
Fonctionnement du système d'exploitation
Le système d'exploitation gère les ressources matérielles et logicielles, et fournit des interfaces aux applications.
Signup and view all the flashcards
Communication application-kernel
Communication application-kernel
Les applications communiquent avec le kernel via des appels système.
Signup and view all the flashcards
Protection du kernel (MIPS)
Protection du kernel (MIPS)
Le mode d'exécution du MIPS sépare le kernel des applications utilisateur.
Signup and view all the flashcards
Rôle de kentry
Rôle de kentry
Kentry est le point d'entrée principal du kernel, quelle que soit la cause de l'activation.
Signup and view all the flashcards
Qu'est-ce qu'un SoC (System on Chip) ?
Qu'est-ce qu'un SoC (System on Chip) ?
Un composant électronique intégrant un système complet, incluant un processeur, de la mémoire et des contrôleurs de périphériques, sur une seule puce.
Signup and view all the flashcards
Quelle est la différence entre la mémoire RAM et ROM ?
Quelle est la différence entre la mémoire RAM et ROM ?
La RAM est une mémoire volatile, ce qui signifie que les données sont perdues lorsqu'elle est éteinte. La ROM est une mémoire non-volatile, les données sont conservées même sans alimentation.
Signup and view all the flashcards
Quel composant permet de faire des entrées-sorties dans almo1 (le SoC vu en cours)?
Quel composant permet de faire des entrées-sorties dans almo1 (le SoC vu en cours)?
Le composant TTY permet la communication entre le SoC et le terminal TTY, ce qui fait référence à une interface de terminal texte. Il permet aux utilisateurs d'interagir avec le système via l'entrée-sortie texte.
Signup and view all the flashcards
Quel composant peut initier une requête de lecture et d'écriture sur le bus dans almo1 ?
Quel composant peut initier une requête de lecture et d'écriture sur le bus dans almo1 ?
Seul le MIPS peut initier des requêtes de lecture et d'écriture sur le bus dans almo1, car il est le processeur central qui gère la mémoire et les opérations d'entrée-sortie.
Signup and view all the flashcards
Quel est le rôle de l'ICU (Interrupt Controller Unit) dans almo1 ?
Quel est le rôle de l'ICU (Interrupt Controller Unit) dans almo1 ?
L'ICU centralise les interruptions provenant des différents contrôleurs de périphériques, agissant comme un gestionnaire d'interruptions central. Il combine les interruptions de chaque périphérique pour les traiter efficacement.
Signup and view all the flashcards
Qu'est-ce que le registre TTY_STATUS indique dans le contrôleur TTY ?
Qu'est-ce que le registre TTY_STATUS indique dans le contrôleur TTY ?
Le registre TTY_STATUS indique l'état du composant TTY, incluant notamment la présence d'interruptions, signalant ainsi si le terminal TTY est prêt à recevoir ou à envoyer des caractères.
Signup and view all the flashcards
Dans quel fichier se trouve la description de l'espace d'adressage du SoC ?
Dans quel fichier se trouve la description de l'espace d'adressage du SoC ?
Le fichier kernel.ld définit l'espace d'adressage du SoC. Il contient les informations sur l'emplacement physique de chaque composant en mémoire.
Signup and view all the flashcards
Comment imposer le placement d'adresse d'une fonction ou d'une variable en mémoire lors de la production d'un programme exécutable ?
Comment imposer le placement d'adresse d'une fonction ou d'une variable en mémoire lors de la production d'un programme exécutable ?
L'éditeur de lien, avec un fichier Idscript, permet de spécifier l'emplacement en mémoire de fonctions ou de variables lors de la création du programme exécutable.
Signup and view all the flashcards
Vecteur de syscall
Vecteur de syscall
Un tableau de pointeurs de fonctions permettant aux programmes utilisateurs d'exécuter des actions système en mode noyau.
Signup and view all the flashcards
Fonction _start
Fonction _start
Le point d'entrée principal d'un programme utilisateur, exécuté après l'initialisation du processus.
Signup and view all the flashcards
Interruption
Interruption
Suspend temporairement l'exécution d'un programme utilisateur pour permettre au noyau de gérer un événement.
Signup and view all the flashcards
IRQ (Interrupt ReQuest)
IRQ (Interrupt ReQuest)
Un événement signalé par un périphérique matériel au noyau.
Signup and view all the flashcards
Routine d'interruption (ISR)
Routine d'interruption (ISR)
Une routine exécutée par le noyau en réponse à une interruption, traitant l'événement initial.
Signup and view all the flashcards
Table d'interruption
Table d'interruption
Table contenant les adresses des routines d'interruption, indexée par le numéro d'IRQ.
Signup and view all the flashcards
Masquer une IRQ
Masquer une IRQ
Bloquer la transmission d'un signal d'interruption vers le noyau, empêchant le traitement de l'événement.
Signup and view all the flashcards
Qui peut masquer une IRQ?
Qui peut masquer une IRQ?
Seuls le noyau du système d'exploitation a le pouvoir de masquer des interruptions spécifiques.
Signup and view all the flashcards
eret
eret
Instruction utilisée pour quitter le mode noyau (kentry) et revenir à l'exécution normale d'un programme après le traitement d'une interruption.
Signup and view all the flashcards
mtc0 & mfc0
mtc0 & mfc0
Les instructions mtc0 et mfc0 permettent de manipuler les registres du coprocesseur 0. Leur syntaxe est: mtc0 $GPR, $C0 et mfc0 $C0, $GPR. Cependant, il n'est pas possible de manipuler ces registres avec d'autres instructions.
Signup and view all the flashcards
Champ XCODE de c0_cause
Champ XCODE de c0_cause
Le champ XCODE du registre c0_cause contient un code qui indique la raison de l'appel du noyau. Ce code permet d'identifier la cause de l'interruption.
Signup and view all the flashcards
Différence entre Kernel et User
Différence entre Kernel et User
Le mode kernel permet d'accéder à l'ensemble de l'espace d'adressage du processeur, tandis que le mode utilisateur est limité à une partie de cet espace. Le mode kernel offre des privilèges plus élevés.
Signup and view all the flashcards
Accès mémoire en Kernel et User
Accès mémoire en Kernel et User
En mode kernel, le processeur MIPS peut accéder à n'importe quelle adresse mémoire. Cependant, en mode utilisateur, l'accès à la mémoire est restreint et dépend des privilèges associés à l'utilisateur.
Signup and view all the flashcards
Rôles des registres c0_sr, c0_cause et c0_epc
Rôles des registres c0_sr, c0_cause et c0_epc
Les registres c0_sr, c0_cause et c0_epc sont utilisés pour gérer les modes d'exécution du processeur MIPS, ainsi que les interruptions et exceptions. Ils contrôlent le passage entre les modes kernel et utilisateur.
Signup and view all the flashcardsStudy Notes
Architecture et Système
- QCM: Single answer per question, clearly mark your choice.
- 0 points for unanswered questions.
- +0.5 points per correct answer.
- -0.25 points per incorrect answer.
- Avoid random guessing, as it can lead to a loss of points.
- Negative scores are capped at 0.
Architecture Matérielle
-
SoC (System on Chip): A single circuit containing the processor, memory, and peripheral controllers.
-
RAM vs ROM:
- RAM (Random Access Memory) is volatile memory, meaning data is lost when power is off.
- ROM (Read-Only Memory) is non-volatile; data is retained without power.
- RAM is used for short-term, temporary storage.
- ROM is primarily for permanent storage, especially crucial instructions/data.
-
Input/Output (I/O) Component: The TTY component handles input/output operations within the SoC.
-
Bus Initiator: The MIPS component, among others, is capable of initiating read/write requests on the bus.
-
Interrupt Controller Unit (ICU): Combines interrupts from various peripherals to manage them efficiently.
-
TTY Status Register: Contains information about the terminal status (e.g., remaining character count.)
Chaîne de Compilation
-
SoC Description File: The
kernel.ld
file describes the SoC's memory map. -
Memory Placement: Special compiler options or Idscript files can manipulate the memory location allocation, of functions or variables within a program.
-
Volatile Keywords: Used in C to indicate that a register/variable's value can change unexpectedly (during hardware interrupts).
-
Linker's Role: Combines object files and libraries into a single executable.
-
Object File: Contains compiled code ready for final linking.
-
Cross-Compilation: Compiling a program on one system to target a different architecture or platform.
Système d'Exploitation
-
Kernel's Role: Manages hardware and software resources, providing APIs for applications.
-
User Application Interaction: Applications communicate with the kernel through system calls.
-
Kernel Function start: Primarily controls the entry point for the user application program.
Gestionnaire d'Interruptions
-
Interrupt Handling: When an interrupt occurs, the program currently running is paused, and the kernel takes over to process the interrupt.
-
IRQ Initiation: Peripheral devices or hardware events trigger interrupts to alert the processor of a condition requiring attention/action.
-
Interrupt Service Routine (ISR): The kernel executes programmed code to respond to each interrupt event and handles the corresponding events appropriately.
-
Interrupt Masks: The kernel has the capability to disable or enable individual interrupts.
Mode d'exécution et registres spéciaux
-
Kernel Mode vs User Mode: Kernel mode allows full access, while user mode is restricted.
-
MIPS Registers (c0_sr, c0_cause, c0_epc): Involved in managing execution modes and exceptions in MIPS processors.
-
Exit Instructions From kentry:
eret
instruction is used for returning from exception handling back to normal execution. -
Registers' content: The xcode field specifies the reason or cause of the current exception.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.