Architecture des ordinateurs. Loïc Cuvillon. 20 novembre 2013

Dimension: px
Commencer à balayer dès la page:

Download "Architecture des ordinateurs. Loïc Cuvillon. 20 novembre 2013"

Transcription

1 Systèmes temps réel et systèmes embarqués Architecture des ordinateurs Loïc Cuvillon Ecole Nationale Supérieure de Physique de Strasbourg 20 novembre 2013 Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

2 Sommaire 1 Processeur Architecture ARM : principes Architecture Intel et Assembleur x86 2 Exceptions et Interruptions Définition Contrôleur d interruptions et traitement 3 Du source à l exécutable Le format ELF Les bibliothèques 4 Gestion de la mémoire (pagination) 5 Les entrées-sorties (I/O) I/O par port I/O mappées en mémoire 6 Le temps : Horloge et Timers L horloge temps réel Les timers Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

3 Bibliographie Bibliographie Architecture : Architecture de l ordinateur, 5ème édition, Andrew Tanenbaum, Pearson education, par le créateur de l OS Minix Documentation technique : Intel Architecture Software Developer s Manuel ARM Architecture Reference Manual Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

4 Bibliographie Notation Little/Big Endian Petit/Gros boutiste (étymologie : voyage de Gulliver) exemple : la valeur 433=0x01B1 nécessitant 2 octets en mémoire Big endian : most significant bit (MSB : 01h) en premier Little Endian : lest significant bit (LSB : B1h) en premier Little-Endian (x86,arm) adresse mémoire B1 01 Big-Endian (powerpc,arm,mips) adresse mémoire B1 Protocole IP : big endian (pour tous, interopérabilité) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

5 Plan Processeur 1 Processeur Architecture ARM : principes Architecture Intel et Assembleur x86 2 Exceptions et Interruptions Définition Contrôleur d interruptions et traitement 3 Du source à l exécutable Le format ELF Les bibliothèques 4 Gestion de la mémoire (pagination) 5 Les entrées-sorties (I/O) I/O par port I/O mappées en mémoire 6 Le temps : Horloge et Timers L horloge temps réel Les timers Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

6 Processeur Architecture ARM : principes Architecture ARM (Advance RISC Machine) processeur RISC 32 bit Reduced Instruction Set Computer ; instr. de taille fixe (32bits) architecture load and store (opération arithmétique réalisable uniquement entre registres) avantages : architecture épurée et fréquence d exécution rapide inconvénient : programme plus long (2x) que le même en CISC populaire dans l embarqué : lego mindstorm, nintendo DS ; apple ipod,iphone (consommation électrique) la société ARM ne fabrique pas de processeurs mais les dessine! vend des licences et ses dessins à des fondeurs perçoit des royalties sur les processeurs vendus Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

7 Processeur Architecture ARM : principes L architecture externe du ARM bus d adresses 32 bits : 4Go de RAM possible ; bus de données (+ instruction : Archi. Van Neumann) 2 lignes d interruptions ; nreset : réinitialisation ; nrw : sélection écriture/lecture Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

8 Processeur Architecture ARM : principes Fonction d un processeur (Central Processing Unit) Execution séquentielle d instructions au travers d un pipeline Fetch Instruction Decode Execute Etapes du pipeline ARM7 Fetch : Récupérer le code de l instruction à exécuter Decode : Décode instruction et registres à utiliser (préparation des chemins de données) Execute : Exécution instruction lecture registres ; opération ; écriture résultat registre ; Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

9 Processeur Architecture ARM : principes Architecture Interne d un processeur Single Core CPU R1 R2 Address bus Data bus Memory Registres : stockage de mots (16, 32, 64 bits suivant architecture) C A R3 PC IR ALU B Bus source selection Decode ALU operation mode and Control Unit ALU : Unité Arithmétique et Logique ; +,-,*,/,ET,OU,XOR, décalage,... Unité de décodage et commande : génération signaux de commande (opération ALU, routage des bus A,B et C). Bus mémoire : Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

10 Processeur Architecture ARM : principes Architecture Interne d un processeur Single Core CPU Registres C A R1 R2 R3 PC IR ALU B Address bus Bus source selection ALU operation mode Data bus Decode and Control Unit Memory PC (R15) : Programme Counter adresse de l instruction en cours ; incrémenté par le CPU ; (ou IP, instruction pointer) IR : mot de l instruction en cours R1,R2,R3.. R14 : registres à usages généraux CPSR : current program status register (flags sur résultat inst. : Zero, Negatif) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

11 Processeur Architecture ARM : principes ISA : Instruction Set Architecture Jeu d instructions d un CPU Langage machine langage natif du processeur définit par les concepteurs seul et unique pour un processeur un code binaire l Assembleur (Assembly language) : représentation symbolique du langage machine usage de mnémoniques pour faciliter la vie du programmeur non-portable ( langage haut-niveau (C,java)) (Saut d adresse : B(L) chez ARM et JMP chez INTEL ) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

12 Processeur Architecture ARM : principes ISA : Instruction Set Architecture Instruction d addition sur processeur ARM doc technique : ADD Rd Rn Rm Rd=Rn+Rm (Rd : registre destination) c o n d Rn Rd shift Rm Assembleur : ADD R3 R2 R3 > Langage machine :0xE (cond=1110 signifie toujours exécuter ) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

13 Processeur Architecture ARM : principes Illustration : Réalisation d une addition PC initialisé à 100 initialisation par un autre programme (ou reset du CPU) Single Core CPU R1 R2 R3 Address bus Data bus Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 PC IR 0x100 Read/Write 0x200 : 0x0005 0x204 : 0x???? ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

14 Processeur Architecture ARM : principes Illustration : Réalisation d une addition Fetch de l instruction par l IFU (Instruction Fetch Unit) adresse de l instruction donnée par le PC Single Core CPU R1 R2 R3 PC 0x100 IR LDR R2, 0x200 0x100 Address bus LDR R2, 0x200 Data bus R Read/Write Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : 0x???? ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

15 Processeur Architecture ARM : principes Illustration : Réalisation d une addition fin du Fetch : code de l instruction à exécuter dans IR Décodage et préparation du chemin de données Single Core CPU R1 R2 R3 PC 0x100 IR LDR R2,0x200 Address bus Data bus Read/Write Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : 0x???? ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

16 Processeur Architecture ARM : principes Illustration : Réalisation d une addition Exécution de l instruction LDR LDR : load dans le registre Rx une donnée référencée ou une #constante Single Core CPU Memory R1 R2 0x0005 0x200 Address bus 0x0005 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 R3 Data bus PC 0x100 IR LDR R2,0x200 R Read/Write 0x200 : 0x0005 0x204 : 0x???? ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

17 Processeur Architecture ARM : principes Illustration : Réalisation d une addition fin de l instruction Incrémentation du PC de 0x004 : pointe sur instruction suivante Single Core CPU Memory 0x100 : LDR R2, 0x200 R1 R2 0x0005 Address bus 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 R3 Data bus PC 0x104 LDR IR R2,0x200 Read/Write 0x200 : 0x0005 0x204 : 0x???? ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

18 Processeur Architecture ARM : principes Illustration : Réalisation d une addition Fetch de l instruction suivante écrase le contenu de l IR Single Core CPU Memory R1 R2 0x0005 0x104 Address bus LDR R3, #2 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 R3 Data bus PC 0x104 IRLDR R3, #2 R Read/Write 0x200 : 0x0005 0x204 : 0x???? ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

19 Processeur Architecture ARM : principes Illustration : Réalisation d une addition Décode et Exécute l instruction LDR : load dans le registre Rx une donnée référencée ou une #constante Single Core CPU Memory 0x100 : LDR R2, 0x200 R1 R2 0x0005 Address bus 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 R3 0x0002 Data bus PC 0x104 IRLDR R3, #2 Read/Write 0x200 : 0x0005 0x204 : 0x???? ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

20 Processeur Architecture ARM : principes Illustration : Réalisation d une addition fin de l instruction : Incrémente de 0x004 le PC Fetch de l instruction suivante Single Core CPU Memory R1 R2 0x0005 0x108 Address bus ADD R3, R2, R3 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 R3 0x0002 Data bus PC 0x108 IR ADD R3,R2,R3 R Read/Write 0x200 : 0x0005 0x204 : 0x???? ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

21 Processeur Architecture ARM : principes Illustration : Réalisation d une addition exécution de l instruction ADD Rdest,Ra,Rb : addition Rdest<=Rb+Ra Single Core CPU Memory 0x100 : LDR R2, 0x200 R1 R2 0x0005 Address bus 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 R3 0x000 7 Data bus PC 0x108 IR ADD R3,R2,R3 Read/Write 0x200 : 0x0005 0x204 : 0x???? 0x05 ALU 0x02 + Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

22 Processeur Architecture ARM : principes Illustration : Réalisation d une addition Fin instruction : incrémente le PC Fetch instruction suivante Single Core CPU Memory R1 R2 R3 0x0005 0x0007 0x10C Address bus STR R3,0x204 Data bus 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 PC 0x10C STR IR R3,0x204 Read/Write 0x200 : 0x0005 0x204 : 0x???? ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

23 Processeur Architecture ARM : principes Illustration : Réalisation d une addition Exécution de l instruction STR Rd Add : sauve contenu de Rd à l adresse Add Single Core CPU Memory R1 R2 R3 0x0005 0x0007 0x204 Address bus 0x0007 Data bus 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 PC 0x10C STR IR R3,0x204 W Read/Write 0x200 : 0x0005 0x204 : 0x0007 ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

24 Processeur Architecture ARM : principes Le pipeline d exécution exécution en parallèle d 1 Fetch, 1 Décode et 1 Exécution accélération du débit d exécution : 1 exécution d instruction/cycle (alors que le traitement d une instruction : 3 cycles) Fetch de l instruction pointée par PC+08 pendant exécution de PC R1 R2 R3 Address bus Data bus PC LDR R2, #6 PC Bus source selection (Inst.addr: PC 0x08) A R3 IR B R1 Decode and Control Unit ADD R3, R3, R1 ADD R2, R2, R1 LDR R2, #6 Fetch Decode Fetch Execute Decode Fetch Execute Decode Execute C ALU ALU operation mode (Inst.addr: PC) temps 1 cycle 1 cycle 1 cycle Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

25 Processeur Architecture Intel et Assembleur x86 Intel 8086 le 8086 processeur 16 bits, 8MHz, total de 16 registres registres de 16 bits = 64Ko de mémoire (2 16 adresses codées) mais bus d adresse de 2 20 bits = 1Mo (2 20 adresses) accès complexe au 1Mo de mémoire : un registre segment de 16bits offset : l adresse mémoire sur 16bits adresse finale= segment x16 + offset son dérivé le 8088, coeur de l IBM PC! (1981) 8086 ( $) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

26 80286 (i286) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93 Intel Pentium Processeur Architecture Intel et Assembleur x86 ix86 : 386, 486, Pentium (586) Démarrage en Mode réel : Emulation du 8086 (compatibilité) 1 Mo uniquement accessible! Mode protégé (activé par le bit Protection Enable dans le registre CR0) : Mémoire virtuelle pagination, protection mémoire Mécanisme pour le multitâche Niveau de privilèges d exécution (4) Noyau (Toute Instruction permise) User (Instruction I/O (entrées-sorties) indisponibles )

27 Intel Pentium Processeur Architecture Intel et Assembleur x86 Registres du x86 EAX CS Code Segment EBX ECX General registers DS SS Data Segment Stack Segment EDX EIP Instruction pointer EFLAGS Status EBP Stack Base pointer ESP Stack pointer EAX AX AH AL CR3 Control 3 (page directory adress) : memory management Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

28 Processeur Architecture Intel et Assembleur x86 La Pile d exécution (stack) sur intel x86 Espace mémoire croissant vers des adresses inférieures %esp : stack pointer (SP), pointeur permanent sur le sommet de la pile push %eax : pose contenu de EAX sur la pile pop %eax : retire le sommet de la pile dans EAX push %eax #%eax=0x19 initial State after PUSH %ax after POP %ax movl $0xF17, %eax Adresse 0x000 0x000 0x000 pop %eax #%eax=0x19 0x?????? SP 0x x SP 0xFFFFF0 0x0F4 0xFFFFF0 0x0F4 SP 0xFFFFF0 0x0F4 0x00B471 0x0F8 0x00B471 0x0F8 0x00B471 0x0F8 0xA5063C 0x0FC 0xA5063C 0x0FC 0xA5063C 0x0FC un usage du stack : sauvegarde et restauration de %eax variable automatique et locale du langage c. Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

29 Plan Exceptions et Interruptions 1 Processeur Architecture ARM : principes Architecture Intel et Assembleur x86 2 Exceptions et Interruptions Définition Contrôleur d interruptions et traitement 3 Du source à l exécutable Le format ELF Les bibliothèques 4 Gestion de la mémoire (pagination) 5 Les entrées-sorties (I/O) I/O par port I/O mappées en mémoire 6 Le temps : Horloge et Timers L horloge temps réel Les timers Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

30 Exceptions et Interruptions Définition Exceptions (et Interruptions) Définition d une exception arrêt temporaire du flux normal d instructions pour répondre à un événement exceptionnel ou externe Exception synchrone ( Exception ) : résultat d une instruction exécutée par le processeur générant une erreur arithmétique : division par 0, débordement (overflow) mémoire : erreur d alignement, mémoire insuffisante, erreur manipulation pointeur appel système (LINUX) : par l instruction INT 0x80, une application requiert un service de l OS. Exception asynchrone ( Interruption ) : associée à un événement issu d un périphérique timers : expiration d un timer ou un tick (période) d horloge système autres périphériques : touche clavier, clic souris, paquet ethernet,... Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

31 Exceptions et Interruptions Définition Interruption Interruption matérielle interruption : un signal sur la broche (INT) du CPU déclenchant l exécution d une routine en réponse (ISR : Interrupt Service Routine) économie pour le CPU du temps de scrutation des périphériques Scrutation périodique par le CPU de l état du périphèrique CPU CPU INT RAM I/O (1) controleur RAM PIC I/O (1) INT 1 controleur I/O (2) controleur I/O (2) INT 2 controleur Entrée Sortie programmée avec attente de disponibilité Entrée Sortie programmée avec interruption Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

32 Exceptions et Interruptions Définition Interruption Exemple : Clavier si une touche est enfoncée ou relâchée le contrôleur du clavier : écrit dans un de ses registres le code de la touche génère une interruption le CPU notifié arrête le processus en cours et exécute une routine d interruption qui consiste à venir lire la valeur de la touche dans le registre Voir exemple Linux xenomai ultérieurement. Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

33 Exceptions et Interruptions Contrôleur d interruptions et traitement Contrôleur d interruptions Gestion des interruptions plusieurs périphériques et interruptions (éventuellement simultanées) le CPU ne peut exécuter qu un ISR à la fois problème de concurrence solution : un contrôleur d interruption priorités pour les interruptions (arbitrage de la concurrence) interruption présentée une à la fois au CPU masquer les interruptions non-prioritaires mais les mémoriser (buffer) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

34 Exceptions et Interruptions Contrôleur d interruptions Contrôleur d interruptions et traitement Un contrôleur programmable d interruptions (PIC) : le 8259 utilisé par le PC IBM et ses successeurs, peut être mis en cascade priorité par ordre décroissant (0(+prioritaire),2,,7(-)) 3 registres : 1 contenant l interruption actuellement traitée par le CPU 1 contenant les interruptions pas encore traitées (de priorité inférieure) 1 contenant les interruptions à masquer (celle dont le CPU ne veut pas) CPU INT INTA RD WR A0 CS D0-D7 8259A Interrupt controller IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 Clock Keyboard Disk Printer +5 v Source : Architecture des ordinateurs, Tanenbaum Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

35 Exceptions et Interruptions Contrôleur d interruptions et traitement Vecteur d interruption 1 exception = 1 routine ISR à une adresse mémoire donnée (cette adresse est appellée le vecteur d interruption) le numéro d exception/interruption sert d indice dans la table des vecteurs d interruption pour trouver l adresse mémoire où se trouve l ISR Exemple sur architecture i386 un registre du processeur IDTR (INT Descriptor Table Register) stocke en permanence l adresse en mémoire de la table des vecteurs d interruption Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

36 Exceptions et Interruptions Contrôleur d interruptions et traitement Exception et interruption Traitement complet 1 sauvegarde du contexte,l état actuel du processeur ; (souvent, dans la pile d exécution de la tache en cours) 2 chargement du vecteur d interruption (adresse ISR) dans le registre PC 3 exécution de l ISR 4 recharger contexte antérieur (état du processeur avant INT) 5 reprise exécution du programme traitement rapide, changement de contexte minimal effectué par le matériel Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

37 Exceptions et Interruptions Traitement de l interruption Contrôleur d interruptions et traitement interruption la plus élevée présentée sur broche INT du CPU le traitement d une exception synchrone est similaire Single Core CPU Memory R1, R2,. PC 0x108 IR LDR R3,#2 IDTR 0xFF00 SP 0x404 Address bus Data bus INT PIC 4 4 Périph. 7 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : Pile du processus en cours 0x400: 0x0003 0x404: 0x040 ALU Table des vecteurs d int 0xFF00: 0x844 Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

38 Exceptions et Interruptions Traitement de l interruption Contrôleur d interruptions et traitement PC du processus interrompu poussé sur la pile par le matériel adresse de sommet de la pile stockée dans registre SP Single Core CPU R1, R2,. PC 0x108 IR LDR R3,#2 IDTR 0xFF00 SP 0x40 8 SP+0x04: 0x408 Address bus PC: 0x108 Data bus INT PIC 4 Périph. 7 4 Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : Pile du processus en cours 0x400: 0x0003 0x404: 0x040 0x408: 0x108 (PC) ALU Table des vecteurs d int 0xFF00: 0x844 Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

39 Exceptions et Interruptions Traitement de l interruption Contrôleur d interruptions et traitement table des vecteurs d int. stockée à l adresse contenue dans IDTR cherche dans la table, l entrée du numéro d INT (4) Single Core CPU R1, R2,. PC 0x108 IR LDR R3,#2 IDTR 0xFF00 SP 0x40 8 IDTR+(0x4)* 4 0xFF10 Address bus Data bus INT PIC 4 Périph. 7 4 Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : Pile du processus en cours 0x400: 0x0003 0x404: 0x040 0x408: 0x108 (PC) ALU Table des vecteurs d int 0xFF00: 0x844 0xFF10: 0x64C N o Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

40 Exceptions et Interruptions Traitement de l interruption Contrôleur d interruptions et traitement l entrée contient le vecteur d int. (adresse du gestionnaire de l int.(isr)) PC <= vecteur d interruption Single Core CPU R1, R2,. PC 0x108 0x64C IR LDR R3,#2 IDTR 0xFF00 SP 0x40 8 Address bus INT 4 Data bus 0xFF10 0x64C PIC le vecteur d INT: adresse de l ISR 4 Périph. 7 Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : Pile du processus en cours 0x400: 0x0003 0x404: 0x040 0x408: 0x108 (PC) ALU 0x64C: PUSH R1 0x670: IRET Table des vecteurs d int 0xFF00: 0x844 0xFF10: 0x64C (asm x86) N o Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

41 Exceptions et Interruptions Traitement de l interruption Contrôleur d interruptions et traitement exécution de l ISR (l instruction pointée par PC) Single Core CPU R1, R2,. PC 0x64C IR PUSH R1 IDTR 0xFF00 SP 0x40 8 0x64C Address bus PUSH R1 Data bus INT 4 PIC Périph. 7 Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : Pile du processus en cours 0x400: 0x0003 0x404: 0x040 0x408: 0x108 (PC) (pile utilisable par ISR) ALU 0x64C: PUSH R1 0x670: IRET Table des vecteurs d int 0xFF00: 0x844 0xFF10: 0x64C (asm x86) ISR code N o Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

42 Exceptions et Interruptions Traitement de l interruption Contrôleur d interruptions et traitement dans l ISR, accès au périphérique pour lever l INT ISR se finit par l instruction IRET (x86) Single Core CPU R1, R2,. PC 0x670 IR IRET IDTR 0xFF00 SP 0x40 8 Address bus IRET Data bus INT PIC Périph. 7 Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : Pile du processus en cours 0x400: 0x0003 0x404: 0x040 0x408: 0x108 (PC) ALU 0x64C: PUSH R1 (asm x86) 0x670: IRET ISR code Table des vecteurs d int 0xFF00: 0x844 0xFF10: 0x64C N o Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

43 Exceptions et Interruptions Traitement de l interruption Contrôleur d interruptions et traitement IRET : reprendre le processus initial (PC<= valeur avant l int.) le PC initial en mémoire au sommet de la pile (adresse contenu dans SP) Single Core CPU R1, R2,. PC 0x108 IR IRET IDTR 0xFF00 SP 0x408 0x408 Address bus 0x108 (PC) Data bus INT PIC Périph. 7 Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : Pile du processus en cours 0x400: 0x0003 0x404: 0x040 0x408: 0x108 (PC) ALU 0x64C: PUSH R1 (asm x86) 0x670: IRET ISR code Table des vecteurs d int 0xFF00: 0x844 0xFF10: 0x64C N o Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

44 Exceptions et Interruptions Traitement de l interruption Contrôleur d interruptions et traitement SP pointe vers le nouveau sommet de la pile le processus peut reprendre (mais il reste l int 7 à traiter) Single Core CPU R1, R2,. PC 0x108 IR IRET IDTR 0xFF00 SP 0x40 4 0x108? Address bus Data bus INT PIC Périph. 7 Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : Pile du processus en cours 0x400: 0x0003 0x404: 0x040 0x408: 0x108 ALU 0x64C: PUSH R1 (asm x86) 0x670: IRET ISR code Table des vecteurs d int 0xFF00: 0x844 0xFF10: 0x64C N o Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

45 Plan Du source à l exécutable 1 Processeur Architecture ARM : principes Architecture Intel et Assembleur x86 2 Exceptions et Interruptions Définition Contrôleur d interruptions et traitement 3 Du source à l exécutable Le format ELF Les bibliothèques 4 Gestion de la mémoire (pagination) 5 Les entrées-sorties (I/O) I/O par port I/O mappées en mémoire 6 Le temps : Horloge et Timers L horloge temps réel Les timers Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

46 Du source à l exécutable Le format ELF Le processus : compilation de son programme/code La compilation C via GCC GCC : un préprocesseur (cpp) : suppression des commentaires, expansion des macros (.i) un compilateur (cc1) : traduction vers assembleur (.s) un assembleur (as) : traduction assembleur (.s) > objet.o (binaire machine) options possibles : - I[/chemin/vers/include] -L[/chemin/vers/bibliothèsque] -l[bibliothèque] (-g pour debug) un éditeur de lien : ld localise les symboles (fonctions, variables globales) dans les bibliothèques et objets reloge les symboles dans un même fichier mise sous un format exécutable en mémoire Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

47 Du source à l exécutable Le format ELF la création d un exécutable : la compilation sous Linux 1 gcc -E source.c -o source.i oucpp source.c -o source.i 2 gcc -S source.i -o source.s 3 gcc -c source.s -o source.o ouas source.s -o source.o 4 ld -lc -[runtime C librairies,] source.o -o source ougcc source.o -o source source assembleur objet (language machine) gcc E gcc S gcc c.c.i.s.o cpp cc1 as ld lc l[c runtime] lm ljpg libjpeg.a libm.a libc.a gcc lm ljpg executable (ELF) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

48 Du source à l exécutable Le format ELF le format ELF ELF (Executable and Linking Format) conteneur des fichiers objets, exécutables et bibliothèques. utilisé par Linux, Wii, PS3, l entête ELF : la localisation dans le fichier de la table des sections l adresse de la fonction start (si un exécutable) la table des sections : donne la position dans le fichier ELF des diverses sections (.text (code),.data,.symbols, ) la table de programme : indique où charger en mémoire les sections ELF Header Programm Header Table.text.rodata (other sections).data Section Header Table Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

49 Du source à l exécutable le format ELF et relocation Le format ELF utilitaires du format elf objdump [option] [file] -f : affiche l entête ELF du fichier -h : affiche la table des sections -t : affiche la table des symboles -r : affiche la table de relogement -d : désassemble le code de la section.text -D : désassemble toute les sections nm [file] liste les symboles du fichier et leur état (Undefined, Text(fonction définie), Data définie) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

50 Du source à l exécutable Le format ELF les différents fichiers objets Fichier objet relogeable :.o 1 table de symboles : noms des fonctions et variables globales Si le symbole est défini, l offset à partir du début de la section où se trouve sa définition (code pour une fonction, valeur pour une variable). 1 table de relogement : offsets où apparaissent chaque symbole non défini dans le fichier un fichier adapté au relogement : permet de remplacer rapidement les endroits où les symboles non définis aparaissent par leur définition quand celle-ci est connue (édition de lien avec un autre.o ou une bibliothèque). Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

51 Du source à l exécutable Fichier objet relogeable.o Le format ELF gcc -c hello.s -o hello.o etobjdump -t -r -D hello.o hello.c extern int a; void main() { printf("hello world %i!",a); } hello.o Disassembly of section.text: <main>: 0: 55 push %epb 1:. 9: a mov?, %eax e:. 10=0x0a 19: e8 fc ff ff ff call 1a <main+0x1a> SYMBOL TABLE: Offset section name g.text main *UND* a *UND* printf Undefined RELOCATION RECORDS FOR [.text]: OFFSET TYPE a a R_386_32 R_386_PC32 VALUE a printf Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

52 Du source à l exécutable Fichier objet relogeable.o Le format ELF gcc -c def.c -o def.o etobjdump -t -r -D def.o def.c int a=0xaa; def.o Disassembly of section.data: 0:aa SYMBOL TABLE: RELOCATION RECORDS: empty g.data a Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

53 Du source à l exécutable Le format ELF Edition de lien et affectation d adresse mémoire gcc hello.o def.o -o hello : fusion sections text, data et affectation d une adresse mémoire finale aux symboles pour exécution hello.o def.o hello Disassembly of section.text: <start_>: : 31 ed xor %ebp,%ebp : c <main>: c: 55 push %ebp d: : a1 20 a mov 0x804a020,%eax a: : e8 b6 fe ff ff call 80482f0<printf@plt> a: (@ via un offset) Disassembly of section.data: 804a020: aa <a> SYMBOL TABLE : (optional, can be removed with cmd strip) NO RELOCATION RECORDS ELF HEADER: start address 0x Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

54 Du source à l exécutable L exécutable : Exécution Le format ELF Chargement : loader (execv après fork (Linux)) (1) copie le code de l exécutable aux adresses définies à la compilation (2) exécution par copie de l adresse d entrée dans le registre PC Single Core CPU EAX EBX ECX PC 0x Main Memory (RAM) F2 71 mov 0x804908c, %eax jne 0x45DE804 aa x x (2) (1) (1) 0x804908c 0xFFF0000 "loader" Secondary Memory (Hard Disk 0x Programm Header section memory addr.text.data mov 0x804908c, %eax aa /prog ELF Header 0x x804908c.text.data./toto.txt./011.mp3 Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

55 Du source à l exécutable Les bibliothèques Les bibliothèques bibliothèque statique.a code de la librairie copié dans l exécutable exécutable sans dépendance lourde empreinte disque et mémoire bibliothèque dynamique.so édition de liens à l exécution pas de duplication de code empreinte mémoire légère dépendance : bibliothèque installée? Hello world! avec la lib C gcc static hello.c -o hello ls -l hello : 564 Ko gcchello.c -o hello ls -l hello : 7 Ko ldd./hello : (liste dépendances) libc.so.6 ld-linux.so.2 Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

56 Du source à l exécutable Les bibliothèques Les bibliothèques dynamiques et statiques bibliothèques statiques.a bibliothèques dynamiques.so add.o printf.o fopen.o libc.a add.o printf.o fopen.o libc.so source.o source2.o source.o linker source2.o linker linker main: x x printf: x x x add: x x linker main: x x printf: x x Executables main: x partially linked executables main: x x (en mémoire) x add: x libc.so x printf.o printf: printf: fopen.o loader (execv) loader (execv) dynamic linker (ld linux.so) dynamic linker full executable in memory Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

57 Du source à l exécutable Les bibliothèques Création d une librairie statique bibliothèque statique.a une archive.a contenant un ensemble de.o création d une bibliothèque nommée_ma_bibliotec : ar -q lib_ma_bibliotec.a objet1.o objet2.o lib doit être ajouté devant le nom de la bibliothèque. compilation avec la bibliothèque préciser le nom de la bibliothèque sans le lib avec l option-l préciser son chemin relatif-l./ ou absolu-l/ example pour une bibliothèque dans le répertoire courant : gcc [sources.c,.o] -l_ma_bibliotheque -L. -o [exe] Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

58 Du source à l exécutable Les bibliothèques Création d une librairie dynamique Création en 2 étapes Créer des fichiers objets dont le code est indépendant de la position en mémoire (-fpic) : gcc -fpic.c -o.o création d une bibliothèque nommée_ma_bibliotec à partir des.o : gcc -shared -o libma_bibliotec.so [*.o] Installation de la bibliothèque partagée Les répertoires où le linker dynamique (ld) recherchent ces bibliothèques sont définis, à définir dans les fichiers de configuration /etc/ld.so.conf ou/etc/ld.so.conf.d/ En général :/usr/locla/lib,/lib la commandeldconfig doit ensuite être exécutée pour mettre à jour la liste des bibliothèques connues à partir des répertoires définis dans les fichiers de configuration. Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

59 Du source à l exécutable Les bibliothèques Création d une librairie dynamique Usage de la bibliothèque partagée préciser le nom de la bibliothèque sans le lib avec l option-l : gcc test.c -lma_bibliotec -o test à l exécution, la bibliothèque est chargée à partir de son répertoire d installation (exemple :/usr/lpcal/lib) Utilitaires ldd : liste les librairies dynamique nécessaires à un exécutable nm : liste les symboles définis dans le bibliothèque ldconfig : met à jour le cache des librairies connues parld à partir des répertoires définis dans/etc/ld.so.conf ldconfig -p affiche la liste des bibliothèques connues. Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

60 Du source à l exécutable Les bibliothèques Exercice1 1 Créer les fichiershello.c etdef.c précédemment introduit. 2 Faire dedef.c une bibliothèque statique et compilerhello.c en la liant avec votre bibliothéque statique. 3 Faire de même mais avec une bibliothèque dynamique. On utilisera la commandesudo -s pour passer utilisateur root et installer la bibliothèque dans un répertoire adéquat. (Attention à ne pas ecraser une bibliothèque existante.) Exercice2 1 Déterminer si la commandels (/bin/ls) nécessite des librairies dynamiques 2 La librairiepthread, listée et permettant de faire de la programmation de tâches concurrantes (à venir), permet elle de faire appel à la fonction pthread_create()? Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

61 Plan Gestion de la mémoire (pagination) 1 Processeur Architecture ARM : principes Architecture Intel et Assembleur x86 2 Exceptions et Interruptions Définition Contrôleur d interruptions et traitement 3 Du source à l exécutable Le format ELF Les bibliothèques 4 Gestion de la mémoire (pagination) 5 Les entrées-sorties (I/O) I/O par port I/O mappées en mémoire 6 Le temps : Horloge et Timers L horloge temps réel Les timers Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

62 Gestion de la mémoire (pagination) Problématique d un système multi-tâche Des processus/une mémoire : Et si la place est déjà occupée? or le code est dépendant de sa position en mémoire (adresses absolues des données) 0x00 0x08 0x10 0x18 0x20 0x28 0x30 0x38 Main Memory (RAM) 08 4F E1 C5 4F 23 A3 00 movl 0x30, %eax movl $0x32, %ebx addl (%ebx), %eax compl %edx, $0 jne 0x08 movl $1, %eax movl $2, %ebx subs %eax, %edx? Secondary Memory (Hard Disk Drive)./prog ELF 0x Programm Header section memory addr.text.data 0e x18 0x30 movl 0x30, %eax movl $0x32, %ebx addl (%ebx), %eax.text 0x3F./program2./program3 Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93.data

63 Gestion de la mémoire (pagination) Gestion de la mémoire Problématique de la réallocation dynamique comment positionner dynamiquement les processus en mémoire sans modifier TOUTES les adresses dans le code? (opération trop coûteuse) 2 solutions possibles utilisant une translation d adresse : la segmentation la pagination Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

64 Gestion de la mémoire (pagination) La pagination :Principe 1 1 table de correspondance entre : adresse logique (@logique/virtuelle) du Code/Data dans l executable ELF adresse physique (@physique) où il est effectivement en mémoire Processus Mémoire Logique/Virtuelle 0x00 0x08 0x10 0x18 0x20 0x28 0x30 0x38 0x3C movl 0x30, %eax movl $0x32, %ebx addl (%ebx), %eax 0e x00 Memoire Physique (RAM) 0x00 0x08 Processus A 0x08 0x10 movl 0x30, %eax 0x0C movl $0x32, %ebx 0x10 0x14 0x18 Processus B 0x18 0x10 0x1C 0x14 0x20 addl (%ebx), %eax 0x20 0x20 0x24 0x28 0x28 Processus B 0x2C 0x30 0x30 0x38 0x34 0x3C 0x38 0e x38 0x3C x3F 0x3C Chargmement du programme et céation table correspondance Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

65 Gestion de la mémoire (pagination) La pagination : Principe 1 Translation d adresse pour toute lecture/ecriture d un code/donnée (Exemple : Fetch de la première instruction Memoire Physique (RAM) EAX EAX ECX PC 0x18 0x18 0x00 0x04 0x08 0x0C 0x10 0x14 0x18 0x1C 0x20 0x24 0x28 0x2C 0x10 0x14 0x20 0x10 0x00 0x08 0x10 0x18 0x20 0x28 Processus A movl 0x30, %eax movl $0x32, %ebx Processus B addl (%ebx), %eax Processus A 0x30 0x34 0x38 0x3C 0x38 0x3C 0x30 0x38 0x3C Processus B 0e x3F Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

66 Gestion de la mémoire (pagination) La pagination : Principe 1 Translation d adresse pour toute lecture/ecriture d un code/donnée (Exemple : lecture d Memoire Physique (RAM) EAX EAX movl 0x30,%eax PC 0x18 0x30 0x00 0x04 0x08 0x0C 0x10 0x14 0x18 0x1C 0x20 0x24 0x28 0x2C 0x10 0x14 0x20 0x38 Read 0x00 0x08 0x10 0x18 0x20 0x28 Processus A movl 0x30, %eax movl $0x32, %ebx Processus B addl (%ebx), %eax Processus A 0x30 0x34 0x38 0x3C 0x38 0x3C 0x30 0x38 0x3C Processus B 0e x3F Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

67 La pagination Gestion de la mémoire (pagination) Déplacement de code/donnée en mémoire physique 1 déplacement et mise-à-jour table EAX EAX 0x00 0x04 0x08 0x0C 0x10 0x14 0x18 0x1C 0x20 0x24 0x28 0x2C 0x10 0x14 0x20 0x38 0x3C 0x08 0x0C Read 0x00 0x08 0x10 0x18 0x20 0x28 0x30 Memoire Physique (RAM) Processus A movl 0x30, %eax movl $0x32, %ebx Processus B addl (%ebx), %eax Processus A Processus B 0x34 0x38 0x38 0e x3C 0x3C x3F Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

68 Gestion de la mémoire (pagination) La pagination Avantage une donnée déplacée = une ligne de la table à modifier. beaucoup plus efficace qu une approche consistant à modifier dans le code toutes faisant réfèrence à la donnée Inconvéniant la table de correspondance aussi grande que la mémoire physique RAM! (si une adresse=32bits) gestion lourde de la mémoire Solution Déplacement du code/donnée par paquet de 2, 4, ou 2 n plutot qu individuellement Table de correspondance du paquet Taille de la Table divisée par 2, 4 ou 2 n, gestion plus légère Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

69 Gestion de la mémoire (pagination) La pagination Table de pages blocs (ici de tailles 2 3 octets) sont appellés pages Processus Mémoire Logique/Virtuelle 0x00 0x08 0x10 0x18 0x20 0x28 0x30 0x38 0x3C movl 0x30, %eax movl $0x32, %ebx addl (%ebx), %eax 0e Numéro de page Table des pages Page virtuelle Page physique Memoire Physique (RAM) 0x00 0x08 0x10 0x18 0x20 0x28 0x30 0x38 0x3C Processus A movl 0x30, %eax movl $0x32, %ebx Processus B addl (%ebx), %eax Processus B 0e Numéro de page Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

70 Gestion de la mémoire (pagination) La pagination : Mémoire virtuelle Mémoire virtuelle Possible de ne charger que le début du programme si manque de place On indique dans la table que la page n est pas chargée avec un bit supplémentaire à 0 Processus Mémoire Logique/Virtuelle 0x00 0x08 0x10 0x18 0x20 0x28 0x30 0x38 0x3C movl 0x30, %eax movl $0x32, %ebx addl (%ebx), %eax 0e Numéro de page Table des pages Page virtuelle Page physique :page présente 0:page absente Memoire Physique (RAM) 0x00 0x08 0x10 0x18 0x20 0x28 0x30 0x38 0x3C Processus A Processus A movl 0x30, %eax movl $0x32, %ebx Processus B Processus A Processus B Processus B 0e Numéro de page Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

71 Gestion de la mémoire (pagination) La pagination : Mémoire virtuelle Mémoire virtuelle : besoin de charger la suite? on met la page non chargée temporairement sur une mémoire secondaire (disque dur) Table des pages Page virtuelle Page physique :page présente 0:page absente Memoire Secondaire (Disque Dur) Memoire Physique (RAM) 0x00 0x08 0x10 0x18 0x20 0x28 0x30 Processus A Processus A movl 0x30, %eax movl $0x32, %ebx Processus B Processus A Processus B Processus B Numéro de page addl (%ebx), %eax (3) 0x38 0x3C 0e Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

72 Gestion de la mémoire (pagination) La pagination : Mémoire virtuelle Mémoire virtuelle : besoin de charger la suite? un programme demon (kswapd sous linux) libère des pages sur le disque : si un programme requiert une page non chargée ( défaut de page ) si la mémoire est presque pleine (retire vieilles pages) Table des pages Page virtuelle Page physique :page présente 0:page absente Kswapd Memoire Physique (RAM) 0x00 0x08 0x10 0x18 0x20 0x28 0x30 Processus A Processus A movl 0x30, %eax movl $0x32, %ebx Processus B Processus A Processus B Processus B Numéro de page Memoire Secondaire (Disque Dur) addl (%ebx), %eax (3) 0x38 0x3C 0e swap area Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

73 Gestion de la mémoire (pagination) La pagination : Mémoire virtuelle Mémoire virtuelle : besoin de charger la suite? chaque processus a sa table de pages on met à jour les 2 pages de tables Table des pages Page virtuelle Page physique :page présente 0:page absente Table des pages de B Page virtuelle Page physique :page présente 0:page absente Memoire Physique (RAM) 0x00 0x08 0x10 0x18 0x20 0x28 0x30 Processus A Processus A movl 0x30, %eax movl $0x32, %ebx addl (%ebx), %eax Processus A Processus B Processus B Numéro de page Memoire Secondaire (Disque Dur) swap area Processus B 0x38 0x3C 0e Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

74 Gestion de la mémoire (pagination) La pagination : Mémoire virtuelle Avantages Le Code et Données du programme sont dynamiquement relogeables en mémoire Mémoire virtuelle : Taille des programmes en cours > taille de la mémoire Utilisation du disque comme stockage secondaire Inconvéniants Une architecture plus complexe : nécessite une unité spécifique pour gérer la table de pages et faire les calculs d adresses Temps d accès non déterministe à la mémoire : si la page requise n est pas en mémoire mais sur le disque Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

75 Gestion de la mémoire (pagination) Unité de Gestion de la mémoire (MMU) circuit imprimé distinct ou inclus dans le processeur dédié aux traductions d adresse par segmentation ou pagination une logique importante (jusqu à 30% de la surface du processeur) au niveau matériel, elle contient : logique de conversion des adresses virtuelles en adresses physiques logique de vérification de la validité de l adresse (sinon segfault) ou disponibilité de la page en RAM. mémoire cache associative TLB (Translation Lookaside Buffer) contenant la portion la + utilisée de la table des pages (réduit les accès plus lent à la table de pages en RAM.) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

76 Plan Les entrées-sorties (I/O) 1 Processeur Architecture ARM : principes Architecture Intel et Assembleur x86 2 Exceptions et Interruptions Définition Contrôleur d interruptions et traitement 3 Du source à l exécutable Le format ELF Les bibliothèques 4 Gestion de la mémoire (pagination) 5 Les entrées-sorties (I/O) I/O par port I/O mappées en mémoire 6 Le temps : Horloge et Timers L horloge temps réel Les timers Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

77 Les entrées-sorties (I/O) Rappel : Architecture des cartes-mères Northbridge contrôleur mémoire (rafraîchissement, sélection,.) bande passante élevée compatibilité limité avec 1 type de mémoire et 1 CPU terminologie Intel : Graphics and Memory Controller Hub (GMCH) Southbridge dédié aux bus de moindres débits peut inclure : DMA, RTC, PIC terminologie Intel : I/O Controller Hub (ICH). Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

78 Les entrées-sorties (I/O) Entrées-sorties interaction entre CPU et périphériques (monde externe) entre registres du contrôleur d un périph. et le CPU 2 stratégies : adressage par port dédié ou par mappage en mémoire mémoire 0xFFFF mémoire 0xFFFF 0xF400 0xF140 Plage réservée I/O physique physique 0 I/O ports 0x6E 0 0 I/O registres par adresse de port I/O registres mappées en mémoire Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

79 Les entrées-sorties (I/O) I/O par port I/O par port broche I/O du CPU active sur le bus d un port (et non mémoire) instructions lecture/écriture : IN, OUT (asm) ou inb,outb (en C) adresses de ports liées à la conception de la carte mère cat /proc/ioport permet de lister les ports existants CPU Address Bus 0x3F8 NorthBridge Memory IO/M I/O S I/O controller Serial Port Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

80 Les entrées-sorties (I/O) I/O par port I/O par port Exemple : port parallèle 12 broches sortie et 5 broches en entrée le niveau électrique de la broche = la valeur du bit du registre (source : linux device drivers, 3eme edition) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

81 I/O par port Les entrées-sorties (I/O) I/O par port #define PORT 0x378 main{ ioperm(port,2,1); //demande accès (1=accès on) //à 2 octets à partir // de de port PORT + outb(0x1,port); //ecriture sur port //de la valeur 1 } (source : linux device drivers, 3eme edition) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

82 I/O mapping Les entrées-sorties (I/O) I/O mappées en mémoire mémoires physiques sont détournées par la carte mère vers des registres des périphériques mémoire pas accessible sur ces adresses sur architecture intel 32 bits : la plage 3.5Go >4Go réservée pour I/O si plus de 3.5 Go installés, cette RAM est inutilisable (non adressable) CPU Address Bus 0xFF4A Data Bus TOLUD<0xFF4A<0xFFFF NorthBridge 0xFFFF 0x0000 Memory PCI device controller South bridge Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

83 Les entrées-sorties (I/O) I/O mappées en mémoire I/O mapping adressage sur le bus PCI identifiant unique (vendeur :produit) pour chaque périph. PCI attribution dynamique d adresses par le système PCI aux périphs. cat /proc/meminfo : liste les zones mémoires réservées lspci -v : liste périphériques pci et adresses physiques des registres mappés (et port) accès et lecture/ecriture (Linux) pci_find_device(vendor,device) : fonction du noyau pour récupère les infos du périph. accès semblable à une mémoire : read(), write() (ou ioread(b) iowrite(b)) Or linux utilise des adresses virtuelles la fonction add virtuel ioremap(add phys) si nécessaire attribue une adresse virtuelle pour accéder au périph. Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

84 Les entrées-sorties (I/O) I/O mappées en mémoire I/O par ports et mappées en mémoire Comparatif I/O port + adressage séparé : plage d adresses mémoires complète + si CPU a 1 petit bus d adresses + instruction spécifique : lisibilité code - hardware supplémentaire (logique + broche CPU) I/O mappée en mémoire +pas de logique pour les ports sur CPU (prix,simplicité) +même instruction qu un accès mémoire (RISC) -occupe des adresses mémoires (où il peut y avoir de la RAM) Sur l architecture x86 : cohabitation des 2 modes d adressage (pci) +void* ioport_map(port), permet d attribuer une adresse virtuelle à un port (émulation d une IO mappée) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

85 I/O par port : Exercice Les entrées-sorties (I/O) I/O mappées en mémoire Activation LED clavier AT Le clavier PS/2-ATK utilisent 2 ports : 0x60 et 0x64. 0x64 Data port clavier (read/write) 0x64 Command register (write) Status register (read) Le registre de status 1 (controlleur du clavier) est représenté ci-dessous. Avant chaque écriture sur le Data port (clavier), il faut vérifier que le bit 1 du registre de status est nul (buffer d écriture du clavier vide). Sinon on attend pour écrire. Avant chaque lecture sur le Data port, il faudrait vérifier que le buffer de sortie est plein : qu il y a quelque chose à lire. Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

Ordinateurs, Structure et Applications

Ordinateurs, Structure et Applications Ordinateurs, Structure et Applications Cours 10, Les interruptions Etienne Tremblay Université Laval, Hiver 2012 Cours 10, p.1 Les interruptions du 8086 Une interruption interrompt l exécution séquentielle

Plus en détail

Structure d un programme

Structure d un programme Architecture des ordinateurs Cours 6 Structure d un programme 3 décembre 2012 Archi 1/30 Programme en Assembleur Archi 2/30 Sections de données programme en assembleur = fichier texte (extension.asm) organisé

Plus en détail

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

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants : GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours

Plus en détail

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

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre Assembleur Faculté I&C, André Maurer, Claude Petitpierre INTRODUCTION Logiciel utilisé Faculté I&C, André Maurer, Claude Petitpierre MEMOIRE Mémoire Faculté I&C, André Maurer, Claude Petitpierre Mémoire

Plus en détail

Programmation assembleur : aperçu

Programmation assembleur : aperçu Assembleur : Younès EL AMRANI. 1 Programmation assembleur : aperçu Programmation en assembleur : NASM Module M14 Semestre 4 Printemps 2010 Equipe pédagogique : Younès El Amrani, Abdelhakim El Imrani, Faissal

Plus en détail

Rappels d architecture

Rappels d architecture Assembleur Rappels d architecture Un ordinateur se compose principalement d un processeur, de mémoire. On y attache ensuite des périphériques, mais ils sont optionnels. données : disque dur, etc entrée

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

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

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007 Introduction à l architecture des ordinateurs Adrien Lebre Décembre 2007 Plan - partie 1 Vue d ensemble La carte mère Le processeur La mémoire principal Notion de bus Introduction à l architecture des

Plus en détail

Réalisation d un OS 32 bits pour PC(x86)

Réalisation d un OS 32 bits pour PC(x86) Rapport projet tutoré Réalisation d un OS 32 bits pour PC(x86) Maxime Chéramy Nicolas Floquet Benjamin Hautbois

Plus en détail

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

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION 145 NOTION DE PROGRAMMATION 1/ Complétons notre microprocesseur Nous avons, dans les leçons précédentes décrit un microprocesseur théorique, cependant il s inspire du 6800, premier microprocesseur conçu

Plus en détail

Exécution des instructions machine

Exécution des instructions machine Exécution des instructions machine Eduardo Sanchez EPFL Exemple: le processeur MIPS add a, b, c a = b + c type d'opération (mnémonique) destination du résultat lw a, addr opérandes sources a = mem[addr]

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

TD Architecture des ordinateurs. Jean-Luc Dekeyser

TD Architecture des ordinateurs. Jean-Luc Dekeyser TD Architecture des ordinateurs Jean-Luc Dekeyser Fiche 1 Nombres de l informatique Exercice 1 Une entreprise désire réaliser la sauvegarde de ses données sur un site distant. Le volume de données à sauvegarder

Plus en détail

CH.3 SYSTÈMES D'EXPLOITATION

CH.3 SYSTÈMES D'EXPLOITATION CH.3 SYSTÈMES D'EXPLOITATION 3.1 Un historique 3.2 Une vue générale 3.3 Les principaux aspects Info S4 ch3 1 3.1 Un historique Quatre générations. Préhistoire 1944 1950 ENIAC (1944) militaire : 20000 tubes,

Plus en détail

Logiciel de base. Première année ENSIMAG

Logiciel de base. Première année ENSIMAG Logiciel de base Première année ENSIMAG 1 Procédures, paramètres, pile En assembleur une fonction est une étiquette, c'est l'adresse de sa première instruction Lors de l'appel d'une fonction, la pile sert

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 7 17 décembre 2012 Archi 1/1 Fonctions, suite et fin Archi 2/1 Rappel Forme générale d un sous-programme (fonction) : etiquette sousprogramme: push ebp ; empile la valeur

Plus en détail

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011 Temps Réel Jérôme Pouiller Septembre 2011 Sommaire Problèmatique Le monotâche Le multitâches L ordonnanement Le partage de ressources Problèmatiques des OS temps réels J. Pouiller

Plus en détail

REALISATION d'un. ORDONNANCEUR à ECHEANCES

REALISATION d'un. ORDONNANCEUR à ECHEANCES REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6

Plus en détail

Initiation à la sécurité

Initiation à la sécurité Initiation à la sécurité UE Systèmes informatiques 12 septembre 2011 Julien Raeis - http://raeis.iiens.net/ Présentation Ingénieur IIE 2005 Carrière dans la sécurité des systèmes Consultant en sécurité

Plus en détail

Compilation (INF 564)

Compilation (INF 564) Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation

Plus en détail

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut

Plus en détail

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours Informatique 1. Monsieur SADOUNI Salheddine Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale

Plus en détail

Conception de circuits numériques et architecture des ordinateurs

Conception de circuits numériques et architecture des ordinateurs Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique

Plus en détail

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs Architecture Matérielle des Systèmes Informatiques. S1 BTS Informatique de Gestion 1 ère année THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT Dossier 1 L environnement informatique. Objectifs Enumérer et

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Leçon 1 : Les principaux composants d un ordinateur

Leçon 1 : Les principaux composants d un ordinateur Chapitre 2 Architecture d un ordinateur Leçon 1 : Les principaux composants d un ordinateur Les objectifs : o Identifier les principaux composants d un micro-ordinateur. o Connaître les caractéristiques

Plus en détail

KoinKoin. Système d exploitation à architecture basée micro-noyau. Antoine Castaing Nicolas Clermont Damien Laniel

KoinKoin. Système d exploitation à architecture basée micro-noyau. Antoine Castaing Nicolas Clermont Damien Laniel KoinKoin Système d exploitation à architecture basée micro-noyau Antoine Castaing Nicolas Clermont Damien Laniel 30 juillet 2006 Free Documentation License Copyright (c) 2005 Nicolas Clermont / Antoine

Plus en détail

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

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996] Mesure de performances [Architecture des ordinateurs, Hennessy & Patterson, 1996] Croissance des performances des microprocesseurs Avant le milieu des années 80, le gain dépendait de la technologie. Après,

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

Exécutif temps réel Pierre-Yves Duval (cppm)

Exécutif temps réel Pierre-Yves Duval (cppm) Exécutif temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 Plan Exécutif Tâches Evénements et synchronisation Partage de ressources Communications

Plus en détail

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

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96 Assembleur i8086 Philippe Preux IUT Informatique du Littoral Année universitaire 95 96 1 Avertissement Ce document décrit le langage d assemblage étudié et utilisé dans le cadre des TP d architecture.

Plus en détail

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

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Microprocesseur + Logiciel

Microprocesseur + Logiciel Microprocesseur + Logiciel Robot EVALBOT MOHAMED AKIL BUREAU 5253 UNITE IGI 1001 PROGRAMMATION DES MICROPROCESSEURS Présentation [IGI1001] CONTEXTE SCIENTIFIQUE... 4 1. OBJECTIFS DE L UNITE... 6 2. OBJECTIFS

Plus en détail

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

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Haute Ecole d Ingénierie et de Gestion Du Canton du Vaud MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Programmation en mode simulation 1. DOCUMENTS DE RÉFÉRENCE...

Plus en détail

Chapitre 4 : Les mémoires

Chapitre 4 : Les mémoires 1. Introduction: Chapitre 4 : Les mémoires Nous savons que dans un ordinateur toutes les informations : valeur numérique, instruction, adresse, symbole (chiffre, lettre,... etc.) sont manipulées sous une

Plus en détail

Architecture des Ordinateurs. Partie II:

Architecture des Ordinateurs. Partie II: Architecture des Ordinateurs Partie II: Le port Floppy permet le raccordement du lecteur de disquette àla carte mère. Remarque: Le lecteur de disquette a disparu il y a plus de 6 ans, son port suivra.

Plus en détail

Architecture ordinateur. Organisation mémoire et Entrées/Sorties

Architecture ordinateur. Organisation mémoire et Entrées/Sorties Architecture ordinateur Organisation mémoire et Entrées/Sorties 243 Plages mémoire et E/S Dans une architecture à bus partagé, seule une partie des adresses active le contrôleur mémoire. Il reste des adresses

Plus en détail

Partie 7 : Gestion de la mémoire

Partie 7 : Gestion de la mémoire INF3600+INF2610 Automne 2006 Partie 7 : Gestion de la mémoire Exercice 1 : Considérez un système disposant de 16 MO de mémoire physique réservée aux processus utilisateur. La mémoire est composée de cases

Plus en détail

Description du logiciel Modbus RTU

Description du logiciel Modbus RTU Description du logiciel Modbus RTU V.1.0 Actualisée 04/2014 Page 1 de 57 Description du logiciel Modbus RTU Description du logiciel Modbus RTU V.1.0 Actualisée 04/2014 Page 2 de 57 Sommaire Description

Plus en détail

Systèmes d exploitation

Systèmes d exploitation Systèmes d exploitation Virtualisation, Sécurité et Gestion des périphériques Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Novembre 2009 Gérard Padiou Systèmes d exploitation

Plus en détail

Prentice Hall, 2011 (ISBN 0-13-610804-0)

Prentice Hall, 2011 (ISBN 0-13-610804-0) Prentice Hall, 2011 (ISBN 0-13-610804-0) Introduction à l architecture des ordinateurs Georges-André Silber Centre de recherche en informatique École nationale supérieure des mines de Paris octobre 2010

Plus en détail

Résumé Génération de code Le code intermédiaire

Résumé Génération de code Le code intermédiaire Résumé Analyse INFO0004 Structure des langages de programmation Génération de code ; liaison et exécution Justus H. Piater Programmation Analyse Compilation Liaison fichier texte Analyse lexicale flux

Plus en détail

LOGICIEL DC4D MONITOR

LOGICIEL DC4D MONITOR THQtronic LOGICIEL DC4D MONITOR La communication entre PC et DC4D ne peut se faire qu à l aide du câble de liaison USB-TTL de FTDI référence TTL-232R-5V-AJ vendu en option. DC4D Monitor est la même application

Plus en détail

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr 1- Structure d un disque 2- Ordonnancement des requêtes 3- Gestion du disque - formatage - bloc d amorçage - récupération

Plus en détail

ASR1 TD7 : Un microprocesseur RISC 16 bits

ASR1 TD7 : Un microprocesseur RISC 16 bits {Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit

Plus en détail

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

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique Architecture d ordinateur : introduction Dimitri Galayko Introduction à l informatique, cours 1 partie 2 Septembre 2014 Association d interrupteurs: fonctions arithmétiques élémentaires Elément «NON» Elément

Plus en détail

Croisière au cœur d un OS Étape 4 : Mise en place de la pagination

Croisière au cœur d un OS Étape 4 : Mise en place de la pagination Croisière au cœur d un OS Étape 4 : Mise en place de la pagination Résumé Grâce à l article 3, nous pouvons gérer la totalité de la RAM disponible. Dans cet article, nous allons commencer la mise en place

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

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)

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) 1/ Généralités : Un ordinateur est un ensemble non exhaustif d éléments qui sert à traiter des informations (documents de bureautique, méls, sons, vidéos, programmes ) sous forme numérique. Il est en général

Plus en détail

Contraintes, particularités. 1. Généralités... 2. 2. Gestion de la mémoire... 2. a. Type des variables et constantes... 2

Contraintes, particularités. 1. Généralités... 2. 2. Gestion de la mémoire... 2. a. Type des variables et constantes... 2 C Embarque Contraintes, particularités 1. Généralités... 2 2. Gestion de la mémoire... 2 a. Type des variables et constantes.... 2 b. Variables locales ou globales... 3 3. Interruptions... 5 4. Imposer

Plus en détail

Architecture des ordinateurs Introduction à l informatique

Architecture des ordinateurs Introduction à l informatique Architecture des ordinateurs Introduction à l informatique 17 septembre 2004 1 2 3 4 5 6 Les interrupteurs... 0V 5V Ce sont des composants électroniques qui laissent pser un courant principal lorsque la

Plus en détail

IFT1215 Introduction aux systèmes informatiques

IFT1215 Introduction aux systèmes informatiques Introduction aux circuits logiques de base IFT25 Architecture en couches Niveau 5 Niveau 4 Niveau 3 Niveau 2 Niveau Niveau Couche des langages d application Traduction (compilateur) Couche du langage d

Plus en détail

Traitement de données

Traitement de données Traitement de données Présentation du module TINI Présentation du module : Le module Tini se décline en plusieurs versions, il est constitué d une carte d application et d un module processeur : Les modules

Plus en détail

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr 6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure

Plus en détail

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

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155) Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155) F. Pellegrini Université Bordeaux 1 Ce document est copiable et distribuable librement et gratuitement à

Plus en détail

PIC : COURS ASSEMBLEUR

PIC : COURS ASSEMBLEUR PIC : COURS ASSEMBLEUR I) Fonctions de base d une machine informatique Contenir de façon permanente les tâches à exécuter (mémoire programme) en ROM ou sur support magnétique. Contenir de façon temporaire

Plus en détail

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

La mémoire. Un ordinateur. L'octet. Le bit Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve

Plus en détail

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

GPA770 Microélectronique appliquée Exercices série A GPA770 Microélectronique appliquée Exercices série A 1. Effectuez les calculs suivants sur des nombres binaires en complément à avec une représentation de 8 bits. Est-ce qu il y a débordement en complément

Plus en détail

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

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès www.haouati.com haouaticpge@gmail.com Partie 1 Professeur : Haouati Abdelali CPGE Lycée Omar Ibn Lkhattab - Meknès www.haouati.com haouaticpge@gmail.com Partie I : Généralités et algorithmique de base 1. Environnement matériel et logiciel

Plus en détail

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

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne) Mémoire - espace destiné a recevoir, conserver et restituer des informations à traiter - tout composant électronique capable de stocker temporairement des données On distingue deux grandes catégories de

Plus en détail

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Chapitre V : La gestion de la mémoire Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Introduction Plusieurs dizaines de processus doivent se partager

Plus en détail

Bienvenue sur Lab-Windows Il n'y a de vents favorables que pour ceux qui ont un cap

Bienvenue sur Lab-Windows Il n'y a de vents favorables que pour ceux qui ont un cap Page 1 of 7 Rechercher sur le Web Bienvenue sur Lab-Windows Il n'y a de vents favorables que pour ceux qui ont un cap Accueil Actualité Windows Vista Windows Server Active Directory TCP/IP Securité Qui

Plus en détail

Concept de machine virtuelle

Concept de machine virtuelle Concept de machine virtuelle Chap. 5: Machine virtuelle Alain Sandoz Semestre été 2007 1 Introduction: Java Virtual Machine Machine Virtuelle Java: qu est-ce que c est? c est la spécification d une machine

Plus en détail

<Insert Picture Here> Solaris pour la base de donnés Oracle

<Insert Picture Here> Solaris pour la base de donnés Oracle Solaris pour la base de donnés Oracle Alain Chéreau Oracle Solution Center Agenda Compilateurs Mémoire pour la SGA Parallélisme RAC Flash Cache Compilateurs

Plus en détail

Matériel & Logiciels (Hardware & Software)

Matériel & Logiciels (Hardware & Software) CHAPITRE 2 HARDWARE & SOFTWARE P. 1 Chapitre 2 Matériel & Logiciels (Hardware & Software) 2.1 Matériel (Hardware) 2.1.1 Présentation de l'ordinateur Un ordinateur est un ensemble de circuits électronique

Plus en détail

ST50 Projet de fin d études Noyau Linux et multi-processeur pour une plateforme embarquée

ST50 Projet de fin d études Noyau Linux et multi-processeur pour une plateforme embarquée Mitsubishi Electric ITE-TCL 1, allée de Beaulieu CS 10806 35708 Rennes CEDEX 7 France Tel. +33 (0) 2 23 45 58 58 ST50 Projet de fin d études Noyau Linux et multi-processeur pour une plateforme embarquée

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

SRS DAY: Problématique liée à la virtualisation

SRS DAY: Problématique liée à la virtualisation SRS DAY: Problématique liée à la virtualisation Anthony GUDUSZEIT Franck CURO gudusz_a curo_f Introduction Sommaire Définition Contexte Avantages / inconvénients Fonctionnement et problématique Techniques

Plus en détail

Ordinateurs, Structure et Applications

Ordinateurs, Structure et Applications Ordinateurs, Structure et Applications Cours 13, Le DOS Etienne Tremblay Université Laval, Hiver 2011 Cours 13, p.1 Le DOS DOS signifie Disk Operating System Le DOS est un système d exploitation. Il existe

Plus en détail

Les avantages de la virtualisation sont multiples. On peut citer:

Les avantages de la virtualisation sont multiples. On peut citer: 1 Les mécanismes de virtualisation ont été introduits il y a fort longtemps dans les années 60 par IBM avec leur système CP/CMS. La motivation première de la virtualisation est la possibilité d'isoler

Plus en détail

Architecture des calculateurs

Architecture des calculateurs Formation en Calcul Scientifique - LEM2I Architecture des calculateurs Violaine Louvet 1 1 Institut Camille jordan - CNRS 12-13/09/2011 Introduction Décoder la relation entre l architecture et les applications

Plus en détail

CM2 L architecture MIPS32

CM2 L architecture MIPS32 CM2 L architecture MIPS32 Olivier Marchetti (CM-TD-TP) Alexandre Brière (TD-TP) Laboratoire d informatique de Paris 6 Pôle SoC UPMC Année 2014-2015 Instructions MIPS Contrôle Données en MIPS E/S en MIPS

Plus en détail

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant 1969. R&T 1ère année. Sylvain MERCHEZ

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant 1969. R&T 1ère année. Sylvain MERCHEZ MODULE I1 Plan Chapitre 1 Qu'est ce qu'un S.E? Introduction Historique Présentation d'un S.E Les principaux S.E R&T 1ère année Votre environnement Sylvain MERCHEZ Introduction Introduction Rôles et fonctions

Plus en détail

Tsoft et Groupe Eyrolles, 2005, ISBN : 2-212-11623-3

Tsoft et Groupe Eyrolles, 2005, ISBN : 2-212-11623-3 Tsoft et Groupe Eyrolles, 2005, ISBN : 2-212-11623-3 Configuration requise ForestPrep DomainPrep Installation interactive 5 Installation sans surveillance Module 5 : Installation d Exchange Server 2003

Plus en détail

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

SSTIC 2009. Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques... Désobfuscation automatique de binaires Et autres idyles bucoliques... Alexandre Gazet Sogeti / ESEC R&D alexandre.gazet(at)sogeti.com Yoann Guillot Sogeti / ESEC R&D yoann.guillot(at)sogeti.com SSTIC 2009

Plus en détail

Plan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB.

Plan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB. global Outils de développement et compilation IDE, GCC/Clang, ASAN, perf, valgrind, GDB Timothée Ravier LIFO, INSA-CVL, LIPN 1 re année cycle ingénieur STI 2013 2014 1 / 36 Objectifs des outils présentés

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Décoder la relation entre l architecture et les applications Violaine Louvet, Institut Camille Jordan CNRS & Université Lyon 1 Ecole «Découverte du Calcul» 2013 1 / 61 Simulation numérique... Physique

Plus en détail

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

1 Mesure de la performance d un système temps réel : la gigue TP TR ENSPS et MSTER 1 Travaux Pratiques Systèmes temps réel et embarqués ENSPS ISV et Master TP1 - Ordonnancement et communication inter-processus (IPC) Environnement de travail Un ordinateur dual-core

Plus en détail

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

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que CQP 112 Introduc/on à la programma/on Thème 2 : Architecture d un système informa/que Département d informa/que CQP 112 : Introduc/on à la programma/on Plan 1. Historique des ordinateurs 2. Composants

Plus en détail

PIC EVAL Dev Board PIC18F97J60

PIC EVAL Dev Board PIC18F97J60 PIC EVAL Dev Board PIC18F97J60 2 TP1 : Prise en main de l environnement de programmation pour la carte PIC EVAL-ANFA Pour répondre aux questions et justifier vos réponses, vous pouvez faire des copies

Plus en détail

Structure fonctionnelle d un SGBD

Structure fonctionnelle d un SGBD Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert

Plus en détail

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

Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu Travaux d études et de recherches Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu Étudiant : Luc Michel Encadrants : Frédéric Pétrot Nicolas Fournel 23 mai 2010 TABLE DES MATIÈRES

Plus en détail

Introduction à la Programmation Parallèle: MPI

Introduction à la Programmation Parallèle: MPI Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4

Plus en détail

Stockage des machines virtuelles d un système ESXi jose.tavares@hesge.ch & gerald.litzistorf@hesge.ch

Stockage des machines virtuelles d un système ESXi jose.tavares@hesge.ch & gerald.litzistorf@hesge.ch Titre Stockage des machines virtuelles d un système ESXi Auteurs jose.tavares@hesge.ch & gerald.litzistorf@hesge.ch Classification Document publique Date dernière modification 12 Mai 2009 Chemin\NomFichier

Plus en détail

Guide pour l Installation des Disques Durs SATA et la Configuration RAID

Guide pour l Installation des Disques Durs SATA et la Configuration RAID Guide pour l Installation des Disques Durs SATA et la Configuration RAID 1. Guide pour l Installation des Disques Durs SATA... 2 1.1 Installation de disques durs Série ATA (SATA)... 2 2. Guide de Configurations

Plus en détail

Fiche technique CPU 315SN/PN (315-4PN33)

Fiche technique CPU 315SN/PN (315-4PN33) Fiche technique CPU 315SN/PN (315-4PN33) Données techniques N de commande 315-4PN33 Information générale Note - Caractéristiques SPEED-Bus - Données techniques de l'alimentation Alimentation (valeur nominale)

Plus en détail

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

Programmation système I Les entrées/sorties

Programmation système I Les entrées/sorties Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les

Plus en détail

Fonctionnement et performance des processeurs

Fonctionnement et performance des processeurs Fonctionnement et performance des processeurs Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Plan Fonctionnement des processeurs Unités de calcul

Plus en détail

Présentation du système informatique utilisé et éléments d architecture des ordinateurs

Présentation du système informatique utilisé et éléments d architecture des ordinateurs TP informatique PTSI-PT Semestre 1 Lycée Gustave EIFFEL, BORDEAUX Présentation du système informatique utilisé et éléments d architecture des ordinateurs GL, SV, VB Objectif(s) Se familiariser aux principaux

Plus en détail

Mise en oeuvre TSM 6.1

Mise en oeuvre TSM 6.1 Mise en oeuvre TSM 6.1 «Bonnes pratiques» pour la base de données TSM DB2 Powered by Qui sommes nous? Des spécialistes dans le domaine de la sauvegarde et de la protection des données 10 ans d expertise

Plus en détail

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

Modules du DUT Informatique proposés pour des DCCE en 2014/2015 Modules du DUT Informatique proposés pour des DCCE en 2014/2015 Résumé de l offre : Parmi les 5500 heures d enseignement informatique dispensées au département informatique de l IUT (avec 2880 heures de

Plus en détail

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Document de formation T I A Page 1 sur 23 Module A5 Ce document a été édité par Siemens

Plus en détail

DHCP et NAT. Cyril Rabat cyril.rabat@univ-reims.fr. Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 2012-2013

DHCP et NAT. Cyril Rabat cyril.rabat@univ-reims.fr. Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 2012-2013 DHCP et NAT Cyril Rabat cyril.rabat@univ-reims.fr Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 22-23 Cours n 9 Présentation des protocoles BOOTP et DHCP Présentation du NAT Version

Plus en détail

Spécifications détaillées

Spécifications détaillées Hewlett-Packard HP ProLiant DL380 G5 Storage Server 1.8TB SAS Model - NAS - 1.8 To - montage en rack - Serial ATA-150 / SAS - DD 36 Go x 2 + 300 Go x 6 - DVD±RW x 1 - RAID 0, 1, 5, 6 - Gigabit Ethernet

Plus en détail

Initiation. àl algorithmique et à la programmation. en C

Initiation. àl algorithmique et à la programmation. en C Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,

Plus en détail

Prise en main. Prise en main - 0

Prise en main. Prise en main - 0 Prise en main 0404 Prise en main - 0 1- Introduction Creative Professional Merci d avoir choisi le Digital Audio System 0404 d E-MU. Nous avons conçu ce produit E-MU pour qu il soit logique, intuitif et

Plus en détail

Bravo! Vous venez d acquérir un routeur large bande à 4 ports Conceptronic C100BRS4H.

Bravo! Vous venez d acquérir un routeur large bande à 4 ports Conceptronic C100BRS4H. Conceptronic C100BRS4H Guide d installation rapide Bravo! Vous venez d acquérir un routeur large bande à 4 ports Conceptronic C100BRS4H. Ce guide d installation vous permettra d installer pas à pas votre

Plus en détail

Initiation au HPC - Généralités

Initiation au HPC - Généralités Initiation au HPC - Généralités Éric Ramat et Julien Dehos Université du Littoral Côte d Opale M2 Informatique 2 septembre 2015 Éric Ramat et Julien Dehos Initiation au HPC - Généralités 1/49 Plan du cours

Plus en détail

Informatique pour scientifiques hiver 2003-2004. Plan général Systèmes d exploitation

Informatique pour scientifiques hiver 2003-2004. Plan général Systèmes d exploitation Informatique pour scientifiques hiver 2003-2004 27 Janvier 2004 Systèmes d exploitation - partie 3 (=OS= Operating Systems) Dr. Dijana Petrovska-Delacrétaz DIVA group, DIUF 1 Plan général Systèmes d exploitation

Plus en détail