Systèmes d`exploitation Chapitre 4: Gestion des périphériques

publicité
Université Cadi Ayyad
Faculté Polydisciplinaire de Safi
Département sciences mathématiques et informatique
Systèmes d'exploitation
Chapitre 4: Gestion des périphériques
Contrôler les périphériques d’entrée/sortie:
d’entrée/sortie: émettre des commandes
vers ces périphériques, intercepter les interruptions et gérer les
erreurs,, est l’une des principales fonctions d’un système d’exploitation
Année universitaire: 2010-2011
Plan du cours
●
Gestion des périphériques
–
Organisation générale;
–
Les périphériques;
–
Entrées-Sorties physiques;
–
La synchronisation microprocesseur des E/S.
●
Les interruptions;
●
Le pilote des périphériques;
●
Les tampons.
Gestion des périphériques
●
Introduction:
la gestion des E/S consiste en la gestion du transfert
d’information entre le couple unité centrale
microprocesseur - mémoire et l’extérieur soit les unités
périphériques locales ou distante.
Dans un système d’exploitation, cette fonction est
réalisée par un ensemble de services appelé
gestionnaire d’entrée-sortie.
Gestion des périphériques
●
Organisation générale: L'évolution des ordinateurs a
conduit à accroître l'autonomie des organes d'entréessorties et à leur confier des fonctions de plus en plus
complexes d'enchaînement et de commande, le
microprocesseur ne gardant que l'initiative du
lancement et du contrôle des opérations. Il existe
plusieurs
organisations
ou
branchement
des
périphériques au microprocesseur.
Gestion des périphériques
Gestion des périphériques
Gestion des périphériques
Gestion des périphériques
On peut voir sur les figures précédentes, trois exemples
d'organisations.
●
●
●
Organisation 1 : les périphériques sont reliés au couple
microprocesseur-mémoire par l'intermédiaire de coupleurs;
Organisation 2 : les périphériques sont reliés au couple
microprocesseur-mémoire par l'intermédiaire DMA puis les
coupleurs;
Organisation 3 : on a affaire à un système multiprocesseurs
et
les
périphériques
sont
reliés
à
l'ensemble
microprocesseurs-mémoire par l'intermédiaire de canaux et
de coupleurs.
Gestion des périphériques
Entrées-Sorties physiques
●
●
Introduction: Dans
certains
ordinateurs,
des
instructions permettent la redirection des données issues
de l'UC, non vers la mémoire, mais vers un périphérique
(solution
solution INTEL
INTEL); ou bien un accès mémoire à une
adresse réservée particulière est interprétée comme
demande d'accès à un périphérique (solution
solution Motorola
Motorola).
Trois solutions sont utilisées pour faire communiquer
l'UC et les périphériques :
–
–
–
Contrôleurs;
DMA;
Canal.
Gestion des périphériques
Entrées-Sorties physiques
●
Contrôleurs:
le périphérique est connecté à
l'ordinateur par l'intermédiaire d'une carte électronique
appelée interface ou adaptateur ou contrôleur de
périphérique, qui transforme les signaux du
périphérique en signaux adaptés à l'UC et vice-versa.
Un contrôleur peut gérer un ou plusieurs périphériques.
Les petits ordinateurs utilisent des liaison à bus entre
les contrôleurs, la mémoire et l'UC.
Gestion des périphériques
Entrées-Sorties physiques
●
●
Le travail du contrôleur consiste à convertir le flot
binaire série en un bloc d’octets et apporter toute
correction qui s’impose en cas d’erreur.
Exemple :clavier/écran sur PC, imprimantes.
Gestion des périphériques
Entrées-Sorties physiques
●
●
●
DMA: Pour éviter le ralentissement de l'UC par ces tâches
de bas niveau, on utilise parfois l'accès direct à la
mémoire (DMA). Le principe est de donner au contrôleur
l'adresse où il doit accéder en mémoire, l'opération (lecture
ou écriture), le nombre d'octets à transférer entre la
mémoire principale et le tampon du contrôleur. Le
contrôleur utilise les "temps
temps morts
morts" du bus (cycle stealing).
L'UC conserve la responsabilité des fonctions de
commande, de contrôle et une partie de la
synchronisation. En fin de transfert, le contrôleur émet une
interruption.
Exemple : disque sur PC.
Gestion des périphériques
Entrées-Sorties physiques
Gestion des périphériques
Entrées-Sorties physiques
●
●
●
Les types de transferts DMA: Il existe deux types de
transfert DMA :
Par gyclée : le contrôleur DMA effectue un certain
nombre de transferts bus chaque fois qu'il a la main. ce
fonctionnement est bien adapté aux taches de transfert
des blocs lorsqu'elles nécessitent la totalité de la largeur
de bande du bus.
Par vol de cycle : la commande du bus passes
alternativement du processeur DMA au microprocesseur
central à chaque cycle mémoire. Le canal DMA permet
alors au microprocesseur central de fonctionner au
voisinage de 50%.
Gestion des périphériques
Entrées-Sorties physiques
●
●
Canal: Sur les gros ordinateurs, des canaux d'E/S allègent
le travail du processeur principal pour sa communication
avec les contrôleurs (contrôle et synchronisation). Un canal
d'E/S est un processeur spécialisé qui gère soit un seul
périphérique
rapide,
soit
plusieurs
périphériques
multiplexés. Un canal utilise le DMA.
L'UC envoie au canal l'adresse en mémoire centrale du
début du programme de transfert à exécuter (programme
canal ). L'UC peut interrompre l'exécution, scruter l'état
d'avancement par consultation de registres du canal. Un
canal est une solution adaptée aux périphériques rapides
des mini- et gros ordinateurs.
Gestion des périphériques
●
Les périphériques : Ce sont des dispositifs servant en
premier lieu à l'entrée et à la sortie de données. Ils sont
attachés à des coupleurs ou contrôleurs. Périphériques
et coupleurs
définissent des interfaces qui
comprennent un ensemble de fonctions (entrée, sortie,
signaux de commande et d'incident) et une voie de
communication servant au transfert de l'information.
Gestion des périphériques
●
●
Les catégories de périphériques : Il existe deux
grandes catégories de périphériques, les périphériques
blocs et les périphériques caractères.
Les périphériques blocs : Ils acceptent les données par
blocs de taille fixe, chaque bloc ayant une adresse
propre. La taille des blocs va généralement de 128 octets
à plusieurs kilo. Le grand avantage par rapport aux
périphériques caractères est qu'il est possible d'aller lire
ou écrire un bloc à tout moment, on parle alors d'accès
aléatoire
Gestion des périphériques
●
Les périphériques caractères : Ils acceptent les
données sans se soucier d'une quelconque structure.
Ils envoient ou reçoivent les données octets par octets,
sans qu'on les concacténée en paquets. Parmi les
périphériques caractères, on peut citer : le clavier, la
souris, les imprimantes, les terminaux etc... Les
données sont transmises les unes derrière les autres,
on parle alors d'accès séquentiel.
Gestion des périphériques
La synchronisation microprocesseur E/S
●
●
Les entrées-sorties synchrones : Dans une entréesortie synchrone, il n'y a aucun parallélisme entre
traitement
et
transfert
de
l'information.
Le
microprocesseur est immobilisé pendant toute la durée du
transfert. L'entrée-sortie synchrone est utilisée sur les
ordinateurs les lus simples et dans tous les cas ou le
microprocesseur ne peut être utilement employé pendant
la durée du transfert.
Les entrées-sorties asynchrones avec interruptions :
Dans une entrée-sortie asynchrone, tel le clavier, il y a
une interruption qui est prise en compte, elle permet de
ne pas interrompre le microprocesseur, ce dernier peut
continuer son traitement en cours.
Les interruptions
●
L’interruption est un signal déclenché par un événement
interne ou externe à la machine, provoquant l'arrêt d'un
programme en cours d'exécution à la fin de l'opération
courante, au profit d’un programme plus prioritaire appelé
programme d'interruption. Ensuite, le programme
interrompu reprend son exécution à l'endroit où il avait été
interrompu.
Les interruptions
●
●
Utilisation: On utilise les interruptions principalement
dans deux buts:
–
afin de permettre des communications non bloquantes avec
des périphériques externes;
–
afin de commuter entre les tâches dans un ordonnanceur.
Un autre usage, est l'introduction de malversations : lors de la
restauration du contexte, si le contenu de la zone de
sauvegarde a été altéré depuis l'appel (c'est le cas si
l'interruption ou le déroutement provoque en mode maître une
altération du contenu de la zone de sauvegarde ou de la pile),
le contexte restauré sera totalement différent du contexte
d'appel, et pourra passer la main à des suites d'instructions
hostiles.
Les interruptions
●
●
Principe de fonctionnement: Lors d'une interruption, le
microprocesseur sauve une grande partie de son état
interne, dans la pile système, et saute ensuite à la routine
d'interruption, suivant une table qui donne pour chaque
type d'interruption la routine à exécuter.
Une fois le traitement de l'interruption terminé, la routine
se finit par une (ou plusieurs) instruction de retour
d'interruption, qui restaure l'état sauvé et fait repartir le
processeur de l'endroit où il avait été interrompu. Dans
certains cas, la routine d'interruption modifie les adresses
de retour, notamment pour effectuer des commutations
de tâches.
Les interruptions
●
●
●
Masquer et démasquer une interruption: Dans un SE, il
peut être nécessaire de ne pas permettre les interruptions,
soit parce que celles-ci perturberaient un compte serré du
temps, soit parce que des structures de données sont en
cours de modification (on réalise ainsi une sorte de verrou
d'exclusion mutuelle dans un système monoprocesseur).
on peut masquer les interruptions, et les interruptions
bloquées sont accumulées, c'est-à-dire qu'elles sont
exécutées dès qu'elles sont démasquées.
il existe une interruption non-masquable, dédiée au
signalement d'une erreur catastrophique pour le système.
Les interruptions
●
●
Cependant, pour chaque type d'interruption, le compteur
d'interruptions en attente se réduit souvent à un simple
drapeau;
Les interruptions peuvent par ailleurs être hiérarchisées
suivant des priorités. Une interruption de priorité supérieure
est prise en compte lors du traitement d'une autre
interruption, mais une interruption de priorité inférieure est
mise en attente.
Numéro d'interruption
0
1
2
3
4
5
Gestionnaire
Horloge
Disque
(pseudo-)terminaux (tty)
Autres périphériques
Logiciel (trap)
Autres
Les interruptions
●
Types d’interruptions:
Fonctionnement avec PIC
Le pilote des périphériques
●
●
Le pilote de périphériques : Le programme qui
commande le fonctionnement élémentaire d'un
périphérique est appelé son pilote (en anglais driver ou
handler).
Le handler gère directement l'interface du coupleur du
périphérique, traite les interruptions émises par celui-ci,
détecte et traite les cas d'erreur. C'est au niveau de ce
module que doivent être traitées les particularités de
programmation du coupleur.
Le pilote des périphériques
●
●
Il est généralement invisible aux utilisateurs du
système, qui accèdent aux fonctions d'E/S au moyen
de services de plus ou moins haut niveau réalisés par
des appels au superviseur. Le handler contient donc
les primitives permettant de commander le
périphérique.
Ce driver est constitué de deux procédures, quasiment
indépendantes : une procédure traitant l'initialisation
d'un transfert et une procédure de traitement de
l'interruption associée à une fin de transfert. La gestion
des E/S repose sur l'utilisation des interruptions dans la
plupart des cas.
Les tampons
●
●
Les tampons : La différence considérable entre les
vitesses de traitement de l'unité centrale et des organes
périphériques impose de tamponner les entréessorties, c'est-à-dire d'interposer une zone de mémoire,
ou tampon, entre les périphériques et les programmes
utilisateurs.
Le but est de réduire le temps d'inactivité de l'unité
centrale en découplant son fonctionnement de celui
des périphériques. Les programmes utilisateurs
transfèrent l'information depuis ou vers le tampon,
celui-ci, en parallèle, sert de source ou de destination
aux échanges avec le périphérique.
Les tampons
●
Pour qu'une donnée lue sur un périphérique soit
disponible pour l'unité centrale, il faut que la lecture ait
été anticipée, de même pour qu'une donnée soit écrite
sur un périphérique, elle doit être conservée en
mémoire le temps de son transfert. Pour cela, on utilise
des tampons (en anglais buffer ou spool). Il existe deux
types de tampons :
–
Les tampons en mémoire centrale (buffer ou buffering);
–
Les tampons en mémoire auxiliaire (spool ou spooling).
Les tampons
●
Les tampons en mémoire centrale (buffer ou
buffering) : l'utilisation de buffer va permettre de
charger les données en entrée ou de les récupérer en
sortie dans une zone réservée de la mémoire (circuits
intégrés).
Les tampons
●
Il existe aussi le double buffering, il améliore les
performances d'utilisation du microprocesseur, en effet
en utilisant deux tampons en entrée et en sortie. Un
programme en cours rempli ou vide ses données dans
l'un tandis que l'unité d'échange vide ou rempli l'autre.
Les tampons
●
Les tampons en mémoire auxiliaire (spool ou
spooling) : pour éviter l'encombrement de la mémoire
centrale par les tampons d'entrée-sortie, ceux-ci peuvent
être reportés sur une mémoire auxiliaire à accès rapide
(disque). Le terme spool (ne veut pas dire "bobine", mais
est l'acronyme de Simultaneous Peripherical
Operations On Line).
Les tampons
Les tampons en mémoire auxiliaire (spool ou spooling)
Téléchargement