Architecture matérielle et logicielle



Documents pareils
DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Architecture des ordinateurs

ASR1 TD7 : Un microprocesseur RISC 16 bits

Conception de circuits numériques et architecture des ordinateurs

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Structure d un programme

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation assembleur : aperçu

Cours Programmation Système

Cours Informatique 1. Monsieur SADOUNI Salheddine

IV- Comment fonctionne un ordinateur?

Rappels d architecture

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

La mémoire. Un ordinateur. L'octet. Le bit

Compilation (INF 564)

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Exécution des instructions machine

Les opérations binaires

Informatique Industrielle Année Architecture des ordinateurs Note de cours T.Dumartin

Microprocesseur + Logiciel

CM2 L architecture MIPS32

Jeu d instructions NIOS II

Informatique Générale

Introduction aux Systèmes et aux Réseaux

Structure de base d un ordinateur

UE Programmation Impérative Licence 2ème Année

Logiciel de base. Première année ENSIMAG

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Partie 7 : Gestion de la mémoire

PIC : COURS ASSEMBLEUR

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155)

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Architecture des ordinateurs

Architecture des Ordinateurs. Partie II:

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

1 Mesure de la performance d un système temps réel : la gigue

Représentation des Nombres

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Chapitre 10 Arithmétique réelle

GPA770 Microélectronique appliquée Exercices série A

IFT2880 Organisation des ordinateurs et systèmes

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Tout savoir sur le matériel informatique

Cours A7 : Temps Réel

IFT1215 Introduction aux systèmes informatiques

Prentice Hall, 2011 (ISBN )

Leçon 1 : Les principaux composants d un ordinateur

Logiciel de Base. I. Représentation des nombres

Chapitre 4 : Les mémoires

Architecture matérielle des systèmes informatiques


Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Architecture des Ordinateurs Première partie. Licence d Informatique - IUP Miage - FIIFO

ELP 304 : Électronique Numérique. Cours 1 Introduction

Conception de circuits numériques et architecture des ordinateurs

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

gestion des processus La gestion des processus

Initiation au HPC - Généralités

Codage d information. Codage d information : -Définition-

QUESTION 1 {2 points}

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Quelques éléments de compilation en C et makefiles

Conversion d un entier. Méthode par soustraction

Architecture des ordinateurs Introduction à l informatique

SSTIC Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques...

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

Architecture de l ordinateur

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

Algorithmique et Programmation, IMA

Organisation des Ordinateurs

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre Université de Rennes I - IRISA

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu

Modules du DUT Informatique proposés pour des DCCE en 2014/2015

Cours 3 : L'ordinateur

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

ET LO GICIEL D UN S YS T EME IN FORMATIQUE

Fonctionnement et performance des processeurs

Une version javascript sera disponible directement dans le cours prochainement.

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Initiation à la sécurité

Algorithme. Table des matières

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

Organigramme / Algorigramme Dossier élève 1 SI

CONFIGURATION DE L AUTOMATE SIEMENS

Bases de programmation. Cours 5. Structurer les données

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Transcription:

Architecture matérielle et logicielle Contents I Le Cours 2 1 Généralités 2 2 Micro-processeur 2 3 Mémoire 2 4 Performances 3 II TPs 3 1 Création d un exécutable : 3 2 Les bibliothèques 3 3 Codage de l information 4 4 Assembleur 4 5 Pile 5 6 Processus 5 1

Part I Le Cours 1 Généralités L informatique est la science du traitement de l information et ayant pour outil l ordinateur. On peut mesurer les performances d un ordinateur suivant plusieurs paramètres, comme par exemple la période horloge (qu on trouve grâce à la fréquence processeur). Ce paramètre définit la rapidité à laquelle l ordinateur est capable de faire tourner un programme. 2 Micro-processeur Loi de Moore : La loi de Moore définit l évolution temporelles des composants électroniques. Le micro-processeur est un circuit intégré numérique programmable capable d exécuter des actions en fonction d un programme externe. Un cycle de micro-processeur se décompose ainsi : Fetch : recherche du code opératoire de l instruction Decode : décodage et séquencement de l instruction Execute : exécution de l instruction Write Back : stockage du résultat si nécessaire 3 Mémoire L accès en mémoire est un facteur de performance d un ordinateur. Les différents types de mémoire sont : ROM : Read Only Memory, mémoire non volatiles DRAM : Dynamic RAM SRAM : Static RAM, plus rapide que DRAM Les mémoires utilisées actuellement sont SDRAM, la mémoire cache contient un peu de mémoire centrale en mémoire d accès rapide. page 2

4 Performances Pour mesurer la performance liée à l exécution d un programme : Durée totale d exécution d un programme = Nombre et type d instructions Nombres de périodes Période d horloge On peut donc agir sur les programmes (instructions), l architecture et la technologie. Pour améliorer les performances du processeur, on mise actuellement sur : pipelining : exécuter une nouvelle instruction avant que l ancienne soit finie superscalaire : possibilité de traitement en parallèles de plusieurs instructions, il faut faire attention au dépendance de celle-ci hyperthreading : intégrés plusieurs processeurs logiques avec leurs propres registres et compteur ordinaux sont multicoeurs : plusieurs processeurs sur la même puce, diminue la dissipation de la chaleur Les caractéristiques d un composant mémoire sont temps d accès, volatilité et capacité. Part II TPs 1 Création d un exécutable : préprocesseur : recherche et utilise les fichiers en-tête (.h) pour le compilateur, et produit un fichier.i. Il effectue la substitution de texte (remplace les constantes), la compilation conditionnelle, et l inclusion des fichiers.h compilateur : détecte les erreurs de syntaxe, traduit le code source en code machine, crée un fichier.o. Il analyse la syntaxe, crée une table des symboles (définit les adresses des constantes) et crée un fichier.o éditeur de liens : produit le fichier exécutable. Il compile séparément les fichiers, édite des liens entre ces fichiers. Il concatène les fichiers.o, résout les références extérieures, transforme les adresses, il utilise le format ELF (Executable and Linkable Format) 2 Les bibliothèques Bibliothèques statiques : libxxxxx.a regroupe des fichiers.o gcc : -l<nom> -L<LIEN> avantage : tout le code est prêt pour l éxecution inconvénients : taille, duplication en mémoire bibliothèques dynamiques : xxxxx.so contient des références à d autres codes gcc : -l<nom> -L<LIEN> Make voir pougne algo page 3

3 Codage de l information Les informations sont codés suivant leurs natures et suivant plusieurs codages. Pour les caractères, on peut citer le codage ASCII, ISO 8859-1 ou l Unicode. Passer d un nombre réel à son codage en hexadécimal On va coder -13,375 (exemple du cours) 13, 375 = 8 + 4 + 1 + 0, 25 + 0, 125 on décompose en base 2 = 23 + 22 + 20 + 2 2 + 2 3 = 1101, 011 transformation en binaire = 1, 101011 23 On cherche de la forme : x = ( 1)s 2e 127 1, m On a donc 1 pour le signe négatif (s), 101011 pour la mantisse (on ne prend pas le premier 1, m), et 127+3=130 comme exposant (e) Donc on a 1 10000010 10101100000000000000000 Soit 1100 0001 0101 0110 0000 0000 0000 0000 Ce qui donne les nombres hexadécimaux C 1 5 6 0 0 0 0 Le processus inverse fonctionne de même. 4 Assembleur Les fichiers en Assembleur sont les fichiers.s, ils sont transformés en fichiers.o avec l appel de l assembleur as. L assembleur est un langage de bas niveau, il est efficace et donne accès au matériel, mais le coût de développement en Assembleur est important. Dans une instruction assembleur, qui correspond à une instruction processeur, on retrouve le schéma suivant : Étiquette Mnémonique opérande(s) commentaire L étiquette est facultative et désigne un emplacement mémoire Le Mnémonique est un mot réservé du langage Les opérandes sont les objets concernés par le mot mnémonique Le commentaire est facultative et est une note du codeur Types d instructions : instructions arithmétiques : add (addition), sub (soustraction), inc (incrémentation), dec (décrémentation), cmp (comparaison), mul (multiplication), div (division) instructions logiques : not, and, or, xor page 4

instructions de branchement : call (appel à une fonction), ret (retour), jmp (saut jusqu à une étiquette) Adressage en Assembleur adressage par registre : movq %rsp, %rbp; on met la valeur de rsp dans rbp adressage immédiat : movb $1, %al; on met la valeur 1 dans al adressage direct : cmpl nombre, %eax; on met la valeur de la variable globale nombre dans eax adressage implicite : clc; on remet à zéro le bit de carry, l adresse est comprise dans l instruction adressage indirect : movl $3,(%rax); on met 3 dans le mot pointé par rax, rax contenant une adresse adressage basé/indexé : deplacement(base,index,echelle); l adresse est base + déplacement + index*échelle 5 Pile La pile est dans le registre rsp, les données sont stockées ici et pour y accéder, on utilise rbp 6 Processus définition programme en cours d exécution, caractérisé par un numéro unique (pid), une entrée dans le pseudo système de fichiers (/proc), et un processus père On utilise ps pour en faire la liste, pstree pour les représenter en arbre. Il existe deux types de processus, les processus utilisateurs et les processus démons (qui sont lancés au démarrage). Un processus a besoin de différentes ressources : processeur, mémoire, et entrées-sorties. Mais il doit les partager avec les autres processus. Mode noyau : exécution d instructions privilégiées Exclusion mutuelle : pas d interférences entre les processus, attente de libération commutation de processus : On change de processus en cours de tâche, on sauvegarde le contexte (valeur des registres, pile,... ) Ordonnancement : on a une file d attentes, avec un mécanisme de priorité (FIFO, Shortest Job First, Round Robin : tourniquet) Clonage de processus On appelle fork, il crée deux processus pour la suite du programme. Il renvoie 0 pour le fils et le pid du fils au père. Recouvrement On utilise les fonctions exec{l v}[e p], on abandonne le programme en cours et on poursuit avec le processus donné en paramètre l : liste v : tableau e : environnement p : varible PATH exemple : execlp(chemin_du_programme,liste_arguments_terminée_par_null) execvp(chemin_du_programme, tableau_arguments) Terminaison exit Pour attendre, on utilise wait(&status) où status est un entier qui passe à 0 après l exécution du fils page 5