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 2023
ELE784 : Ordinateurs et programmation système (3 crédits)





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 Mardi 08:30 - 10:30 Laboratoire (Groupe A)
Mardi 10:30 - 12:30 Laboratoire (Groupe B)
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 (Groupe A) 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 %

27 octobre 2023

 

Examen final

30 %

 

 

Projet

40 %

 




Dates des examens intra
Groupe(s) Date
1 27 octobre 2023



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/