Logo ÉTS
Session
Cours
Responsable(s) Bruno De Kelper

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Bruno De Kelper


PLAN DE COURS

Automne 2020
ELE784 : Ordinateurs et programmation système (3 crédits)


Modalités de la session d’automne 2020
Pour assurer la tenue de la session d’automne 2020, les modalités suivantes seront appliquées :


La plupart des cours de la session d'automne seront donnés à distance. Les autres seront donnés en présence. Cette information vous a déjà été communiquée.

L’étudiant inscrit à un cours à distance doit avoir accès à un ordinateur, un micro, une caméra et un accès à internet, idéalement de 10Mb/s ou plus.

Les cours à distance pourraient être enregistrés, à la discrétion de l’ÉTS. Le cas échéant, les enregistrements de cours pourraient notamment être rendus accessibles aux étudiants par le biais notamment du portail de l’ÉTS.

La notation des cours sera la notation régulière prévue aux règlements des études de l'ÉTS.

Pour les cours à distance, les examens (intra, finaux) se feront normalement à distance. Leur surveillance se fera à l’aide de la caméra et du micro de l’ordinateur et pourrait être enregistrée. Ceci est nécessaire pour se conformer aux exigences du Bureau canadien d’agrément des programmes de génie (BCAPG) afin d’assurer la validité des évaluations.
 
Le contexte actuel oblige bien sûr l’ÉTS à envisager la possibilité d’une deuxième vague de la pandémie de COVID-19, laquelle pourrait entraîner, après le début de la session d’automne 2020, un resserrement des directives et recommandations gouvernementales. Nous vous assurons que l’ÉTS se conformera aux règles en vigueur afin de préserver la santé publique et que, si requis, elle pourrait aller jusqu’à interdire l’accès physique au campus universitaire et ordonner la dispense en ligne de toutes les activités d’enseignement et d’évaluation pour la durée restante de la session d’automne 2020.

Des exigences additionnelles pourraient être spécifiées par l’ÉTS ou votre département, suivant les particularités propres à votre programme.

Si vous ne consentez pas aux modalités décrites précédemment, vous devez vous désinscrire de vos cours avant le 13 septembre et vous pourrez être remboursé.

Pour les nouveaux étudiants inscrits au programme de baccalauréat uniquement, vous devez vous désinscrire avant le 25 septembre et vous pourrez être remboursé.

En demeurant inscrit, vous acceptez les modalités particulières de la session d'automne 2020.




Préalables
Aucun préalable requis
Unités d'agrément
Total d'unités d'agrément : 58,8 50,0 % 50,0 %




Qualités de l'ingénieur

Qn
Qualité visée dans ce cours  
Qn
  Qualité visée dans un autre cours  
  Indicateur enseigné
  Indicateur évalué
  Indicateur enseigné et évalué



Descriptif du cours
Au terme de ce cours, l'étudiante ou l'étudiant aura vu la structure fonctionnelle d’un ordinateur et le fonctionnement de ses diverses composantes, avec un accent sur l’interaction matériel-logiciel en s’appuyant sur la programmation de bas niveau en langage évolué.

Architecture de base d’un ordinateur. Architecture fonctionnelle d’un processeur générique et de quelques processeurs spécialisés tels que les microcontrôleurs et les DSP. Modèle « machine » d’un programme et notions de compilation, comprenant les méthodes d’optimisation. Périphériques d’entrée/sortie : leur intégration dans le système et les notions de pilote d’interface. Notions de base d’un noyau de système d’exploitation.

Séances de laboratoire effectuées en langage évolué et visant la familiarisation avec le développement de micro-noyaux et de pilotes d’interface (PCI, USB, etc.) ainsi que l’utilisation des ressources du système (DMA, APIC, etc.).



Objectifs du cours

À la fin de ce cours, l’étudiant(e) sera capable de :

  • Comprendre les systèmes d’exploitation (OS) multitâches modernes tel que Linux.
  • Concevoir et de réaliser des pilotes d’interfaces dans le contexte des OS modernes.
  • Utiliser la synchronisation des tâches et les interruptions du matériel.
  • Évaluer et mesurer la performance d’un programme ou un morceau de programme.
  • Optimiser le code d’un programme en lien avec les capacités du processeur et de la mémoire.
  • Comprendre et utiliser à bon escient la mémoire cache et le pipeline du système.



Stratégies pédagogiques
  • Un cours magistral par semaine.
  • Laboratoires : douze (12) séances de 2 heures



Utilisation d’appareils électroniques

Aucun




Horaire
Groupe Jour Heure Activité
01 Jeudi 13:30 - 17:30 Laboratoire (2 sous-groupes)
Vendredi 08:30 - 12:00 Activité de cours



Coordonnées de l’enseignant
Groupe Nom Activité Courriel Local Disponibilité
01 Bruno De Kelper Activité de cours Bruno.DeKelper@etsmtl.ca A-2483
01 Bruno De Kelper Laboratoire (2 sous-groupes) Bruno.DeKelper@etsmtl.ca A-2483



Cours
Date Contenus traités dans le cours Heures
 

1. Introduction – OS multitâches

  • Système d’exploitation Linux
  • Espaces usager, noyau et interruption
  • Notion de préemption et de changement de contexte
  • Appels système, interruptions matériel et logiciel
  • Notions de processus, fil d’exécution et de tranche de temps

3 heures

 

2. Synchronisation dans un OS multitâches

  • Région critique, opérations atomiques et conditions de course
  • Verrouillage et inter-blocage
  • Sémaphores, mutexes et spinlocks
  • Sémaphores et spinlocks « lecteur / écrivain »

3 heures

 

3. Introduction aux pilotes d’interfaces

  • Notions de pilote et types de pilote
  • Un pilote simple – le « char driver »
  • Structures de données importantes
  • Déclaration d’un pilote.

3 heures

 

4. Notions plus avancées de pilote

  • Le IOCTL
  • Les I/O bloquants
  • Recenser et sélectionner un matériel
  • Notification asynchrone

3 heures

 

5. Communication avec le matériel

  • Les ports I/O et les ports mémoire
  • L’utilisation de ports I/O et de ports mémoire

3 heures

 

6. Le traitement des 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 gestionnaire d’interruption
  • Le partage d’interruption
  • Les I/O pilotés par interruption

3 heures

 

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 des appareils USB
  • Le pilote USB et Sysfs, les USB Urbs
  • Écrire un pilote USB et les transferts
  • USB sans Urbs

3 heures

 

8. Les techniques de déverminage d’un pilote

  • Le support de déverminage du noyau
  • Déverminage par impression, par interrogation et par observation
  • Déverminage des fautes du système
  • Les outils de déverminage.

3 heures

 

9. Introduction au matériel

  • Le matériel (processeur / mémoires / périphériques)
  • L’architecture des processeurs et le processeur Y86
  • Notions générales de pipeline
  • Le pipeline du processeur Y86.

3 heures

 

10. Optimisation des performances d’un programme

  • Capacités et limitations d’optimisation des compilateurs
  • Mesurer et exprimer les performances d’un programme
  • Méthodes et techniques d’optimisation
  • Identification et élimination des goulets de performance

6 heures

 

11. Hiérarchies de mémoire

  • Les technologies de stockage de données
  • Le principe de localité et les hiérarchies de mémoire
  • La mémoire cache
  • Écrire un programme « gentil » pour la mémoire cache
  • Impact de la mémoire cache sur les performances d’un programme
  • Exploiter la localité dans un programme.

6 heures

  Total 39



Laboratoires et travaux pratiques
Date Description Heures
  Le laboratoire consiste à développer un pilote USB pour une petite caméra Web mobile ainsi qu’un programme qui utilise ce pilote pour communiquer avec la caméra. Dans un premier temps, il s’agit de configurer et de compiler le noyau Linux qui sera utilisé sur le système. Ensuite, le cœur du pilote USB sera conçu, auquel s’ajoutera des fonctionnalités de plus haut niveau et qui seront fournies. Finalement, l’application sera développée pour utiliser ce pilote. Cette application sera entièrement optimisée tant au niveau du code que de son utilisation du matériel (processeur, mémoire, etc.). 24 heures
  Total 24



Utilisation d'outils d'ingénierie
  • QuickCam® Orbit™ MP de Logitech



Évaluation

Activité

Description

%

Date de remise

 

Examen mi-session

30 %

30 octobre 2020

 

Examen final

30 %

 

 

Projet

40 %

 




Dates des examens intra
Groupe(s) Date
1 30 octobre 2020



Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : http://etsmtl.ca/Etudiants-actuels/Baccalaureat/Examens-finaux


Politique de retard des travaux
Tout travail (devoir pratique, rapport de laboratoire, rapport de projet, etc.) remis en retard sans motif valable, c’est-à-dire autre que ceux mentionnés dans le Règlement des études (1er cycle, article 7.2.7 b / cycles supérieurs, article 6.5.4 b) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.

Dispositions additionnelles

5 % par jour de retard




Absence à un examen
Dans les cinq (5) jours ouvrables suivants, la tenue de son examen, l’étudiant devra justifier son absence d’un examen durant le trimestre auprès de la coordonnatrice – Affaires départementales qui en référera au directeur du département ou du SEG. Pour un examen final, l’étudiant devra justifier son absence auprès du Bureau du registraire. Dans tous les cas, l’étudiant doit effectuer sa demande en complétant le formulaire prévu à cet effet qui se trouve dans son portail Mon ÉTS/Formulaires. Toute absence non justifiée par un motif majeur (maladie certifiée par un billet de médecin, décès d’un parent immédiat, Activité compétitive d’un étudiant appartenant à un club scientifique ou un club sportif d’élite de l’ÉTS ou au programme « Alliance sport étude » ou autre) à un examen entraînera l’attribution de la note zéro (0).



Infractions de nature académique
Les clauses du « Règlement sur les infractions de nature académique de l’ÉTS » s’appliquent dans ce cours ainsi que dans tous les cours du département. Les étudiants doivent consulter le Règlement sur les infractions de nature académique (https://www.etsmtl.ca/docs/ETS/Gouvernance/Secretariat-general/Cadre-reglementaire/Documents/Infractions-nature-academique ) pour identifier les actes considérés comme étant des infractions de nature académique ainsi que prendre connaissance des sanctions prévues à cet effet.  À l’ÉTS, le respect de la propriété intellectuelle est une valeur essentielle et les étudiants sont invités à consulter la page Citer, pas plagier ! (https://www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).



Documentation obligatoire

Documentation recommandée:

  • Corbet, J., Rubini, A., Kroah-Hartman, G., Linux Device Drivers, 3rd Edition, O’Reilly Media, 2005.



Ouvrages de références
  • Bryant, R.E., O’Hallaron, D.R., Computer Systems – A Programmer’s Perspective, Prentice Hall, 2003.
  • Love, R., Linux Kernel Development, 2nd Edition, Novell Press, 2005.



Adresse internet du site de cours et autres liens utiles

Site du cours: https://cours.etsmtl.ca/ele784/