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 |