Plan de cours

Download Report

Transcript Plan de cours

École de technologie supérieure 

Département de génie logiciel et des TI 

Responsable(s) de cours :

Abdelouahed Gherbi Carlos Vazquez

PLAN DE COURS

Hiver 2014 LOG710 : Principes systèmes d'expl. et programmation système (3 crédits)

Préalables

         

Pour tous les étudiants

   

GTI310 (G.TI) ;  LOG320  (G.Log)

         

Unités d'agrément

Total d'unités d'agrément : 58,8  

Qualités de l'ingénieur

Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12

Qn

Qualité visée dans ce cours   Qn   Qualité visée dans un autre cours     Compétence enseignée   Compétence évaluée   Compétence enseignée et évaluée Page 1 de 5       

Descriptif du cours

Au terme de ce cours, l’étudiant aura acquis et appliqué les concepts, principes de base et techniques établies utilisés en génie logiciel pour l’analyse, la conception et l’implémentation des systèmes d’exploitation modernes.  Structures et architectures des systèmes d'exploitation : monolithique, en couche, micronoyau, et modulaire. Mode d’opération des systèmes d’exploitation : mode utilisateur, mode privilégié. Mécanisme des interruptions, appels systèmes et commutation de contexte.

Concept de processus et fils d’exécution : bloc de contrôle de processus, état de processus et gestion de processus. Communication interprocessus : communication par échange de messages et par mémoire partagée. Synchronisation et coopération entre processus : exclusion mutuelle, sémaphores, mutex et moniteurs. Problème d’interblocage : graphes d’allocation de ressources et graphe d’attente, techniques de prévention, détection et évitement d’inter­blocage. Technique d’ordonnancement du processeur. Gestion de mémoire et système de mémoire virtuelle paginée. Système de gestion de fichiers. Fiabilité, protection et sécurité des systèmes d’exploitation.

Étude de cas de système d’exploitation modernes.  Séances de laboratoire portant sur la programmation système incluant le processus de configuration, compilation et installation du noyau d’un système d’exploitation moderne, l’extension du noyau par implémentation de nouveaux appels systèmes et la conception et programmation de pilotes de périphériques. 

Précision sur les préalables :

 ce cours n'exige 

QU'UN SEUL

 des deux préalables, soit GTI310 ou LOG320.

Objectifs du cours

À 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;

Stratégies pédagogiques

Un (1) cours magistral par semaine.

Deux (2) heures de laboratoire par semaine.

Utilisation d’appareils électroniques

N/A

Coordonnées de l’enseignant Groupe Nom Activité

01 02 Abdelouahed Gherbi Carlos Vazquez Activité de cours Activité de cours

Courriel Local

[email protected]

A­3497 [email protected]

A­3490

Disponibilité

Sur Rendez­vous Lundi 14h30 ­ 16h30 Page 2 de 5       

Cours

1. 

Introduction aux systèmes d’exploitation (3 heures

[1]

)

1.  Définition et évolution des systèmes d’exploitation (SE) 2.  Objectifs et principales fonctions des SE 2.  3.  Modes d’opérations des SE

Structure des systèmes d’exploitation (3 heures)

1.  Services des systèmes d’exploitation 2.  Mécanismes des interruptions 3.  Les appels systèmes 4.  Structures usuelles des systèmes d’exploitation 3. 

Processus, threads et communication interprocessus (3 heures)

1.  Concept de processus, état de processus et PCB 2.  Ordonnancement des processus 3.  Opération sur les processus (fork et join) 4.  Threads 5.  Communication interprocessus 4. 

Ordonnancement de la CPU  (3 heures)

1.  Concepts de base : cycle CPU­E/S, Ordonnanceur de CPU, critères d’ordonnancement 5.  2.  Algorithmes d’ordonnancement : FCFS, SJF, Round­Robin, avec priorité, multi­niveaux

Synchronisation des processus (7 heures)

1.  Problème de la concurrence des processus 2.  Section critique et exclusion mutuelle 3.  Les sémaphores 4.  Les moniteurs 6. 

Inter­blocage (3 heures)

1.  Définition et conditions nécessaires 2.  Modélisation d’inter­blocages 3.  Techniques de prévention, détection et évitement d’inter­blocages 7. 

Gestion de la mémoire (7 heures)

1.  Fonction du gestionnaire de la mémoire 2.  Protection, relocation et swapping 3.  Multiprogrammation avec partitions fixes et partitions variables 4.  Algorithmes de placement 5.  Concept de mémoire virtuelle 6.  Pagination 7.  Algorithmes de remplacement de pages 8. 

Systèmes de gestion des fichiers  (7 heures)

1.  Concept de fichier et opérations sur les fichiers 2.  Protection des fichiers 3.  Structure du système de fichiers 4.  Méthodes d’allocation d’espace 5.  Gestion d’espace libre 9. 

Sujet spécial (3 heures)

   

[1]

 Ces heures sont des heures approximatives d’enseignement pour chaque sujet et incluent le temps alloué à l’examen intra trimestriel.

Page 3 de 5       

Laboratoires et travaux pratiques

Une série de trois (03) laboratoires avec remise de rapports et code source seront effectués par groupe de deux à trois (2­3) étudiants.

Conception et implémentation d’un interprète de commandes 

(8 heures)

Conception et implémentation d’un ordonnanceur de processus à multi­niveaux de priorités 

(10 heures)

Conception et implémentation d’un gestionnaire de mémoire avec plusieurs stratégies d’allocation d’espace 

(6 heures)

NOTE

 : Si vous éprouvez des difficultés techniques avec le matériel des laboratoires du département, s.v.p. communiquez le problème à  support­[email protected]

.

Utilisation d'outils d'ingérierie

L'étudiant se familiarisera avec les outils de développement de programmes dans l’environnement Linux. En particulier, il utilisera le langage de programmation C et les  éditeurs de code, compilateurs, éditeurs de liens et débogueur de l’environnement Linux.

L’étudiant pourra également utiliser une machine virtuelle Linux déployée avec le logiciel de virtualisation open source d’Oracle VirtualBox.

Évaluation

Trois (3) laboratoires   Un (1) travail de recherche et présentation Deux Quiz (2) Examen intra (le mercredi 19 février 2014) Examen final 30 % 10 % 10 % 20 % 30 %

Politique de retard des travaux

Tout travail remis en retard se verra automatiquement attribuer la note zéro.

Absence à un examen

• Pour les départements à l'exception du SEG :  Dans les cinq (5) jours ouvrables suivant la tenue de son examen, l’étudiant devra justifier son absence d’un examen durant le trimestre auprès de la coordonnatrice – Affaires départementales qui en référera au directeur du département. Pour un examen final, l’étudiant devra justifier son absence auprès du Bureau du registraire. 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).  • Pour SEG :  Dans les cinq (5) jours ouvrables suivant la tenue de son examen, l’étudiant devra justifier son absence auprès de son enseignant. Pour un examen final, l’étudiant devra justifier son absence auprès du Bureau du registraire. 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).

Plagiat et fraude

• Règlement des études de 1er cycle : 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. Afin de se sensibiliser au respect de la propriété intellectuelle, tous les étudiants doivent consulter la page Citer, pas plagier !  http://www.etsmtl.ca/Etudiants­actuels/Baccalaureat/Guichet­interactif/Citer­pas­plagier   • Règlement des études de cycles supérieurs : Les clauses du « Chapitre 8 : Plagiat et fraude » du « Règlement des études de cycles supérieurs » s’appliquent dans ce cours ainsi que dans tous les cours du département. Afin de se sensibiliser au respect de la propriété intellectuelle, tous les étudiants doivent consulter la page Citer, pas plagier !  http://www.etsmtl.ca/Etudiants­actuels/Cycles­sup/Realisation­etudes/Citer­pas­plagier Page 4 de 5       

Documentation obligatoire

SILBERSCHATZ, A. et P.B. GALVIN, 

Operating System Concepts

. 8 th  Edition, Addison Wesley.

Ouvrages de références

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

. 2 nd  Edition, O’Reilly, 2002.

GILLY, D., 

UNIX in a Nutshell

. O’Reilly, 1992.

KERNIGHAM, B.W. & D. RITCHIE, 

The C Programming Language

. 2 nd  Edition, Prentice­Hall, 1988.

Adresse internet du site de cours et autres liens utiles

Pour le groupe 01 : http://profs.etsmtl.ca/agherbi/cours/log710h14/ Pour le groupe 02 :  MOODLE LOG 710­02 Page 5 de 5