Vous êtes sur la page 1sur 26

UNIVERSITÉ CHADLI BENDJEDID – EL-TARF ‫جـــامعـة الشــاذلي بن جديـــد – الطــــارف‬

FACULTÉ DES SCIENCES ET DE LA TECHNOLOGIE ‫كليـــــة العلـــــــــــــوم والتكنولوجيــــــا‬


DÉPARTEMENT D’INFORMATIQUE ‫قســـم االعـالم االلـــــي‬

Module :
SYSTÈMES D‘EXPLOITATION II

‫مــخبر هــندسـة‬
‫األنـظمـة الـمعقـدة‬
LABORATOIRE D’INGÉNIERIE
DES SYSTÈMES COMPLEXES

Enseignant : Dr. Sassi BENTRAD


LISCO Laboratory (UBMA) / UCBET

sassi_bentrad@hotmail.fr
bentrad-sassi@univ-eltarf.dz

Année Pédagogique : 3ème Année Année Universitaire : 2020 / 2021


SOMMAIRE DU CONTENU
 NOTIONS DE PARALLÉLISME,
DE COOPÉRATION ET DE COMPÉTITION
(10 %)

❑ Rappels sur les SEs.


❑ Notions de base :
✓ Programme,

✓ Processus,
✓ Thread et

✓ Ressource partagée.

❑ ...
SYSTÈMES D‘EXPLOITATION II

1
NOTIONS DE PARALLÉLISME,
DE COOPÉRATION ET DE COMPÉTITION (10 %)

Ce premier chapitre rassemble des concepts essentiels et des généralités sur le


système d’exploitation; ainsi qu’une vue globale sur leur fonctionnement .
1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 01
❖ NOTION DE PROCESSUS

Dans un système, plusieurs activités se déroulent simultanément, ou


en séquentiel et présentent des interactions mutuelles.
Ces activités résultent de l'exécution de programmes (système /
utilisateur).

❑ Définition d’un Processus

▪ Un processus (process) représente l'exécution d'un programme


comportant des instructions et des ressources.

▪ C'est une entité dynamique (active) créée à un instant donné,


qui disparaît en général au bout d'un temps fini.

UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD


1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 02
❖ NOTION DE PROCESSUS

❑ Définition d’un Processus

▪ Un processus évolue généralement dans un contexte où il existe


d'autres processus qui utilisent des ressources variées d'où la
nécessite de coordonner entre les différents processus.

▪ Un programme est une entité passive. Il peut engendrer un ou


plusieurs processus.

Processus : un programme en cours d’exécution


+ son contexte d’exécution
Processus = Instructions + Ressources

UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD


1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 03
❖ NOTION DE PROCESSUS

❑ Exemple de Processus

Le calcul de la paie et l'impression des fiches de paie donnent naissance


à deux processus.
▪ Processus 1 : Calcul Paie
Calcule la paie d'un employé en utilisant les informations sur
l'employé.

▪ Processus 2 : Impression
Il imprime la fiche de paie fournie par le processus 1.

Chaque processus évolue par l'exécution de ses instructions


respectives en utilisant un ensemble de ressources telles que : la
mémoire, processeur, imprimante, fichier de données ...
UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD
1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 04
❖ 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 : lorsque la tâche pour
laquelle ils ont été créés est achevée ou abandonnée.

Exit

Élu
Interrompu

Diagramme d’Etats d’un Processus

UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD


1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 05
❖ ETATS D’UN PROCESSUS

Voici une brève explication de chacun de ces états :

▪ Nouveau. Processus en cours de création

▪ Prêt. le processus est placé dans la file d’attente des processus


prêts, en attente de son affectation au processeur.

▪ Exécution. le processus a été affecté à un processeur libre. Ses


instructions sont en exécution.

▪ Attente. Si le processus ne dispose pas du processeur et d'autres


ressources ou de données nécessaires à son exécution. Le processus
attend qu’un événement se produise, comme l’achèvement d’une
opération d’E/S ou la réception d’un signal.

▪ Terminé. le processus a terminé son exécution.

UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD


1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 06
❖ MATÉRIALISATION DES PROCESSUS

Le bon fonctionnement d’un système informatique impose la gestion et le


contrôle des différents processus. A cette fin, le système garde un
ensemble d’informations sur chacun des processus présents
(matérialisation des processus).

Cet ensemble est souvent appelé vecteur d’état ou bloc de contrôle


de processus (en anglais PCB pour Process Control Bloc).

Le vecteur d’état est un enregistrement contenant des informations qui


varient d’un processus à l’autre.

Vu qu'un processus est décrit via une diversité d'informations. Chaque


processus est représenté dans le système d'exploitation par ce bloc de
contrôle « PCB ».

UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD


1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 07
❖ MATÉRIALISATION DES PROCESSUS

Le « PCB » est une structure de données particulière du noyau d'un


système d'exploitation représentant l'état d'un processus donné.

Diverses implémentations existent selon les systèmes d'exploitation, mais


un PCB contient en général 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 (la table des pages
mémoires utilisées par le processus)
▪ Valeurs des différents registres du processeur
▪ Priorité du processus
▪ Pointeur sur les files de chaînage

UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD


1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 08
❖ MATÉRIALISATION DES PROCESSUS

Lors d'un changement de contexte, le


processus en cours est arrêté et un autre
processus peut utiliser le CPU.

Le noyau doit arrêter l'exécution du


processus en cours, copier les valeurs
des registres hardware dans le PCB,
et mettre à jour les registres avec les
valeurs du nouveau processus.

Représentation interne
d’un processus : PCB
UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD
1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 09
❖ MATÉRIALISATION DES PROCESSUS

Généralement, dans les systèmes d’exploitation, l’ensemble des blocs de


contrôle des processus forme une table dite table des processus. Elle
peut être statique ou dynamique.

La création d’un processus revient à réserver et initialiser une entrée


dans cette table.

Pour leur évolution, les processus ont besoin de données (fichiers),


mémoire destiné à les contenir, de l'unité centrale, de périphériques...

Nous appelons toutes ces entités ressources. Une ressource peut être
locale ou commune.

Une ressource commune qui ne peut être utilisé que par un seul
processus à la fois est dite critique, Sinon elle est partageable par un
ensemble de processus simultanément.

UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD


1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 10
❖ OPÉRATIONS SUR LES PROCESSUS

Bien qu’au départ, la notion de processus était un concept transparent


pour l’utilisateur (séparation Hard-Soft qui crée une indépendance vis à
vis du matériel), on s’est très vite rendu compte de l’intérêt de son
introduction en tant que concept dans les langages de
programmation.

Cet intérêt s’est confirmé avec la prolifération des systèmes


multiprocesseurs et des réseaux d’ordinateurs.

Actuellement, des langages dits concurrents offrent des constructions


qui permettent la création de processus.

Par exemple, le Pascal concurrent dispose de trois concepts : Process,


Classes et Monitors. Le concept de Process permet la déclaration d’un
module comme étant un processus.

UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD


1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 11
❖ OPÉRATIONS SUR LES PROCESSUS

A. Création

La création proprement dite est faite soit par l’exécution


d’instructions appropriées que le compilateur insère dans les
programmes des utilisateurs, soit suite au chargement d’un
programme.

Dans les deux cas, la création d’un processus se fait toujours par un
autre processus. Le processus effectuant la création s'appelle père et
le processus créé est dit fils.

Une commande spéciale (appel système de création de processus)


est utilisée à cette fin : CREATE nom-processus.

UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD


1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 12
❖ OPÉRATIONS SUR LES PROCESSUS

A. Création

Le processus père peut répartir ses ressources entre plusieurs de


ses fils.
Le processus père peut transférer des données d'initialisation au fils.
La descendance d’un processus est définie récursivement comme
suit :

▪ Un processus P2 créé par P1 appartient à la descendance de P1.


▪ Si un processus P1 crée un processus P2, alors la descendance de
P2 fait aussi partie de la descendance de P1.

UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD


1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 13
❖ OPÉRATIONS SUR LES PROCESSUS

B. Terminaison de processus

La terminaison (ou destruction ) 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é
ou que le processus n'est pas utile. Une commande spéciale (appel
système) est utilisée à cette fin : KILL nom-processus.
La terminaison d'un processus entraîne :
▪ Destruction de sa descendance
▪ Libération de l'entrée correspondante dans la table des processus
▪ Libération des ressources occupées par le processus.

UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD


1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 14
❖ NOTION DE COMPÉTITION ET COOPÉRATION

❑ 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 ne se


connaissent pas.

❑ Ces interactions sont de deux types qui sont : Coopération /


Compétition.

UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD


1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 15
❖ NOTION DE COMPÉTITION ET COOPÉRATION

❑ Les processus ne se connaissent pas


Dans ce cas, on a affaire à une compétition. Les processus ignorent
leur existence mutuelle mais rentrent en conflits pour l'utilisation des
ressources (mémoire, processeur, périphérique, fichier, etc.) dites
Ressources Critiques.

Pour résoudre ces conflits, il faut :


 Soit avoir un nombre important de ressources (Supérieur ou
égal au nombre des demandes des processus).

 Soit contrôler ces processus par des règles d'utilisation de


ressources. Ces règles visent à sérialiser dans le temps les
utilisations d'une ressource donnée par des processus (voir la figure
suivante).
UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD
1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 16
❖ NOTION DE COMPÉTITION ET COOPÉRATION

❑ Les processus ne se connaissent pas

Compétition pour une ressource et sérialisation de l’utilisation

UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD


1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 17
❖ NOTION DE COMPÉTITION ET COOPÉRATION

❑ Les processus ne se connaissent pas


Exemple:
Pour comprendre ce type de conflits, considérons les accès simultanés
à un compte bancaire; où deux processus effectuent des débits de,
respectivement, 5000 DA et 7000 DA. La valeur initiale du compte
étant 15000 DA.

Les deux processus exécutent les actions suivantes :

UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD


1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 18
❖ NOTION DE COMPÉTITION ET COOPÉRATION

❑ Les processus ne se connaissent pas


On remarque qu'une exécution en série de ces deux processus donne à
Compte la valeur 15000 - 5000 - 7000 = 3000 DA. Maintenant, une
exécution simultanée ou en chevauchement des deux processus peut
conduire à la situation suivante :

Comme Compte est une seule variable, c'est la dernière mise à jour
qui persiste et la valeur finale est 8000. Un autre scénario est possible où
la valeur de Compte peut finir à 10000. Dans les deux cas, il y a perte
d'une mise à jour de Compte (soit Compte := Compte - 5000 soit
Compte : = Compte - 7000 ). Pour résoudre ce problème, une
sérialisation des processus s'impose.
UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD
1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 19
❖ NOTION DE COMPÉTITION ET COOPÉRATION

❑ Les processus se connaissent mutuellement


Il s'agit ici de coopération. Dans ce type d'interaction, les processus
n'entrent pas seulement en compétition pour les ressources critiques,
mais échangent aussi des informations soit par message soit par
partage de variables.

 Dans la coopération par partage de variables, connue aussi


sous le nom d'action indirecte, les processus n'ont pas besoin de
se connaître explicitement. C'est le cas dans les bases de données,
par exemple, où un processus met à jour un fichier qui sera utilisé
par d'autres et réciproquement.

 Dans la coopération par échange de messages, les processus


disposent de primitives d'envoi et de réception (Send et Receive)
qui leur permettent de communiquer. On parle, dans ce cas,
d'action directe.
UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD
1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 20
❖ NOTION DE SECTIONS CRITIQUES

❑ Le code exécuté par un processus peut être regroupé en sections.

❑ Certaines d'entre elles (ces sections) ont besoin d'accéder aux


ressources critiques et d'autres non; les premières sont appelées
sections critiques.

Section Critique = toute section de code (séquence d’instructions)


manipulant de ressources communes (variables communes, …)

❑ Pour éviter les compétitions d'accès, un mécanisme est indispensable


afin de bien synchroniser l'exécution au sein des sections
critiques.

UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD


1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 21
❖ NOTION DE THREAD

❑ Idée.

Un processus est défini par les ressources qu'il utilise et par


l'emplacement mémoire sur lequel il s'exécute.

Il serait intéressant que les ressources soient partagées et que l'on


puisse y accéder d'une manière concurrentielle.

UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD


1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 22
❖ NOTION DE THREAD

❑ Solution. Création de plusieurs threads à l'intérieur du même


processus.

Un Thread est un Processus léger.

▪ Les processus servent à regrouper les ressources, les threads


sont les entités planifiées pour leur exécution par le processeur.

▪ Le concept de thread a pour objet de permettre à plusieurs


threads d'exécution de partager un jeu de ressources pour
travailler ensemble afin d'accomplir une tâche donnée.

▪ Le terme multithreading est employé pour décrire la situation


dans laquelle plusieurs threads sont présents dans le même
processus.

UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD


1. NOTIONS DE PARALLÉLISME, DE COOPÉRATION ET DE COMPÉTITION 23
❖ NOTION DE THREAD

❑ T

Un serveur Web multithread

Un traitement de texte à
trois threads

UCBET ‐ SE II © 2018 - Dr. Sassi BENTRAD

Vous aimerez peut-être aussi