Vous êtes sur la page 1sur 34

Institut National de la Poste et des TIC

Cours Système d’Exploitation II


Groupe IGE 03

Chapitre 1: Notions de parallélisme, de coopération


et de compétition

Zendaoui Fairouz
2021-2022
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Plan du cours

Introduction

Parallélisme

Outils de parallélisme

Problématique
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Introduction

Le système d'exploitation et le système informatique

Le matériel (hardware) d'un système informatique est composé : de


processeurs qui exécutent les instructions, de mémoire centrale qui
contient les données et les instructions à exécuter (en binaire), de
mémoire secondaire qui sauvegarde les informations et de
périphériques d'Entrées/Sorties (clavier, souris, écran, modem, etc.)
pour introduire ou récupérer des informations.
Les logiciels (software), d'un système informatique, sont à leur tour
divisés en programmes système qui font fonctionner l'ordinateur : le
système d'exploitation et les utilitaires (compilateurs, éditeurs,
interpréteurs de commandes, etc.) et en programmes d'application qui
résolvent des problèmes spécifiques des utilisateurs.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Introduction

Le système d'exploitation et le système informatique

Couches d'abstraction d’un système informatique


Chapitre 1: Notions de parallélisme, de coopération et de compétition

Introduction

Définition de système d’exploitation

 Un Système d’Exploitation (noté SE ou OS, abréviation du terme


anglais Operating System) peut être défini comme un logiciel qui, dans
un système informatique, pilote les dispositifs matériels et reçoit des
instructions de l’utilisateur ou d’autres logiciels (ou applications).

 Un SE est un ensemble de programmes qui coopèrent à la gestion


optimale des ressources (processeur, mémoire, périphériques) de la
machine (ordinateur) entre les différents programmes qui y font appel.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Introduction

Rôle du système d’exploitation

• Gérer l'allocation des processeurs entre les différents


Gestion des processeurs programmes grâce à un algorithme d'ordonnancement

• Gérer l’exécution des processus en leur affectant les


Gestion des processus ressources nécessaires à leur bon fonctionnement.

• Gérer l'espace mémoire alloué à chaque processus


Gestion des mémoires

• Gère l’organisation du disque dur et du système de


Gestion des fichiers fichiers

• Donne l’illusion du multitâche


Gestion du parallélisme
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Introduction

Définition de processus

Un processus représente l’exécution d’un programme comportant des


instructions et des séquences.

C’est une entité dynamique (active) créée à un instant donné, qui disparaît
en général au bout d’un temps fini, représentant l’exécution d’un
programme sur un processeur.

Processus=instructions + ressources
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Introduction

Différence entre processus et programme

 Le programme est une description statique des instructions.

 Le processus est une activité dynamique ayant un début, une fin et un


état qui évolue au cours du temps.

Exemple de processus:
Le calcul de la moyenne des notes (programme utilisateur)
Les commandes DOS: copy, find (programmes systèmes)
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Introduction

Différence entre processus et programme

Du programme au processus
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Introduction

Bloc de contrôle de processus

Chaque processus est représenté dans le système d’exploitation par un bloc de


contrôle de processus appelé en anglais: Process Control Bloc « PCB »
contenant des informations dynamiques sur l’état d’exécution du processus.
Le PCB contient les informations suivantes:
• L’identificateur de processus : IDP
• L’état actuel du processus
• La valeur du compteur ordinal qui indique la prochaine instruction à exécuter.
• Information sur la gestion de la mémoire
• Priorité du processus
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Introduction

Ordonnancement des processus

Définition
L’ordonnanceur (scheduler en anglais) est un programme du SE qui s’occupe de
choisir, selon une politique (ou algorithme) d’ordonnancement donné, un processus
parmi les processus prêts pour lui affecter le processeur.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Introduction

Ordonnancement des processus

Critères d’évaluation entre les algorithmes d’ordonnancement

Utilisation du Capacité de Temps de


Temps d’attente
processeur traitement réponse
• Un bon • C’est le nombre • C’est le temps • C’est le temps
algorithme de processus passé à attendre passé depuis
d’ordonnanceme terminés par dans la file l’admission (état
nt sera celui qui unité de temps. d’attente des prêt) jusqu’à la
maintiendra le processus prêts. terminaison (état
processeur aussi fini).
occupé que
possible.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Introduction

Opérations sur les processus

Création de processus

Pendant son exécution, un processus peut créer plusieurs nouveaux


processus par l’intermédiaire d’un appel système de création de processus.
Le processus effectuant la création s’appelle père et le processus créé est
dit fils. Le processus père peut répartir ses ressources entre plusieurs de ses
fils. Il peut transférer des données d’initialisation au fils.

Terminaison de processus

La terminaison d’un processus peut avoir lieu de deux façons


• Terminaison normale : à la fin de l’exécution de sa dernière instruction.
• Terminaison anormale : si un mauvais fonctionnement est détecté.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Introduction

Etats d’un processus

L’évolution des processus passe par différents états allant de la naissance à la


destruction au bout d’un temps fini.

Etat prêt Si le processus dispose de toutes les ressources nécessaires à


son exécution à l’exception du processeur.

Etat élu Processus en cours d’exécution sur le processeur.

Etat en Si le processus ne dispose pas du processeur et d’autres


attente ressources ou de données nécessaires à son exécution.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Introduction

Etats d’un processus

Diagramme d’état d’un processus


Chapitre 1: Notions de parallélisme, de coopération et de compétition

Introduction

Relation entre processus

 Dans un système, plusieurs processus peuvent se dérouler


simultanément. Ces processus résultent de l’exécution de
programmes.
 Durant leur évolution, les processus d’un système interagissent les uns
avec les autres.
 Selon que les processus se connaissent mutuellement ou pas, ces
interactions en deux types qui sont : Coopération / Compétition.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Introduction

Relation entre processus

Compétition
C’est la situation dans laquelle plusieurs processus doivent utiliser
simultanément une ressource critique à accès exclusif (ressource ne peut
être utilisée que par un seul processus à la fois ).

Exemples : Imprimante, variable globale.


Une solution possible (mais non la seule) pour gérer la compétition : faire attendre
les processus demandeurs jusqu’à ce que l’occupant actuel ait fini (premier arrivé,
premier servi) (FIFO).
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Introduction

Relation entre processus

Coopération
 Si les processus se connaissent mutuellement, on parle alors de
coopération. C’est la situation dans laquelle plusieurs processus collaborent
à une tâche commune et doivent synchroniser pour réaliser cette tâche.
 Un processus est dit coopératif s’il peut affecter les autres processus en
cours d’exécution dans le système ou être affecté par exécution.
Exemples :
 P1 produit un fichier, p2 imprime le fichier.
 P1 met à jour un fichier, p2 consulte le fichier.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Introduction

Gestion des processus

C’est le SE qui est responsable de:

Allocation de ressources aux processus

Création, terminaison des processus

Suspension, reprise des processus

Communication, synchronisation entre processus


Chapitre 1: Notions de parallélisme, de coopération et de compétition

Parallélisme

Définition

La simultanéité ou parallélisme est l’activation de plusieurs processus en


même temps afin d’avoir des machines performantes soit en temps
d’exécution soit en complexité de programmes.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Parallélisme

Exemple
Soit le programme suivant :

I1: lire(a)
I2: lire(b)
I3: c=a+b
I4: ecrire(c)

 L'instruction I1 et I2 peuvent s'exécuter en même temps; on dit alors qu’il y a un


parallélisme entre eux;

 L'instruction I4 ne peut s'exécuter avant les autres instructions car il y une


contrainte de dépendance entre eux.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Parallélisme

Exemple
Soit le programme suivant :
I1: lire(a)
I2: lire(b)
I3: c=a+b
I4: ecrire(c)

Dans langage Pascal, l'instruction PARBEGIN et PAREND permettant de délimiter


un bloc d'instructions en parallèles
PARBEGIN
lire(a)
lire(b)
PAREND
c=a+b
Écrire(c)
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Parallélisme

Types

 Si le nombre de processeurs est supérieur ou égal au nombre de


processus on parle de la simultanéité totale ou parallélisme réel.

 Sinon, on parle du pseudo-simultanéité ou parallélisme apparent.


Chapitre 1: Notions de parallélisme, de coopération et de compétition

Parallélisme

Parallélisme apparent

C’est l’exécution de plusieurs processus sur un seul processeur où on utilise


une commutation temporelle pour basculer l’exécution entre ces processus.

Exemple:
Dans les systèmes temps partagé, on utilise l’ordonnancement par
tourniquet pour réaliser ce parallélisme:
• Conceptuellement, chaque processus a son propre processeur virtuel et
son compteur ordinal.
• Concrètement, un seul processeur et un seul compteur ordinal.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Parallélisme

Parallélisme réel

C’est l’exécution d’un ensemble de processus (non forcément identiques).


La communication entre ces processus est faite via des lignes spécialisées.

Exemple:
Les systèmes répartis dont l’objectif est de masquer l’aspect répartition aux
utilisateurs.
 L’utilisateur accède aux ressources éloignées de la même façon que les
ressources locales.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Outils de parallélisme

Le multitâches

• On appelle une tâche une unité élémentaire de traitement ayant une


cohérence logique.

• L’exécution du processus P est constituée de l’exécution séquentielle


des tâches: T1, T2,…, TN. P= T1, T2,…, TN.
• L’exécution séquentielle des tâches: T1, T2,…, TN est régie par une
relation de précédence entre tâches.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Outils de parallélisme

Le multitâches

• Plusieurs tâches peuvent être présentées et simultanément actives à un


moment donnée dans la MC. Ces tâches sont totalement
indépendantes les unes des autres.

• Le SE permet de partager le temps CPU entre plusieurs programmes qui


semblent s’exécuter simultanément.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Outils de parallélisme

Le multithreading

• Un processus léger (en anglais, thread), est similaire à un processus car


tous deux représentent l’exécution d’un ensemble d’instructions du
langage machine d’un processeur.

• Un processus est une exécution d'un programme mais un thread est une
séquence d'exécution unique au sein du processus. Un processus peut
contenir plusieurs threads.

• Là où chaque processus possède sa propre mémoire virtuelle, les


processus légers appartenant au même processus père se partagent sa
même mémoire virtuelle, sa section de code, sa section de données et
d’autres ressources système.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Outils de parallélisme

Le multithreading

C’est une technique typiquement utilisés dans la conception de logiciels.

Exemple: Un traitement de texte peut avoir:


 Un thread qui affiche les graphiques.
 Un thread qui lit les touches tapées.
 Un thread qui effectue des corrections orthographiques.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Outils de parallélisme

Le multithreading

Avantages :
 Permet à une application de continuer l’exécution même si l’une de ses
parties est bloquée ou effectue une opération de longue durée.
 Partage de ressources entre les threads d’un même processus.
 L’économie d’allocation mémoire et le temps d’exécution.
 Bonne méthode dans les architectures parallèles.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Problématique

Exemple de concurrence
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Problématique

Exemple de concurrence et d’interaction

On peut considérer deux processus User et Client logiquement parallèles,


toute fois, ils ne se déroulent pas simultanément toujours.
Lorsque User utilise le processeur, l’exécution de Client soit suspendue.

Ce conflit est dû à une insuffisance de ressources ainsi que d’autres


interactions comme:

o Client ne doit pas pouvoir accéder à une zone mémoire que User est en
train d’écrire.
o Lorsqu’une zone mémoire contient une valeur, User doit réveiller
Client s’il est inactif.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Problématique

Interactions entre processus

Cet exemple met en évidence l’existence de différents types d’interaction


entre les processus qui coopèrent pour accomplir une tâche spécifique:

 Conflit pour l’accès simultané à une ressource qui ne peut être utilisée
que par un seul processus à la fois.
 Action directe d’un processus sur un autre: mise en attente ou réveil.
Chapitre 1: Notions de parallélisme, de coopération et de compétition

Problématique

Mécanismes d’interaction

Alors, on peut considérer un système d’exploitation comme un ensemble de


processus parallèles pouvant s’interagir ensemble; et pour mettre en
œuvre ces processus tout en réalisant ces interactions, on a deux problèmes
à résoudre:

1) Ecrire des programmes décrivant chacun son activité individuelle.

2) Concevoir des mécanismes d’interaction permettant les différents


moyens de coopération t de compétition entre ces processus: Exclusion
mutuelle, synchronisation et communication de l’information.

Vous aimerez peut-être aussi