500 likes | 680 Views
Cours Architecture des Systèmes Informatiques. Plan: mémoire et périphériques. Aspects généraux, caractéristiques & besoins La mémoire des ordinateurs : vue matérielle Gestion de la mémoire, vision OS Périphériques Disque : bas niveau Disque : haut niveau.
E N D
Plan: mémoire et périphériques • Aspects généraux, caractéristiques & besoins • La mémoire des ordinateurs : vue matérielle • Gestion de la mémoire, vision OS • Périphériques • Disque : bas niveau • Disque : haut niveau
Aspects de l’utilisation de la mémoire • On n’a pas besoin de toute la mémoire en même temps • Code du programme : la partie en cours d’exécution • Les données : utilisation souvent localisée • dans le temps et l’espace : variables locales • dans le temps : allocation/libération dynamique • utilisation par à-coups, sur des intervalles de temps courts • Utilisation irrégulière des ressources • Loi des 90-10 • 10% des données représentent 90% des accès • (10% du code utilise 90% de la CPU)
“Localité des références” • Concept de “localité des références” • Sur un court laps de temps, le nombre “d’objets” utilisés est petit • WS, Working Set [Peter Denning, 1968] • Programme • Les instructions sont le plus souvent exécutées en séquences • Les boucles tendent à faire répéter de courtes séquences • Données • Variables locales, tables constituent des regroupements naturels • Mais… Évolution au fil des temps du WS • Comment gérer cette évolution ?
Mémoire : les performances • L’informatique a toujours besoin de mémoire plus rapide • La mémoire traditionnelle est lente comparée au processeur • La mémoire rapide est très chère • Et il en faut beaucoup… • Mais… “localité des références” • Optimiser l’utilisation de la mémoire ? • Notion de hiérarchie mémoire • Solution au dilemme coût / performances
Registres : 0 ns Hiérarchie de mémoire Cache 10ns RAM : 50ns Coût et Vitesse Disque magnétique 10ms Disque magnéto-optique 500ms Bande magnétique minutes
Gestion de cette hiérarchie • En grande partie automatique • Le compilateur décide, par une analyse statique du programme, quelles données vont être temporairement conservées dans des registres, et génère les instructions de transfert • La CPU détermine dynamiquement, au cours de l’exécution, quelles données de la mémoire centrale vont être placées dans le cache • Le système d’exploitation décide de transférer entre la mémoire centrale et le disque des portions de programmes ou de données
Cache • Un élément critique de la hiérarchie mémoire • Taille réduite, comparée à celle de la mémoire centrale • Vitesse d’accès proche de celle du processeur, coût élevé • Contient des copies de parties de la mémoire centrale • Principe de fonctionnement • Un accès à la MC entraîne le transfert d’un bloc vers le cache (principe de localité) • Les éléments du bloc sont accessibles de manière performante • Du fait de la rapidité nécessaire, la gestion du cache est entièrement réalisée en matériel (invisible à l’OS ou aux applications)
Aspects de la gestion du cache • D’où viennent les données ? • Associer à chaque bloc du cache son adresse MC • Politique de transfert des blocs • Taille des blocs • Quel bloc “évacuer” pour en placer un nouveau ? • A quel moment réécrire en mémoire les données modifiées ? • Taille et technologie du cache • Petit, rapide et cher, ou grand, meilleur marché, et plus lent ? • Un/deux caches dans la hiérarchie ? • Séparer instructions et données ?
Algorithme de gestion du cache • Mappage direct • Le mot d’adresse xxxxYxxx se retrouve dans le bloc Y du cache • Simple, rapide, efficace à mettre en œuvre • Très inefficace quand deux blocs de MC se mappent au même endroit • lourde pénalité en temps d’exécution • Mappage associatif • On utilise une mémoire associative, une entrée par bloc de cache • A chaque bloc est associée sa position en mémoire • Recherche d’un bloc à travers la mémoire associative • Algorithmes de remplacement
Note : mémoire associative • Accès par contenu • On recherche une valeur dans la mémoire • La mémoire fournit l’adresse où se trouve la valeur • La recherche s’effectue simultanément sur tous les éléments de la mémoire • Dispositif matériel de coût élevé, conçu spécifiquement pour chaque application • Plus complexe • Pas d’utilisation en grande quantité
Algorithmes de remplacement • Cas du seul mappage associatif • Moins récemment utilisé (LRU, least recently used) • File (FIFO, first in, first out) • Moins fréquemment utilisé (LFU, least frequently used) • Aléatoire (Random) • Réécriture des blocs modifiés • Écriture immédiate (Write through) • Conformité cache/MC, écritures multiples coûteuses • Écriture différée (Write back) • Incohérence possible cache/MC [ex: DMA disque]
Autres aspect de la gestion des caches • Tailles relatives blocs, cache, MC • Bloc : 4 à 8 “unités d’accès” de la CPU • Cache : 1/1000 de la taille MC • Localisation du cache • Sur la CPU (L1, level one) • 80486 : 8 ko • Pentium : 16 ko • Power PC [Motorola] : 64 ko • Cache de second niveau (L2, level two) • Carte mère, à côté du processeur : 512 à 1024 ko
Les unités de gestion de la mémoire • …Ou MMU, Memory Management Units • Résoudre un problème récurrent : les trous de mémoire • Comment rassembler de l’espace libre ? • Comment déplacer des blocs de mémoire utilisée • Comment mettre à jour des adresses dans un programme ? • Intermédiaire entre adresses logique et physique • Adresse logique : ce que voit et manipule le programme • Adresse physique : où est réellement conservée la donnée
Que va offrir une MMU ? • Outil matériel pour mieux gérer la mémoire physique d’une machine • Simplifier la gestion d’un ensemble de programmes • Simplifier la gestion de la mémoire au sein d’un programme • Offrir une protection entre programmes, et au sein d’un programme • Permettre un partage physique et logique de mémoire entre plusieurs programmes • Simuler une mémoire physique “plus grande”
Segmentation • L’espace d’adressage logique d’un programme est partagé en segments contigus • Transparent au programme • Les segments sont de tailles différentes [multiples de 2k octets] • Informations nécessaires pour chaque segment • adresse “logique” de début du segment • adresse physique effective du segment • taille du segment • informations diverses : n° programme, R/W, modifié, etc… • c.f. poly : le Z8010, pp 58-59
Pagination Adresse logique Numéro de page Déplacement • Une segmentation où tous les segments ont même longueur - le dispositif le plus fréquent. • Taille typique : 4 à 8 ko. Traduction Adresse physique
Mémoire virtuelle • Espace logique plus grand que l’espace physique • Pour l’ensemble des programmes • Au sein de chaque programme • L’espace logique est mappé sur un espace physique en mémoire secondaire : le “swap”, portion de disque • Les pages sont transférées entre la mémoire physique et le disque • Géré par le système d’exploitation • “Faute de page”
Problèmes • Taille de la table des pages • 4 Go adressables, pages de 4 ko => 1M d’entrées… • Coût de cette table… • table associative : numéro logique/numéro physique • matériel : équivalent de 8 Mo de mémoire => énorme • solution mixte : hard+soft • tables à deux niveaux, table pour chaque programme • cache rapide dans la CPU : TLB, Translation Lookaside Buffer • 890486 ; 32 entrées, 98% de réussite • Algorithmes de gestion • Complexes : LRU, FIFO, Not Recently Used • Phénomène de thrashing : compétition pour la MC
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ROM BIOS libre libre ROM BIOS 2 RAM vidéo RAM vidéo 2 RAM RAM RAM RAM RAM RAM RAM RAM RAM RAM La mémoire sous DOS • Vision DOS traditionnelle • 1 Mo divisée en 16 segments de 64 ko • 10 segments de mémoire RAM • 0 à 640 ko • 1 segment ROM pour le BIOS • 1 segment RAM vidéo (VRAM) • segments “libres” • compléments BIOS ou VRAM • cartouches enfichables
“Types” de mémoire • Mémoire conventionnelle : 640 premiers ko • Mémoire haute : de 640 à 1024 ko • Mémoire étendue : au delà de 1024 ko • Extended Memory : de 16 Mo (80286) à 4Go (80386) • Expansions mémoire • Expanded memory ; commutation de bancs • “Norme” LIM/EMS : Lotus/Intel/Microsoft EM Specification • version 3.2 et 4.0
Utilisation de la mémoire sous DOS • Vision utilisateur : allocation & libération • Allocation par la primitive 48h ; bx = taille demandée [16 octets] • Libération par la primitive 49h ; es:0 = adresse du bloc à libérer • Les blocs libres contigus sont rassemblés pour former un bloc plus gros • “Paramétrer” la gestion de la mémoire • Fonction 58h : choisir first/best/last fit, high/low • first fit : le premier bloc trouvé de taille suffisante est alloué • best fit : le bloc de la taille minimale est alloué • last fit : comme first fit, en partant de la fin de la liste • high/low : dans quelle mémoire allouer
Types d’adressage • E/S “traditionnelles” • Mémoire d’échange distincte de la mémoire centrale • Instructions spéciales pour la réalisation des E/S • Mécanisme de transfert avec la MC • E/S “mappées” • Mémoire d’échange et mots de commande sont visibles dans l’espace d’adressage du processeur • Les opérations d’E/S se traduisent par des lectures et écritures en MC • “Perte” d’une portion de la MC
Interface programmée • La CPU réalise la plus grosse partie du travail • Lancement d’une commande • paramètres spécifiques, données éventuelles • Attente d’un changement d’état • Lecture de l’état (“status”) du périphérique • Récupération des données, ou gestion de l’erreur • Poursuite par la CPU du programme courant • Caractéristiques • Simple [logiciel, matériel], synchrone, inefficace
E/S gérées par interruptions • Lancement synchrone des opérations • La CPU s’adresse au module d’E/S pour initialiser l’opération • Pendant l’E/S, la CPU peut continuer les traitements en cours • Le module d’E/S assure la gestion des opérations • Quand l’E/S est achevée, il le signale à la CPU en provoquant une interruption • La CPU reconnaît l’interruption, et la traite à la fin de l’instruction en cours • Récupération des données
E/S en accès direct mémoire • Décharger “encore plus” la CPU • Lancement synchrone des opérations • Appel au module E/S • spécification de l’opération et des paramètres • spécification d’une adresse mémoire et d’un nombre d’éléments • La CPU travaille pendant les opérations d’E/S • L’interruption indique la fin du transfert et la disponibilité des données • Le module d’E/S utilise le bus pour lire/écrire en MC • DMA : direct memory access
Interfaces externes • Ports E/S série et parallèle • Imprimantes, modems • BUS E/S à grande vitesse • SCSI, ESDI, IDE… • Disques,lecteurs CD-Rom, scanners • Ethernet • Réseau • Bus série P1394 • Bus d’instrumentation : HP-IB, IEEE-488, etc.
Ports d’E/S “lents” • Port série • Norme RS-232 • 1 fil émission, 1 fil réception, 1 masse, 1 terre, 5 fils contrôle • Norme RS-422 (proche RS-232) • Norme MIDI [Musical Instrument Digital Interface] • 1 fil émission, 1 fil réception, 1 masse • Interfaces “propriétaires” [souris, clavier] • Port parallèle • Interface “Centronics” • 8 fils données, 1 masse, 1 signal “busy”, 1 signal “strobe]
1 : Terre de protection 2 : Transmission 3 : Réception 4 : Demande pour émettre 5 : Prêt à émettre 6 : Poste de données prêt 7 : Masse 8 : Détection de porteuse 20 : Terminal de données prêt Norme RS-232C / V.24 • Spécifications mécaniques, électriques, fonctionnelles • V.24 du CCITT [Comité Consultatif International Télégraphique & Téléphonique] = RS-232C de EIA [Electronic Industries Association] • Circuit UART : Universal Asynchronous Receiver Transmitter • Octets indépendants • Sérialisation • 7/8 bits données • bits start, stop • 25 broches • Débit : 110, 300,1200… bauds
0 1 0 0 1 0 1 1 0 Représentation des signaux • Modulation numérique • Modulation en amplitude • Modulation en fréquence • Modulation en phase
Bus SCSI - Small Computer System Interface • SCSI-1 [Apple, 1984] • 8 bits de données • Horloge à 5 MHz ; 5 MB/seconde • 8 “éléments” dont la CPU => 7 périphériques • SCSI-2 • Standard actuel • Largeur du bus de 16 ou 32 bits • Horloge à 10 MHz • Grande variété de périphériques
Ethernet • Bus à 10 ou 100 Mb/s, pour réseau local • Câble coaxial ou paire torsadée • Équipements dotés d’un numéro unique sur 48 bits • Message : paquet de 128 à 1530 octets [0.1 à 1.5 ms] • 1024 stations [transducteur], 300 à 1000 m • Pas de contrôle central : les stations écoutent et réémettent si nécessaire • collisions détectées par l’émetteur • réémission au bout d’un temps aléatoire • Interconnexions : • réémetteurs, filtres ou passerelles
R R Transceiver Station Ethernet - technologie • Aspect électrique • propagation des ondes électro-magnétiques = 200,000 km/s • phénomènes d’écho aux extrémités • Connexion des stations
T1 T5 T6 T7 S1 T2 T3 T4 T8 S2 Ethernet - collisions T1, T2 : les stations S1 et S2 envoient un message T3 : S2 détecte une collision due à l’émission de S1, arrête d’émettre en T4 T5 : S1 détecte la collision due à l’émission de S2, arrête d’émettre en T6 T7, T8 : le médium apparaît “libre” aux stations S1 et S2
P1394 - Bus série haute performance • Liaison série haute vitesse, faible coût • Ordinateurs, Électronique générale • 25 à 400 Mbps [3 à 50 MB] • Jusqu’à 63 unités physiques • Avec des “bridges”, jusqu’à 1022 bus interconnectés • Communication par 3 niveaux de protocoles: • Physique, liaison, transaction
Disques magnétiques • Aspects technologiques • Support magnétique tournant sous une tête de lecture • Disquette : 3.5 pouces, capacité 800ko, 1.2, 1.44 ou 2.88 Mo, 2 faces • Disque dur : de 80 Mo à 10 Go, 3.5, 5 ou 8 pouces. • 1 tête par face magnétisée, 1 ou + plateaux • la tête se déplace le long d’un rayon • la rotation du disque sous la tête détermine une piste • 1 face = ensemble de pistes concentriques • cylindre : ensemble de pistes setrouvant simultanément sous les têtes
En-tête et numéro de secteur Partie utile Checksum Pistes et secteurs • Piste : partagée en plusieurs secteurs • Disquette DD : 80 pistes/face, 9 secteurs de 512 octets/piste = 720 ko • Secteur : “unité de lecture”, 256 à 4096 octets utiles • vue “déroulée” d’une piste : secteurs et “gaps” • numérotation logique des secteurs ordre physique : “entrelacement” • ex : 0 4 1 5 2 6 3 7
Le travail du contrôleur disque • Réaliser les opérations d’entrées-sorties • Lectures/écriture de “secteurs” • Gérer des numéros de secteurs “logiques”, 0 à n-1 • pistes, têtes et secteurs physiques • gestion des secteurs défectueux • réalisé au “formatage” du disque • remplacer les secteurs défectueux par des secteurs “de réserve” • implique une “zone critique” du disque • le disque est inutilisable si la zone critique est défectueuse
Disque : opérations de “haut niveau” • Fichier • Suite séquentielle d’octets désignée par un nom • Accès séquentiel, direct, indexé, etc… • Caractéristiques : taille, date création/modification, droits… • Gérer un ensemble de fichiers : “file system” • Organisation “à plat” [Macintosh HSFS version 1] • Organisation hiérarchiques [Dossiers imbriqués : DOS, UNIX] • Opérations : • Créer, déplacer, renommer, détruire des fichiers, modifier leurs attributs • Lire, écrire…
Un exemple : DOS 3.3 • Numérotation des secteurs sur 16 bits • [32 bits en DOS 4.0] • Taille max : 65536 * 512 octets, soit 32 Mo. • Pas un problème pour les disquettes • Les disques dur peuvent être divisés en “partitions” de 32 Mo. • Organisation d’une partition : • Secteurs “réservés”, tables d’allocation, répertoire racine • Données • Secteur “cachés”
Table d’allocation des fichiers [FAT] • 1 ou plusieurs exemplaires, secteurs 1 à n • Entrées de 12 (avant DOS 3.0) ou 16 bits • Chaque entrée est associée à un cluster • Un cluster est l’unité d’allocation • 1 ou 2 secteurs pour un floppy, 4 à 64 pour un disque dur • Valeurs possibles des entrées : • 0000h : cluster libre ; 0001h : entrée invalide • 0002h à FFEFh : cluster utilisé, pointeur vers cluster suivant du fichier • FFF0h à FFF6h : “réservé” • FFF7h : le cluster contient un secteur endommagé • FFF8h à FFFFh : le cluster est le dernier du fichier
Racine, données et secteurs cachés • Racine : un répertoire (taille indiquée dans sect. 0) • Entrée de 32 octets : “nom” du disque • Entrées de 32 octets • Données : taille calculable • Taille totale, moins S0, racine, FATs et Secteurs cachés • Secteurs cachés • Secteurs non inclus dans la zone données pour des raisons de formatage, limitations, etc • Peuvent indiquer la présence de partitions supplémentaires
Octets Contenu 0-7 Nom du fichier / 8 car. nom du disque 8-10 Extension / 3 car. nom du disque 11 Attributs 12-21 Inutilisés 22-23 Heure création 24-25 Date création 26-27 Numéro du premier cluster 28-31 Nombre d’octets / 0 (répertoire/volume) bit 0 : Read-only bit 3 : décrit un volume bit 1 : fichier caché bit 4 : décrit un répertoire bit 2 : fichier système bit 5 : modifié depuis back-up Répertoire • Structure • Attributs : 1 si…
bits 15-11 : heure (0-23) bits 10-5 : minute (0-59) bits 4-0 : seconde/2 (0-29) bits 15-9 : années depuis 1980 (0-127) bits 8-5 : mois (1:janvier, 12:décembre) bits 4-0 : jour (1 à 31) Heure et Date, premier octet • Heure • Date • Premier octet : valeurs spéciales E5h : entrée correspondant à un fichier effacé 00h : entrée libre (plus d’entrée utilisée ensuite)
Types de fichiers : conventions • DOS (suffixe unique, 3 car. max) • .c .h : fichiers source C • .COM .EXE : fichiers de commande, exécutable • Unix, Mac : un ou + suffixes • .shar .tar shell archive, tape archive • .Z .gz .zip fichier comprimé par compress, gzip ou pkzip • .uu .hqx fichier encodé par uuencode ou binhex • ex : toto.tar.gz.hqx • .gif .jpeg .jpg .tiff .xmb : fichiers image • .ps .tex .dvi .man : postscript, TeX, DVI, man
Fichiers : opérations du DOS • Création de fichier • Ouverture de fichier • Fermeture de fichier • Note : fermer les fichiers dès que possible • Les fichiers ouverts peuvent être endommagés en cas de coupure de courant, reset machine, etc. • Lecture, écriture, positionnement dans un fichier • Recherche d'un fichier conforme à un schéma • Destruction, renommage d'un fichier
Fichiers : autres opérations du DOS • Lire/changer les attributs • Lire/modifier date et heure de modification • Création de fichier temporaire • Duplication d’un file handle • Gestion des répertoires • Création, destruction, déplacement • Choix du répertoire par défaut