Ressources
- Lien Zoom pour les cours en ligne.
- Plan de cours
- Description officielle (et horaires)
- Mattermost
- Support académique pour les travaux et autre.
- Lien vers les capsules vidéos de Jean Privat (automne 2020).
Description officielle
Maîtriser et appliquer les concepts fondamentaux des systèmes d’exploitation. Comprendre les mécanismes et les politiques mises-en-oeuvre par les systèmes d’exploitations. Maîtriser la programmation système UNIX/Linux en C.
Rôles, types et structure générale des systèmes d’exploitation. Mécanismes noyaux : appels systèmes, interruptions, modes d’exécution processeur. Gestion des processus : états des processus, création et terminaison (fork et exec). Multitâche : changement de contexte, fils (threads), ordonnancement des tâches. Gestion des fichiers : systèmes de fichiers, inodes, descripteurs de fichiers, fichiers spéciaux. Communication inter-processus : échanges de messages, signaux, tubes, mémoire partagée. Concurrence : synchronisation, sections critiques, interblocages. Gestion de la mémoire : adressage, allocation, protection, pagination, mémoire virtuelle. Entrées-sorties : pilotes, pseudo-périphériques. Les considérations de sécurité seront intégrées au développement de la matière.
Évaluations et échéancier des rendus
Les dates de remise sont des dates “au plus tard”, et s’entendent sur le fuseau horaire de Montréal, à 23:55 le jour de la date de remise. Tout rendu hors délai recevra la note de zéro (0), mais rien ne vous empêche de livrer avant l’échéance. Les règles concernant le plagiat seront appliquées sans aucune tolérance.
Desc | % | Présentation | Du | À |
---|---|---|---|---|
💾 TP0 wall-e | 10% | Enregistrement 🎥 | Dimanche 15 mai | Lundi 30 mai à 23h55 |
💾 TP1 echelon | 10% | Enregistrement 🎥 | Lundi 30 mai | Dimanche 19 juin à 23h55 |
💾 TP2 tubeo | 20% | Enregistrement 🎥 | Lundi 11 juillet | Dimanche 7 août à 23h55 |
La note finale (en lettre, A+, A, etc.) pour le trimestre sera attribuée en fonction de l’atteinte des objectifs spécifiques à travers les évaluations. La distribution des résultats dans le groupe pourrait aussi être utilisée. Aucune autre opportunité (travail supplémentaire, etc.) d’augmenter le nombre de points ne sera accordée.
Semainier des séances
Les diapositives téléchargeables (pdf) datent de la sessions d’été 2021 mais le contenu est à jour et sera utilisé tel quel pour la session d’automne 2021.
# | Semaine | Diapositives | Laboratoires |
---|---|---|---|
1 | 2 au 6 mai | 100 Introduction - pdf 🖼
110 Définition et rôles - pdf 🖼 Enregistrement 🎥 120 Appels système - pdf 🖼 - progs 💾 130 Mécanismes matériels - pdf 🖼 - progs 💾 Enregistrement 🎥 | Pas de laboratoire |
2 | 9 au 13 mai | 200 Processus - pdf 🖼
210 Threads - pdf 🖼 220 Mémoire des processus - pdf 🖼 - progs 💾 Enregistrement 🎥 230 Vie et état - pdf 🖼 | Lab1 ⌨️
Solutions du lab1 |
3 | 16 au 20 mai | 240 Création et terminaison - pdf 🖼 - progs 💾
241 fork et création de processus - pdf 🖼 - progs 💾 Enregistrement 🎥 242 exec et recouvrement de processus - pdf 🖼 - progs 💾 243 exit et terminaison de processus - pdf 🖼 - progs 💾 Enregistrement 🎥 (Deuxième partie du cours seulement) | Lab2 ⌨️
Solutions du lab2 |
4 | 23 au 27 mai | 250 Ordonnancement des processus - pdf 🖼 - progs 💾
Enregistrement 🎥 | Lab3 ⌨️
Solutions du lab3 |
5 | 30 mai au 3 juin | 300 Système de gestion de fichiers - pdf 🖼
310 Manipulation de fichiers - pdf 🖼 Quiz 1 | Lab4 ⌨️
Solutions du lab4 |
6 | 6 au 10 juin | 320 Droits et utilisateurs - pdf 🖼
330 Répertoires - pdf 🖼 - progs 💾 Enregistrement 🎥 | Lab5 ⌨️
Solutions du lab5 |
7 | 13 au 17 juin | 340 Traitement des fichiers ouverts - pdf 🖼 - progs 💾
350 Implémentation des systèmes de fichiers - pdf 🖼 Enregistrement 🎥 Correction intra 🎥 | Lab6 ⌨️
Solutions du lab6 |
8 🌼 | 20 au 24 juin | Examen intra
À la place du cours - Mardi 21 juin 2022 | Lab7 ⌨️
Solutions du lab7 |
9 | 27 juin au 1 juillet | 400 Communication interprocessus - pdf 🖼
410 Signaux - pdf 🖼 - progs 💾 420 Tubes - pdf 🖼 - progs 💾 Enregistrement 🎥 | Lab9 ⌨️
Solutions du lab9 |
10 | 4 au 8 juillet | 430 Sockets - pdf 🖼 - progs 💾
500 Synchronisation - pdf 🖼 - progs 💾 Enregistrement 🎥 Jeudi 7 juillet: date limite d'abandon sans mention d'échec. | Lab10 ⌨️
Solutions du lab10 |
11 | 11 au 15 juillet | 510 Section critique - pdf 🖼 - progs 💾
520 Outils de synchronisation - pdf 🖼 - progs 💾 530 Interblocage - pdf 🖼 - progs 💾 Enregistrement 🎥 | Lab11 ⌨️
Solutions du lab11 |
12 | 18 au 22 juillet | 600 Gestion de la mémoire - pdf 🖼 - progs 💾
610 Pagination - pdf 🖼 620 Mémoire virtuelle - pdf 🖼 Enregistrement 🎥 Quiz 2 | Lab12 ⌨️
Solutions du lab12 |
13 | 25 au 29 juillet | 621 Mémoire virtuelle avancée - pdf 🖼
622 mmap et cie. - pdf 🖼 - progs 💾 623 Consommation mémoire - pdf 🖼 - progs 💾 630 Allocation - pdf 🖼 | Lab13 ⌨️
Solutions du lab13 |
14 | 1 au 5 août | Rattrapage première semaine | Lab14 ⌨️ |
15 ☀ | 8 au 12 août | Examen final
À la place du cours - Mardi 9 août 2022 | Pas de laboratoire |
Anciens examens
Liens
- The Linux Kernel documentation. Documentation officielle du noyau Linux
- LWN. Site d’information spécialisé sur le noyau linux et son ecosystème (Linux Weekly News)
- POSIX.1-2017. Norme POSIX (Open Group et IEEE).
- The Unix Tree. Code source original de nombreuses versions historiques de Unix.
Médiagraphie
Les ressources suivantes sont recommandées.
- SILBERSCHATZ, A., GAVIN, P.B., GAGNE, G. – Operating Systems Concepts, 10TH EDITION, WILEY, 2018.
- TANENBAUM, Andrew S. – Modern Operating Systems – PRENTICE HALL, 4RD ED., 2014.
- TANENBAUM, Andrew S. – Système d’exploitation – PERSON EDUCATION, 3RD ED. (en français)
Des ressources complémentaires sont disponibles
- NUTT, G. – Operating system concepts – ADDISON WESLEY.
- STALLING, W. – Operating systems Internals and Design Principles – PRENTICE HALL.
- BIC, L.F. et SHAW, A.C. – Operating systems principles – PRENTICE HALL.
- KERNIGHAN, B.W., RITCHIE, D.M. – The C programming language – PRENTICE HALL.
- BLAESS, C. – Développement système sous Linux – EYROLLES
- RIFFLET, J.M. – La programmation sous Unix – SCIENCE INTERNATIONAL, PARIS.
- KERRISK M. – The Linux Programming Interface – NO STARCH PRESS.
- GRAY, J.S. – Inteprocess communications in Linux – THE NOOKS AND GRANMIS.
- ROBBINGS, K.A. et ROBBINGS, S. – Unix Systems Programming – PRENTICE HALL.