Plan de cours Ce cours présente les concepts de base des

Transcription

Plan de cours Ce cours présente les concepts de base des
École de technologie supérieure
Département de génie logiciel et des TI
Trimestre
Enseignant
Responsable du cours
Préalable
Crédits
:
:
:
:
:
Été 2012
Abdelouahed Gherbi
Abdelouahed Gherbi
LOG320
3
LOG710 PRINCIPES DES SYSTÈMES D’EXPLOITATION ET PROGRAMMATION SYSTÈME
Plan de cours
DESCRIPTION SOMMAIRE
Ce cours présente les concepts de base des systèmes d’exploitation multitâches, multi fils
et multiutilisateurs, les techniques d’ordonnancement des tâches et la synchronisation de
celles-ci, la gestion des entrées/sorties et de la mémoire, la gestion des fichiers et les
différents systèmes de fichiers possibles.
De plus, le cours aborde les techniques de base en programmation système telles que les
techniques de conception, de vérification, de tests, d’identification des fautes et de
déverminage, la surveillance des pilotes, la sécurité et les techniques pour pallier les fautes
du matériel.
OBJECTIFS
À la fin du cours, l'étudiant(e) devra être capable de :





connaître les principales architectures des systèmes d’exploitation;
comprendre les mécanismes et les algorithmes utilisés dans les systèmes
d’exploitation;
savoir choisir le système d’exploitation en fonction des besoins du projet;
posséder les principes de la programmation système;
être capable de concevoir un pilote de système d’exploitation.
STRATÉGIE PÉDAGOGIQUE


Un (1) cours magistral par semaine.
Deux (2) heures de laboratoire par semaine.
TRAVAUX À REMETTRE


Une série de quatre (4) laboratoires avec remise de rapports et code source.
Les laboratoires sont effectués par groupe de deux à trois (2-3) étudiant(e)s.
Version 1.0 2012-05-02
Page 2 de 4
PLAGIAT ET FRAUDE
Les clauses du « Chapitre 10 : Plagiat et fraude » du « Règlement des études de
1er cycle » s’appliquent dans ce cours ainsi que dans tous les cours du département de
génie logiciel et des TI. Afin de sensibiliser les étudiants au respect de la propriété
intellectuelle, tous les étudiants doivent consulter la page « Citer, pas plagier! »
(http://www.etsmtl.ca/zone2/administration/decanats/formation/etudsup/Deroulement/citer.html).
ABSENCE À UN EXAMEN
Dans les cinq (5) jours ouvrables suivant la tenue de son examen, l’étudiant(e) devra
justifier son absence auprès du Directeur du département pour un examen durant le
trimestre et auprès du Doyen à la gestion des ressources pour un examen final. 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 ou autre) à un examen, entraînera l’attribution de la note zéro (0).
ÉVALUATION
Quiz (3)
15 %
Quatre (4) laboratoires
30 %
Examen intra (Le mercredi 13 juin 2012)
25 %
Examen final
30 %
CONTENU1
1. Introduction aux systèmes d’exploitation (3 heures2)
1.1 Histoire des systèmes d’exploitation
1.2 Introduction à Linux :
2. Introduction à la programmation système (3 heures)
2.1 Introduction aux pilotes sous Linux
2.2 Création de pilotes en mode caractères
2.2 Techniques de débogage
3.
Les structures de base d'un système d'exploitation (4,5 heures)
3.1 Composantes d’un système d’exploitation
3.2 Introduction à l’architecture des microprocesseurs
1
La matière ne sera pas nécessairement présentée dans cet ordre. Toutefois, l’ensemble des sujets sera présenté dans
le cadre de ce cours.
2
Ces heures sont des heures approximatives d’enseignement pour chaque sujet et incluent le temps alloué à l’examen
intra trimestriel.
LOG710 PRINCIPES DES SYSTÈMES D’EXPLOITATION ET PROGRAMMATION SYSTÈME
Version 1.1 2012-05-02
ÉTÉ 2012
Page 3 de 4
3.3
3.3
4.
Types de noyaux
Réentrance
Gestion de processus et threads (7,5 heures)
4.1
4.2
4.3
4.4
4.5
4.6
Définitions : processus et fils
Mode privilégié des CPU
Interruptions
Structure d’un processus/fil
Ordonnancement
Communication inter-processus
5. Problèmes de concurrence (7,5 heures)
5.1
5.2
5.3
5.4.
5.5
Sémaphore
Zone critique
Perte de temps (starvation)
Étreinte fatale (dead lock)
Classe de solutions et applications
6. La gestion de la mémoire (7,5 heures)
6.1
6.2
6.3
6.4
6.5
6.6
6.7
Définitions
Allocation de la mémoire
La mémoire paginée
La mémoire segmentée
Mémoire et caches
Algorithmes de remplacement des pages
Gestion des caches
7. La gestion des fichiers (3 heures)
7.1
7.2
7.3
7.4
7.5
Définitions
Structures de base
Organisation des fichiers
Gestion des blocs libres
Interaction avec le noyau
8. Sécurité et protection (6 heures)
9. Sujet spécial (3 heures)
LOG710 PRINCIPES DES SYSTÈMES D’EXPLOITATION ET PROGRAMMATION SYSTÈME
Version 1.1 2012-05-02
ÉTÉ 2012
Page 4 de 4
LABORATOIRES

Processus de compilation et installation du noyau de Linux (4 heures)

Conception et implémentation d’un interprète de commandes (6 heures)

Processus d’ajout et d’utilisation d’un nouveau appel système Linux (6 heures)

Conception et implémentation d’un nodule Linux (pilote de périphériques) (8
heures)
RÉFÉRENCES BIBLIOGRAPHIQUES
Obligatoires
SILBERSCHATZ, A. et P.B. GALVIN, Operating System Concepts. 8th Edition, Addison
Wesley.
Fortement suggérées
Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman, Linux Device Drivers. 3nd
Edition, O’Reilly, 2005.
Format électronique : http://www.oreilly.com/catalog/linuxdrive3
Complémentaires
STEVENS, W.R., Advanced Programming in the UNIX Environment. Addison-Wesley,
1992.
BOVET, D.P. & M. CESATI, Understanding the Linux Kernel: From I/O Ports to Process
Management. 2nd Edition, O’Reilly, 2002.
GILLY, D., UNIX in a Nutshell. O’Reilly, 1992.
KERNIGHAM, B.W. & D. RITCHIE, The C Programming Language. 2nd Edition, PrenticeHall, 1988.
LOG710 PRINCIPES DES SYSTÈMES D’EXPLOITATION ET PROGRAMMATION SYSTÈME
Version 1.1 2012-05-02
ÉTÉ 2012