Système d’exploitation et architecture des ordinateurs Architecture des ordinateurs : L’ordinateur Fonction d’un ordinateur La mémoire cache est une mémoire intermédiaire, on charge les instructions qui sont l’ensemble du programme ; La mémoire interne est la mémoire principal ; La mémoire externe, ex : lecteur dvd, disque dur ; Les entrés sorties : souris, clavier. Exécuter des programmes ; Les programmes se composent d’un ensemble d’instructions ; Les instructions sont rangées en mémoire ; Les composants de l’ordinateur : Processeur Mémoire (stocker les donnés) Module entré sortie Bus système (prend en charge toutes les communications entre les élément ; CP : compteur de programme, adresse mémoire des instructions, augemente la vitesse CPU : registre interne, registre tampon RI : registre interne RT : Le processeur lit une à une les instructions dans la mémoire et les exécute ; Le cycle d’instruction est le traitement nécessaire pour une instruction : Lecture d’une instruction Lecture d’une ou plusieurs opérandes Rangement d’une ou plusieurss opérandes Test d’interruption (sert à vérifier les instructions). Le CP (compteur de programme) contient l’adresse de lza prochaine instruction à lire : Il est incramenté à chaque lecture Le processeur place l’instruction du CP dans le RI (registre interne) et incrémente le CP ; Puis il traite l’instruction. Types d’instructions en mémoire : calculs, mise en mémoire, vérifications L’intruction peut-être : Une lecture ou une écriture mémoire Une lecture ou une écriture E/S Un traitement arithmétique des données Un contrôle : la prochaine instruction est à l’adresse… (Cas des instructions conditionnelles et des appels de sous-programmes) Une interruption comme (sont nom l’indique) interrompt le cycle d’instructions ou le programme en cours d’exécution. Types d’interruptions : temporisations, manque de mémoire, vérification exécution d’autres programmes, reset, Une interruption peut être : Une interruption de programme : Dépassement de capacité Division par 0 Instruciton illégale Un temporisateur : Permet au système d’exploitation d’effectuer régulièrement certaines fonctions Une interruption E/S : Exemple : l’utilisateur écrit au clavier Une défaillance matérielle Pour chaque périphérique E/S il y a un gestionnaire d’interruption Un périphérique E/S Les différentes structures de bus : Les lignes de données Transmettent uniquement des données Déterminent les performances Les lignes d’adresses Désignent la source ou la destination des données du bus de données Les lignes de contrôle Contrôlent l’accès et l’utilisation des lignes de données et d’adresse Physiquement, ce sont des lignes métalliques gravées sur la carte. Ordinateurs modernes : Hiérarchisation des bus Des tampons sont ajoutés entre les bus Le bus PCI Bus interne permettant de connecter des cartes d’extension sur la carte mère d’un ordinateur Bus haut débit Indépendant du processeur Meilleurs performsances que le bus système La mémoire cache Influence directe sur la performance d’un ordinateur Pour améliorer les performances : Garder au plus près du processeur (en cache), les accès récents De manière à accéder le moins possible à la mémoire externe La mémoire cache est une copie de certaines parties de la mémoire principale ; Lorsque le processeur tente de lire un mot, il vérifie auparavant s’il ne se trouve pas déjà dans le cache ; L’accès aux mots est ainsi plus rapide ; Si le mot ne se trouve pas dans le cache, on copie d’abord le bloc dans le cache ; Puis le cache donne l’accès au mot au processeur ; Il est fort probable que lorsqu’on souhaite accéder à une information d’un bloc, on souhaite accéder aux informations environnantes de ce mot dans le bloc. Le cache doit être suffisamment grand Stocker toutes les données nécessaires Le doit être suffisamment réduit Pour permetre d’accéder aux informations rapidement Hiérarchie de caches PowerPC G4 1 cache interne : cache L1 un cache pour les données de 32Ko un cache pour les instruction de 32Ko 2 cache externes cache L2 : cache mixte (données et instruction) de 256Ko à 1Mo Cache L3 : cache mixte données et instruction de 2… Pentium 4 1 cache interne cache L1 un cache pour les données de 8Ko… Il existe différents algorithmes pour remplacer les blocs dans le cache Du plus efficace au moins efficace : Moins récemment utilisé : LRU : least recently used Premier entré premier sorti : FIFO : first in first out Moins fréquemment utilisé : LFU : least frequently used Remplacement aléatoire La mémoire interne Mémoire principale de l’ordinateur. DRAM : Dynamic Random Access Memory Mémoire vive interne L’information est une charge électrique sur un condensateur Cette charge diminue avec le temps et doit être rafraichie régulièrement Une valeur seuil détermine si c’est un 1 ou 0 pour le bit L’information s’efface avec le temps Selon vous, est il utile d’attendre 10 à 20 secondes avant… La DRAM synchrone (SDRAM) (IBM) : Echange les données avec le processeur en synchronisaton avec une horloge interne Quand une requête est faite par le processeur, le nombre de cycles au bout duquel de DRAM aura fait l’action est connue par avance Le processeur peut donc continuer à travailler Envoyer des données vers processeur deux fois par cycle DRAM rambus (RDRAM) : Principale concurrente de la SDRAM Basée sur un bus interne qui définit la vitesse transmission Le type d’action est transmis par le bus et intégré aux données transmises Gian de temps Vitesse de bus : 800 mb/s DRAM cache (CDRAM) (mitsubichi) : Elle inclut un petit cache SRAM de 16 ko Elle peut servir de véritable cache ou de tampon pour prendre en charge l’accès séquentiel à un bloc de données Préchargement dans la SRAM cache SRAM : Static Random Access Memory Mémoire vive interne statique La plus rapide à se décharger Tout disparaît lorsque l’alimentation est coupée Utilisée pour le cache Pourquoi ? ROM : Read Only Memory Mémoire morte Mémoire permanente (non volatile, lecture seule), les données ne peuvent être effacées Elle sert aux : Sous programme des bibliothèques pour les fonctions fréquemment utilisées Programmes du système … PROM : Programmable ROM ROM programmable une seule fois EPROM : Erasable PROM ROM effaçable et programmable globalement et électriquement par (rayonnement uv) EEPROM : Electrical EPROM EPROM programmable octet par octet Mémoire flash : PROM effacble par bloc La mémoire externe Disque magnétique Aspect physique : C’est un plateau rond composé D’un matériau non magnétique (surbstrat) Recouvers d’un plateau… Les données sont enregistrées puis récupérées du disque via une bobine conductrice : la tête La tête est fixe et le plateau tourne en dessous en phase de lecture et d’écriture Sur la plupart des disques il y a une tête de lecture et une tête d’écriture Sur le plateau les données sont oragnisées en anneaux concentriques : pistes Largeur d’une piste = largeur de tete Une surface contient des milliers de pistes Des espaces entre les pistes évitent les erreurs induites par un mauvais alignement de la tete sur les pistes Les pistes sont divisées en secteurs Quelques centaines de secteurs par piste La lontgueur d’un secteur est fixe 512 octets Les secteurs adjacents sont séparés par des espaces intersecteur Des marqueurs invisibles à l’utilisateur délimitent chaque secteur : début, taille, identifiant du secteur, numéro de piste, fin. Disque à tête fixe : une tête de lecture / écriture par piste Disque à tête mobile : une seule de lecture / écriture, une montée sur un bras déployable et rétractable, un arbre fait tourner le disque. Les pistes d’une surface de plateau constituent un cylindre. 2 types de disques : Disques simple face Disques double face une couche magnétique sur les faces du plateau Certains disques contiennent plusieurs plateaux une tête par surface de plateau Pour mesurer la performance des accès à un disque : Temps d’attente du composant Lorsqu’un processus émet une requête d’E/S, il doit d’abord attendre dans une file d’attente qu’un composant soit disponible avant de lui être assigné Temps d’attente du canal Si le canal est partagé avec d’autres lecteur de disques, il y a un délai d’attente supplémentaire temps de positionnement : temps nécessaire pour positionner la tête au dessus de la piste disques durs modernes < 10 ms le controleur de disque attend ensuite que le secteur approprié tourne pour venir s’aligner avec la tête délai du au composant occupé : si le composant fait une autre tâche, il faut attendre qu’il ait fini le cycle délai de rotation : temps qu’il faut pour positionner le début du secteur sous la tête disques durs modernes : entre 100 ms et 50ms La technologie RAID Reductant array of independant disks : Reseaux redondants de disques indépendants Utilisation de plusieurs disques externes en parallèle : Accèus simultanés à plusieurs disques 7 niveaux différents de 0 à 6 RAID 0 : Pas de redondance Possibilité d’émettre deux requêtes en parallèle sur deux disques différents RAID 1 : Duplication des données Chaque dique possède un disque miroir RAID 2 et 3 : Techniques d’accès parallèle aux différentes données En cas de défaillance d’un disque, on accède au disque de parité et les données sont reconstruites RAID 4 à 6 : Accès indépendants et non plus parallèles … Mémoire optique CD/DVD : lecture seule, audio, vidéo CD-ROM lecture seule, tout type d’information. 650 mo CD-R/DVD-R : 1 seule écriture possible CD-RW/DVD-RW : Ré-enregistrable Fonctionnement d’un CD : Un moteur fait tourner le disque sous un laser faible puissance Creux lumière dispersée : faible intensité en retour Méplats lumière d’intensité plus grande en retour Un capteur détecte les changements entre creux et méplats 1 : début et fin d’un creux 0 : pas de chagement d’état Les données sont organisées en spirale et non en disques on balaie selon une vitesse linéaire constante est non plus angulaire Fonctionnement d’un DVD : Un cd ou un dvd est moins couteux à reproduire qu’un disque magnétique Il est amovible possibilité d’archivage Mais le temps d’accès est plus long qu’un disque magnétique Bande magnétique Même principe que les disques magnéiques Bande polyester souple recouverte d’une pellicule de matériau magnétique Données organisées en pistes parallèles (18 à 36 pistes parallèles) … Mémoire flash externe Les entrées/sorties Ce sont les interfaces d’un ordinateur avec monde extérieur (périphériques externes) : Périphériques lisibles par l’homme : écran, imprimante, clavier, souris, etc Périphériques lisibles par l’ordinateur : disques magnétiques, capteurs, etc Périphériques distants : modem, terminal, etc Il y a un modure E/S dédié à chaque prériphérique Un module E/S a pour fonction : Controler et coordonner les flux de données Communiquer avec le proscesseru et les périphériques : décoder les signaux électriques (imprimante) et les étatns des périqphériques (très lents) Mettre en mémoire tampon des données (lenteur des périphériques) Détecter les erreurs, dysfonctionnements et pannes Les E/S programmées Echange de données proceesseur / module E/S Le programme contrôle totalement l’opération durant toute sa durée : il doit attendre la fin de l’opération, il y a perte de temps. Un module E/S peut rrecevoir 4 types de commandes du processeur : Contrôl : active le périphérique et lui indique ce qu’il doit faire. Test : teste les différentes conditions d’état (alimenté, prêt, etc). Read : lecture des données du périphérique et placement dans le tampon du module E/S. Write : transmission d’une donnée provenant du processeur au périphérique via le bus système. Les E/S gérées par interruption Le processeur émet une commande, puis exécute un autre travail. Quand le modure E/S a traité la commande, il émet une requête de service. Le processeur interropt son travail. Du point de vue du modure E/S : Entrée : reception d’une commande du processeur Lecture des données du périphérique Ecriture de la donnée dans le tampon (registre de données) Interruption transmise au processeur (via ligne de contrôle du bus système) Attente que le processeur réclame la donnée Le module place la donnée sur le bus. Du point de vue du processeur : Emission d’une commande Exécution d’une ou plusieurs taches A la fin de chaque cycle d’instructions, test des interruptions S’il y a une requête, il sauvegarde le contexte du programme en cours Stockage des données transmises dans la mémoire interne Restauration du contexte du programme interrompu Les interruptions peuvent venir de plusieurs modules : quel module a envoyé quelle interruption ? Ordonner les interrupiton qui arrivent en même temps : priorités affectées aux périphériques. Les E/S gérées par interruption demandent néamoins une intervention active du processeur. Le transfert des données doit passer par le processeur : Le débit de transfert est donc limité par la vitesse à laquelle le processeur teste et sert un périphérique Le processeur est occupé à gérer chaque transfert E/S L’acces direct à la mémoire est utiles pour le transfert de gros volumes de données Les accès directs à la mémoire DMA : Direct Access Memory. Implique un module supplémentaire sur le bus système : le module DMA. Il s’octroie le contrôle du système pour transférer les données vers et depuis la méamoire en passant par le bus système. Quand le processeur veut lire ou écrire un bloc de données il émet une commande vers le modure DMA, il continue ensuite son autre tâche. Le module DMA transfert le bloc en volant des cycles de bus au processeur : simple ralentissement du processeur. Lorsque le transfert est terminé, il envoie un signal d’interruption au processeur. Support du système d’exploitation Le système d’exploitation (Opérating Système, OS) est le logiciel qui contrôle les programmes d’un processeur et gère ses ressources. Linux, windows, mac os, unix, bsd, vms, unix système Vue d’ensemble Couches et vues du système informatique (voir schéma) Fonctions : Contrôle l’exécution des programmes d’applications Interface entre utilisateur et matériel Objectifs : Ergonomie : faciliter l’utilisation d’un ordinateur Efficacité : gérer les ressources du système Les services : Assister le programmeur dans la création de programmes Exécution de programmes Accès aux périphériques Accès contrôlés aux fichiers Accèus au système Detection d’erreur et réponse Statistiques (sur les ressources et leurs taux d’utilisation) La mémoire principale héberge une partie du système d’exploitation (la plus utilisée) : le noyau. Les différents types de systèmes d’exploitation : Système à traitement par lots multiprogrammés : système actuels, le processeur effectue plusieurs programmes en meme temps : système mutitâche. Principal objectif : utiliser le processeur au maximum… Système à temps partagé : plusieurs utilisateur simultanés (via terminaux) sur un serveur. Le système d’exploitation entrelace l’exécution des porgrammes de chaque utilisateur. Principal objectif : minimiser le temps de réponse. Sources des directives : commandes saisies sur terminal. Ordonnancement L’ordonnacement des tâches est l’une des tâches les plus importantes du système d’exploitation. Le système interrompt de temps en temps certains processus pour partager équitablement les tâches. Chaque requête de processus est placée dans la file d’attente à long terme. Lorsqu’une place se libère dans la file d’attente à court terme, la requête est transformée en processus et placée dans la file d’attente à court terme. Le processeur passe de l’exécution de A à B si : A émet un appel de service (une requête par exemple) A provoque une interruption Une opération E/S de B s’achève : une interruption E/S vient d’être reçue du module E/S Sauvegarde des données contextuelles de A. Eventuellement restauration des données contextuelles de B. Exécution de B. une fois B terminée, le système d’exploitation revient à A. Le processeur alterne entre l’exécution du système d’exploitation et des processus utilisateur. Lorsque c’est au tour du système d’exploitation, il choisit le prochain processus dans la file d’attente à court terme. Chaque tâche a une priorité, le système d’exploitation est chargé d’orienter le processeur vers les tâches les plus urgentes. La gestion mémoire La file d’attente à long terme est en général sur le disque. La file d’attente à court terme est dans la mémoire principale. Permutation : Un processus de la d’attente à court terme est en attente d’une opération d’E/S, il est placé sur une file d’attente intermédiarie située sur le disque Le système d’exploitation amène alors en mémoire principale un autre processus du disque Partitionnement de la mémoire : Partitions de tailles fixes : gaspillage de la mémoire : certaines zones sont non utilisées. Partitions de tailles variables bien plus efficace : allocation de la taille exactement requise pour chaque processus de la mémoire. Néanmoins, à force de permuter des processus, on peut avoir certains trous. Compactage : le système d’exploitation déplace les processus. Les unités de programmes sont des pages. Les cadres disponibles dans la mémoire sont des pages mémoires. Les pages sont affefctées à des pages mémoires : Possibilité de charger le programme par morceau Le système d’exploitation tient à jour une table des pages pour chaque processus. La mémoire virtuelle repose sur la pagination à la demande : La page d’un programme n’est appelée que lorsque l’on en a besoin Seules quelques pages sont en mémoire principale La taille d’un processur peut être supérieur à la taille de la mémoire principale Un utilisateura l’impression d’avoir à faire à une mémoire beaucoup plus grande qu’elle n’est réellement : c’est la mémoire virtuelle.