Université du Québec en Outaouais Département d'informatique et d'ingénierie
Sigle : INF3723  Gr. 01
Titre : Systèmes d'exploitation
Session : Automne 2016  Horaire et local
Professeur : Logrippo, Luigi
1. Description du cours paraissant à l'annuaire :

Objectifs

Au terme de cette activité, l'étudiant(e) sera en mesure : de comprendre les fonctionnalités de base des systèmes d'exploitation et leur implémentation, et de programmer des processus parallèles.

Contenu

Notions générales sur les systèmes d'exploitation et leur développement. Gestion de processus: états des processus et transitions d'états, files d'attente. Fils d'exécution (threads) et leur gestion. Processus parallèles et communication entre processus. Problèmes de synchronisation et techniques de synchronisation: sémaphores, moniteurs, méthodes synchronisées. Ordonnancement de l'unité centrale: différents algorithmes et leur évaluation. Interblocage de processus. Gestion de la mémoire centrale et de la mémoire virtuelle, différents algorithmes et leur évaluation. Fragmentation, pagination, segmentation et permutation. Systèmes de fichiers et leur implémentation, mémoire de masse. Sécurité: méthodes de protection des données et contrôle d'accès. Application aux systèmes d'exploitation Unix, Linux et Windows, travaux pratiques sur la programmation concurrente. Ce cours comporte des séances obligatoires de travaux dirigés (TD) de deux heures par semaine.
2. Objectifs spécifiques du cours :

Faire connaître aux étudiants les fonctions d'un système d'exploitation.

Familiariser les étudiants aux problèmes liés à la réalisation de ces fonctions et aux moyens de les résoudre (illustrations à partir des cas UNIX, Java avec "threads").

Faire acquérir de nouvelles approches de programmation (processus concurrents communicants avec partage des ressources) et les appliquer à des cas réels.

À terme, les étudiants doivent être, non seulement au fait des problèmes des systèmes d'exploitation (synchronisation, communication, partage des ressources et interblocage), mais aussi capables d'appliquer les solutions appropriées.

3. Stratégies pédagogiques :
  • Cours magistraux
  • Séances de travaux dirigés
  • Devoirs écrits et de programmation
  • Un examen de mi-session et un examen final
4. Heures de disponibilité ou modalités pour rendez-vous :
Après le cours, ou sinon envoyer un courriel au professeur : luigi.logrippo@uqo.ca
5. Plan détaillé du cours sur 15 semaines :
Semaine Thèmes Dates
1    Introduction
  • Introduction générale au cours
  • Qu'est-ce qu'un système d'exploitation
  • Évolution historique
  • Systèmes à temps réel

Rappel : Structure des ordinateurs

  • Structure des entrées/sorties
  • Interruptions

07 sept. 2016 
2    Structure des systèmes d’exploitation
  • Aperçu sur la problématique du cours : gestion de processus, gestion de mémoire, gestion de fichiers, gestion d'E/S
  • Hiérarchie de stockage
  • Services des SE
  • Appels système
  • Structure à couche des SE, Micronoyaux
  • Machines virtuelles
Travail dirigé 1 (16 septembre 2016)
14 sept. 2016 
3    Processus
  • Notion de processus, Bloc de contrôle de processus
  • Files d`attente de processus et ordonnancement de processus
  • Ordonnancement à courte, moyenne et longue échéance
  • Processus coopérants
  • Exemple du producteur/consommateur

Threads

  • Threads noyau et threads utilisateur
  • Processus légers

Travail dirigé 2 (23 septembre 2016)
21 sept. 2016 
4    Ordonnancement des processus
  • Concepts de base
  • Critères d'ordonnancement
  • Algorithmes d'ordonnancement, évaluation
  • Ordonnancement multiprocesseur
  • Ordonnancement temps réel
  • Ordonnancement de threads
  • Évaluation d’algorithmes
Travail dirigé 3 (30 septembre 2016)
28 sept. 2016 
5    Synchronisation des processus
  • Contexte
  • Problème de la section critique (SC)
  • Solutions du problème de la SC : solutions par logiciel, par matériel, sémaphores, moniteurs
  • Les problèmes du tampon borné, des lecteurs/écrivains, des philosophes
Travail dirigé 4 (7 octobre 2016)
05 oct. 2016 
6    Semaine d'études 12 oct. 2016 
7    Interblocages
  • Caractérisation des interblocages
  • Prévention des interblocages
  • Éviter les interblocages
  • Détection d’interblocage
19 oct. 2016 
8    Examen de mi-session

Travail dirigé 5 (28 octobre 2016)

26 oct. 2016 
9    Gestion de la mémoire (1)
  • Liaison d'adresses et chargement de programmes
  • Allocation de mémoire contiguë
  • Fragmentation de mémoire
  • Pagination
  • Segmentation
Travail dirigé 6 (4 novembre 2016)
02 nov. 2016 
10    Gestion de la mémoire (2)
  • Continuation du cours 9
Travail dirigé 7 (11 novembre 2016)
09 nov. 2016 
11    Mémoire virtuelle
  • Algorithmes de remplacement de pages
  • Allocation de cadres de pages
  • Écroulement et ses causes
  • Modèle de l’ensemble de travail
  • Taux de défaut de pages
Travail dirigé 8 (18 novembre 2016)
16 nov. 2016 
12    Systèmes de fichiers
  • Attributs, opérations sur fichiers
  • Méthodes d'accès
  • Structures de répertoires
  • Méthodes d'allocation et de gestion de l'espace libre
Travail dirigé 9 (25 novembre 2016)
23 nov. 2016 
13    Systèmes d'entrée/sortie
  • Matériel, scrutation, interruptions
  • Accès direct en mémoire
  • Interfaces d'E/S d'applications

Structure de la mémoire auxiliaire

  • Organisation de fichiers sur disques
  • Ordonnancement d'E/S disque

Travail dirigé 10 (2 décembre 2016)
30 nov. 2016 
14    Protection et sécurité
  • Problèmes de protection, différentes solutions
  • Matrices d'accès et leur implémentation
  • Récapitulation du cours
Travail dirigé 11 (9 décembre 2016)
07 déc. 2016 
15    Examen final 14 déc. 2016 
6. Évaluation du cours :
  • Examen de mi-session : 25 %
  • Examen final : 40 %
  • Travaux écrits: 15 %
  • Travail de programmation: 20 %
7. Politiques départementales et institutionnelles :
8. Principales références :
  1. A. Silberschatz, P. Galvin, G. Gagné, Principes des systèmes d'exploitation, Vulbert, 2008(manuel)
  2. A. Silberschatz, P. Galvin, G. Gagné, Operating systems concept, John Wiley & Sons
  3. W. Stallings, Operating Systems, Internal and Design Principles, Prentice-Hall
  4. A. Tanenbaum, Systèmes d'exploitation, Pearson Education

Ressources de la bibliothèque en informatique et génie informatique (UQO)

  • http://biblio.uqo.ca/disciplines/informatique.php

Notes du professeur

  • http://w3.uqo.ca/luigi/INF3723/notes_de_cours_index.html

9. Page Web du cours :
https://moodle.uqo.ca