Académique Documents
Professionnel Documents
Culture Documents
Chapitre 2
http://w3.uqo.ca/luigi/
1
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
Concepts 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 3
Architecture d’ordinateurs
Vision générique
Souris
Clavier
Disques Imprimante … Écrans
UCTs
Méms. Cache Contrôleur disques Contrôleur USB Contrôleur graphique
Ch.2 4
Composantes de l’UCT
L’UCT contient:
L’unité arithmétique et logique
Circuits pour interpréter les instructions
Circuits pour les calculs et les comparaisons
Registres
Contiennent des données utilisées par l’unité arithmétique
et logique
Mémoire Cache (+ rapide que la mém RAM)
Contient des données d’utilisation courante pour l’UCT
Elles sont aussi en mémoire centrale
• (même idée que la pagination, v. chapitre sur la gestion de
la mémoire)
Ch.2 5
Registres d’UCT
Ch.2 6
Registres de l’UCT (mémoire rapide dans UCT) Unité ce ntra le
Re gis tre s
Registres non-visibles de contrôle et statut
Généralement non disponibles aux programmes d’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)
visibles seulement en langage machine ou assembleur
disponibles au SE et programmes de l’usager
contiennent données, adresses etc.
Ch.2 7
Exemples de registres de contrôle et statut
Le registre d’instruction (IR)
Contient l’instruction en cours d’exécution
Le compteur d’instruction (PC)
Contient l’adresse de la prochaine instruction à
exécuter
Registre accumulateur
Pour stocker des résultats intermédiaires
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/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, tampons
Ch.2 12
Exemple
LOAD A 100
Ch.2 14
Pour pointeurs dans structures répétitive
Ch.2 15
Traitement des interruptions:
Interruption et scrutation
Ch.2 16
Deux mécanismes différents pour la communication
entre UCT et unités E/S
Interruption:
l’UCT est interrompue dans l’exécution des instructions
quand une fin d’E/S se produit
Ch.2 17
Exemple
Vous et votre téléphone mobile …
Ch.2 18
Scrutation et attente occupée
(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
Dans des puces à bas prix, elle pourrait ne pas être
implantée
Ch.2 19
L’interruption dans le cycle d’instruction de base
Ch.2 21
Le registre masque des interruptions
L’UCT contient un registre qui dit quelles
interruptions sont masquées à l’instant
Les interruptions masquées (= bloquées)
sont ignorées
Ch.2 22
Interruptions non-masquables et masquables
Non-masquables:
Conditions qui rendent impossible de continuer
Instruction invalide, adresse invalide, données invalides …
Temporisation
Faute de matériel
…
Masquables:
Terminaison d’une opération d’E/S
Click de souris ou entrée de clavier
…
Normalement les interruptions masquées ne disparaissent
pas, elles restent là après l’enlèvement du masque
Le SE peut toujours décider de ne pas traiter une
interruption
Ch.2 23
Moment où les interruptions se présentent
Les interruptions peuvent se présenter à n’importe quel
point pendant l’ex. d’un programme
Il y a des interruptions qui se présentent pendant l’exécution
d’une instruction et doivent être traitées pour annuler ou
compléter l’instruction
Mauvaise opération ou adresse: l’instruction ne peut pas être
complétée processus avorté
Page pas en mémoire: pour compléter l’instruction on doit
chercher des données en mémoire secondaire (disque)
V. pagination plus tard
Il y a aussi des interruptions qui peuvent être traitées entre
instructions
Fin d’une opération d’entrée-sortie, clic de souris …
Ch.2 24
Le pgm de gestion de l’interruption
(interrupt handler)
Un programme usager exécute normalement jusqu’à une
interruption non-masquée
Après une telle interruption
L’UCT est mise en ‘mode superviseur’
Le programme saute à un programme du SE
Qui est spécifique pour le type d’interruption
Voir « vecteur d’interruptions » en mémoire mentionné avant
Ce programme exécute et puis retourne au programme
usager, à l’instruction suivante au point d’interruption
Tout en retournant l’UCT à ‘mode usager’
Il est donc nécessaire de sauvegarder l’état du programme
Registres UCT et autres infos nécessaires pour reprendre le
programme après
Ch.2 25
Exemples d’interruptions causées par les
périphériques ou par le matériel
E/S
une opération E/S est terminée
Lecture/écriture disque, impression …
opération d’E/S a causé une erreur
Matériel non disponible, matériel défectueux …
Ch.2 26
Ex. d’interruptions causées par le programme usager
Appels du Système
Demande d’un service du SE
Demande d’une opération d’E/S
Demande de créer un nouveau processus …
Exception
Tentative d’exécuter une instruction protégée
Référence au delà de l’espace mémoire du
progr. (protection)
Erreur de calcul (mauvaise instruction, div. par
0, débordement)
Ch.2 27
Ex. d’interruptions causées par le SE
Ch.2 28
Cas 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 masquées dans les accolades }
[Fig.Stallings]
Ch.2 29
Cas 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
traitées rapidement pour ne pas causer de retransmissions
[Fig.Stallings]
Ch.2 30
Ignorer des interruptions
Le SE peut ignorer certaines interruptions
s’il est en train d’exécuter quelque chose
d’urgent
Même si elles ne sont pas masquées
Il peut
Ou bien complètement les ignorer
Ou bien les empiler et les traiter plus tard
Ch.2 31
Un programme usager, peut-il masquer des interruptions?
Non, car de cette manière il pourrait cacher au SE
des conditions dont ce dernier devrait s’occuper
Il pourrait entre autres saisir l’UCT à jamais
Donc l’instruction pour masquer les interruptions
doit être une instruction privilégiée
Ch.2 32
Méthodes d’E/S
Ch.2 33
Deux 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
Ch.2 34
Normalement en pratique
Synchrone Asynchrone
Ch.2 35
Deux problèmes importants
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
Ch.2 36
Hiérarchies de mémoire
Ch.2 37
Même sans ordinateurs …
sur le tableau les idées courantes
sur le bureau les documents les plus utilisés à l’instant,
les autres sur les étagères
probablement encore des autres dans d’autres locaux …
Ch.2 39
Hiérarchie de mémoire
RAM
Ch.2 40
Caractéristiques typiques des différents types de mémoire
(Chiffres dépassés, mais qui donnent une idée)
Ch.2 41
Mémoire virtuelle IMPORTANT
L’UCT ne peut accéder à une instruction ou à une donnée
que si elles se trouvent
En cache dans les ordinateurs qui ont le 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 42
Gestion de mémoire virtuelle
Ch.2 44
Protection
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 45
Instructions 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 (disques, imprimantes …)
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)
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 46
Fonctionnement double mode
Interruption
Ch.2 48
Protection de mémoire: chaque processus doit rester
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
Erreur de segmentation dans Windows
UCT
Ch.2 49
Mécanisme: comparaison d’adresses
Ch.2 50
Mécanismes qui travaillent ensemble …
L’UCT, quand
Elle est en mode usager,
contrôle que les adresses sont dans la zone de
mémoire du processus en exécution
• sinon, interruption mode superviseur
ne peut pas changer le contenu des registres
borne
Elle est en mode superviseur,
ne fait pas le contrôle des adresses
peut changer le contenu des registres borne
Ch.2 51
Concepts 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 52
MATÉRIAUX SUPPLÉMENTAIRES
Ch.2 53
Informations additionnelles
Mes notes de cours contiennent le nécessaire
pour passer le cours
Pour les intéressés, Wikipédia contient beaucoup
d’informations et références utiles
Ch.2 54
Accès direct à la mémoire (DMA) (Détails + tard …)
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 55
MEMOIRE UCT UNITÉS E/S
Sans DMA
transfert données
Accès directe (DMA)
Ch.2 56
Terminologie 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
Ch.2 57