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 2006  Horaire et local
Professeur : Saïd, Hassane
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. Programmer des processus parallèles.

Contenu

Programmation des processus : création, fils d'exécutions (threads). Gestion des processus : processus parallèles, communication inter-processus. Techniques de synchronisation : sémaphores, boîtes aux lettres, moniteurs. Ordonnancement des travaux de l'unité centrale. Évaluation des algorithmes d'ordonnancement. Gestion de la mémoire : fragmentation, pagination, segmentation et utilisation du swap. Mémoire virtuelle. Évaluation des algorithmes de gestion mémoire. Systèmes de fichiers et partitionnement. Sécurité : mécanismes de contrôle des accès et de la protection des données. Cas d'études : Systèmes d'exploitation multi-tâches Linux et Windows NT.
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, Windows).

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
  • Devoirs et travaux dirigés : laboratoires sur Unix et C avec "threads".
  • Examen de mi-session
  • Examen final
4. Heures de disponibilité ou modalités pour rendez-vous :
Jeudi : 15h30 - 17h00
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
  • Ressources et leur gestion
  • Évolution historique
  • Systèmes à temps réel
  • Architecture d'ordinateurs
  • Interruptions
  • Multiprogrammation
07 sept. 2006 
2   
  • Aperçu sur la problématique du cours : gestion d'UCT, gestion de mémoire, gestion d'E/S, services des SE
  • Structure à couche des SE, le noyau (kernel), exemples
  • État de processus, gestion de processus
14 sept. 2006 
3   
    Sauvegarde de processus, Process Control Block
  • Commutation de contexte
  • Files d`attente de processus et ordonnancement de processus
  • Ordonnancement à courte, moyenne et longue échéance
  • Producteurs et consommateurs
  • Les fils (threads)
  • Fils de noyau et fils d'usager
  • Processus légers
21 sept. 2006 
4   
  • Ordonnancement d'unité centrale
  • Comportement typique des processus
  • Répartiteur
  • Critères d'ordonnancement
  • Algorithmes d'ordonnancement, évaluation
  • Priorités, préemption
28 sept. 2006 
5   
  • Synchronisation et communication de processus parallèles
  • Exclusion mutuelle et sections critiques
  • Solutions du problème de la SC : solutions par logiciel, par matériel, sémaphores, moniteurs, messages
  • Le problème du tampon borné
05 oct. 2006 
6    Semaine d'études 12 oct. 2006 
7    Examen de mi-session 19 oct. 2006 
8   
  • Problèmes classiques de synchronisation : lecteurs/écrivains, philosophes
  • L'interblocage
  • Détection et traitement de l'interblocage
  • Évitement de l'interblocage
26 oct. 2006 
9   
  • Gestion de mémoire
  • Chargement de programmes et liaison d'adresses
  • Allocation contiguë : statique et dynamique
  • Fragmentation de mémoire
  • Segmentation et pagination, implémentation
02 nov. 2006 
10   
  • Partage de pages, protection
  • "Buddy systems"
  • La mémoire virtuelle et sa gestion
09 nov. 2006 
11   

  • Algorithmes de remplacement pages
  • Allocation de cadres de pages
  • Écroulement et ses causes
  • Ensemble de travail
  • Taux de défaut de pages

16 nov. 2006 
12   
  • Systèmes de fichiers
  • Attributs, opérations sur fichiers
  • Méthodes d'accès
  • Structures de répertoires
  • Méthodes d'allocation et gestion de l'espace
23 nov. 2006 
13   
  • Systèmes d'entrée/sortie
  • Matériel, scrutation, interruption
  • Accès direct en mémoire
  • Interfaces d'E/S d'applications
  • Structure de mémoire de masse
  • Organisation de fichiers sur disques
  • Ordonnancement d'E/S disque
30 nov. 2006 
14   
  • Problèmes de protection, différentes solutions
  • Matrices d'accès et leur implémentation
  • Récapitulation du cours
07 déc. 2006 
15    Examen final 14 déc. 2006 
6. Évaluation du cours :
  • Examen de mi-session : 25 %
  • Examen final : 40 %
  • Devoirs (3) : 25 %
  • Travaux dirigés (présence et participation) : 10 %
7. Politiques départementales et institutionnelles :
8. Principales références :
  1. A. Tanenbaum, Systèmes d'exploitation, Pearson Education.
  2. A. Silberschatz, P. Galvin, G. Gagné, Principes appliqués des systèmes d'exploitation avec Java, Vuibert (manuel).
  3. W. Stallings, Operating Systems, Prentice-Hall.
9. Page Web du cours :