Changes between Version 93 and Version 94 of SoclibCourseTp4


Ignore:
Timestamp:
Dec 11, 2013, 8:00:17 PM (11 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp4

    v93 v94  
    11{{{
    22#!html
    3 <h1>TP4 : Interruptions et architectures multi-processeurs</h1>
     3<h1>TP4 : Architectures multi-processeurs et périphériques</h1>
    44}}}
    55[[PageOutline]]
     
    99Le but de ce quatrième TP est double :
    1010
    11 D'un côté, on souhaite introduire de nouveaux
    12 périphériques supportant la communication par interruption,
    13 et analyser les mécanismes de communication entre un programme utilisateur et un périphérique.
    14 
    15 D'un autre côté, on souhaite commencer à modéliser des architectures comportant plusieurs processeurs programmables.
    16 
    17 = 2. Interruptions =
     11D'un côté, on souhaite introduire les différents périphériques qui seront utilisés dans la suite de ces TPs,
     12en insistant sur les mécanismes de communication entre les périphériques et le système d'exploitation.
     13
     14D'un autre côté, on souhaite modéliser des architectures multi-processeurs génériques, telles qu'on
     15puisse facilement faire varier le nombre de processeurs.
     16.
     17
     18= 2. Architecture mono-processeur =
    1819
    1920Il existe deux types de périphériques:
     
    2526
    2627Lorsque le nombre de périphériques augmente, le nombre de lignes d'interruption augmente également,
    27 et il faut un mécanisme permettant de concentrer plusieurs dizaines de requêtes d'interruption vers un seul signal
     28et il faut un mécanisme permettant de concentrer plusieurs dizaines de requêtes d'interruption vers un seul signal IRQ
    2829connecté au processeur. C'est en interrogeant le composant matériel ICU (Interrupt Controler Unit) que le système d'exploitation (en pratique le gestionnaire d'interruption) peut obtenir le numéro de la ligne d'interruption active la plus prioritaire.
    2930
     
    5758
    5859Le système d'exploitation (GIET) associe à chaque ligne d'interruption une routine
    59 de traitement spécifique, appelée ISR (Interrupt Service Routine), qui est exécutée par le processeur lorsque la ligne d'interruption est activée par le périphérique, et que les interruptions ne sont pas masquées.
     60de traitement spécifique, appelée ISR (Interrupt Service Routine), qui est exécutée par le processeur lorsque
     61la ligne d'interruption est activée par le périphérique, et que les interruptions ne sont pas masquées.
    6062Il s'agit donc pour le périphérique de "voler" quelques cycles du processeur pour lui permettre d'exécuter
    6163un peu de code. L'ISR permet généralement au périphérique de signaler un événement 
     
    7678teste la variable '''_tty_get_full''' rangée en mémoire. C'est la routine d'interruption (ISR) associée au terminal TTY qui se charge d'écrire le code ASCII du caractère dans le tampon  '''_tty_get_buf''', et de forcer à 1 la variable de synchronsation '''_tty_get_full''' pour signaler que le tampon est plein. Cette variable de synchronisation est remise à 0 par l'appel système ''tty_getc_irq()'' lorsque le caractère est transféré du tampon système '''tty_get_buf'''  vers le tampon mémoire défini par l'utilisateur.
    7779
    78 Dans une architecture monoprocesseur, le processeur peut exécuter plusieurs tâches (plusieurs programmes utilisateurs) en pseudo-paralléliseme, par multiplexage temporel. Chaque tâche possède alors son propre terminal écran/clavier, mais ces
     80Le processeur peut exécuter plusieurs tâches (plusieurs programmes utilisateurs) en pseudo-paralléliseme, par multiplexage temporel.
     81Chaque tâche possède alors son propre terminal écran/clavier, mais ces
    7982différents terminaux sont tous contrôlés par le même contrôleur TTY : Chaque terminal possède donc son propre jeu de 4 registres, pour communiquer avec l'OS.
    8083