Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parAlberi Schneider Modifié depuis plus de 11 années
1
GEF 435 Principes des systèmes d’exploitation
Principes du matériel d’E/S – Ou – Revue de revue du matériel des ordinateurs (Tanenbaum 5.1)
2
Revue Quelles sont les avantages d’un système segmenté?
Quelles sont les deux désavantages majeurs d’une implémentation pure de la segmentation? Advantages: Easy to link programs together May be easier to grow/shrink segments Protection can by assigned to memory by its purpose Code is more easily shared between processes Disadvantages: Segments larger than physical memory cannot be loaded Memory will become fragmented over time Programmer must be aware of the model
3
Synopsis Catégories des périphériques d’E/S
Contrôleurs de périphériques Registres de contrôle E/S basé sur les ports E/S mappées en mémoire Accès Dir Interruptions ect à la mémoire We saw some of this in the section on computer hardware review. Since it is about to be put to immediate use it is being reviewed and expanded upon.
4
Catégories de périphériques d’E/S
Les périphériques d’E/S viennent en deux types généraux: Périphériques par blocs Périphériques par caractères Les périphériques par blocs stockent les données en blocs de taille fixe, chacun possédant sa propre adresse Les disques sont la représentation la plus courante des périphériques de blocs Parce que chaque bloc est adressable, chaque bloc peut être indépendamment lu/écrit des autres blocs ie: quand vous sauvez un fichier sur le disque vous n’avez pas à réécrire tout votre disque!
5
Catégories de périphériques d’E/S
Les périphériques par caractères acceptent et fournissent des flots de caractères sans aucune structure Non adressable Aucune opération de recherche (seek) Exemples: souris, imprimante, interfaces de réseau, modems,… Certains périphériques chevauchent les frontières: les bandes magnétiques pour sauvegarder entreposent des blocs de données de disques, mais l’accès est séquentiel Certains périphériques ne font pas dans les modèles: Horloge: pas adressable par blocs et ne fournit pas de flots Écran: n’ont pas de blocs ou de flots, mais ont de la mémoire mappée
6
Contrôleurs de périphériques
On se rappel: Les périphériques d’E/S ont typiquement une composante mécanique et une composante électronique La partie électronique est le contrôleur Monitor Bus
7
Contrôleurs de périphériques
Sur un PC, le contrôleur de périphérique est habituellement sur un circuit imprimé Il peut être intégré sur la carte mère Le job du contrôleur est de convertir un flot de série de bits en octets ou en blocs d’octets et de faire les conversions et corrections En fin de compte touts les périphériques traitent des bits. C’est le contrôleur qui groupe ou dégroupe ces bits Even on block devices, the read from the head still progresses one bit at a time. The controller must assemble those bits together Mice, which are character devices, feed their bits serially to the controller. When enough information is assembled to represent a move of the mouse, the controller presents it to the area in memory/interrupt controller
8
Registres de contrôle Chaque contrôleur possède quelques registres qui servent à la communication avec le processeur Le système d’exploitation peut commander les périphériques de fournir ou accepter des données, de s’éteindre, etc. Le SE peut aussi lire certains registres pour déterminer l’état du périphérique Les contrôleurs ont typiquement des tampons de données auxquels le SE peut lire et écrire Important pour ne pas perdre de données Parfois utilisé comme ‘partie’ du périphérique, ie: RAM vidéo auquel les programmes ou le SE peuvent écrire
9
Registres de contrôle Comment est-ce que le SE communique avec ces registres et ces tampons de données? Deux méthodes: Numéros de ports spéciaux qui doivent être spécifiés Chaque registre est mappé en mémoire Aucune mémoire est présente à ces adresses
10
E/S basé sur les ports Pour communiquer avec les contrôleurs par les ports, des commandes spéciales doivent être disponibles sur le système ie: on utilise MOV en assembleur pour parler à la mémoire, mais IN ou OUT pour parler aux ports Les premiers ordinateurs ont tous utilisés cette méthode Désavantages: Des instructions spéciales sont requises On doit se servir de l’assembleur pour écrire les fonctions qui parlent aux périphériques. On a besoin de code spécial pour protéger les périphériques d’E/S pour les processus qui n’ont pas les privilèges nécessaires Assembly code is needed since we can’t just use the normal C functions for writing to normal addresses in memory. Of course, once the library was written to let us talk to the device we can just use that library, but writing the driver is going to be more difficult Special code is needed to protect the devices so that processes that don’t have the right privilege levels can’t access certain devices. We’ll see how it’s easier with memory-mapped I/O next.
11
E/S mappées en mémoire Dans cette approche, les registres de contrôle du périphérique sont mappés dans l’espace mémoire Maintenant, on a pas besoin d’instructions spéciales pour parler aux contrôleurs des périphériques. Traité comme tout autre accès à la mémoire Avantages: Pas besoin de nouvelles instructions. En fait quelques instructions pour le RAM peuvent être utilisées pour tester l’état du périphérique! Aucun mécanisme de protection spécial est requis (on ne donne tout simplement pas aux processus l’accès aux cadres qui contiennent les adresses des registres d’E/S) For the first advantage, the example is that if there is an instruction called TEST which continually tests a bit in memory for 0 value, and this is how the device signals readiness, we can use this instruction to check our device. Very neat and simple If using ports, the same test would require multiple steps. The register would have to be read into memory by the CPU and subsequently tested. Twice as many instructions!
12
E/S mappées en mémoire Désavantages:
Les caches sont maintenant plus difficiles. On a besoin d’une méthode qui ne cache pas certaines pages ou segments ou le SE ne verra pas le changement de l’état des périphériques! Sur chaque référence de mémoire, chaque module de mémoire et périphériques d’E/S doivent vérifier pour voir si ils doivent répondre à la demande. Ceci est trivial dans le cas d’un système avec un seul bus...
13
E/S mappées en mémoire Désavantages (continue):
…cependant, la plus part des systèmes donne un bus haute vitesse entre la mémoire et le CPU et un bus de système: Ceci rend la tâche difficile à un périphérique pour voir si il a été adressé. Un système doit être implémenté pour transférer les adresses périphériques sur le bus du système au cas ou la référence est pour E/S et non pour la mémoire. Possible choices to allow I/O devices to see the request: First send all references to memory. On no response, check with the other busses. Complex. Put a “snooping” device on the memory bus that forwards on all addresses that may interest I/O devices. Unfortunately, many I/O devices may not be able to keep up with the flow. Need to cache requests, etc Solution du pentium Pontage
14
Les contrôleurs de périphériques
Solutions: Séparé Partagé Hybride Un design hybride peut être utilisé pour permettre aux registres des contrôleurs d’être des ports mais d’avoir leurs tampons de données dans l’espace mémoire The Pentium uses the hybrid design. Advantage of the Hybrid is that DMA can be used to talk to the buffers. You wouldn’t typically use DMA to communicate to the ports. This leads into DMA...
15
Accès directe à la mémoire (DMA)
DMA est utilisé pour libérer le CPU d’avoir à déplacer des octets du périphérique vers la mémoire Cela demande une autre pièce de matériel appelé un contrôleur DMA Le SE/CPU charge les registres du contrôleur DMA avec l’information nécessaire pour l’instruire de quel périphérique prendre/passer les données, où les mettre en mémoire et combien d’octets doivent être écrit/lu So, without DMA a disk read involves the disk controller reading a block of data from the drive bit by bit, assembling the block, and performing the checksum to verify the data. Then the controller causes an interrupt to indicate its data is ready. The OS would then take control and read data out one word at a time into the area in memory where the data is required.
16
From this perspective, DMA is much quicker
From this perspective, DMA is much quicker. The OS simply tells the DMA controller from where, to where, and how much and lets it do its work The DMA controller ‘steals’ cycles when the bus is not active to move data to memory. Its read requests on the bus look like those the CPU might issue. The controller doesn’t care who it comes from. The DMA controller will continue to give read/write requests until all the data has been moved. It will then send an interrupt to the CPU
17
Accès directe à la mémoire (DMA)
Les transfères mémoire peuvent être un octet à la fois ou en mode rafale (burst mode) Avec un octet à la fois, le contrôleur DMA transfère un octet ou mot pour chaque demande En mode rafale, le contrôleur DMA transfère un nombre d’octets à la fois. Ceci sauve du temps pour obtenir et relâcher le bus Plus efficace, mais cela peut retarder le CPU à répondre à d’autre travail ou périphériques pour un long temps dépendant du temps de la rafale
18
Accès directe à la mémoire (DMA)
Les contrôleurs DMA utilisent normalement des adresses physiques pour leurs transferts Autrement. Il auraient a parler au MMU. Particulièrement difficile si le MMU fait partie du CPU Certains contrôleurs DMA vont tamponner l’information dans leurs propre espace mémoire Permet de faire des transferts de périphériques à périphériques, mais c’est plus compliqué Pas tout les ordinateurs utilisent les DMA Pas requis tout le temps et beaucoup moins dispendieux sans cela! Not always needed since, if the devices attached to the computer aren’t slow, the CPU is much faster at moving stuff around than the DMA controller If the system is more I/O bound than CPU bound it makes sense to let the (fast) CPU do the work instead of the (slow) DMA controller.
19
Interruptions, revisitées
Qu’est ce qui ce passe quand un périphérique a besoin d’attention et signale une interruption? Le périphérique signale sur une ligne Le contrôleur des interruptions, si il est prêt, informe le CPU d’une interruption en suspend et met le numéro du périphérique sur le bus des adresses pour informer le CPU de quel périphérique a signalé une interruption Le CPU utilise cette adresse comme offset dans une table appelée vecteur d’interruptions. L’entrée contenue dans la table est l’adresse où la routine de service de l’interruption est localisé. Interrupt a sleepy student with this: Knock knock Who’s there? The Interrupting cow.
20
Interruptions, revisitées
Que ce passe-t-il sur une interruption? Quand le CPU prend soins de l’interruption, il envoie une confirmation au contrôleur des interruptions. The CPU waits to ack until it is handling the interrupt to avoid confusing situations. EG: if the CPU acked right away and another interrupt occurred, how would the CPU keep track of them. Usually state is saved on the stack, but nothing has been saved yet. Confusing.
21
Interruptions, revisitées
Considérations: Sur quelle pile est-ce que le CPU sauve l’état courant? Si la pile de l’utilisateur est utilisée, comment sait-on que la pile est valide? Aussi, que ce passe-t-il si la pile est valide, mais notre information remplie la page courante? Maintenant nous pouvons avoir un défaut de page en plein milieu de notre interruption! Si la pile du noyau est utilisée, le CPU devra faire une TRAP au mode noyau (ce qui n’est pas tout le temps requis…plusieurs pilotes de périphériques vivent dans l’espace utilisateur) ce qui requiert plus de temps et un changement de contexte, ce qui invalide le RPA, la cache, etc.
22
Interruptions, revisitées
Plus de considérations: Combien d’information d’état devons nous sauvegarder? Les systèmes plus vieux sauvaient simplement l’état après que le CPU finissait sa dernière instruction Les systèmes modernes ont des pipelines. Est-ce que l’on sauve seulement toutes les instructions complètes ou l’état des instructions partiellement complétés? Les CPUs Superscalaire sont encore plus compliqués. Parce que les instructions sont complétées en désordre et ensuite rassemblées, comment est ce que le SE/CPU peut simplement repartir d’une seule instruction? Without precise interrupts on a superscalar system, a large volume of information is vomited onto the stack and the writer of the OS has to code a routine to figure it all out.
23
Interruptions, revisitées
Encore plus de considérations: Certains systèmes fournissent des interruptions qui sont appelées ‘interruptions précises’. Ces interruptions laissent la machine dans un état très bien défini: Le compteur ordinal est sauvé dans une place connue Toutes les instructions avant celle qui est pointée par le CO ont étés complètement exécutées Aucune instruction après le CO a été exécuté L’état de l’exécution de l’instruction qui est pointée par le CO est connu The Intel series, which has been superscalar since PRO, gives precise interrupts.
24
Questions? Quiz Time! What is burst mode?
A DMA mode where a number of bytes are transferred at once to complete the I/O expediently. Why is caching more difficult to implement with memory-mapped I/O? Because it must be disabled for those addresses that are mapped to physical devices.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.