160 likes | 244 Views
CONCEPTION D'UN OS - ETAPE 2 - Segmentation et Interruptions. Configurer le processeur pour qu'il interagisse proprement avec la mémoire et les périphériques. IR3 par Brice Fournier. PLAN. Segmentation Principes Fonctionnement Interruptions Principes Types Les Contrôleurs
E N D
CONCEPTION D'UN OS-ETAPE 2 -Segmentation etInterruptions Configurer le processeur pour qu'il interagisse proprement avec la mémoire et les périphériques. IR3 par Brice Fournier
PLAN • Segmentation • Principes • Fonctionnement • Interruptions • Principes • Types • Les Contrôleurs • IDT • Fonctionnementd'une routine • Pratique • Exemple
SEGMENTATION 1/5 BUT : Adresser la totalité de l'espace mémoire physique possible 0-4 Go sans souci. Principes : • Isolation des programmes les uns des autres. • Définition de niveaux de privilèges pour certaines opérations.
SEGMENTATION 2/5 Différents types d'adresses : • Logiques • Linéaires • Physiques
SEGMENTATION 3/5 MMU : Unité de Gestion de la mémoire chargée de la traduction des adresses • Le processeur ne voit que les adresses logiques La segmentation permet de définir des segments personnalisés en terme de taille, de positionnement ou de droits d'accès. Tables de traduction d'adresses : GDT : Global Descriptor Table -> globale à tout le système (Obligatoire) LDT : Local Descriptor Table -> Propres à chaque tâche
SEGMENTATION 4/5 segment offset Adresse = : Segment : 16 bits 2 bits : Requested Privilege Level 1 bit : Localisation du descripteur GDT(0) ou LDT(1) 13 bits : Index du descripteur de segment Offset : 32 bits
SEGMENTATION 5/5 Comment trouver ces tables? • Registres gdtret ldtr
INTERRUPTIONS 1/7 A quoi ça sert ? • Évènements qui interrompent le flot d'exécution du processeur. • Permettent d'exécuter des routines associées à chaque interruption
INTERRUPTIONS 2/7 3 types d'interruption : • Exceptions ex : division par zéro, ... • IRQ : Interruptions matérielles ex : touche clavier, ... • Interruptions logicielles ex : appels systèmes, ... • Maximum : 256 interruptions • Routines implantées par le développeur du système d'exploitation
INTERRUPTIONS 3/7 Comment le processeur est prévenu pour une IRQ? • Les contrôleurs d'interruption... PIC : Programmable Interrupt Controllers • Liste des interruptions : • Priorité des IRQ
INTERRUPTIONS 4/7 Possibilité d'activer/désactiver toutes les IRQ Bit IF du registre eflags du processeur Instructions : • sti, reSTore Interrupts : active • cli, Clear Interrupts : désactive
INTERRUPTIONS 5/7 Le vecteur d'interruptions : IDT (Interruption Descriptor Table) • Contient l'adresse de toutes les routines Chaque entrée correspond à l'adresse de la routine associée à l'interruption du numéro de l'entrée • 3 types d'entrées : • Trap gate • Interrupt gate • Task gate • Registre important : • idtr (48 bits)lidt et sidt : charge / stocke le registre idtr
INTERRUPTIONS 6/7 • Fonctionnement d'une routine 1. Sauvegarde des registres cs, eip et eflags (Assembleur)2. Traitement effectif de l'interruption (langage C)3. Restauration de tous les registres sauf eflags (Assembleur)4. Retour à l'instruction interrompue, dépile eflags (à l'aide de iret)
INTERRUPTIONS 7/7 Problème d'interruptibilité des IRQ ?? Possibilité de découper en 2 parties : 1. Top half : partie non-interruptible • Prise en compte de l'information signalée par l'interruption 2. Bottom half : partie interruptible • Traitement gourmand en processeur
CONCLUSION Pour configurer les interruptions, il faut : • Configurer l'IDT avec la gestion des entrées • Traiter les interruptions et exceptions • Gérer les contrôleurs d'interruptions matérielles