0% ont trouvé ce document utile (0 vote)
47 vues11 pages

Cours de Système d'Exploitation II

Le cours de Système d'exploitation II vise à enseigner le fonctionnement des systèmes d'exploitation, y compris la gestion des processus, de la mémoire, des fichiers et des entrées/sorties, ainsi que la sécurité et la programmation système sous Linux. Il comprend des modules théoriques et des travaux pratiques pour maîtriser les concepts fondamentaux et les techniques de programmation. L'évaluation se compose d'un contrôle continu et d'un examen final.
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
47 vues11 pages

Cours de Système d'Exploitation II

Le cours de Système d'exploitation II vise à enseigner le fonctionnement des systèmes d'exploitation, y compris la gestion des processus, de la mémoire, des fichiers et des entrées/sorties, ainsi que la sécurité et la programmation système sous Linux. Il comprend des modules théoriques et des travaux pratiques pour maîtriser les concepts fondamentaux et les techniques de programmation. L'évaluation se compose d'un contrôle continu et d'un examen final.
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

COURS DE SYSTEME

D’EXPLOITATION

NIVEAU : LICENCE 1
SEMESTREII
FORMATEUR : Dr Aristide MANKITI FATI
Enseignant Chercheur de l’Université Marien NGOUABI

Cours de Système d’exploitation II, Formateur : Dr Aristide MANKITI FATI 1


COURS DE SYSTEMES D'EXPLOITATION NIVEAU LICENCE 1
Objectifs du cours
1. Comprendre le rôle et le fonctionnement d’un système d’exploitation (SE).
2. Maîtriser les concepts fondamentaux : processus, mémoire, système de fichiers,
gestion des entrées/sorties.
3. S’initier aux appels système et à la programmation bas niveau (shell, C/Linux).
4. Appréhender la sécurité et les stratégies de gestion des ressources dans un SE.
PLAN DU COURS
Module 1 : Introduction aux systèmes d’exploitation
1. Définition, rôle et évolution des SE
2. Architecture d’un SE (monolithique, micro-noyau, modulaire)
3. Types de SE : batch, temps partagé, temps réel, distribué, embarqué
Module 2 : Processus et gestion des processus
1. Processus vs programme
2. États d’un processus (création, exécution, attente, fin)
3. Planification (ordonnancement) : FIFO, Round Robin, SJF, Priorité
4. Threads et multitâche
5. Synchronisation : sémaphores, moniteurs, sections critiques
6. Problèmes classiques : interblocage (deadlock), famine
Module 3 : Gestion de la mémoire
1. Mémoire physique vs logique
2. Segmentation et pagination
3. Mémoire virtuelle : swap, gestion par pages
4. Algorithmes de remplacement : FIFO, LRU, Optimal
Module 4 : Système de fichiers
1. Structure logique des fichiers

Cours de Système d’exploitation II, Formateur : Dr Aristide MANKITI FATI 2


2. Répertoires, chemins, permissions
3. Allocation de l’espace disque : contiguous, linked, indexed
4. Systèmes de fichiers courants : FAT, NTFS, ext4
5. Gestion des accès et sécurité
Module 5 : Gestion des entrées/sorties
1. Périphériques : types et gestion
2. Pilotes de périphériques
3. Buffers, spooling
4. Appels système pour l’I/O
Module 6 : Sécurité et protection
1. Protection des ressources
2. Authentification, contrôle d’accès
3. Sécurité des fichiers, des processus
4. Introduction aux techniques de sandboxing et de virtualisation
Module 7 : Programmation système sous Linux
1. Utilisation du shell (bash)
2. Scripts shell
3. Appels système en C (fork, exec, wait, open, read, write)
4. Manipulation des fichiers et des processus en C
Travaux Pratiques (TP)
1. TP1 : Introduction à Linux, commandes de base
2. TP2 : Création de scripts shell
3. TP3 : Manipulation de processus (fork, exec) en C
4. TP4 : Gestion de la mémoire en C (malloc, mmap)
5. TP5 : Gestion des fichiers (open, read/write, permissions)
6. TP6 : Synchronisation avec sémaphores et pipes
Évaluation
 Contrôle continu : 40% (quiz, devoirs, TP)
 Examen final : 60% (théorique et/ou pratique)

Cours de Système d’exploitation II, Formateur : Dr Aristide MANKITI FATI 3


Chapitre I : Introduction aux systèmes d’exploitation
I.1.Définition, rôle et évolution des systèmes d’exploitation
1- Définition :
Un système d’exploitation (SE) est un ensemble de programmes qui gère le matériel
informatique (processeur, mémoire, disques, périphériques...) et fournit des services aux
applications et aux utilisateurs. Il agit comme une interface entre l’utilisateur et la machine.
2- Rôle principal du SE :
 Gérer les ressources matérielles (processeur, mémoire, disque dur, etc.)
 Gérer les fichiers et les systèmes de fichiers
 Assurer la communication entre les programmes et le matériel
 Assurer la sécurité et la stabilité du système
 Exécuter et contrôler les programmes utilisateurs
3- Évolution des SE :
 Années 1950 : premiers SE très simples, souvent conçus pour une seule tâche (ex. :
traitement par lots).
 Années 1960-70 : apparition du multitâche et du partage de temps.
 Années 1980-90 : arrivée des interfaces graphiques (ex. : Windows, Mac OS).
 Années 2000 à aujourd'hui : SE pour systèmes mobiles, embarqués, serveurs,
cloud...
I.2. Architecture d’un SE
L'architecture d’un SE décrit la manière dont ses composants sont organisés pour remplir
leurs fonctions. On distingue plusieurs types d’architectures :
a. Architecture monolithique :
 Tous les composants du SE sont regroupés dans un seul bloc (noyau unique).
 Exemple : Linux traditionnel.
 Avantages : rapide, performant.
 Inconvénients : difficile à maintenir ou à modifier.
b. Micro-noyau (microkernel) :
 Le noyau contient uniquement les fonctions de base (communication, gestion
mémoire/processus).
 Les autres services (fichiers, pilotes...) fonctionnent en mode utilisateur, séparément.
 Exemple : Minix, QNX.
 Avantages : plus stable et sécurisé.
 Inconvénients : performances légèrement inférieures.
c. Architecture modulaire :
 Combine les avantages des deux précédents.
 Le noyau peut charger/décharger des modules indépendants (comme des pilotes).

Cours de Système d’exploitation II, Formateur : Dr Aristide MANKITI FATI 4


 Exemple : Linux moderne (avec modules).
 Avantages : flexible, facile à mettre à jour sans redémarrer.
I.3. Types de systèmes d’exploitation
a. SE batch (traitement par lots) :
 Utilisés dans les débuts de l’informatique.
 Les tâches sont regroupées et exécutées sans interaction humaine pendant leur
traitement.
 Exemple : anciens mainframes.
b. SE à temps partagé (time-sharing) :
 Permet à plusieurs utilisateurs d’accéder au système en même temps.
 Le processeur alterne rapidement entre les tâches.
 Exemple : Unix, Windows avec plusieurs sessions.
c. SE temps réel :
 Répond aux événements dans un délai garanti (très court).
 Utilisés dans les systèmes critiques : avions, équipements médicaux, robots.
 Exemple : FreeRTOS, VxWorks.
d. SE distribués :
 Le système fonctionne sur plusieurs machines interconnectées.
 Ressources partagées entre les machines comme si elles formaient un seul système.
 Exemple : systèmes dans les centres de données, Google File System.
e. SE embarqués :
 Intégrés dans des appareils spécifiques (non des ordinateurs traditionnels).
 Fonctionnent avec peu de ressources.
 Exemple : SE d’un micro-onde, d’un GPS, d’un smartphone (Android, iOS).

Cours de Système d’exploitation II, Formateur : Dr Aristide MANKITI FATI 5


Chapitre II : Processus et gestion des processus
II.1. Processus vs Programme
Programme :
 Un programme est un fichier contenant un code exécutable (ex. : .exe, .sh, .py). Il est
passif, stocké sur disque, et ne fait rien tant qu’il n’est pas lancé.
Processus :
 Un processus est une instance en cours d'exécution d’un programme.
 Il est actif, occupe de la mémoire, utilise le processeur et les périphériques.
 Exemple : lancer Word → programme devient processus en cours.

II.2. États d’un processus


Un processus passe par plusieurs états durant son cycle de vie :
 Création (new) : le processus est créé.
 Prêt (ready) : il attend d’être exécuté.
 Exécution (running) : il utilise le processeur.
 Attente (waiting) : il attend un événement (ex. : entrée/sortie).
 Terminé (terminated) : il a fini ou a été arrêté.
Diagramme simplifié : Création → Prêt → Exécution ↔ Attente → Terminé

II.3. Planification (ordonnancement)


L’ordonnanceur détermine quel processus s’exécutera sur le processeur. Il existe plusieurs
algorithmes :
a. FIFO (First In First Out) :
- Le premier arrivé est le premier servi.
- Simple mais peu équitable si un processus long arrive avant un court.
b. Round Robin :
- Chaque processus reçoit un temps fixe (quantum).
- Favorise l’équité et le temps partagé.
c. SJF (Shortest Job First) :
- Le processus avec la durée la plus courte passe en premier.
- Optimal en théorie, mais nécessite de connaître les durées à l’avance.
d. Priorité :
- Chaque processus a une priorité. Le plus prioritaire s’exécute en premier.
- Peut causer de la famine si un processus de faible priorité attend trop longtemps.

II.4. Threads et multitâche


Thread (fil d'exécution) :

Cours de Système d’exploitation II, Formateur : Dr Aristide MANKITI FATI 6


- C’est une sous-partie d’un processus pouvant s’exécuter en parallèle.
- Les threads partagent la mémoire du processus principal.
Multitâche (multitasking) :
- Capacité du système à exécuter plusieurs processus ou threads simultanément.
- Peut être préemptif (interruption automatique) ou coopératif (volontaire).

II.5. Synchronisation
Lorsque plusieurs processus/threads accèdent aux mêmes ressources, il faut éviter les
conflits :
a. Sections critiques :
- Partie de code où une ressource partagée est utilisée.
b. Sémaphores :
- Variables spéciales permettant de contrôler l'accès aux sections critiques.
- Deux opérations : P (wait), V (signal).
c. Moniteurs :
- Structure qui combine verrouillage et condition d’attente.
- Plus haut niveau que les sémaphores, utilisé en programmation orientée objet.

II.6. Problèmes classiques


a) Interblocage (Deadlock) :
- Plusieurs processus attendent indéfiniment des ressources bloquées les uns par les autres.
- Conditions du deadlock :
* Exclusion mutuelle
* Rétention et attente
* Non-préemption
* Attente circulaire
b) Famine (Starvation) :
- Un processus n’est jamais planifié à cause d’autres processus prioritaires.
- Peut être évité par l’inversion de priorité ou l’ordonnancement équitable.

Cours de Système d’exploitation II, Formateur : Dr Aristide MANKITI FATI 7


Chapitre III : Gestion de la mémoire
La gestion de la mémoire est une partie essentielle du système d’exploitation. Elle assure
l’exécution efficace des programmes en organisant et en optimisant l’utilisation de la mémoire
disponible.
1. Mémoire physique vs mémoire logique
 Mémoire physique : Représente l’espace réel de stockage en mémoire vive (RAM)
d’un système.
 Mémoire logique : Vue abstraite de la mémoire telle qu’elle est perçue par les
programmes et les processus.
 La mémoire logique est traduite en mémoire physique via des mécanismes de gestion
comme la pagination et la segmentation.
2. Segmentation et pagination
Segmentation
 Division de la mémoire en segments de différentes tailles, correspondant à des parties
logiques du programme (code, pile, données, etc.).
 Permet une gestion flexible mais entraîne une fragmentation externe.
Pagination
 Division de la mémoire en blocs de taille fixe appelés pages.
 Chaque page logique est associée à un frame de mémoire physique.
 Évite la fragmentation externe mais nécessite une table de pages pour la
correspondance.
3. Mémoire virtuelle
Swap
 Technique permettant de transférer temporairement des processus vers le disque dur
lorsque la RAM est pleine.
 Peut ralentir l’exécution mais permet de gérer plus de processus.
Gestion par pages
 La mémoire virtuelle utilise la pagination pour allouer l’espace indépendamment de la
mémoire physique disponible.
 Utilisation d’une table de pages et d’un disque pour stocker temporairement les
données.
4. Algorithmes de remplacement
Lorsque la mémoire est pleine, des algorithmes de remplacement de pages sont utilisés pour
optimiser l’utilisation :
FIFO (First-In, First-Out)
 La page la plus ancienne en mémoire est remplacée.
 Facile à implémenter mais parfois inefficace.
LRU (Least Recently Used)
 Remplace la page qui n’a pas été utilisée depuis le plus longtemps.

Cours de Système d’exploitation II, Formateur : Dr Aristide MANKITI FATI 8


 Offre une meilleure gestion que FIFO mais nécessite un suivi des accès.
Optimal
 Remplace la page qui ne sera pas utilisée avant le plus longtemps.
 Théorique, car il nécessite une prévision des accès futurs.

CHAPITRE IV : SYSTEME DE FICHIERS


Un système de fichiers est une structure qui permet de stocker, organiser et gérer les données
sur un support de stockage comme un disque dur ou un SSD. Il définit les règles d'accès aux
fichiers et la façon dont les données sont disposées sur le disque.
1. Structure logique des fichiers
 Fichier : Un ensemble de données stockées sous un nom unique.
 Métadonnées : Informations sur le fichier (nom, taille, type, permissions, etc.).
 Organisation :
o Fichiers textes, binaires, images, vidéos, etc.
o Structuration interne selon le système de fichiers utilisé.
2. Répertoires, chemins, permissions
 Répertoires : Structures permettant d’organiser les fichiers (ex. : dossiers).
 Chemins :
o Chemin absolu : Chemin complet à partir de la racine (ex. :
/home/user/documents).
o Chemin relatif : Défini par rapport au répertoire courant (documents/).
 Permissions (dans les systèmes Unix/Linux) :
o Lecture (r), écriture (w), exécution (x).
o Géré par l’utilisateur, le groupe et les autres.
3. Allocation de l’espace disque
Contiguous Allocation
 Chaque fichier est stocké dans des blocs consécutifs.
 Rapide en lecture mais peut entraîner une fragmentation et des pertes d’espace.
Linked Allocation
 Les fichiers sont stockés sous forme de blocs chaînés.
 Évite la fragmentation, mais ralentit la recherche d’un fichier.
Indexed Allocation
 Chaque fichier possède une table d’index pointant vers ses blocs de stockage.
 Offre un accès efficace aux données sans fragmentation.
4. Systèmes de fichiers courants
FAT (File Allocation Table)
 Utilisé dans les clés USB et cartes mémoire.
 Simple mais limité en gestion des fichiers volumineux.
NTFS (New Technology File System)
 Utilisé par Windows.
 Prise en charge des permissions avancées, compression et récupération des fichiers.
ext4 (Extended File System 4)
 Utilisé par Linux.

Cours de Système d’exploitation II, Formateur : Dr Aristide MANKITI FATI 9


 Robuste, gère bien les grandes partitions et réduit la fragmentation.

Chapitre : Gestion des entrées/sorties (I/O)


La gestion des entrées/sorties est essentielle pour permettre l’interaction entre le système et
les périphériques. Les systèmes d’exploitation assurent cette gestion via des mécanismes
spécialisés.
1. Périphériques : types et gestion
a) Types de périphériques :
 Périphériques d’entrée : Clavier, souris, scanner.
 Périphériques de sortie : Écran, imprimante, haut-parleurs.
 Périphériques de stockage : Disque dur, SSD, clé USB.
 Périphériques de communication : Carte réseau, modem.
b) Gestion des périphériques :
 Communication via bus système (PCI, USB, SATA).
 Système d’interruptions pour signaler l’état des périphériques.
 Polling vs interruptions (gestion active ou passive des I/O).
2. Pilotes de périphériques
a) Logiciels permettant la communication entre le matériel et le système d’exploitation.
b) Types :
 Pilotes génériques (compatibles avec plusieurs périphériques).
 Pilotes spécifiques (développés pour un périphérique précis).
c) Fonctionnement :
 Interface entre le matériel et le noyau du système.
 Chargement dynamique selon les besoins du système.
3. Buffers et spooling
a) Buffering :
 Stockage temporaire des données avant leur traitement.
 Exemples : tampons d’affichage, files d’attente de lecture disque.
b) Spooling (Simultaneous Peripheral Operation On-Line) :
 Technique où les tâches sont mises en file d’attente avant exécution.
 Exemple : impressions en série.

4. Appels système pour l’I/O


a) Interface permettant aux applications d’accéder aux périphériques via le système
d’exploitation.
b) Exemples :
 read() et write() en C pour manipuler des fichiers.
 open(), close(), ioctl() pour la gestion avancée des entrées/sorties.

Cours de Système d’exploitation II, Formateur : Dr Aristide MANKITI FATI 10


Chapitre VI : Sécurité et protection
La sécurité informatique permet de garantir la confidentialité, l’intégrité et la disponibilité des
ressources informatiques. Le système d’exploitation joue un rôle clé dans la protection des
données et des processus.
1. Protection des ressources
a) Contrôle d’accès aux fichiers et processus du système.
b) Mécanismes de protection :
 Séparation des espaces mémoire des processus.
 Restrictions sur les accès aux fichiers (permissions, groupes).
 Protection des données contre les modifications ou suppressions non
autorisées.
2. Authentification et contrôle d’accès
a) Authentification :
 Vérification de l’identité d’un utilisateur avant l’accès aux ressources.
 Méthodes : mots de passe, certificats, biométrie.
b) Contrôle d’accès :
 Définition des autorisations d’accès aux fichiers et applications.
 Modèles classiques : contrôle basé sur les rôles (RBAC), listes ACL (Access
Control List).
3. Sécurité des fichiers et des processus
a) Sécurité des fichiers :
 Cryptage des données sensibles (AES, RSA).
 Protection contre les accès non autorisés.
b) Sécurité des processus :
 Restrictions sur l’exécution des programmes sensibles.
 Gestion des privilèges pour empêcher les modifications système malveillantes.
4. Introduction aux techniques de sandboxing et de virtualisation
a) Sandboxing :
 Isolement des applications pour limiter les impacts en cas de faille.
 Exemples : Java Virtual Machine (JVM), conteneurs Docker.
b) Virtualisation :
 Technique permettant d'exécuter plusieurs systèmes sur une même machine.
 Exemples : machines virtuelles (VMware, VirtualBox).

Cours de Système d’exploitation II, Formateur : Dr Aristide MANKITI FATI 11

Vous aimerez peut-être aussi