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 2024
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 Jeudi 08:30 - 12:00 Activité de cours
Vendredi 13:30 - 17:30 Laboratoire (2 sous-groupes)



Coordonnées du personnel enseignant le cours
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. Intra 3 heures
 

8. 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

 

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 %

31 octobre 2024

 

Examen final

30 %

 

 

Projet

40 %

 




Dates des examens intra
Groupe(s) Date
1 31 octobre 2024



Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : https://www.etsmtl.ca/programmes-et-formations/horaire-des-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.5/ cycles supérieurs, article 6.5.2) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignante ou 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 à une évaluation

Afin de faire valider une absence à une évaluation en vue d’obtenir un examen de compensation, l’étudiante ou l’étudiant doit utiliser le formulaire prévu à cet effet dans son portail MonÉTS pour un examen final qui se déroule durant la période des examens finaux ou pour tout autre élément d’évaluation surveillé de 15% et plus durant la session. Si l’absence concerne un élément d’évaluation de moins de 15% durant la session, l’étudiant ou l’étudiante doit soumettre une demande par écrit à son enseignante ou enseignant.

Toute demande de validation d’absence doit se faire dans les cinq (5) jours ouvrables suivant la tenue de l’évaluation, sauf dans les cas d’une absence pour participation à une activité prévue aux règlements des études où la demande doit être soumise dans les cinq (5) jours ouvrables avant le jour de départ de l’ÉTS pour se rendre à l’activité.

Toute absence non justifiée par un motif majeur (voir articles 7.2.6.1 du RÉPC et 6.5.2 du RÉCS) 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 étudiantes et les étudiants doivent consulter le Règlement sur les infractions de nature académique (www.etsmtl.ca/a-propos/gouvernance/secretariat-general/cadre-reglementaire/reglement-sur-les-infractions-de-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 tous les membres de la communauté étudiante sont invités à consulter la page Citer, pas plagier ! (www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).

Systèmes d’intelligence artificielle générative (SIAG)
L’utilisation des systèmes d’intelligence artificielle générative (SIAG) dans les activités d’évaluation constitue une infraction de nature académique au sens du Règlement sur les infractions de nature académique, sauf si elle est explicitement autorisée par l’enseignante ou l’enseignant du cours.



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/