Programmation système. Syllabus IFT Martin Dubois tél : (418) courriel :

Documents pareils
Systèmes et traitement parallèles

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

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

Architecture des Ordinateurs. Partie II:

Sanity Check. bgcolor mgcolor fgcolor

Exécution des instructions machine

Conversion d un entier. Méthode par soustraction

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Cours Informatique 1. Monsieur SADOUNI Salheddine

UE C avancé cours 1: introduction et révisions

IV- Comment fonctionne un ordinateur?

Évaluation et implémentation des langages

Notions fondamentales du langage C# Version 1.0

ATELIERS DE FORMATION TECHNICIEN DE MAINTENANCE INFORMATIQUE

Chapitre 2 : Abstraction et Virtualisation

Architecture matérielle des systèmes informatiques

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

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP


Informatique Générale

as Architecture des Systèmes d Information

Conception de circuits numériques et architecture des ordinateurs

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Rappels d architecture

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

UN EXEMPLE DE CYBERENSEIGNEMENT EN CHIMIE

Architecture des ordinateurs

Matériel & Logiciels (Hardware & Software)

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Vulgarisation Java EE Java EE, c est quoi?

I.1- DÉFINITIONS ET NOTIONS DE BASE

ASR1 TD7 : Un microprocesseur RISC 16 bits

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

Chapitre 10 Arithmétique réelle

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

Compilation (INF 564)

Cours 1 : La compilation

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Architecture des calculateurs

Plan du cours. Historique du langage Nouveautés de Java 7

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

Introduction à la microinformatique et à la programmation OO

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

Cours 1 : Qu est-ce que la programmation?

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

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

Concept de machine virtuelle

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Le Programme SYGADE SYGADE 5.2. Besoins en équipement, logiciels et formation. UNCTAD/GID/DMFAS/Misc.6/Rev.7

GCOS 7 sur microprocesseur standard Diane Daniel POIRSON 14 octobre 2004 Matériels 64 / DPS 7 / DPS 7000 Architecture & Evolution - Daniel POIRSON 1

Représentation des Nombres

IFT2880 Organisation des ordinateurs et systèmes

Fonctionnement et performance des processeurs

Diagrammes de Package, de déploiement et de composants UML

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

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

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

IFT1215 Introduction aux systèmes informatiques

Chapitre I Notions de base et outils de travail

Tout savoir sur le matériel informatique

CORBA. (Common Request Broker Architecture)

Une version javascript sera disponible directement dans le cours prochainement.

Éléments de programmation et introduction à Java

Windows Azure Platform Développez, déployez et administrez pour le Cloud Microsoft

Annexe : La Programmation Informatique

Initiation au HPC - Généralités

CM2 L architecture MIPS32

TO4T Technologie des ordinateurs. Séance 1 Introduction aux technologies des ordinateurs

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

Le cadre des Web Services Partie 1 : Introduction

Projet de Veille Technologique

CARTE INTERFACE PCI PARALLÈLE

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Programmation en langage C

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

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Logiciel Libre Cours 3 Fondements: Génie Logiciel

1/ Présentation de SQL Server :

Architecture de l ordinateur

Derrière toi Une machine virtuelle!

THÈSE. Pour obtenir le grade de. Spécialité : Informatique. Arrêté ministériel : 7 août Présentée et soutenue publiquement par.

Manuel d'utilisation Logiciel (Network TWAIN Driver)

MANUELS NUMÉRIQUES PROCÉDURE DE TÉLÉCHARGEMENT

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

TP 1. Prise en main du langage Python

Architecture des ordinateurs

ROYAUME DU MAROC RESUME THEORIQUE & GUIDE DE TRAVAUX PRATIQUES : TERTIAIRE ET NTIC : SYSTÈME ET RÉSEAUX INFORMATIQUES

INFORMATIQUE SYSTÈMES D EXPLOITATION TRAITEMENTS DE TEXTE LES BASES DE WINDOWS (COURS MODULE 2 ECDL)

Introduction au langage C

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Introduction...6. Assembleur, philosophieet atouts...8. Avantages et inconvénients de l assembleur...9. Que programmer en Assembleur?.

SOMMAIRE. Conseil de lecture Préface Introduction. 1 Comprendre le rôle des technologies 1. 2 Maîtriser les concepts technologiques 13

Ordinateurs, Structure et Applications

ProCod. Manuel d utilisation. Software de programmation pour codeurs absolus TWK modèles CRF et DAF CRF DF 08 / 10

Les opérations binaires

Machines virtuelles Cours 1 : Introduction

Rappel sur les bases de données

Produits E/S Agilent pour connexion PC-instrument Fiche technique

Transcription:

Programmation système IFT-17584 Syllabus Martin Dubois tél : (418) 832-1208 courriel : madub0@ift.ulaval.ca Automne 2002

A. Remerciement Je tiens à remercier le professeur Pierre Marchand pour sa collaboration et pour m avoir permis d utiliser son matériel pédagogique et son site Web des années passées comme base pour ma préparation de ce cours. B. Cours Titre Numéro Nombre de crédits : 3 : : IFT-17584 Session : Automne 2002 Salle : PLT-2704 Horaire : Lundi de 8 h 30 à 11 h 20 C. Site Web du cours www.ift.ulaval.ca/~marchand/ift17584 Ce site sera utilisé pour publier les informations relatives au cours et le matériel pédagogique utilisé. D. Chargé de cours Martin Dubois, ing. Courriel : madub0@ift.ulaval.ca Téléphone : (418) 832-1208 Disponibilité Rencontre sans rendez-vous Rencontre avec rendez-vous Courriel Le mardi de 8 h à 11 h. Note : Certaines semaines, cette période pourra être déplacée selon les disponibilités. Tout changement sera publié sur le site Web du cours. En tout temps. Vous pouvez prendre rendez-vous par courriel ou par téléphone. En tout temps. Note : Ajoutez toujours à vos messages un numéro de téléphone où vous pouvez être rejoint. Automne 2002 Page 2 de 9

E. Professeur responsable Pierre Marchand Courriel : marchand@ift.ulaval.ca Téléphone : (418) 656-2131 poste 7409 F. Description et objectifs du cours Description Langage machine et d'assemblage: jeu d'instructions, codage et temps d'exécution des instructions. Architecture du Pentium 4. Directives. Techniques d'adressage. Techniques de passage des paramètres aux sous-programmes. Arrimage avec les langages de haut niveau. Macros et assemblage conditionnel. Interruptions matérielles et logicielles. Optimisation du code. Introduction aux pilotes de périphériques. Préalables IFT-17582 IFT-17583 Objectifs Le cours complète l'apprentissage de la structure interne d'un ordinateur abordé dans le cours «Structure interne des ordinateurs», en particulier aux chapitres suivants : Chapitre 1 : représentation interne des nombres et des caractères Chapitre 3 : microprocesseurs et langage machine Chapitre 4 : interfaces de communication D'autre part, plusieurs concepts utilisés peuvent être rattachés aux autres cours : modes d'adressage : pointeurs dans les langages de haut niveau; méthodes de passage des paramètres : interface avec les langages de haut niveau et génération de code par les compilateurs et interprètes; interfaces de communication : méthodes d'entrée/sortie des ordinateurs; interruptions : processus concurrents, systèmes d'exploitation; Automne 2002 Page 3 de 9

Au terme de ce cours, l'étudiant : connaîtra la structure interne du Pentium 4 ainsi que le rôle des diverses instructions machines; connaîtra la représentation interne des caractères et des nombres; saura comment sont implantées en langage machine les structures de contrôle des langages de haut niveau; connaîtra les différents modes d'adressage utilisés par les processeurs en général et par le Pentium 4 en particulier; connaîtra les différentes techniques de passage des paramètres aux sousprogrammes ainsi que leurs avantages et désavantages respectifs; saura coder et décoder une instruction du Pentium 4; pourra décrire différentes techniques d'optimisation du code; pourra décrire le fonctionnement des instructions MMX du Pentium 4; saura utiliser les instructions de virgule flottante et les instructions SIMD du Pentium 4; pourra expliquer le principe de fonctionnement du système de gestion de mémoire virtuelle (MMU) du Pentium 4 et celui de son cache; pourra décrire le fonctionnement du mode protégé des processeurs Intel; pourra décrire le déroulement d un appel système et l impact de celui-ci sur la sécurité d un système d exploitation; pourra décrire les responsabilités d un pilote de périphérique; pourra décrire le déroulement d un transfert DMA et les interactions entre ce dernier et le gestionnaire de mémoire virtuelle; saura réaliser un pilote de périphériques simple sous Linux; pourra décrire dans les grandes lignes l architecture des pilotes de périphériques de Windows 2000; connaîtra les mécanismes d'interruption du Pentium 4; pourra décrire le fonctionnement de périphériques séries et parallèles. Automne 2002 Page 4 de 9

Objectifs spécifiques Au terme de ce cours l'étudiant : pourra comparer les architectures CISC et RISC ; pourra décrire l'architecture du Pentium 4 ; pourra expliquer le principe de fonctionnement du système de gestion de mémoire virtuelle (MMU) du Pentium III ainsi que celui de sa mémoire cache ; pourra décrire le fonctionnement du Pentium 4 en mode protégé ; pourra écrire des programmes de conversion entre différents systèmes en langage d'assemblage : binaire, décimal, hexadécimal, ASCII, BCD, virgule flottante ; saura écrire des programmes simples en assembleur pour manipuler des chaînes de caractères, des tableaux de nombres ou de caractères et des nombres en précision multiple et en virgule flottante IEEE ; saura implanter en assembleur les structures de contrôles des langages de haut niveau : ex. boucles "while", "for", "do until" et les utilisera à bon escient dans ses programmes les branchements conditionnels signés et non signés ; saura utiliser les différents modes d'adressage d'un processeur et écrire des programmes ré-entrants et relocalisables ; saura effectuer manuellement, à l'aide des tables appropriées, le codage et le décodage d'une instruction et de ses opérandes en langage machine, et évaluer l'encombrement mémoire et la vitesse d'exécution d'un programme; saura écrire des sous-programmes utilisant les différentes techniques de passage des paramètres ; comprendra le fonctionnement de l'arithmétique en virgule flottante et saura écrire des programmes en virgule flottante IEEE qui l'utilisent ; pourra écrire des programmes utilisant le processeur vectoriel MMX ; pourra écrire des programmes utilisant les extensions SIMD et SIMD2 du Pentium 4 ; saura programmer les interfaces de communication série et parallèles en mode interruption et en mode "polling" ; saura écrire des programmes simples de gestion d'interruption logicielle et matérielle. saura comment sont implantées en mémoire des structures de données telles que char, integer, short, long, chaînes de caractères, files, listes, arbres, etc. ; pourra décrire le fonctionnement d'un pilote de périphérique simple sous Windows 2000 ; saura programmer un pilote de périphérique simple sous Linux. Automne 2002 Page 5 de 9

G. Évaluation des apprentissages Il y aura 3 travaux pratiques comptant chacun pour 10% de la note finale à réaliser en équipes de deux. Les dates de remise sont les suivantes : Travail pratique #1 Le mardi 15 octobre 2002 8 h 25 Travail pratique #2 Le lundi 4 novembre 2002 8 h 25 Travail pratique #3 Le lundi 16 décembre 2002 8 h 25 Les examens sont à livre ouvert. Le premier compte pour 30% de la note finale, le second pour 40%. Les examens auront lieu aux dates suivantes : Premier examen Le lundi 4 novembre 2002 Second examen Le lundi 16 décembre 2002 Répartition des côtes en fonction de la note finale obtenue: A+ [ 95, 100 [ A [ 90, 95 [ A- [ 80, 90 [ Réussite B+ [ 76, 80 [ B [ 73, 76 [ B- [ 70, 73 [ C+ [ 66, 70 [ C [ 63, 66 [ C- [ 60, 63 [ D+ [ 55, 60 [ D [ 50, 55 [ E [ 0, 50 [ Échec W Échec pour abandon Pour réussir le cours, un étudiant doit obtenir au moins 50 %, et sur la note finale, et sur la moyenne des deux examens. H. Contenu Semaine Date Contenu 1 9 septembre 2002 Introduction Présentation du plan de cours Détermination de date de reprise de cours Rappel du cours de structure interne Les technologies CISC et RISC 2 16 septembre 2002 Visual C++ Assembleur Éditeur de lien Dévermineur Automne 2002 Page 6 de 9

3 23 septembre 2002 Registres du Pentium 4 Modes d adressage Utilisation des registres Instructions de base Gestion de la pile Interface avec les langages de haut niveau Passage de paramètres selon la convention C Autres méthodes de passage des paramètres 4 30 septembre 2002 Branchements conditionnels Structure de contrôle Instructions arithmétiques Multiplication et division de précision Instructions logiques, décalages et rotations Conversions de code 5 7 octobre 2002 Virgule flottante MMX SIMD SIMD2 6 À déterminer Codage des instructions Mémoire virtuelle du Pentium 4 Mémoires caches Pipeline Optimisation du code 7 21 octobre 2002 Interruptions matérielles Interruptions logicielles Mode protégé Révision pré-examen 28 octobre 2002 Semaine de lecture 8 4 novembre 2002 Premier examen 9 9 novembre 2002 Port d entrée-sortie Interface parallèle Interface série Le bus PCI Registre en espace mémoire 10 11 novembre 2002 Appels système Sécurité des systèmes d exploitation Théorie des pilotes de périphériques Gestion de la mémoire virtuelles Gestion de la DMA Gestion des interruptions Gestion des priorités et allocation des ressources 11 18 novembre 2002 Outils de développement Linux Compilateur Assembleur Éditeur de lien 12 25 novembre 2002 Structures des pilotes de périphériques sous Linux Chargement d un pilote de périphériques Technique de déverminage 13 2 décembre 2002 Structure des pilotes de systèmes de fichiers sous Linux. Structure des systèmes de fichiers sous Linux. Automne 2002 Page 7 de 9

14 9 décembre 2002 Structure des pilotes de périphérique Windows 2000 Les niveaux d exécution (Passive, Dispatch, Device IRQ ) «IO Request Packet» Serialisation DMA Interruptions PnP Power Management Révision pré-examen 15 16 décembre 2002 Second examen Calendrier Date Description 2 septembre 2002 Congé de la fête du travail Note : Le cours normalement prévu à cette date sera repris à une date déterminée avec les étudiants. 3 septembre 2002 Début de la session d automne 2002 9 septembre 2002 Premier cours 14 octobre 2002 Congé de l action de grâce Note : Le cours normalement prévu à cette date sera repris à une date déterminée avec les étudiants. 13 décembre 2002 Fin de la session d automne 2002 16 décembre 2002 Second examen I. Bibliographie Manuel obligatoire Aucun Manuels recommandés Acétates et documentation (manuels Intel + Résumé) disponibles sur le site Web du cours. Kernel Projects for Linux. NUTT Gary, Addison Wesley, 2001. (ISBN: 0-201-61243-7) Automne 2002 Page 8 de 9

The 80x86 IBM PC and Compatible Computers (Vol I & II), 2nd Edition. MAZIDI M.A. and MAZIDI J. G., Prentice-Hall, 1998. (ISBN: 0-13-758509-8) Introduction to Assembly Language Programming. DANDAMUDI Sivarama P., Springer Verlag, 1998. (ISBN: 0-387-98530-1) Developing Windows NT Device Drivers. A Programmer s Handbook. DEKKER Edward N. and NEWCOMER Joseph M., Addison-Wesley, 1999. (ISBN: 0-201-69590-1) Windows Assembly Language and Systems Programming. KAULER Barry, R&D Books, 1997. (ISBN: 0-87930-474-X) The WindowsNT Device Driver Book. BAKER Art, Prentice-Hall, 1996. (ISBN: 0-13-184474-1) Dico Référence API Natives Windows NT/2000. NEBBET Gary, CampusPress, 2000. (ISBN: 2-7440-0916-4) Conception du système UNIX. BACH M.J., Prentice-Hall, 1991. (ISBN: 2-225-81596-8) La Bible PC. Programmation Système. TISHER Michael, Micro Application, 1988. (ISBN: 2086899-203-X) Automne 2002 Page 9 de 9