Vous êtes sur la page 1sur 57

Structures d’ordinateurs (matériel)

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

Unités entrée-sortie (E/S)

Souris
Clavier
Disques Imprimante … Écrans
UCTs
Méms. Cache Contrôleur disques Contrôleur USB Contrôleur graphique

Mémoire RAM Connect. Réseau

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

Unité centrale Mémoire principale


Compt. Instr.
Regs. Instruction E/S
Regs. Unités E/S
Vect.
Minuterie
Registres interrupt
Minuterie Dépass. mém
Masque d’interrupt. Etc.
Mode Superv./Usag.
Bornes mém.
Registre imprimante
Regs. adressage
Registre disque
Des interruptions peuvent être
causés: Registre clavier
Par l’UCT ou par les périf. d’E/S Les registres en mémoire sont aussi
Ch.2 appelés tampons (buffers) 10
Registres d’UCT pour calcul d’adresses

Registres adressage UCT

instruction opération registre adresse ⊕ = Adresse calculée

L’adresse de mémoire affecté par une instruction est


déterminé faisant la somme de
• l’adresse dans l’instruction et
• l’adresse d’un ou plus. registres d’UCT
L’UCT fait cette somme pour chaque instruction
Mécanisme que le programmeur peut ignorer, mais qui est
très utilisé par les compilateurs et les SE.
Ch.2 11
Adressage modifié par registres UCT

Très utiles afin qu’une seule instruction
puisse de fois en fois faire référence à
adresses de mémoire différents
 Instruction de matériel:
opération registre adresse

 L’adresse ici est une adresse relative, pour


obtenir l’adresse réelle l’UCT ajoute à
l’adresse le contenu du registre

Ch.2 12
Exemple
LOAD A 100

 Si le contenu du régistre A est 1000, l’operation LOAD est


effectuée à l’adresse ?

Si le contenu est 2000, LOAD est effectuée à l’adresse ?, etc.
 Cette fonctionnalité permet à une seule instruction d’être
exécutée dans plusieurs contextes, selon le contenu du
registre

On change le contexte en changeant le contenu du registre
 Applications:
 instruction exécutée plus. fois dans des boucles
 Instruction d’un programme à exécuter dans plusieurs processus
 etc
 Sans perdre de temps d’exécution
Ch.2 13
C’est comme en math

Les registres d’adressage ont la même
fonction en informatique que les indices en
math:
 Xi
 Ils permettent d’adresser des variables
dans des structures répétitives
 L’adresse dans l’instruction dit si on accède à
X, Y etc.
 Le chiffre dans le registre dit s’il s’agit du 1er,
2ème X ou Y etc.

Ch.2 14
Pour pointeurs dans structures répétitive

Adresse calculée: 1004

LOAD 1000 004

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

 Scrutation (E/S programmée, interrogation, polling):


 un processus interroge périodiquement les regs de
l’UCT pour déterminer si une E/S est terminée ou non

 Ces mécanismes sont d’utilisation générale mais pour


l’instant nous en parlons seulement par rapport aux E/S

Ch.2 17
Exemple

Vous et votre téléphone mobile …

 Vous utilisez l’interruption si vous utilisez


la 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

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

 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
 Ce cycle peut être interrompu par une interruption

Ch.2 (Fig. de Stallings) 20


Que faites-vous si on vous interrompt pendant un
travail?

Vous pouvez tout de suite faire ce qu’on
vous demande et puis vous reviendrez au
travail au point où vous étiez arrivé avant
l’interruption

Vous pouvez aussi décider que vous ne
pouvez pas être interrompu à ce moment là
et vous pourriez traiter l’interruption plus
tard
 Vous pourriez aussi ignorer l’interruption,
mais probablement elle reviendra plus tard

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

 Minuterie établie par le SE

 Préemption: processus doit céder l’UCT à


un autre processus

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

Dans le cas b) le proc demandeur peut amorcer un autre programme

Ch.2 34
Normalement en pratique

 Le processus usager voit


la méthode a)
 Il attend pour la fin de l’E/S

Le SE voit la méthode b)
 Le contrôle revient tout de
suite au SE qui puis le
donne à un autre processus

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

Nous verrons que ces deux


problèmes sont résolus en
utilisant un mécanisme de files
d’attente Chapitre 4.

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 …

(Le bureau d’Einstein)


Ch.2 38
Hié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 39
Hiérarchie de mémoire

RAM

p. ex. mémoire flash

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

 La mémoire principale est souvent trop petite pour


contenir tous les processus en exécution

La mémoire secondaire (disques, SSD) est 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.3
Ch.2 43
Protection

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

= mode noyau, Mode


Mode
kernel Superviseur,
kernel usager
Retour à progr. usager

 l’UCT contient un bit qui dit si l’UCT exécute couramment en


mode superviseur ou en mode usager
 On débute avec le SE en mode superviseur
 Le SE met en exéc un programme usager 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
Ch.2
 On parle aussi de ‘master mode’, ‘kernel mode’, ‘mode noyau’, etc. etc. 47
Changement de mode par 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 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 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

 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 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

MEMOIRE UCT UNITÉS E/S

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

Vous aimerez peut-être aussi