Logo ÉTS
Session
Cours
Responsable(s) Abdelouahed Gherbi

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement





Cours

  1. Introduction aux systèmes d’exploitation (3.5 heures[1])
    1. Définition et évolution des systèmes d’exploitation (SE)
    2. Objectifs et principales fonctions des SE
    3. Modes d’opérations des SE
    4. Mécanismes des interruptions
    5. Les appels systèmes
    6. Structures usuelles des systèmes d’exploitation
  2. Processus et threads  (4 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
  3. Communication interprocessus (3.5 heures)
    1. Types de communications interprocessus
    2. Les signaux
    3. Les tubes
  4. Ordonnancement de la CPU  (3.5 heures)
    1. Concepts de base : cycle CPU-E/S, Ordonnanceur de CPU, critères d’ordonnancement
    2. Algorithmes d’ordonnancement : FCFS, SJF, Round-Robin, avec priorité, multi-niveaux
  5. Synchronisation des processus (7 heures)
    1. Problème de la concurrence des processus
    2. Section critique et exclusion mutuelle
    3. Les mecanismes de synchronisations : semaphores, mutex, moniteurs.
  6. Inter-blocage (3.5 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  (3.5 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. 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 et imple´mentation d’un ordonnanceur de processus (10 heures)

  • Conception, imple´mentation et test d’une API simplifie´e d’un gestionnaire de me´moire avec plusieurs strate´gies d’allocation de me´moire (6 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.