Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
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
Registres UCT
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 …
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
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
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
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 …
Ch.2 38
Hiérarchie de mémoire
RAM
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
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