Vous êtes sur la page 1sur 31

Systèmes d’exploitation avancés

Chapitre 1 : La gestion des processus

Najar Yousra
Email : yousra.najar@isi.utm.tn

ISI 1 ére ingérieur 2020/2021


Plan du cours
 Gestion des Processus
 Synchronisation interprocessus/interblocage
 Gestion de la mémoire
 Gestion des périphériques
 Gestion de systèmes de fichiers
Plan du chapitre 1
• Rappels sur des notions de base sur les systèmes
• Notions de Processus
• Ordonnancement des processus
Notions de base
 Le système d’exploitation est une couche de logiciel. La
fonction du système d’exploitation est de masquer la
complexité du matériel et de proposer des instructions plus
simples à l’utilisateur. Le système d'exploitation est un
gestionnaire de ressources, c'est-à-dire qu'il contrôle
l'accès à toutes les ressources de la machine .
 Un système d’exploitation = noyau + logiciels utilitaires +
bibliothèques.
 Noyau est responsable de la gestion du matériel : processeur,
Ram, périphériques d’E/S .. …..
Notions de base
Un système d’exploitation peut être :
 Monoutilisateur/multiutilisateur : gère plusieurs utilisateurs en
leur offrant des espaces de travail protégés.

 Monoprocesseur/multiprocesseurs : gère l’execution des


processus sur plusieurs processeurs.

 Monoprogrammé/multiprogrammé : permet au processeur de


se partager entre tous les processus actifs. Ainsi, quand le
processeur atteint une instruction d'entrée-sortie, il interrompt le
programme en cours et passe à l'exécution d'un autre programme.

 Monotâche/multitâche : Les processus partage le temps


processeur. Le SE peut interrompre l’execution d’un processus
pour executer un autre.
Notions de base
 Un système d’exploitation propose deux modes de
fonctionnement : mode utilisateur (où certaines
instructions sont interdites) et mode superviseur (le
processeur peut exécuter toutes les instructions).

le système d'exploitation propose une interface de


programmation, c'est-à-dire qu'il permet d'accéder à un
certain nombre de fonctionnalités qu'il exécute pour
l'utilisateur. Les appels système sont l'interface proposée
par le système d'exploitation pour accéder aux différentes
ressources de la machine.
Exple : fork()
Notions de base
Les interruptions
 constituent une concept fondamental des systèmes
d’exploitation. Les interruptions peuvent être matérielles ou
logicielles.
 Une interruption est signal produit par un périphérique et
envoyé vers le processeur pour l’informer de la fin d’une E/S,
la production d’une erreur …
Les Processus
 Le processus est un concept fondamental de tout
système d’exploitation. Un processus est l’unité système
qui permet l’exécution d’un programme.

 Un processus est un programme en exécution +


contexte d’exécution.
◦ Il définit un objet dynamique (change d’ état
Et de taille) tandis que le programme est un
objet statique.
Les Processus
 Processus vs Programme
Les Processus
 Les processus doivent se charger dans la RAM pour s’executer
dans le processeur.
 Un processus s’exécute d’une manière séquentielle. Un
déroutement se produit par une erreur interne au processus
lors de l’execution (prévisible , ex division par zéro).
 Un système d’exploitation est responsable de la gestion des
processus :
• La création, suppression et interruption de processus
• L'ordonnancement des processus afin de décider d'un ordre
d'exécution équitable entre les utilisateurs tout en privilégiant
les processus du système.
• La synchronisation entre les processus ainsi que la
communication
• La gestion des conflits d'accès aux ressources partagées
Les Processus
 Structure arborescente
•Les processus sont organisés sous forme d’une arborescence
ou chaque processus a un seul père et peut avoir plusieurs fils.
•Un processus est identifié par un PID (Process IDentifier) et un
PPID (Parent Process IDentifier).
Exemple: L’arborescence des processus sous Linux.
Les Processus
 Les Etats
Lorsqu’un processus s’exécute; il change d’état. Il peut se trouver dans
l’un des trois états principaux suivants:
• Prêt (Ready) : le processus attend son
tour pour s’exécuter
• Élu (Running) : les instructions sont en
cours d’exécution.
• Bloqué (Sleep) : le processus bloqué en
attente d’événement: signal, E/S, …
Les Processus
L'espace mémoire utilisé par un processus est divisé en plusieurs zones. On
trouve en particulier le segment de code, le segment de données, la pile et le
tas.

Segment code : Le segment de code représente le programme


à exécuter. Il est toujours placé dans des zones
fixes de la mémoire
Segment données :est traditionnellement composé d'un
segment de données initialisées (les variables globales et
statiques) et d'un segment de données non initialisées qui
est créé dynamiquement.
Segment pile : Pour stocker les données obtenues en
Cours d'exécution, le système utilise un segment pile.
Les Processus
 Les systèmes d'exploitation manipulent deux structures de données
principales pour gérer les processus créés sur une machine : la table
des processus et le bloc de contexte d'un processus.

 La table des processus contient toutes les informations


indispensables au système d'exploitation pour assurer une
gestion cohérente des processus. Elle est stockée dans l'espace
mémoire du système d'exploitation, ce qui signifie que les processus
ne peuvent pas y accéder.

 Elle comporte une entrée par processus qui rassemble toutes les
informations concernant un processus aussi bien celles concernant
son exécution au niveau du processeur mais également des
informations sur les fichiers qu'il manipule ainsi que des informations
sur son occupation mémoire. Quant aux informations sur
l'occupation mémoire on y trouve par exemple des pointeurs sur les
différents segments code, données et pile.
Les Processus
 Contexte : PCB processes control block
 Chaque processus est représenté dans le système
d’exploitation par une structure de données contenant toute
information décrivant le contexte du processus appelé bloc
de contrôle (Process Control Bloc: PCB).

 Attributs d’un PCB:


◦ PID et PPID,
◦ État,
◦ Priorité,
◦ Compteur ordinal,
◦ Fichiers ouverts,
◦ Pointeurs: seg. code, seg. données, seg. Pile,
◦ Temps d’exécution.
Les Processus
 Commutation de contexte
 Sur un système multiprogrammé, le SE doit redonner le
contrôle du processeur d’un processus à un autre en
effectuant des commutations de contexte.

 La commutation de contexte
consiste a mémoriser le PCB
du processus courant et charger
le PCB du processus a élire
Les Processus
- Les thread
 Un processus contient au moins un thread de contrôle unique en plus
de l’espace d’adressage.
 Un thread ou encore processus léger (lightweight process) est une unité
d’exécution de code. il est issu d’un processus mais ne contenant que la
pile d’exécution.
- Les processus zombie
est un terme désignant un processus qui s'est achevé, mais qui dispose
toujours d'un identifiant de processus ( PID ) et reste donc encore
visible dans la table des processus.
- Les processus Orphelins
est un terme désignant un processus dont le pére s’est terminé avant lui.
Ordonnancement des processus
 Le SE est responsable de l’ordonnacement des processus : Étant
donnée un ensemble de processus prêts, l’Ordonnanceur
(scheduler) du SE doit choisir quel processus élire en utilisant un
algorithme d’ordonnancement.

Un bon algorithme d’ordonnancement :


1. Chaque processus doit avoir sa part de temps CPU : équité.
2. Utiliser le temps processeur à 100% : efficacité.
3. Minimiser le temps de réponse en mode interactif.
Ordonnancement des processus
 L’ordonnanceur choisi un processus parmi les processus prêts et
lui alloue le processeur :

 Chaque fois que le processus exécutant est interrompu


◦ un processus exécutant devient bloqué (4)
◦ un processus change d’élu à prêt (3)
◦ un processus exécutant se termine (6)

 Chaque fois qu’un nouveau processus est prêt


◦ un processus se présente en tant que nouveau (1)
◦ un processus change de bloqué à prêt (5)
Ordonnancement des processus
Deux paramètres sont utilisés pour juger de la performance et de
l’efficacité d’un algorithme d’ordonnancement : Temps de rotation
et temps d’attente.

 Temps de rotation = date de fin – date d’arrivée


 Temps rotation moyen = ∑ temps rotation / nbr processus

 Temps attente = temps de rotation – temps d’exécution


 Temps attente moyen = ∑ temps attente / nbr processus
Ordonnancement des processus
 Deux types d’algorithmes d’ordonnacement se distinguent :
1. Les algorithmes monotâche/non préemptif/ sans réquisition
Le SE ne peut pas interrompre l’execution d’un processus pour
exécuter un autre : FCFS, SJF, Priorité

2. Les algorithmes multitâche/ préemptif/ avec réquisition


Le SE interrompre l’execution d’un processus pour exécuter un autre
plus prioritaire :Tourniquet, SNRT, Priorité
Ordonnacement des processus
 Les algorithmes d’ordonnacement monotâche
Le processeur est réquisitionné :
- Terminaison d’un processus
- Demande d’une E/S

Rq :
ta : temps d’arrivée à la RAM (temps de création du processus)
te : temps estimé d’execution du processus (unités d’horloge
/ns demandés dans le CPU)
Pr: priorité du processus selon sa classe (système, utilisateur)
peut être dynamique/statique.
Ordonnacement des processus
 Les algorithmes d’ordonnacement monotâche
I. FCFS / FIFO (First comes First Served )
Critère : temps d’arrivée à la RAM (ta)
Principe : Le premier arrivée est le premier servi.
II. SJF (Shortest Job First )
Critère : temps d’execution(te)
Principe : Le processus qui demande le moins de te est élu.
III. Priorité sans interruption
Critère : Priorité statique (Pr)
Principe : Le processus le plus prioritaire est élu.
Ordonnacement des processus
 Application : Donnez le diagramme de Gant de
l’occupation du processeur pour le cas suivant :
- FIFO , SJF et priorité sans interruption
- Comparez
ta te Pr
P1 0 5 3
P2 1 3 2
P3 2 1 4
P4 4 2 1
Ordonnacement des processus
 Premier arrivé, premier servi, FCFS:
◦ Temps moyen d’attente non-optimal
◦ Mauvaise utilisation des ressources s’il y a apport continu de processus
aux cycles longs (v. effet d’accumulation)

 Plus court servi, SJF:


◦ Difficulté de prévoir la durée du prochain cycle
◦ Famine possible des processus ‘longs’ s’il y a apport continu de
processus aux cycles courts.

 Donc besoin d’une méthode systématiquement préemptive


 si vous faites toujours les devoirs les plus courts en premier, vous pourriez avoir
l’impression de faire beaucoup mais vous pourriez ne jamais arriver aux plus
longs…
 si vous faites les devoirs dans l’ordre d’arrivée, les longs pourraient vous bloquer
pour longtemps…
 donc votre solution est de donner un peu de temps à chacun, cycliquement
Ordonnacement des processus
 Les algorithmes d’ordonnacement multitâche
Le processeur est réquisitionné :
- Terminaison d’un processus
- Demande d’une E/S
- Arrivée d’un processus plus prioritire / fin du quantum
Ordonnacement des processus
 Les algorithmes d’ordonnacement multiotâche
I. Tourniquet (Round Robin)
Critère : temps d’arrivée à la RAM (ta)
Principe : Les processus sont ordonnés par ordre d’arrivée. Le
premier s’execute pendant un quantum de temps Q et retourne à
la fin de la liste.
II. SNRT (Shortest Next Remainning Time)
Critère : temps d’execution(te)
Principe : Le processus qui demande le moins de te est élu. Lorsqu’un
processus avec un te < te restant de celui en cours 
commutation.
III. Priorité avec interruption
Critère : Priorité statique (Pr)
Principe : Le processus le plus prioritaire est élu. Lorsqu’un processus
avec un pr > pr de celui en cours  commutation.
Ordonnacement des processus
 Application : Donnez le diagramme de Gant de
l’occupation du processeur pour le cas suivant :
- RR (Q=2) , SNRT et priorité avec interruption
- Comparez

ta te Pr
P1 0 5 3
P2 1 3 2
P3 2 1 4
P4 4 2 1
Ordonnacement des processus
Comparatifs
 Algorithmes avec priorité statique lors de l’ exécution
(FIFO, priorité statique ) présentent un problème
d’équité.

 Algorithmes avec priorité dynamique qui augmente


avec l’exécution (SJF, SRT) présentent un problème de
famine pour les processus de faible priorité.

 Les algorithmes avec des priorités dynamique qui


diminue lors de l’exécution (RR, priorité dynamique)
sont équitables.

 Le choix du quantum dans l’algorithme tourniquet


Linux vs Windows
 Windows
Sous Windows NT, XP, Vista, l’ordonnanceur est de type
« Multilevel feedback queue » :
- Plusieurs queues (FIF0) classées selon la priorité des
processus
- Chaque processus s’execute pendant un Q
- Si un processus consomme bcp de temps processeur il passe
à la queue de priorité inférieur.
 Linux
Politique du tourniquet modifié = Tourniquet avec priorités
dynamiques
Ordonnacement multiprocesseurs

 Architectures multi-processeurs/multi-cores
Les cores peuvent être :
-homogènes (mm vitesse)
-Hétérogènes (vitesse différentes)

 Algorithmes d’ordonnancement multiprocesseurs


- Affectation des tâches au processeurs : selon la
charge des processeurs ( migration des processus)
- Ordonnancement des tâches sur les
processeurs.

Vous aimerez peut-être aussi