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

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement





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