1 / 16

CONCEPTION D'UN OS - ETAPE 2 - Segmentation et Interruptions

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

thiery
Download Presentation

CONCEPTION D'UN OS - ETAPE 2 - Segmentation et Interruptions

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. PLAN • Segmentation • Principes • Fonctionnement • Interruptions • Principes • Types • Les Contrôleurs • IDT • Fonctionnementd'une routine • Pratique • Exemple

  3. 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.

  4. SEGMENTATION 2/5 Différents types d'adresses : • Logiques • Linéaires • Physiques

  5. 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

  6. 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

  7. SEGMENTATION 5/5 Comment trouver ces tables? • Registres gdtret ldtr

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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)

  14. 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

  15. Mise en oeuvre

  16. 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

More Related