Changes between Version 93 and Version 94 of SoclibCourseTp4
- Timestamp:
- Dec 11, 2013, 8:00:17 PM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SoclibCourseTp4
v93 v94 1 1 {{{ 2 2 #!html 3 <h1>TP4 : Interruptions et architectures multi-processeurs</h1>3 <h1>TP4 : Architectures multi-processeurs et périphériques</h1> 4 4 }}} 5 5 [[PageOutline]] … … 9 9 Le but de ce quatrième TP est double : 10 10 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 = 11 D'un côté, on souhaite introduire les différents périphériques qui seront utilisés dans la suite de ces TPs, 12 en insistant sur les mécanismes de communication entre les périphériques et le système d'exploitation. 13 14 D'un autre côté, on souhaite modéliser des architectures multi-processeurs génériques, telles qu'on 15 puisse facilement faire varier le nombre de processeurs. 16 . 17 18 = 2. Architecture mono-processeur = 18 19 19 20 Il existe deux types de périphériques: … … 25 26 26 27 Lorsque 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 28 et il faut un mécanisme permettant de concentrer plusieurs dizaines de requêtes d'interruption vers un seul signal IRQ 28 29 connecté 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. 29 30 … … 57 58 58 59 Le 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. 60 de traitement spécifique, appelée ISR (Interrupt Service Routine), qui est exécutée par le processeur lorsque 61 la ligne d'interruption est activée par le périphérique, et que les interruptions ne sont pas masquées. 60 62 Il s'agit donc pour le périphérique de "voler" quelques cycles du processeur pour lui permettre d'exécuter 61 63 un peu de code. L'ISR permet généralement au périphérique de signaler un événement … … 76 78 teste 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. 77 79 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 80 Le processeur peut exécuter plusieurs tâches (plusieurs programmes utilisateurs) en pseudo-paralléliseme, par multiplexage temporel. 81 Chaque tâche possède alors son propre terminal écran/clavier, mais ces 79 82 diffé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. 80 83