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

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

Mémoire RAM

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é centrale

Registres


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é Mémoire principale


centrale
Compt. Instr.
Reg. Instr. 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
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 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

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
En principe c’est comme en math

Les registres d’adressage ont la même
fonction en informatique qu’en math

Ils permettent d’adresser des variables
dans des structures répétitives

Ch.2 14
Traitement des interruptions:
Interruption et scrutation

Ch.2 15
Deux mécanismes différents pour la
communication entre UCT et unités E/S

Interruption:
 l’UCT est interrompue entre instructions quand une fin
d’E/S se produit


Scrutation (E/S programmée, interrogation, polling):
 le processus interroge périodiquement les regs de
l’UCT pour déterminer si une opération est terminée ou
non

Ch.2 16
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 17
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 18
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

Ch.2 (Fig. de Stallings) 19


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 20
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 21
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 22
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 23
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 24
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/ecrriture disque, impression …
 opération d’E/S a causé une erreur
 Matériel non disponible, matériel défectueux …

Ch.2 25
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, résultat trop grand)

Ch.2 26
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 27
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 28
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

Ch.2 29
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 30
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

On verra que dans les sémaphores certaines
interruptions sont masquées pendant l’exécution
d’un programme usager

Mais l’exécution des sémaphores est effectuée par
le SE
 Appeler un sémaphore est un appel du système
 V. Chapitre 7

Donc l’instruction pour masquer les interruptions
doit être une instruction privilégiée

Ch.2 31
Méthodes d’E/S

Ch.2 32
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 33
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 34
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 35
Hiérarchies de mémoire

Ch.2 36
Avant les 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 37
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 38
Hiérarchie de mémoire

RAM

p. ex. mémoire flash

Ch.2 39
Caractéristiques typiques des différents types de mémoire
(Chiffres dépassés, mais qui donnent une idée)

Ch.2 40
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 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 41
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 42
Protection

Ch.2 43
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 44
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 45
Fonctionnement double mode
Interruption

Superviseur,
kernel usager
Retour à progr. usager


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

Parfois on parle aussi de ‘master mode’, ‘kernel mode’ etc. etc.

Ch.2 46
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 47
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 48
Protection 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 49
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 50
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 51
Dans le manuel, pour ce chapitre:


Lire 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:

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