0% ont trouvé ce document utile (0 vote)
44 vues5 pages

Résumé SE2 CH1-5

Le document présente une introduction aux systèmes d'exploitation, leur structure, et leur évolution historique, en se concentrant sur des exemples comme Linux et GNU. Il aborde également la gestion des processus, y compris leur définition, structure, états, et ordonnancement, ainsi que la synchronisation des processus et les problèmes classiques associés. Enfin, il décrit les différents types d'ordonnanceurs et les critères d'ordonnancement pour optimiser l'efficacité des systèmes.

Transféré par

abdelkodousettaifi
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 PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
44 vues5 pages

Résumé SE2 CH1-5

Le document présente une introduction aux systèmes d'exploitation, leur structure, et leur évolution historique, en se concentrant sur des exemples comme Linux et GNU. Il aborde également la gestion des processus, y compris leur définition, structure, états, et ordonnancement, ainsi que la synchronisation des processus et les problèmes classiques associés. Enfin, il décrit les différents types d'ordonnanceurs et les critères d'ordonnancement pour optimiser l'efficacité des systèmes.

Transféré par

abdelkodousettaifi
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 PDF, TXT ou lisez en ligne sur Scribd

Résumé des Chapitres 1 à 5

Chapitre 1 : Introduction aux Systèmes d’Exploitation


1. Définition :

Un système d’exploitation (SE) est un logiciel qui sert d’interface entre le matériel et
l’utilisateur, Il masque les détails techniques du matériel pour simplifier l’usage par les
programmes et les utilisateurs. ,offrant :

• Une machine virtuelle (abstraction du matériel pour simplifier les E/S, la


mémoire, etc.).
• Le partage des ressources (CPU, mémoire, périphériques) entre processus pour
éviter les conflits.

Exemples de SE : Windows, macOS (basé sur Unix/FreeBSD), Linux (open-source, inspiré


d’Unix).

3. Structure d’un SE :

• Noyau (Kernel) : Fonctions de base (gestion de la mémoire, des processus, des


fichiers).
• Interpréteur de commandes (Shell) : Interface utilisateur pour contrôler le SE.

3. Évolution historique :

• 1ère Génération (1949–57) : Tubes à vide, cartes perforées.


• 2ème Génération (1958–64) : Transistors, traitement par lots.
• 3ème Génération (1965–80) : Circuits intégrés, multiprogrammation.
• 4ème Génération (1980–aujourd’hui) : Microprocesseurs, réseaux, systèmes
distribués.

4. Linux :

• Définition : Créé par Linus Torvalds (1991) comme un SE Unix-like ; combiné aux
outils GNU pour former des distributions (Debian, Ubuntu, Fedora, Manjaro , etc.).

5. GNU :

• Définition : est un projet de logiciels libres lancé par Richard Stallman. Linux est un
noyau développé par Linus Torvalds.
Chapitre 2 : Gestion des Processus
1. Définition et Fonctionnement des Processus
• Un processus correspond à l'exécution d'une tâche par le système (programmes
utilisateurs, entrées-sorties, etc.).
• Le système donne l'illusion d'un traitement simultané grâce au pseudo-
parallélisme : il alterne rapidement entre les tâches (commutation de contexte).
2. Structure d'un Processus
• PCB (Process Control Block) : Structure contenant toutes les informations
nécessaires pour gérer un processus :
o Segments mémoire : Code (instructions), données (variables
globales/statiques), pile (adresses de retour, variables locales).
o Contexte : Registres (compteur ordinal, registre d'instruction, etc.), état du
processus, priorité, fichiers ouverts, etc.
o PSW (Program Status Word) : Bits reflétant l'état du processus (actif/en
attente, priorité, etc.).
3. États d'un Processus
Un processus passe par plusieurs états :
• Nouveau : Création du processus.
• Prêt (Ready) : En attente d'être exécuté par l'UCT.
• Exécution (Running) : En cours d'exécution.
• Attente (Waiting) : En attente d'un événement (E/S, etc.).
• Terminé : Fin d'exécution.
4. Commutation de Contexte (Context Switching)
• Mécanisme permettant de sauvegarder l'état d'un processus interrompu et de
restaurer l'état d'un autre processus.
• Nécessite la mise à jour des PCB et des registres de l'UCT.
5. Ordonnancement des Processus
Définition : L’ordonnanceur est un composant essentiel du système d’exploitation chargé
de gérer l'exécution des processus. Son rôle est de décider quel processus doit être exécuté
à un moment donné sur le processeur.
• Ordonnanceur à court terme : Gère les processus fréquemment (millisecondes)
pour une exécution rapide.
• Ordonnanceur à long terme : Contrôle le niveau de multiprogrammation pour
équilibrer l'utilisation des ressources (UCT/E/S).
6. Préemption
• Mise en attente forcée d'un processus par l'ordonnanceur pour permettre
l'exécution d'un autre processus.
• Critères de choix influencent les performances du système.
7. Processus dans UNIX
• PID (Process Identifier) : Numéro unique identifiant un processus.
• UID/GID : Identifiants de l'utilisateur et du groupe propriétaire du processus.
• Autres informations : Priorité (PRI), état (S), taille mémoire (SZ), temps
d'exécution (TIME), etc.
8. Processeurs Multi-Cœurs
• Permettent l'exécution simultanée de plusieurs tâches sans ralentissement.
• Utiles pour les logiciels optimisés pour le multi-cœur (retouche photo, jeux vidéo,
etc.).
9. Fonctions et Bibliothèques
• unistd.h : Fichier d'en-tête pour les systèmes POSIX, fournissant des fonctions
comme fork, pipe, read, write, etc.

Chapitre 3 : Processus, Threads, Pile et Tas

1. Processus
Un processus est un programme en cours d'exécution avec son propre espace mémoire.

2. Thread
Un thread est une unité d'exécution au sein d’un processus ; tous les threads partagent la
mémoire du processus.

3. Segments mémoire d’un processus


• Text : Code exécutable (lecture seule).
• Data : Variables globales initialisées.
• BSS : Variables globales non initialisées (initialisées à zéro).
• Tas (Heap) : mémoire dynamique allouée à l’exécution (malloc, free, etc.).
• Pile (Stack) : mémoire pour les variables locales et appels de fonctions. (structure
LIFO).

4. Tas vs. Pile


• Tas : Accès global, taille variable, gestion manuelle (risque de fuites mémoire).
• Pile : Rapide, taille fixe, gestion automatique (limitée par le SE).

5. Appels système
• fork() : Crée un processus enfant.
• exec() : Remplace l’image mémoire du processus par un nouveau programme.
• wait()/waitpid() : Synchronisation parent-enfant.

Chapitre 4 : Synchronisation des Processus

1. Problématique
Éviter les accès concurrents aux ressources partagées (mémoire, fichiers).

2. Solutions
a. Attente active (inefficace)
• Désactivation des interruptions : Bloque le système.
• Verrous logiciels : Risque de compétition (race condition).
• Alternance stricte : Tourniquet imposé (peu flexible).
b. Algorithme de Peterson :
Utilise un tour et un tableau désir pour l’exclusion mutuelle.
c. Sleep/Wakeup :
Bloque les processus (mais risque de perte de signaux).
d. Sémaphores
• WAIT (P) : Réserve une ressource ou bloque le processus.
• SIGNAL (V) : Libère une ressource et réveille un processus en attente.

3. Problèmes classiques
• Producteur-Consommateur : Synchronisation d’un tampon partagé via des
sémaphores.
• Dîner des philosophes : Éviter les interblocages en limitant l’accès concurrent (ex.
: 3 philosophes max).

Chapitre 5 : Ordonnancement des processus

1. Introduction aux Ordonnanceurs


Définition : Un ordonnanceur (scheduler) est un composant du système d’exploitation qui
gère l’allocation des ressources (CPU, mémoire) aux processus. Il existe trois types
principaux :
• Ordonnanceur à court terme :
o Sélectionne le processus à exécuter parmi ceux en état prêt.
o Fréquence élevée (décisions en millisecondes).
• Ordonnanceur à long terme :
o Contrôle l’admission des nouveaux processus dans la file prêt.
o Gère le niveau de multiprogrammation pour équilibrer CPU et E/S.
• Ordonnanceur à moyen terme :
o Gère la suspension/ reprise de processus en cas de manque de
mémoire(swap out/in).

2. Critères d’Ordonnancement
L’objectif est d’optimiser l’efficacité du système selon des métriques comme :
• Utilisation du CPU : Maximiser le temps d’activité du CPU.
• Débit (Throughput) : Nombre de processus terminés par unité de temps.
• Temps de rotation (Turnaround) : Temps total entre l’arrivée et la terminaison
d’un processus.
• Temps d’attente : Temps passé dans la file prêt.
• Temps de réponse : Délai avant la première exécution.
3. Algorithmes d’Ordonnancement
• PAPS (FIFO) :
o Premier Arrivé, Premier Servi.
o Non préemptif : Inefficace pour les processus longs (risque d’attente élevée).
• Plus Court Temps d’Exécution (PCTE / SJF) :
o Priorité aux processus les plus courts.
o Version préemptive (PCTER / SRTF) : Interrompt le processus courant si un
nouveau processus plus court arrive. Optimal pour minimiser le temps d’attente
moyen.
• Ordonnancement par Priorités :
o Chaque processus a une priorité (nombre entier).
o Préemptif : Un processus plus prioritaire prend le CPU immédiatement.
• Tourniquet (Round Robin) :
o Chaque processus reçoit un quantum de temps CPU (ex: 10–100 ms).
o Préemptif : Équitable pour les systèmes interactifs (temps partagé).

4. Enjeux et Compromis
• Préemption : Permet une meilleure réactivité mais introduit des surcharges
(changements de contexte).
• Équité vs. Efficacité :
o Le Round Robin est équitable mais peut réduire le débit.
o Le PCTE maximise l’efficacité mais peut affamer les processus longs.

5. Applications
• Systèmes interactifs : Privilégient le temps de réponse (ex: Round Robin).
• Systèmes batch : Optimisent le débit (ex: SJF).
Optimisation : Les algorithmes hybrides (ex: priorités dynamiques) combinent
plusieurs critères pour adapter l’ordonnancement aux besoins du système.

Vous aimerez peut-être aussi