Projet de Machines Virtuelles
|
|
- Beatrice Bénard
- il y a 8 ans
- Total affichages :
Transcription
1 Projet de Machines Virtuelles Gabriel Kerneis Vendredi 11 mars Introduction Le but de ce sujet est d implémenter la MARS (Memory Array Redcode Simulator), une machine virtuelle utilisée dans le jeu Core War. Le Core War est un jeu de programmation inventé en 1984 dans lequel deux programmes s affrontent pour contrôler la machine. Ces programmes sont écrits dans un langage assembleur, le Redcode. Le vainqueur est celui qui parvient à arrêter tous les processus du programme adversaire, restant seul en mémoire. Historiquement, le Core War est dérivé d un autre jeu, Darwin, inventé en Darwin se jouait directement dans la mémoire physique des serveurs IBM 7090, sans aucune protection (les participants s engageaient à ne pas tricher et écrire dans des zones mémoires interdites). Vous imaginez facilement l intérêt d une machine virtuelle dans ce contexte. Il existe de très nombreuses variantes du Core War, plus ou moins bien documentées ; ce sujet s inspire de la définition ICWS 88. Si vous voulez en savoir plus, il existe plusieurs sites consacrés à Core War, parmi lesquels le plus actif est sans doute Une bonne introduction à l assembleur Redcode est The beginners guide to Redcode 1. Attention, à partir de la section The instruction modifiers, l auteur aborde des spécificités de la définition ICWS 94 qui ne figurent pas dans le Redcode de ce sujet. 2 Architecture de la MARS Fonctionnement général Les programmes Core War résident dans une mémoire commune. Ils disposent chacun d un ensemble de processus, ordonnancés en file circulaire (round-robin). À chaque cycle, chaque programme exécute une instruction du premier processus de sa file. Il existe quatre types d instructions : Données : l instruction DAT n est pas exécutable : un processus qui tente d exécuter une instruction DAT meurt instantanément. Un programme a perdu lorsque tous ses processus sont morts. Le but d un programme est d amener tous les processus de son adversaire à exécuter des instructions DAT tout en gardant lui-même au moins un processus vivant. Création de processus : l instruction SPL ajoute un nouveau processus à la file de processus du programme. Écriture en mémoire : les instructions MOV, ADD et SUB permettent de copier, ajouter ou retrancher des valeurs en mémoire. Saut conditionnel : les instructions JMP, JMZ, JMZ, CMP et SLT effectuent des sauts conditionnels variés. L instruction DJN est un saut spécial qui décrémente au passage une valeur en mémoire
2 Mémoire (core) La mémoire de la MARS a une structure très particulière : elle est cyclique et à adressage relatif. On la représente par une liste d instructions de taille M (M 8192). Comme la mémoire est cyclique, toutes les opérations sont effectuées sur des entiers positifs modulo M ; un processus qui tenterait d écrire à l adresse M + 42, par exemple, écrirait en fait à l adresse 42. L adressage relatif, à l aide d offsets, résulte du fait qu il n y a aucune instruction qui permette à un processus de connaître son adresse courante (notée PC), ou d accéder à une adresse absolue arbitraire. Par exemple, un processus pourra désigner l adresse «3 instructions plus loin» (offset +3, correspondant à l adresse absolue PC + 3) ou «2 instructions avant» (offset M 2 2, correspondant à l adresse absolue PC 2). Files de processus (task queues) Chaque processus est représenté par son program counter (PC), c est-à-dire par l adresse mémoire absolue de son instruction courante. L ensemble des processus d un programme est stocké dans une file de taille bornée. C est toujours le premier processus qui est retiré de la file puis exécuté. En fin de cycle, l adresse mise à jour est ajoutée en queue de file, sauf pour les instructions DAT (qui tue le processus) et SPL (qui rajoute non pas une mais deux adresses en queue de file). 3 Cycle d exécution 3.1 Démarrage et arrêt Au démarrage, la MARS reçoit en paramètre le code de deux programmes et l adresse à laquelle chacun doit être chargé. Elle initialise sa mémoire avec des instructions DAT # 0, # 0, puis elle copie chaque programme en mémoire à l adresse indiquée. Elle ajoute enfin l adresse de chargement de chaque programme dans sa file de processus et commence le premier cycle d exécution. Chaque cycle d exécution de la MARS comprend un cycle fetch-decode-execute par programme. Les programmes sont exécutés suivant l ordre dans lequel ils ont été chargés en mémoire. La MARS exécute toujours un cycle complet, même dans le cas où le premier des deux programmes meurt à cause d une instruction DAT. À la fin de chaque cycle, la MARS vérifie s il y a un vainqueur : si les deux files de processus sont vides, il y a égalité, sinon, si l une des files est vide, c est l autre programme qui est déclaré vainqueur, sinon, si la MARS a exécuté cycles, il y a égalité, sinon, la MARS exécute le cycle suivant. 3.2 Fetch Le premier processus, désigné par son adresse PC, est retiré de la file de processus du programme courant. L instruction à l adresse absolue PC est ensuite récupérée en mémoire pour être décodée et exécutée. 3.3 Decode Une instruction Redcode est constituée de cinq champs : l opcode, le A-mode et le A-nombre, le B-mode et le B-nombre. L ensemble d un mode et d un nombre est appelé opérande (on parle 2. Rappelez-vous qu on travaille avec des entiers positifs modulo M. 2
3 du A-opérande et du B-opérande). À partir de ces opérandes, la phase de décodage consiste à calculer deux adresses mémoire absolues, le A-pointeur et le B-pointeur. Modes Les modes sont au nombre de quatre : immédiat (noté #), direct (mode par défaut), indirect et indirect pré-décrémenté (noté <). Ils modifient la manière dont le A-nombre et le B-nombre sont interprétés dans le calcul du A-pointeur et du B-pointeur. En mode immédiat, l instruction utilise le nombre tel quel (par exemple en tant que valeur à ajouter pour l instruction ADD) ; le pointeur associé est simplement PC. En mode direct, le nombre représente un offset : le pointeur est la somme de PC et du nombre. En mode indirect, le nombre est également interprété comme un offset vers une instruction ; mais c est ensuite le B-nombre 3 de cette instruction intermédiaire qui, interprété à nouveau comme un offset, donne la valeur du pointeur. Enfin, en mode indirect pré-décrémenté, le B-nombre de l instruction intermédiaire est décrémenté avant de calculer le second offset. Algorithme de décodage Les étapes de décodage précises sont données Figure 1. Il est important de respecter scrupuleusement l ordre indiqué, car le mode indirect pré-décrémenté modifie certaines valeurs en mémoire qui peuvent être réutilisées dans la suite du décodage. Notez que les deux opérandes seront toujours décodés, même si l instruction (par exemple, DAT) ne les utilise pas. On rappelle que tous les calculs se font sur des entiers positifs modulo M. A-pointeur B-pointeur 1. Si le A-mode est «immédiat», le A-pointeur est égal à PC. 2. Sinon, on ajoute le A-nombre et PC pour obtenir une adresse L. 3. Si le A-mode est «direct», le A-pointeur vaut L. 4. Sinon, on lit le B-nombre n de l instruction à l adresse L. 5. Si le A-mode est «indirect», le A-pointeur vaut L + n. 6. Si le A-mode est «indirect pré-décrémenté», on écrit n 1 dans le B-nombre de l instruction à l adresse L et le A-pointeur vaut L + n Si le B-mode est «immédiat», le B-pointeur est égal à PC. 2. Sinon, on ajoute le B-nombre et PC pour obtenir une adresse L. 3. Si le B-mode est «direct», le B-pointeur vaut L. 4. Sinon, on lit le B-nombre n de l instruction à l adresse L. 5. Si le B-mode est «indirect», le B-pointeur vaut L + n. 6. Si le B-mode est «indirect pré-décrémenté», on écrit n 1 dans le B-nombre de l instruction à l adresse L et le B-pointeur vaut L + n 1. Figure 1 Décodage d une instruction 3.4 Execute Une fois le décodage effectué, la phase d exécution modifie certaines valeurs en mémoire, calcule la nouvelle valeur du program counter et l ajoute à la file des processus du programme courant (sauf pour les instructions DAT et SPL). 3. Il s agit bien toujours du B-nombre, même pour le calcul du A-pointeur. 3
4 Par souci de concision, on utilisera dans la suite les termes A-instruction pour désigner l instruction située à l adresse du A-pointeur et B-instruction celle située à l adresse du B- pointeur. De plus, lorsque les termes A-mode, A-nombre, B-mode et B-nombre sont utilisés sans plus de précision, il s agit des champs de l instruction courante. DAT A B L instruction DAT ne fait rien (et cause donc la mort du processus courant). MOV A B Si l A-mode est immédiat, le A-nombre est copié dans le B-nombre de la B-instruction. Sinon, l A-instruction est copiée intégralement à l adresse du B-pointeur. On ajoute ensuite PC + 1 à la file des processus du programme courant. ADD A B Si l A-mode est immédiat, le A-nombre est ajouté au B-nombre de la B-instruction. Sinon, les A et B-nombres de l A-instruction sont ajoutés, respectivement, aux A et B-nombres de la B-instruction. On ajoute ensuite PC + 1 à la file des processus du programme courant. SUB A B Si l A-mode est immédiat, le A-nombre est retranché du B-nombre de la B-instruction. Sinon, les A et B-nombres de l A-instruction sont retranchés, respectivement, des A et B-nombres de la B-instruction. On ajoute ensuite PC + 1 à la file des processus du programme courant. JMP A B Le A-pointeur est ajouté à la file des processus du programme courant. JMZ A B Si le B-nombre de la B-instruction est égal à 0, le A-pointeur est ajouté à la file des processus du programme courant. Sinon, on ajoute PC + 1 à la file des processus du programme courant. JMN A B Si le B-nombre de la B-instruction est différent de 0, le A-pointeur est ajouté à la file des processus du programme courant. Sinon, on ajoute PC+1 à la file des processus du programme courant. CMP A B Si le A-mode est immédiat, on compare le A-nombre au B-nombre de la B-instruction. Sinon, on compare l A-instruction et la B-instruction (champ par champ). Si les valeurs comparées sont égales, l instruction suivante est sautée, c est-à-dire qu on ajoute PC + 2 à la file des processus du programme courant. Sinon, on ajoute PC + 1 à la file des processus du programme courant. SLT A B Si le A-mode est immédiat, on note X le A-nombre, et Y le B-nombre de la B-instruction. Sinon, on note X le B-nombre de l A-instruction, et Y le B-nombre de la B-instruction. Si X < Y, l instruction suivante est sautée, c est-à-dire qu on ajoute PC + 2 à la file des processus du programme courant. Sinon, on ajoute PC + 1 à la file des processus du programme courant. DJN A B On décrémente le B-nombre de la B-instruction, puis on agit exactement comme pour l instruction JMN A B. SPL A B On ajoute PC + 1 à la file des processus du programme courant. Le A-pointeur est ensuite ajouté à la file des processus du programme courant, à condition que celle-ci n ait pas atteint sa taille maximale. 4
5 4 Format binaire La MARS utilise un format binaire pour représenter les instructions. Un programme, ou une copie de la mémoire (core dump), sont simplement représentés comme la concaténation des instructions qui les composent. Un assembleur-désassembleur est fourni avec le sujet pour vous faciliter l écriture de programmes et l analyse du format binaire. Pour plus de détails sur le langage assembleur, vous pouvez vous référer au Beginners Guide indiqué en introduction. Instruction Une instruction est codée sur cinq octets : un pour l opcode et deux pour chaque opérande (Figure 2). b 7... b 0 b b 0 b b 0 opcode A-opérande B-opérande Figure 2 Instruction Opcode L opcode est codé sur un octet. Les trois bits de poids faible sont réservés et doivent être égaux à zéro. Les cinq bits de poids fort représentent un entier non-signé compris entre 0 et 10 (Figure 3). On associe à chaque entier l un des onze opcodes suivants : DAT (0), MOV (1), ADD (2), SUB (3), JMP (4), JMZ (5), JMN (6), CMP (7), SLT (8), DJN (9) et SPL (10). b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 opcode réservé Figure 3 Opcode Opérandes Les opérandes sont des entiers non-signés de 16 bits en codage gros-boutiste (bigendian). Les 3 bits de poids fort représentent le mode de l opérande, et les 13 bits de poids faible son nombre (Figure 4). Le nombre est un entier non-signé compris entre 0 et M 1. Le mode est un entier non-signé compris entre 0 et 3. On associe à chaque entier l un des quatre modes suivants : immédiat (0), direct (1), indirect (2) et indirect pré-décrémenté (3). b 15 b 14 b 13 b 12 b 11 b 10 b 9 b 8 b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 mode nombre Figure 4 Opérande 5
6 5 Implémentation demandée Pour avoir la moyenne, un projet doit implémenter l interface minimale décrite ci-dessous et passer tous les tests fournis. Pour ceux qui désirent aller au-delà, des idées d extensions sont proposées. Un programme qui ne passe pas les jeux de test fournis ne sera pas accepté comme solution à ce projet. Tout projet doit être rendu accompagné d un rapport au format pdf décrivant la démarche, les choix d implémentations et documentant les extensions éventuelles. Vous pouvez coder, au choix, en C, Java ou OCaml. Les modalités de rendu seront précisées sur la liste de discussion. 5.1 Interface minimale L interaction avec la MARS se fait par l intermédiaire de la ligne de commande. La MARS attend quatre paramètres : le nom de fichier du premier programme, l adresse à laquelle le premier programme doit être chargé en mémoire, le nom de fichier du second programme et l adresse à laquelle le second programme doit être chargé en mémoire. Par défaut, la MARS utilise une mémoire de 8192 instructions et limite le nombre de processus par programme à 64. La MARS affiche sur sa sortie standard une unique ligne, sur le modèle suivant : winner=1,q1=5,q2=0,cycles=2546 Le champ winner vaut 0 en cas d égalité (que les deux programmes soient morts lors du même cycle, ou que le nombre maximum de cycles ait été atteint) ; sinon, il est égal au numéro du programme vainqueur. Les champs q1 et q2 indiquent la longeur de chaque file à la fin du dernier cycle, et cycles le nombre de cycles exécutés. Tout autre texte doit être dirigé vers la sortie d erreur. Au moment de quitter, la MARS écrit une copie de la mémoire telle qu elle était à la fin du dernier cycle dans un fichier core.dump (dans le répertoire courant). Le code de retour de la MARS est 0 en cas d exécution réussie, et une autre valeur à votre choix en cas d erreur (programme invalide, par exemple). 5.2 Idées d extension Ajouter des options pour modifier la taille de la mémoire, le nombre processus par programme, ou encore charger les programmes à des adresses aléatoires. Supporter l exécution de plus de deux programmes simultanément. Ajouter une interface graphique pour visualiser les combats. Définir de nouveaux opcodes, de nouveaux modes (vous pouvez implémenter la définition ICWS 94 si vous êtes courageux). Pensez à proposer et documenter vos extensions au format binaire sur la liste de discussion pour que d autres puissent aussi les implémenter. Écrire des programmes Redcode, mesurer les performances de programmes existants. Implémenter un mode «tournoi» où la MARS confronte les programmes deux à deux et affiche un classement. 6
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étailConception 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étailRappels 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étailAssembleur. 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étailDU 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étailExé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étailArchitecture 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étailProgrammation 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étailCours 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étailProgrammation 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étailAssembleur 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étailStructure 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étailIV- 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étailCompilation (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étailMICROINFORMATIQUE 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étailInformatique Générale
Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) guillaume.hutzler@ibisc.univ-evry.fr Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html
Plus en détailPROJET ALGORITHMIQUE ET PROGRAMMATION II
PROJET 1 ALGORITHMIQUE ET PROGRAMMATION II CONTENU DU RAPPORT A RENDRE : o Fiche signalétique du binôme o Listing des différents fichiers sources o CD sources o Il sera tenu compte de la présentation du
Plus en détailLicence 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étailINITIATION 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étailProjet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte
Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes
Plus en détailUE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative
Plus en détailTP 2 Réseaux. Adresses IP, routage et sous-réseaux
TP 2 Réseaux Adresses IP, routage et sous-réseaux C. Pain-Barre INFO - IUT Aix-en-Provence version du 24/2/2 Adressage IP. Limites du nombre d adresses IP.. Adresses de réseaux valides Les adresses IP
Plus en détailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailTD 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étailCours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Plus en détailArithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot
Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailJeu d instructions NIOS II
Jeu d instructions NIOS II 1 Formats d instructions Le processeur NIOS II a un jeu d instructions de type RISC. Il possède 32 registres de 32 bits, notés r0 à r31, avec r0 0. Les instructions sont de longueur
Plus en détailReprésentation des Nombres
Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...
Plus en détailREALISATION 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étailAlgorithme. Table des matières
1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............
Plus en détailMachines virtuelles Cours 1 : Introduction
Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 pierre.letouzey@inria.fr PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une
Plus en détailDéfinitions. Numéro à préciser. (Durée : )
Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.
Plus en détailConventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
Plus en détailConversion d un entier. Méthode par soustraction
Conversion entre bases Pour passer d un nombre en base b à un nombre en base 10, on utilise l écriture polynomiale décrite précédemment. Pour passer d un nombre en base 10 à un nombre en base b, on peut
Plus en détailLOGICIEL DE GESTION DE DOCUMENTS PDF : PROJET INFO 1
LOGICIEL DE GESTION DE DOCUMENTS PDF : PROJET INFO 1 L. POINSOT Contact client : Laurent Poinsot (laurent.poinsot@lipn.univ-paris13.fr) Résumé : Ce document est le cahier des charges du projet INFO 1.
Plus en détailCapacité d un canal Second Théorème de Shannon. Théorie de l information 1/34
Capacité d un canal Second Théorème de Shannon Théorie de l information 1/34 Plan du cours 1. Canaux discrets sans mémoire, exemples ; 2. Capacité ; 3. Canaux symétriques ; 4. Codage de canal ; 5. Second
Plus en détailLicence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Plus en détailManuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2
éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........
Plus en détailArchitecture matérielle des systèmes informatiques
Architecture matérielle des systèmes informatiques IDEC, Renens. Version novembre 2003. Avertissement : ce support de cours n est pas destiné à l autoformation et doit impérativement être complété par
Plus en détailLa 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étailM06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS
IB INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1 DIPLOMA PROGRAMME PROGRAMME DU DIPLÔME DU BI PROGRAMA DEL DIPLOMA DEL BI M06/5/COMSC/SP1/FRE/TZ0/XX 22067017 Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS
Plus en détailTraduction 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étailINTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores
INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN
Plus en détailCours 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étailCM2 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étailPROGRAMME DE MESSAGERIE INSTANTANEE RAPPORT FINAL. Généralités Structure du code Détail de scénarios Précisions de fonctionnement
PROGRAMME DE MESSAGERIE INSTANTANEE Généralités Structure du code Détail de scénarios Précisions de fonctionnement Paul RICHIER Gautier LETAROUILLY 30/05/2012 SOMMAIRE I Contexte et généralités II Structure
Plus en détailSSTIC 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étailLe langage C. Séance n 4
Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de
Plus en détailCryptographie et fonctions à sens unique
Cryptographie et fonctions à sens unique Pierre Rouchon Centre Automatique et Systèmes Mines ParisTech pierre.rouchon@mines-paristech.fr Octobre 2012 P.Rouchon (Mines ParisTech) Cryptographie et fonctions
Plus en détailGestion 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étailExercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT
Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,
Plus en détailCours d Informatique
Cours d Informatique 1ère année SM/SMI 2007/2008, Info 2 Département de Mathématiques et d Informatique, Université Mohammed V elbenani@hotmail.com sayah@fsr.ac.ma 2007/2008 Info2, 1ère année SM/SMI 1
Plus en détailSélection du contrôleur
Démo CoDeSys - 1 - 1. Configuration de l environnement de travail : Lancer le logiciel CoDeSys Fichier Nouveau Lors de la première utilisation, une boîte de dialogue apparaît permettant la sélection du
Plus en détailGUIDE D'UTILISATION DU LOGICIEL DU TRIDENT GRAPHIQUE : TRG_REPORT
GUIDE D'UTILISATION DU LOGICIEL DU TRIDENT GRAPHIQUE : TRG_REPORT Août 2009 MADE V_1_03 M A D E S.A. au capital de 270 130 167, Impasse de la garrigue F 83210 LA FARLEDE Tél:+ 33 (0) 494 083 198 FAX :
Plus en détailGUIDE ISAN: 7 Création d un ISAN In-Dev 1
GUIDE ISAN: 7 Création d un ISAN In-Dev 1 ISAN In-Dev : Un ISAN In-Dev, ou ISAN pour œuvre en Développement, est un ISAN alloué à un déclarant avant que l œuvre puisse être complètement décrite. Il n est
Plus en détailCours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions
Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental
Plus en détailPlan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Plus en détailPrésentation du cours
Thibault HILAIRE thibault.hilaire@lip6.fr François PECHEUX francois.pecheux@lip6.fr Informatique générale 1 (Python) Introduction Présentation du cours AGRAL-MTX-GM 2014-2015 20h de cours, 40h de TP/projets
Plus en détailMicroprocesseur + 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étailConfiguration automatique
Configuration automatique (/home/terre/d01/adp/bcousin/polys/internet:gestion_reseau/6.dhcp.fm- 29 Septembre 1999 12:07) PLAN Introduction Les principes de DHCP Le protocole DHCP Conclusion Bibliographie
Plus en détailTravaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation
Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des
Plus en détailEXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version 1.0 30/11/05
EXCEL PERFECTIONNEMENT Version 1.0 30/11/05 SERVICE INFORMATIQUE TABLE DES MATIERES 1RAPPELS...3 1.1RACCOURCIS CLAVIER & SOURIS... 3 1.2NAVIGUER DANS UNE FEUILLE ET UN CLASSEUR... 3 1.3PERSONNALISER LA
Plus en détailCONFIGURATION DE L AUTOMATE SIEMENS
CONFIGURATION DE L AUTOMATE SIEMENS Créer un projet Dans le bureau de Windows, double-cliquer sur l icône «SIMATIC Manager» : Cliquer ensuite sur l icône «nouveau» : Choisir un nom de projet et valider
Plus en détailLe module Supply Chain pour un fonctionnement en réseau
Prélude 7 ERP Le module Supply Chain pour un fonctionnement en réseau Gérard Baglin Septembre 2008 Sommaire Chapitre 1 Le mode de fonctionnement en réseau de Prélude 7... 1 Le principe des jeux en temps
Plus en détail4. Utilisation d un SGBD : le langage SQL. 5. Normalisation
Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :
Plus en détailTraduction des Langages : Le Compilateur Micro Java
BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailTechniques de stockage. Techniques de stockage, P. Rigaux p.1/43
Techniques de stockage Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Contenu de ce cours : 1. Stockage de données. Supports, fonctionnement d un disque, technologie RAID 2. Organisation
Plus en détailN importe qui possédant un code MS valide peut initier la rencontre. Néanmoins, il serait préférable de laisser cette
Le produit SECURE MEETING permet notamment à un utilisateur de résoudre rapidement à distance un problème d un autre utilisateur en toute sécurité. Ce logiciel dessert les utilisateurs des plateformes
Plus en détailTP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Plus en détailMachines 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étailNetwork musical jammin
Network musical jammin Projet PC2R - 2015 Pour ce projet, nous allons réaliser une application permettant d effectuer des jams sessions en temps-réel entre des musiciens répartis à travers le monde. Le
Plus en détailUEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.
UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases
Plus en détailProgrammation C++ (débutant)/instructions for, while et do...while
Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de
Plus en détailCours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
Plus en détailAdressage des données des contrôleurs du WAGO-I/O-SYSTEM 750. Note d application
Adressage des données des contrôleurs du WAGO-I/O-SYSTEM 750, Français Version 2.1.0 23/12/2003 ii General Copyright 2001 by WAGO Kontakttechnik GmbH Tous droits réservés. WAGO Kontakttechnik GmbH Hansastraße
Plus en détailUNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU
Odile VERBAERE UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU Résumé : Cet article présente une réflexion sur une activité de construction de tableau, y compris
Plus en détailDE 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étailPoker. A rendre pour le 25 avril
Poker A rendre pour le 25 avril 0 Avant propos 0.1 Notation Les parties sans * sont obligatoires (ne rendez pas un projet qui ne contient pas toutes les fonctions sans *). Celles avec (*) sont moins faciles
Plus en détail1 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étailPartie 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étailCours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java
Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page
Plus en détail6 - 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étailArchitecture des ordinateurs TD1 - Portes logiques et premiers circuits
Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice
Plus en détailInitiation. à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étailIntroduction à 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étailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailTP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts
E3FI ESIEE Paris Systèmes et scripts B. Perret TP : Shell Scripts 1 Remarque générale Lorsque vous cherchez des informations sur Internet, n'oubliez pas que langage de shell script que nous avons vu correspond
Plus en détail1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Plus en détailReproductibilité des expériences de l article "Analyse et réduction du chemin critique dans l exécution d une application"
Reproductibilité des expériences de l article "Analyse et réduction du chemin critique dans l exécution d une application" Katarzyna Porada and David Parello and Bernard Goossens Univ. Perpignan Via Domitia,
Plus en détailNetwork Scanner Tool R2.7. Guide de l'utilisateur
Network Scanner Tool R2.7 Guide de l'utilisateur Copyright 2000-2003 par Sharp Corporation. Tous droits réservés. Toute reproduction, adaptation ou traduction sans autorisation écrite préalable est interdite,
Plus en détailDM 1 : Montre Autoquartz ETA
Lycée Masséna DM 1 : Montre Autoquartz ETA 1 Présentation de la montre L essor de l électronique nomade s accompagne d un besoin accru de sources d énergies miniaturisées. Les contraintes imposées à ces
Plus en détailProgrammation impérative
Programmation impérative Cours 4 : Manipulation des fichiers en C Catalin Dima Organisation des fichiers Qqs caractéristiques des fichiers : Nom (+ extension). Chemin d accès absolu = suite des noms des
Plus en détailLES TYPES DE DONNÉES DU LANGAGE PASCAL
LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.
Plus en détailFiche Pratique. Présentation du problème. Installation du logiciel. Etape 1. MAJ le 17/10/2011
MAJ le 17/10/2011 Présentation du problème Vous avez un certain nombre de mots de passe que vous souhaitez crypter. Le plus simple est de faire le cryptage sur une clé USB de fables capacité. La première
Plus en détailCours de Systèmes d Exploitation
Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation
Plus en détailUFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP
Université de Strasbourg Licence Pro ARS UFR de Mathématiques et Informatique Année 2009/2010 1 Adressage IP 1.1 Limites du nombre d adresses IP 1.1.1 Adresses de réseaux valides Réseaux Locaux TP 04 :
Plus en détailModule d anonymisation
Module d anonymisation Préambule Ce module permet d «anonymiser» un fichier, c est à dire de masquer les informations qu il contient en fonction de règles préalablement spécifiées. Le fichier généré par
Plus en détailWindows Internet Name Service (WINS)
Windows Internet Name Service (WINS) WINDOWS INTERNET NAME SERVICE (WINS)...2 1.) Introduction au Service de nom Internet Windows (WINS)...2 1.1) Les Noms NetBIOS...2 1.2) Le processus de résolution WINS...2
Plus en détail