|
École de technologie supérieure
|
Responsable(s) de cours :
|
Abdelouahed Gherbi
|
PLAN DE COURS
Automne 2020
LOG710 : Principes systèmes d'expl. et programmation système (3 crédits)
Modalités de la session d’automne 2020
Pour assurer la tenue de la session d’automne 2020, les modalités suivantes seront appliquées :
La plupart des cours de la session d'automne seront donnés à distance. Les autres seront donnés en présence. Cette information vous a déjà été communiquée.
L’étudiant inscrit à un cours à distance doit avoir accès à un ordinateur, un micro, une caméra et un accès à internet, idéalement de 10Mb/s ou plus.
Les cours à distance pourraient être enregistrés, à la discrétion de l’ÉTS. Le cas échéant, les enregistrements de cours pourraient notamment être rendus accessibles aux étudiants par le biais notamment du portail de l’ÉTS.
La notation des cours sera la notation régulière prévue aux règlements des études de l'ÉTS.
Pour les cours à distance, les examens (intra, finaux) se feront normalement à distance. Leur surveillance se fera à l’aide de la caméra et du micro de l’ordinateur et pourrait être enregistrée. Ceci est nécessaire pour se conformer aux exigences du Bureau canadien d’agrément des programmes de génie (BCAPG) afin d’assurer la validité des évaluations.
Le contexte actuel oblige bien sûr l’ÉTS à envisager la possibilité d’une deuxième vague de la pandémie de COVID-19, laquelle pourrait entraîner, après le début de la session d’automne 2020, un resserrement des directives et recommandations gouvernementales. Nous vous assurons que l’ÉTS se conformera aux règles en vigueur afin de préserver la santé publique et que, si requis, elle pourrait aller jusqu’à interdire l’accès physique au campus universitaire et ordonner la dispense en ligne de toutes les activités d’enseignement et d’évaluation pour la durée restante de la session d’automne 2020.
Des exigences additionnelles pourraient être spécifiées par l’ÉTS ou votre département, suivant les particularités propres à votre programme.
Si vous ne consentez pas aux modalités décrites précédemment, vous devez vous désinscrire de vos cours avant le 13 septembre et vous pourrez être remboursé.
Pour les nouveaux étudiants inscrits au programme de baccalauréat uniquement, vous devez vous désinscrire avant le 25 septembre et vous pourrez être remboursé.
En demeurant inscrit, vous acceptez les modalités particulières de la session d'automne 2020.
Préalables
Programme(s) : 7065,7070,7365,7610 | | | | | | | | | Profils(s) : Tous profils | | | | | | | | | | | LOG320 | | | | | | | | | | |
|
Unités d'agrément
Total d'unités d'agrément : 58,8
|
Qualités de l'ingénieur
|
Qualité visée dans ce cours |
|
|
|
Qualité visée dans un autre cours |
|
|
|
Indicateur enseigné |
|
|
Indicateur évalué |
|
|
Indicateur enseigné et évalué |
Descriptif du cours
Au terme de ce cours, l’étudiante ou 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.
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.
- Des exercices pratiques en classe
- Deux (2) heures de laboratoire par semaine.
Utilisation d’appareils électroniques
Le professeur permet l'utilisation d'appareils électroniques en cours dans la mesure ou ca ne perturbe pas le bon deroulement du cours et que ca ne dérange pas les autres étudiants ainsi que le professeur. Cependant, il est interdit d'enregistrer (audio,photo ou vidéo) en totalité ou en partie les séances de cours de quelques façons que ce soit sans son autorisation préalable.
Les ordinateurs et tablettes ne sont autorisés lors des examens et Quiz. Seulement la calculatrice sera permise.
Horaire
Groupe | Jour | Heure | Activité |
01 | Lundi | 13:30 - 15:30 | Laboratoire (Groupe A) |
| Lundi | 15:30 - 17:30 | Laboratoire (Groupe B) |
| Mercredi | 13:30 - 17:00 | Activité de cours |
Coordonnées de l’enseignant
Cours
- Introduction aux systèmes d’exploitation (3.5 heures[1])
- Définition et évolution des systèmes d’exploitation (SE)
- Objectifs et principales fonctions des SE
- Modes d’opérations des SE
- Mécanismes des interruptions
- Les appels systèmes
- Structures usuelles des systèmes d’exploitation
- Processus et threads (4 heures)
- Concept de processus, état de processus et PCB
- Ordonnancement des processus
- Opération sur les processus (fork et join)
- Threads
- Communication interprocessus (3.5 heures)
- Types de communications interprocessus
- Les signaux
- Les tubes
- Ordonnancement de la CPU (3.5 heures)
- Concepts de base : cycle CPU-E/S, Ordonnanceur de CPU, critères d’ordonnancement
- Algorithmes d’ordonnancement : FCFS, SJF, Round-Robin, avec priorité, multi-niveaux
- Synchronisation des processus (7 heures)
- Problème de la concurrence des processus
- Section critique et exclusion mutuelle
- Les mecanismes de synchronisations : semaphores, mutex, moniteurs.
- Inter-blocage (3.5 heures)
- Définition et conditions nécessaires
- Modélisation d’inter-blocages
- Techniques de prévention, détection et évitement d’inter-blocages
- Gestion de la mémoire (7 heures)
- Fonction du gestionnaire de la mémoire
- Protection, relocation et swapping
- Multiprogrammation avec partitions fixes et partitions variables
- Algorithmes de placement
- Concept de mémoire virtuelle
- Pagination
- Algorithmes de remplacement de pages
- Systèmes de gestion des fichiers (3.5 heures)
- Concept de fichier et opérations sur les fichiers
- Protection des fichiers
- Structure du système de fichiers
- Méthodes d’allocation d’espace
- Gestion d’espace libre
- Sujet spécial : Systèmes temps réel (3.5 heures)
[1] Ces heures sont des heures approximatives d’enseignement pour chaque sujet et incluent le temps alloué à l’examen intra trimestriel, quiz et présentations de travaux en classe.
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, implémentation et test d’un ou plusieurs appel système dans le noyau Linux (8 heures)
- Conception, implémentation et test d’une API d'un gestionnaire de mémoire avec plusieurs stratégies d’allocation d’espace (8 heures)
NOTE : Le développement se fera dans une machinne virtuelle que l'étudiant pourra utiliser sur son ordinateur personnel en plus de celui du laboratoire.
Utilisation d'outils d'ingénierie
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 |
30 % |
Un (1) travail de recherche et présentation |
10 % |
Examen intra |
30 % |
Examen final |
30 % |
Dates des examens intra
Groupe(s) | Date |
1 | 14 octobre 2020 |
Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : http://etsmtl.ca/Etudiants-actuels/Baccalaureat/Examens-finaux
Politique de retard des travaux
Tout travail (devoir pratique, rapport de laboratoire, rapport de projet, etc.) remis en retard sans motif valable, c’est-à-dire autre que ceux mentionnés dans le Règlement des études (1er cycle, article 7.2.7 b / cycles supérieurs, article 6.5.4 b) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.
Absence à un examen
Dans les cinq (5) jours ouvrables suivants, 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 ou du SEG. Pour un examen final, l’étudiant devra justifier son absence auprès du Bureau du registraire. Dans tous les cas, l’étudiant doit effectuer sa demande en complétant le formulaire prévu à cet effet qui se trouve dans son portail Mon ÉTS/Formulaires. 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, Activité compétitive d’un étudiant appartenant à un club scientifique ou un club sportif d’élite de l’ÉTS ou au programme « Alliance sport étude » ou autre) à un examen entraînera l’attribution de la note zéro (0).
Documentation obligatoire
SILBERSCHATZ, A. et P.B. GALVIN, Operating System Concepts. 8th 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. 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, Prentice-Hall, 1988.
Adresse internet du site de cours et autres liens utiles
Consultez le site du cour sur la plateforme Moodle: LOG710 Hiver 2020