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)