Système d'exploitation / Operating systems

Diplômes intégrant cet élément pédagogique :

Descriptif

Le cours de systèmes d'exploitation présente les objectifs et les principes de mise en œuvre des systèmes d'exploitation généralistes tels qu'Unix, Linux ou Windows.
Un système est vu comme un fournisseur de machine virtuelle mettant à  disposition des applications et des utilisateurs un ensemble de concepts tels que  processus, threads, mémoire virtuelle, fichiers ou disques.
Pour chacun de ces concepts, le cours présente les principes d'utilisation et les différentes alternatives en termes d'implémentation.

PLAN:



    1 Introduction aux systèmes d'exploitation
        1.1 Rôle d'un système d'exploitation
        1.2 Organisation d'un système d'exploitation
        1.3 Historique

    2 Les processus
        2.1 Cycle de vie d'un programme
        2.2 Notion de processus
        2.3 Modèle d'exécution d'un processus
        2.4 Ordonnancement des processus
        2.5 Notion de processus léger

    3 Synchronisation de processus
        3.1 Le problème général
        3.2 Les besoins
        3.3 Les solutions de base
            3.3.1 Les sections critiques
            3.3.2 Les verrous
        3.4 Les solutions de plus haut niveau
            3.4.1 Les sémaphores
            3.4.2 Les moniteurs
            3.4.3 Les sections critiques conditionnelles

    4 Gestion des interblocages
        4.1 Le problème
        4.2 Quelques exemples
        4.3 Caractérisation des interblocages
        4.4 Traitement des interblocages
            4.4.1 Prévention
            4.4.2 Détection - guérison
            4.4.3 Évitement

    5 Gestion de la mémoire virtuelle
        5.1 Fonction du système de gestion de la mémoire virtuelle
        5.2 Techniques de partage de la mémoire
            5.2.1 Zones contigües
            5.2.2 Pagination
            5.2.3 Segmentation

    6 Système de gestion de fichiers
        6.1 Fonction du système de gestion de fichiers
        6.2 Techniques d'implémentation

    7 Gestion de la mémoire secondaire
        7.1 Supports de mémoire secondaire
        7.2 Gestion des requêtes vers la mémoire secondaire
        7.3 Fiabilité de la mémoire secondaire

* Les TD portent essentiellement sur les notions de processus, ordonnancement, threads et synchronisation. Ils permettent aux étudiants d'acquérir la maitrise de ces notions. Le travail effectué en TD donne lieu à une évaluation au travers d'un TP en libre-service.

* Les TP portent sur la maitrise des notions de processus et de gestion mémoire, au travers de la réalisation d'un shell en langage C ainsi que de la réalisation d'un gestionnaire de mémoire partagée (en C également).

 

The course presents the objectives and the  principles of implementation of general operation systems such as Unix, Linux or Windows.
A system is seen as a provider of virtual machines. More precisely, it provides to applications and users a set of concepts such as processes, threads, virtual memory, files or disks.
For each of these concepts, the course presents usage principles and the different alternatives for their implementation.

OUTLINE:



    1 Introduction to Operating Systems
        1.1 Role of an OS
        1.2 Overall Organisation of an OS
        1.3 Evolution during the last decades

    2 Process
        2.1 Program Lifecycle
        2.2 Concept of Process
        2.3 Execution Model of Process
        2.4 Scheduling
        2.5 Threads

    3 Process Synchronization
        3.1 Requirements
        3.2 Elementary Solutions
            3.3.1 Critical Sections
            3.3.2 Locks
        3.4 Elaborated Solutions
            3.4.1 Semaphores
            3.4.2 Monitors
            3.4.3 Conditional Critical Sections

    4 Deadlocks
        4.1 General Issue
        4.2 Examples
        4.3 Caracterizing Deadlocks
        4.4 Managing Deadlocks
            4.4.1 Preventing
            4.4.2 Detecting and healing
            4.4.3 Avoiding

    5 Virtual Memory
        5.1 Requirements
        5.2 Implementation Techniques
            5.2.1 Zones
            5.2.2 Pagination
            5.2.3 Segmentation

    6 File System
        6.1 Requirements
        6.2 Implementation techniques

    7 Secondary Memory
        7.1 Main Supports
        7.2 Requests Management
        7.3 Reliability Management

Pré-requis

Connaissances de base en langage C.
Connaissances de base en architectures matérielles.

 

Basic notions of C language programming.
Basic notions in Computer architecture.

Bibliographie

 LIVRES ET OUVRAGES

-    Sylberschatz, Galvin and Gagne, Operating System Concepts, Addison-Wesley
-    S. Krakowiak, Principes des systèmes d'exploitation des ordinateurs,Dunod
-    A. Tanenbaum, Les systèmes d'exploitation, Prenctice Hall, Inter-Editions

- Notes de cours, exercices de TD et annales d'examens sont disponibles sur le site du cours : http://sardes.inrialpes.fr/~boyer/cours/SE

Informations complémentaires

Lieu(x) : Grenoble - Saint-Martin d'Hères
Langue(s) : Francais