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