Partager cette page :

Systèmes d'exploitation 1

Semestre Semestre 1
Type Facultatif
Nature UE
Crédits ECTS 5

Responsables

 

Pré-requis

Cours de niveau licence en informatique :
- Utilisation d'un système
- Architecture d’ordinateur et fonctionnement de base d'un processeur (cycle instruction, adressage mémoire).
- Programmation en Java

Objectifs

Ce cours présente les concepts fondamentaux des systèmes d'exploitation multitâche : structure d'un système, notion de processus, de taches et des ressources, allocation de ressources et de temps, problèmes et solutions pour la coopération et la compétition entre processus, l’implémentation et l’utilisation de la mémoire virtuelle et la pagination, etc. Des travaux dirigés complètent l’enseignement avec des exercices sur de la synchronisation et la gestion de la mémoire virtuelle. Des travaux pratiques portant sur la synchronisation de processus (en Java) complètent le cours. Par ailleurs des éléments pratiques d'administration système (gestion du système, gestion des utilisateurs, protection des ressources, etc) sont également présentés.

A l'issue de ce module, l'étudiant maîtrisera les concepts des systèmes d'exploitation multitâche en terme d'utilisation et de structure interne de ces systèmes. Il sera en particulier familier avec la notion de mémoire virtuelle et la programmation de processus parallèles coopérants.

Contenu

Programme des enseignements :

Cours
- Introduction : rôles et structure d'un système d'exploitation, multitâches, multiprocesseurs, programmation parallèle, multiprogrammation, problèmes existants ;
- Synchronisation de processus coopérants : section critique, exclusion mutuelle, rendez-vous, synchronisation dans les langages de bas à haut niveau : Test and Set, sémaphores, verrous et monitors, programmation parallèle en Java ;
- Allocation de ressources à des processus concurrents : ressources et allocateurs, allocation d'unité centrale et ordonnancement, interblocage, régulation de charge, protection interne ;
- Ordonnancement multitâche de CPUs: time-sharing, coopérative, algorithmes d’ordonnancement
- Mémoire virtuelle : structure de la hiérarchie de mémoire, fonctionnement de cache, allocation et gestion de mémoire virtuelle, pagination, améliorations
- Ordinateurs multiprocesseurs : types, structure, interconnexion, cohérence de cache. 

Travaux dirigés
Les travaux dirigés portent essentiellement sur la synchronisation de processus, la mémoire cache et la gestion de mémoire virtuelle paginée.
 
Travaux pratiques
Les travaux pratiques concernent la programmation de processus parallèles coopérants en Java.

Contrôles des connaissances

Durant le semestre, un Contrôle Continu de Travaux Pratiques (D).
À la fin du semestre 5, un examen final de première session de deux heures (T1).
En session de rattrapage, un examen oral (O) *.
Note finale en session 1 : (T1 + D) / 4
Note finale en session 2 : (O + D) / 4

Mise à jour le 9 novembre 2017