Post on 14-Jan-2016
description
1
Structures d’ordinateurs Structures d’ordinateurs (matériel)(matériel)
Chapitre 2Chapitre 2
http://w3.uqo.ca/luigi/http://w3.uqo.ca/luigi/
Ce chapitre:Ce chapitre:
Fait une révision de concepts importants de structure des ordinateurs, probablement déjà vus dans les cours préalables Surtout les interruptions et leur fonctionnement
Introduit aussi des concepts importants qui seront développés dans la suite du cours
Ch.2 2
Ch.2 3
Concepts importants du Chapitre 2Concepts importants du Chapitre 2
Registres d’UCT, tampons en mémoire, vecteurs d’interruption
Interruption et scrutation-polling Interruptions et leur traitement Méthodes d’E/S avec et sans attente, DMA Tableaux de statut de périphériques Protection et instructions privilégiées, modes
d’exécution Registres bornes Appels de système Hiérarchie de mémoire
Ch.2 4
Architecture d’ordinateursArchitecture d’ordinateurs
Registres d’UCTRegistres d’UCT
Ch.2 5
Ch.2 6
Registres de l’UCT Registres de l’UCT (mémoire rapide dans UCT)(mémoire rapide dans UCT)
Registres non-visibles de contrôle et statut Généralement non disponibles aux programmes de l’usager l’UCT les utilise pour contrôler ses opérations Le SE les utilise pour contrôler l’exécution des programmes
Registres visibles (aux usagers) disponibles au SE et programmes de l’usager visibles seulement en langage machine ou assembleur contiennent données, adresses etc.
Unité centrale
Registres
Ch.2 7
Exemples de registres de contrôle et statutExemples de registres de contrôle et statut Le compteur d’instruction (PC)
Contient l’adresse de la prochaine instruction à exécuter
Le registre d’instruction (IR) Contient l’instruction en cours d’exécution
Autres registres contenant, p.ex. minuterie bit d’interruption activé/désactivé bit du mode d’exécution superviseur/usager bornes de mémoire du programme en exec.
Registres de statut des périphériques
Ch.2 8
Opération d`ordinateurs pour E/SOpération d`ordinateurs pour E/S
Unités d’E/S et UCT peuvent exécuter en même temps
Chaque type d`unité a un contrôleur Chaque contrôleur a un tampon ou registre en
mémoire principale (buffer) Le contrôleur informe l’UCT que l’opération a
terminé L’UCT a des registres qui contiennent le statut des
différentes unités E/S Ces activités peuvent causer des interruptions qui
sont traitées selon le contenu du vecteur d’interruptions en mém centrale
Ch.2 9
Registres, vecteurs d’interruptions, tamponsRegistres, vecteurs d’interruptions, tampons
Unité centrale
Registres
Mémoire principale
Vect. interrupt
Registre imprimante
Registre disque
Registre clavier
Les registres en mémoire sont aussi
appelés tampons (buffers)
Compt. Instr.
Reg. Instr.
Regs. Unités E/S
Minuterie
Interrupt. activée
Mode Superv./Usag.
Bornes mém.
E/S
Minuterie
Dépass. mém
Etc.
Des interruptions peuvent être causés:Par l’UCT ou par les périf. d’E/S
Quand il y a plusieurs UCT?Quand il y a plusieurs UCT? (processeurs multi-cœurs) (processeurs multi-cœurs)
Une d’elles peut être dédiée à la gestion des interruptions et des périphériques Différentes configurations possibles …
10
Traitement des interruptions:Traitement des interruptions: Interruption et scrutationInterruption et scrutation
Ch.2 11
Ch.2 12
Deux façons différentes de traiter la Deux façons différentes de traiter la communication entre UCT et unités E/Scommunication entre UCT et unités E/S
Interruption: l’UCT est interrompue entre instructions quand un
événement particulier se produit (fin d’E/S, erreur...)
Polling (E/S programmée, interrogation, scrutation): le programme interroge périodiquement les regs statut
et détermine le statut des unités E/S: terminé ou non pour les unités E/S lentes
Ch.2 13
ExempleExemple
Vous et votre téléphone mobile …
Vous utilisez l’interruption si vous avez une sonnerie qui vous avertit quand un appel arrive
Vous utilisez la scrutation (polling) si au lieu vous regardez périodiquement le téléphone pour voir les appels
Scrutation et attente occupéeScrutation et attente occupée(polling and busy waiting)(polling and busy waiting)
La scrutation s’identifie avec l’attente occupée dont nous parlerons plus tard
La scrutation ou attente occupée est considérée moins efficace que l’interruption, car la première gaspille des cycles d’UCT
Mais l’interruption est plus coûteuse à implanter dans le matériel Si on veut épargner dans le coût des UCT, on pourrait
décider de ne pas l’implanter
Ch.2 14
Ch.2 15
Le cycle d’instruction de base Le cycle d’instruction de base [Stallings][Stallings]
• L’UCT extrait l’instruction de la mémoire.
• Ensuite l’UCT exécute cette instruction
• Le compteur d’instruction (PC = Program Counter) contient l’adresse de la prochaine instruction à extraire
• Le PC est incrémenté automatiquement après chaque extraction
Ch.2 16
Le cycle d’instruction avec interruptions Le cycle d’instruction avec interruptions [Stallings][Stallings]
Après chaque instruction l’UCT examine s’il y a eu une interruption S’il n’y en a pas, il extrait la prochaine instruction du programme S’il y en a, il suspend le pgm en cours et branche l’exécution à une
position fixe de mémoire (déterminée par le type d ’interruption) une partie de la mémoire et réservée pour ça
Ceci seulement si les interruptions sont habilitées
Ch.2 17
Interruptions entre UCT et périphériquesInterruptions entre UCT et périphériques
Interruptions
Ch.2 18
Le pgm de gestion de l’interruption Le pgm de gestion de l’interruption (interrupt handler)(interrupt handler)
Est un pgm qui détermine la nature d’une interruption et exécute les actions requises
L’exécution est transférée à ce pgm... …et doit revenir au programme initial au point
d’interruption pour que celui-ci continue normalement ses opérations
Le point d’interruption peut se situer n’importe où dans le pgm (excepté où les interruptions ne sont pas habilitées).
L’on doit donc sauvegarder l’état du programme Registres UCT et autres infos nécessaires pour
reprendre le programme après
Ch.2 19
Exemples d’interruptions causées par les Exemples d’interruptions causées par les périphériques ou par le matérielpériphériques ou par le matériel
E/S lorsqu'une opération E/S est terminée
Dépassement de zone de mémoire (overflow)
Etc., nous verrons
Ch.2 20
Ex. d’interruptions causées par le programme usagerEx. d’interruptions causées par le programme usager
Exception Tentative d’exécuter une instruction protégée Référence au delà de l’espace mémoire du
progr. (overflow) Division par 0 Débordement
Appels du Système Demande d’entrée-sortie ou Demande d’autre service du SE
Nous en verrons …
Ch.2 21
Interruptions causées par le SEInterruptions causées par le SE
Minuterie établie par le SE
Préemption: processus doit céder l’UCT à un autre processus
Ch.2 22
Cas 1: Ordre séquentiel des interruptionsCas 1: Ordre séquentiel des interruptions
L’UCT examine s’il y a des autres interruptions en attente après avoir terminé d’exécuter un IH
Les interruptions sont inhibées (disabled) dans les accolades }
[Stallings]
Ch.2 23
Cas 2: Interruptions d’interruptionsCas 2: Interruptions d’interruptions
L’IH d’une interruption peut se faire interrompre par une interruption de priorité plus élevée
Exemple: les données arrivant sur une ligne de communication doivent-être absorbées rapidement pour ne pas causer de retransmissions
Les interruptions inhibées sont seulement celles de basse priorité
Cas 3: Interruptions désactivées Cas 3: Interruptions désactivées (disabled)(disabled)
Le SE peut désactiver les interruptions s’il est en train d’exécuter quelque chose de très urgent
Il peut Ou bien complètement ignorer les interruptions
intervenues dans ce temps Ou bien les empiler et les traiter plus tard quand
il peut Il peut exister un mécanisme de matériel pour
faire çeci• (chaque conception d’ordi a sa propre logique
d’interruption)
Ch.2 24
Ch.2 25
Deux méthodes d’E/SDeux méthodes d’E/S
a) Synchrone: le proc demandeur attend le résultat de l’opération d’E/S
b) Asynchrone: le proc demandeur peut passer à autre chose et utiliser le résultat quand il est prêt
Dans le cas b) si le proc demandeur est le SE, il peut amorcer un autre programme, ce qui rend possible la multiprogrammation
Deux problèmes importantsDeux problèmes importants Dans le cas (b), quand il y a
une fin d’E/S, comment trouver le processus en attente des résultats
Quand une ressource (UCT ou unité d’E/S ou autre unité) devient disponible, à quel processus devrait-elle être affectée
Nous verrons que ces deux problèmes sont résolus en utilisant un mécanisme de files d’attente Chapitre 4.
Ch.2 26
Hiérarchies de mémoireHiérarchies de mémoire
Ch.2 27
Avant les ordinateursAvant les ordinateurs
Ch.2 28
Sur le tableau les idées courantes sur le bureau les documents les plus utilisés à l’instant, les autres sur les étagères
(Le bureau d’Einstein)
Ch.2 29
Hiérarchie de mémoireHiérarchie de mémoire
Différentes types de mémoire Constituent une hiérarchie
vitesse (de plus vite à moins vite)
coût (de plus cher à moins cher)
permanence ou non Les mémoires les plus rapides sont aussi les
plus chères et le moins permanentes
Ch.2 30
Hiérarchie de mémoireHiérarchie de mémoire
RAM
p. ex. mémoire flash
Ch.2 31
Caractéristiques typiques Caractéristiques typiques des différents types de mémoiredes différents types de mémoire
Ch.2 32
Mémoire virtuelle Mémoire virtuelle IMPORTANTIMPORTANT
L’UCT ne peut accéder à une instruction ou à une donnée que si elles se trouvent En cache dans les ordinateurs où il y a de cache Ou sinon en mémoire vive (RAM)
Donc ces données doivent être apportées en mémoire vive ou cache au besoin
Le mécanisme de mémoire virtuelle implémente cette le va-et-vient des pages entre mémoire secondaire et mémoire principale
Ch.2 33Ch.3 33
Gestion de mémoire Gestion de mémoire virtuellevirtuelle
La mémoire principale est souvent trop petite pour contenir tous les processus en exécution
La mémoire secondaire (disques, flash) est normalement utilisée pour contenir les parties d`un processus qui ne sont pas actives à l ’instant
La mémoire principale et la mémoire secondaire forment donc une unité logique appelée mémoire virtuelle
Pour implanter la mémoire virtuelle, le SE doit gérer de façon conjointe mémoire vive et mémoire secondaire
Mécanisme de va-et-vient (swap)
Hiérarchie de mémoire!
Ch.2 34Ch.3 34
Gestion de mémoire Gestion de mémoire virtuellevirtuelle
La mémoire principale est souvent trop petite pour contenir tous les processus en exécution
La mémoire secondaire (disques, flash) est normalement utilisée pour contenir les parties d`un processus qui ne sont pas actives à l ’instant
La mémoire principale et la mémoire secondaire forment donc une unité logique appelée mémoire virtuelle
Pour implanter la mémoire virtuelle, le SE doit gérer de façon conjointe mémoire vive et mémoire secondaire
Mécanisme de va-et-vient (swap)
Hiérarchie de mémoire!
Ch.2 35
ProtectionProtection
Plusieurs processus et le S/E partagent la mémoire, exécutant parfois les mêmes instructions
Il faut empêcher que l’un fasse des choses réservées à l’autre
Il faut les protéger les uns des autres
Protection d’instructions Protection de mémoire
Ch.2 36
Instructions protégées = privilégiéesInstructions protégées = privilégiées
Ne peuvent être exécutées que par le S/E, en mode superviseur
Exemples: Les instructions d’E/S Instructions pour traiter les registres non-visibles d’UCT
Instructions pour changer les limites de mémoire Instructions pour changer le mode d’exécution
(superviseur,usager) Possiblement, instructions pour la minuterie
Le programme usager peut demander au SE que ces opérations soient exécutées, mais il ne peut pas les exécuter directement
Ch.2 37
Fonctionnement Fonctionnement double mode double mode
un registre d’UCT contient un bit qui dit si l ’UCT exécute couramment en mode superviseur ou en mode usager
ce bit est changé automatiquement à mode superviseur lors d’une interruption
certaines instructions ne peuvent être exécutées qu’en mode superviseur (instructions privilégiées): des tentatives de les exécuter en mode usager causeront une interruption, et
retour à mode superviseur le mode superviseur peut être changé à mode usager par une
instruction privilégiée ces deux modes ont aussi des autres noms, v. manuel
superviseur usager
Interruption
Retour à progr. usager
Ch.2 38
Autre manière de voir…Autre manière de voir…
Trap: interruption interne
Ch.2 39
Protection de mémoire: Protection de mémoire: chaque processus doit chaque processus doit rester dans ses propres bornes de mémoirerester dans ses propres bornes de mémoire
Solution typique: deux registres dans l ’UCT quand l ’UCT exécute un processus, elle sait quelle est la
borne inférieure et supérieure de la zone de mémoire de ce processus
l ’adresse de chaque instruction est comparée à ces deux adresses avant l ’exécution
si un processus cherche à dépasser ses limites: interruption
UCT
Ch.2 40
Protection de mémoireProtection de mémoire
l’adresse de chaque instruction est comparée à ces deux adresses avant l’exécution seulement si l’UCT exécute en mode usager
si un processus cherche à dépasser ses bornes: Interruption mode superviseur
les instructions pour affecter les registres bornes sont privilégiées
Ch.2 41
Appels du système (system calls)Appels du système (system calls)
Quand un processus usager a besoin d ’un service du SE, par ex. E/S, il exécute un appel du système
C’est une instruction qui cause une interruption (trap) et changement de mode (mode superviseur)
Est associée à des paramètres qui indiquent le type de service désiré
Le S/E prend la relève et exécute le service, il retourne puis au processus appelant avec des params qui indiquent le type de résultat changement de mode (mode usager)
Ch.2 42
Concepts importants du Chapitre 2Concepts importants du Chapitre 2
Registres d’UCT, tampons en mémoire, vecteurs d’interruption
Interruption et polling Interruptions et leur traitement Méthodes d’E/S avec et sans attente, DMA Tableaux de statut de périphériques Protection et instructions privilégiées, modes
d’exécution Registres bornes ou limites Appels de système Hiérarchie de mémoire
Ch.2 43
Dans le manuel, pour ce chapitre, vous devezDans le manuel, pour ce chapitre, vous devez
Étudier le chapitre entier, moins: La section 2.3 n’a pas été discutée en
classe, cependant son contenu devrait être en partie déjà connu Section 2.3.2 sera discutée au chapitre 14
La section 2.6 n’est pas sujet d’examen: à lire seulement
Ch.2 44
Informations additionnellesInformations additionnelles
Pour des explics claires sur comment différents parties d’un ordinateur fonctionnent, je vous recommande hautement Wikipedia http://computer.howstuffworks.com/
Des sites qui contiennent des explicationstrès claires sur un grand nombre de sujets
(malheureusement, howstuffworks a beaucoup de publicité)
Ch.2 45
Accès direct à la mémoire (DMA)Accès direct à la mémoire (DMA)
Sans DMA, tous les accès de mémoire passent à travers l’UCT Donc les E/S occupent une certaine portion du temps
de l’UCT, même si l’UCT pourrait en même temps exécuter un processus (vol de cycles)
Avec DMA, les unités d’E/S transfèrent les données directement avec la mémoire L’UCT est impliquée seulement pour initier et terminer
les E/S L’UCT est complètement libre d’exécuter d’autres
processus (pas de vol de cycles)
Ch.2 46
MEMOIRE
MEMOIRE
UNITÉS E/S
UNITÉS E/S
UCT
UCT
Sans DMA
Accès directe (DMA)
transfert données
Ch.2 47
Terminologie d`interruptionsTerminologie d`interruptions
Pas normalisée C’est une bonne idée de distinguer entre:
Trappes (traps): causées par le pgm en exécution: division par 0, accès illégal, appels du système...
Interruptions: causées par événements indépendants: minuterie, fin d` E/S
Fautes (faults): ce mot est utilisé surtout par rapport à la pagination et à la segmentation.
Malgré ces différences de terminologie, trappes, interruptions et fautes fonctionnent toutes de la même manière