13.07.2015 Views

Plan de cours

Plan de cours

Plan de cours

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

École <strong>de</strong> technologie supérieureDépartement <strong>de</strong> génie électriqueResponsable(s)du <strong>cours</strong> :Bruno De KelperCrédits : 3ELE784ORDINATEURS ET PROGRAMMATION SYSTÈMEPréalable(s) : AucunPLAN DE COURS – SESSION AUTOMNE 20131. Coordonnées <strong>de</strong> l’enseignantGroupe 01: Bruno De Kelper (Bruno.DeKelper@etsmtl.ca)2. Descriptif officiel du <strong>cours</strong>Étudier la structure fonctionnelle d’un ordinateur et le fonctionnement <strong>de</strong> ses diversescomposantes, avec un accent sur l’interaction matériel-logiciel en s’appuyant sur laprogrammation <strong>de</strong> bas niveau en langage évolué.Architecture <strong>de</strong> base d’un ordinateur. Architecture fonctionnelle d’un processeur génériqueet <strong>de</strong> quelques processeurs spécialisés tels que les microcontrôleurs et les DSP. Modèle« machine » d’un programme et notions <strong>de</strong> compilation, comprenant les métho<strong>de</strong>sd’optimisation. Périphériques d’entrée/sortie : leur intégration dans le système et lesnotions <strong>de</strong> pilote d’interface. Notions <strong>de</strong> base d’un noyau <strong>de</strong> système d’exploitation.Séances <strong>de</strong> laboratoire effectuées en langage évolué et visant la familiarisation avec ledéveloppement <strong>de</strong> micro-noyaux et <strong>de</strong> pilotes d’interface (PCI, USB, etc.) ainsi quel’utilisation <strong>de</strong>s ressources du système (DMA, APIC, etc.).3. Objectifs spécifiques du <strong>cours</strong>À la fin <strong>de</strong> ce <strong>cours</strong>, l’étudiant(e) sera capable <strong>de</strong> :- Comprendre les systèmes d’exploitation (OS) multitâches mo<strong>de</strong>rnes tel que Linux.- Concevoir et <strong>de</strong> réaliser <strong>de</strong>s pilotes d’interfaces dans le contexte <strong>de</strong>s OS mo<strong>de</strong>rnes.- Utiliser la synchronisation <strong>de</strong>s tâches et les interruptions du matériel.- Évaluer et mesurer la performance d’un programme ou un morceau <strong>de</strong> programme.- Optimiser le co<strong>de</strong> d’un programme en lien avec les capacités du processeur et <strong>de</strong> lamémoire.- Comprendre et utiliser à bon escient la mémoire cache et le pipeline du système.4. Stratégies pédagogiques utilisées- Un <strong>cours</strong> magistral par semaine.- Laboratoires : douze (12) séances <strong>de</strong> 2 heuresSession automne 2013 ELE784 – ORDINATEURS ET PROGRAMMATION SYSTÈME 1


5. Contenu du <strong>cours</strong>Date Contenus traités dans le <strong>cours</strong> Heures1. Introduction – OS multitâches3 heures- Système d’exploitation Linux.- Espaces usager, noyau et interruption.- Notion <strong>de</strong> préemption et <strong>de</strong> changement <strong>de</strong> contexte.- Appels système, interruptions matériel et logiciel.- Notions <strong>de</strong> processus, fil d’exécution et <strong>de</strong> tranche <strong>de</strong>temps.2. Synchronisation dans un OS multitâches3 heures- Région critique, opérations atomiques et conditions <strong>de</strong><strong>cours</strong>e.- Verrouillage et inter-blocage.- Sémaphores, mutexes et spinlocks.- Sémaphores et spinlocks « lecteur / écrivain ».3. Introduction aux pilotes d’interfaces3 heures- Notions <strong>de</strong> pilote et types <strong>de</strong> pilote.- Un pilote simple – le « char driver ».- Structures <strong>de</strong> données importantes.- Déclaration d’un pilote.4. Notions plus avancées <strong>de</strong> pilote3 heures- Le IOCTL.- Les I/O bloquants.- Recenser et sélectionner un matériel.- Notification asynchrone.5. Communication avec le matériel3 heures- Les ports I/O et les ports mémoire.- L’utilisation <strong>de</strong> ports I/O et <strong>de</strong> ports mémoire.6. Le traitement <strong>de</strong>s interruptions- Installation d’un gestionnaire d’interruption,activation/désactivation d’interruptions.- Implémentation d’un gestionnaire d’interruption.- La moitié haute et la moitié basse d’un gestionnaired’interruption.- Le partage d’interruption.- Les I/O pilotés par interruption.7. Le pilote PCI et le pilote USB- L’interface PCI et les autres buses d’un PC.- Les buses SBus, NuBus et externes.- Les bases <strong>de</strong>s appareils USB.- Le pilote USB et Sysfs, les USB Urbs.- Écrire un pilote USB et les transferts USB sans Urbs.3 heures3 heuresSession automne 2013 ELE784 – ORDINATEURS ET PROGRAMMATION SYSTÈME 2


8. Les techniques <strong>de</strong> déverminage d’un pilote- Le support <strong>de</strong> déverminage du noyau.- Déverminage par impression, par interrogation et parobservation.- Déverminage <strong>de</strong>s fautes du système.- Les outils <strong>de</strong> déverminage.9. Introduction au matériel- Le matériel (processeur / mémoires / périphériques).- L’architecture <strong>de</strong>s processeurs et le processeur Y86.- Notions générales <strong>de</strong> pipeline.- Le pipeline du processeur Y86.10. Optimisation <strong>de</strong>s performances d’un programme- Capacités et limitations d’optimisation <strong>de</strong>s compilateurs.- Mesurer et exprimer les performances d’un programme.- Métho<strong>de</strong>s et techniques d’optimisation.- I<strong>de</strong>ntification et élimination <strong>de</strong>s goulets <strong>de</strong> performance.3 heures3 heures6 heures11. Hiérarchies <strong>de</strong> mémoire6 heures- Les technologies <strong>de</strong> stockage <strong>de</strong> données.- Le principe <strong>de</strong> localité et les hiérarchies <strong>de</strong> mémoire.- La mémoire cache.- Écrire un programme « gentil » pour la mémoire cache.- Impact <strong>de</strong> la mémoire cache sur les performances d’unprogramme.- Exploiter la localité dans un programme.Total 396. Laboratoires ou travaux pratiquesDate Description HeuresLe laboratoire consiste à développer un pilote USB pour une 24 heurespetite caméra Web mobile ainsi qu’un programme qui utilise cepilote pour communiquer avec la caméra. Dans un premiertemps, il s’agit <strong>de</strong> configurer et <strong>de</strong> compiler le noyau Linux quisera utilisé sur le système. Ensuite, le cœur du pilote USB seraconçu, auquel s’ajoutera <strong>de</strong>s fonctionnalités <strong>de</strong> plus haut niveauet qui seront fournies. Finalement, l’application sera développéepour utiliser ce pilote. Cette application sera entièrementoptimisée tant au niveau du co<strong>de</strong> que <strong>de</strong> son utilisation dumatériel (processeur, mémoire, etc.).Total 247. Utilisation d’outils d’ingénierie- QuickCam® Orbit MP <strong>de</strong> LogitechSession automne 2013 ELE784 – ORDINATEURS ET PROGRAMMATION SYSTÈME 3


8. Évaluation –Activité Description %Date <strong>de</strong>remiseExamen périodiques 30 % 30 octobreExamen final 30 %Projet 40 %9. Documentation recommandéeCorbet, J., Rubini, A., Kroah-Hartman, G., Linux Device Drivers, 3rd Edition, O’Reilly Media,2005.10. Ouvrages <strong>de</strong> référenceBryant, R.E., O’Hallaron, D.R., Computer Systems – A Programmer’s Perspective, PrenticeHall, 2003.Love, R., Linux Kernel Development, 2nd Edition, Novell Press, 2005.Session automne 2013 ELE784 – ORDINATEURS ET PROGRAMMATION SYSTÈME 4


ELE784 – ORDINATEURS ET PROGRAMMATION SYSTÈMEANNEXE I1. Caractéristiques du <strong>cours</strong> – Information fixe / rappel• Responsable(s) du <strong>cours</strong> : Bruno De Kelper• Coordonnées <strong>de</strong> l’enseignant :Groupe 01: Bruno De Kelper (Bruno.DeKelper@etsmtl.ca)• Préalables :Aucun• Crédits : 32. Descriptif officiel du <strong>cours</strong>Étudier la structure fonctionnelle d’un ordinateur et le fonctionnement <strong>de</strong> ses diversescomposantes, avec un accent sur l’interaction matériel-logiciel en s’appuyant sur laprogrammation <strong>de</strong> bas niveau en langage évolué.Architecture <strong>de</strong> base d’un ordinateur. Architecture fonctionnelle d’un processeur génériqueet <strong>de</strong> quelques processeurs spécialisés tels que les microcontrôleurs et les DSP. Modèle «machine » d’un programme et notions <strong>de</strong> compilation, comprenant les métho<strong>de</strong>sd’optimisation. Périphériques d’entrée/sortie : leur intégration dans le système et lesnotions <strong>de</strong> pilote d’interface. Notions <strong>de</strong> base d’un noyau <strong>de</strong> système d’exploitation.Séances <strong>de</strong> laboratoire effectuées en langage évolué et visant la familiarisation avec ledéveloppement <strong>de</strong> micro-noyaux et <strong>de</strong> pilotes d’interface (PCI, USB, etc.) ainsi quel’utilisation <strong>de</strong>s ressources du système (DMA, APIC, etc.).3. Répartition <strong>de</strong>s unités d’agrément du BCAPGMathsSciencesnaturellesÉtu<strong>de</strong>scomplémentairesScience dugénieConceptionen ingénierieTotal0,0 0,0 0,0 29,4 29,4 58,84. Qualités (Qx) et compétences (Cy) enseignées et ou évaluéesQualitéAnalyse <strong>de</strong> problèmesCapacité d’utiliser les connaissances et lesprincipes appropriés pour i<strong>de</strong>ntifier, formuler,analyser et résoudre <strong>de</strong>s problèmesd’ingénierie complexes et en arriver à <strong>de</strong>sconclusions étayées.CompétenceÉtablir le contexte et les paramètres <strong>de</strong>s problèmes,incluant les problèmes mal définis;Choisir un modèle ou une métho<strong>de</strong> utilisé pourrésoudre un problème, incluant les notions, lesconcepts ou les relations physiques pour i<strong>de</strong>ntifier<strong>de</strong>s pistes <strong>de</strong> solution;Session automne 2013 ELE784 – ORDINATEURS ET PROGRAMMATION SYSTÈME 5


InvestigationCapacité d’étudier <strong>de</strong>s problèmes complexes aumoyen <strong>de</strong> métho<strong>de</strong>s mettant en jeu laréalisation d’expériences, l’analyse etl’interprétation <strong>de</strong>s données et la synthèse <strong>de</strong>l’information afin <strong>de</strong> formuler <strong>de</strong>s conclusionsvali<strong>de</strong>s.ConceptionCapacité <strong>de</strong> concevoir <strong>de</strong>s solutions à <strong>de</strong>sproblèmes d’ingénierie complexes et évolutifset <strong>de</strong> concevoir <strong>de</strong>s systèmes, <strong>de</strong>s composantsou <strong>de</strong>s processus qui répon<strong>de</strong>nt aux besoinsspécifiés, tout en tenant compte <strong>de</strong>s risquespour la santé et la sécurité publiques, <strong>de</strong>saspects législatifs et réglementaires, ainsi que<strong>de</strong>s inci<strong>de</strong>nces économiques,environnementales, culturelles et sociales.Utilisation d’outils d’ingénierieCapacité <strong>de</strong> créer et <strong>de</strong> sélectionner <strong>de</strong>stechniques, <strong>de</strong>s ressources et <strong>de</strong>s outilsd’ingénierie mo<strong>de</strong>rne et <strong>de</strong> les appliquer, <strong>de</strong>les adapter et <strong>de</strong> les étendre à un éventaild’activités simples ou complexes, tout encomprenant les contraintes connexes.Travail individuel et en équipeCapacité <strong>de</strong> fonctionner efficacement en tantque membre ou chef d’équipe, <strong>de</strong> préférencedans un contexte <strong>de</strong> travail multidisciplinaire.CommunicationHabileté à communiquer efficacement <strong>de</strong>sconcepts d’ingénierie complexes, au sein <strong>de</strong> laprofession et au public en général, notammentlire, rédiger, parler et écouter, comprendre etrédiger <strong>de</strong> façon efficace <strong>de</strong>s rapports et <strong>de</strong> ladocumentation pour la conception, ainsiqu’énoncer <strong>de</strong>s directives claires et y donnersuite.ProfessionnalismeCompréhension <strong>de</strong>s rôles et <strong>de</strong>s responsabilités<strong>de</strong> l’ingénieur dans la société, y compris le rôleessentiel <strong>de</strong> protection du public et l’intérêtpublic.Appliquer le modèle ou la métho<strong>de</strong> en vue <strong>de</strong>résoudre le problème.<strong>Plan</strong>ifier l’ensemble du processusd’expérimentation;Appliquer les méthodologies d’expérimentationéprouvées;Interpréter les résultats en tenant compte ducontexte et <strong>de</strong>s hypothèses <strong>de</strong> travail en vue <strong>de</strong>formuler <strong>de</strong>s conclusions vali<strong>de</strong>s.Développer <strong>de</strong>s concepts en se basant sur lesprincipes <strong>de</strong> l’ingénierie;Intégrer les concepts pour la réalisation <strong>de</strong> lasolution en fonction <strong>de</strong>s contraintes i<strong>de</strong>ntifiéespréalablementAppliquer les outils et techniques dans <strong>de</strong>s projetsd’ingénierie;Créer <strong>de</strong>s applications par l’intégration <strong>de</strong>s outils ettechniques existants.Propose différentes idées ou solutions enincorporant le feedback <strong>de</strong>s membres <strong>de</strong> l’équipe;Supporte le lea<strong>de</strong>r <strong>de</strong> l’équipe et assure lelea<strong>de</strong>rship si nécessaire.Rédiger <strong>de</strong>s rapports techniques documentantefficacement un travail d'ingénierie;Citer correctement ses sources <strong>de</strong> référence dans untravail.Délimiter les responsabilités <strong>de</strong> l'ingénieur dans <strong>de</strong>smises en situation concrètes;Mettre en pratique ses compétencesprofessionnelles en situations <strong>de</strong> travail réel eningénierie.Session automne 2013 ELE784 – ORDINATEURS ET PROGRAMMATION SYSTÈME 6


Apprentissage continuCapacité à cerner et à combler ses propresbesoins <strong>de</strong> formation dans un mon<strong>de</strong> enconstante évolution, et ce, <strong>de</strong> façon à maintenirsa compétence et à contribuer à l’avancement<strong>de</strong>s connaissances.I<strong>de</strong>ntifier ses forces et ses faiblesses;Faire le bilan <strong>de</strong>s progrès réalisés.5. ÉvaluationAbsence à un examenDans les cinq (5) jours ouvrables suivant la tenue <strong>de</strong> son examen, l’étudiant <strong>de</strong>vra justifierson absence d’un examen durant le trimestre auprès <strong>de</strong> la coordonnatrice – Affairesdépartementales qui en référera au directeur du département. Pour un examen final,l’étudiant <strong>de</strong>vra justifier son absence auprès du Bureau du registraire. Toute absence nonjustifiée par un motif majeur (maladie certifiée par un billet <strong>de</strong> mé<strong>de</strong>cin, décès d’un parentimmédiat ou autre) à un examen entraînera l’attribution <strong>de</strong> la note zéro (0).Plagiat et frau<strong>de</strong>Les clauses du « Chapitre 10 : Plagiat et frau<strong>de</strong> » du « Règlement <strong>de</strong>s étu<strong>de</strong>s <strong>de</strong> 1 er cycle »s’appliquent dans ce <strong>cours</strong> ainsi que dans tous les <strong>cours</strong> du département. Afin <strong>de</strong> sesensibiliser au respect <strong>de</strong> la propriété intellectuelle, tous les étudiants doivent consulter lapage Citer, pas plagier ! http://www.etsmtl.ca/Etudiants-actuels/Cycles-sup/Realisationetu<strong>de</strong>s/Citer-pas-plagierSession automne 2013 ELE784 – ORDINATEURS ET PROGRAMMATION SYSTÈME 7

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!