Groupe 6 Tpe326

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 15

RÉPUBLIQUE DU CAMEROUN REPUBLIC OF CAMEROON

Paix-Travail-Patrie Peace-Work-Fatherland
******* ********
MINISTERE DE L’ENSEIGNEMENT SUPERIEUR MINISTRY OF HIGHER EDUCATION
******* *******
UNIVERSITE DE MAROUA THE UNIVERSITY OF MAROUA
******* *******
FACULTÉ DES SCIENCES FACULTY OF SCIENCE
******* **********

THEME: LES
PROCESSUS
NIVEAU: 3 INFORMATIQUE

NOMS ET PRENOMS MATRICULES

MENWA MENWA EMMANUEL CM-UMA-23FS0781

MINDEKOHOM BAIDE DESTIN 21A0900FS


MOUMINE ABDOULAYE ABSAKINE 21A0818FS
NENBA VICTORIEN DIEUDONNE 20A0479FS
NGANDEU WOKALA FRANCKLIN 21A0948FS
DELARNAUD
NGARADOUM RODRIGUE 21A0862FS
NONO FRANKLIN 20A0517FS
NOUFAISSA HAMIDOU 21A0922FS
IGNABAYE SING-YABE MEDARD 21A0919FS

Sous l’encadrement de :

Dr. DJAM-DOUDOU
MOUNIRAH

Année académique : 2023 / 2024


TABLE DES MATIERES
INTRODUCTION .......................................................................................................... ii

I. NOTIONS SUR LES PROCESSUS .................................................................... 1

1. Structures d’un processus .............................................................................. 1

2. Types de processus......................................................................................... 1

II. OPERATIONS SUR LES PROCESSUS .......................................................... 3

III. ETATS D’UN PROCESSUS ............................................................................ 4

IV. COMMUTATION ET ORDANANCEMENT DES PROCESSUS ................. 4

1. COMMUTATION DES PROCESSUS ......................................................... 4

2. ORDONNANCEMENT DES PROCESSUS ................................................ 5

V. LA SYNCHRONISATION ET LA COMMUNICATION
INTERPROCESSUS ................................................................................................... 7

1. La synchronisation interprocessus ................................................................. 7

2. La communication interprocessus (IPC) ........................................................ 8

VI. LE PROBLEMES DES PRODUCTEURS ET DES CONSOMMATEURS ... 8

CONCLUSION ............................................................................................................. 10

Bibliographie................................................................................................................. 11
LISTE DES FIGURES

Figure 1:Schema du PCB ........................................................................................................ 1


Figure 2:Quelques commandes ............................................................................................... 3
Figure 3:Etats d'un processus ................................................................................................. 4
INTRODUCTION

Un processus est une instance en cours d'exécution d'un programme. Il représente l'unité
d'allocation des ressources (mémoire, temps processeur, entrées/sorties) et d'ordonnancement
par le système d'exploitation. Les processus sont des éléments fondamentaux d'un système
d'exploitation. Ils représentent l'exécution d'un programme et permettent de gérer la
concurrence entre plusieurs programmes en cours d'exécution. Cet exposé vous permettra de
comprendre les concepts clés liés aux processus, tels que leur création, leur planification, leur
synchronisation et leur communication.
I. NOTIONS SUR LES 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 ,un
processus représente donc 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.

1. Structures d’un processus


Au moment du chargement d’un programme exécutable, le SE lui crée une structure
représentant le processus associé. Cette structure devrait contenir toutes les informations
nécessaires permettant l’évolution dynamique du processus au sein du SE, entre autre son
contexte, son état, …cette structure est appelée le Bloc de Contrôle du Processus (PCB).

Pour manipuler tous les processus, le SE détient d’une table de processus qui sont dont
chaque entrée contient un pointeur vers un PCB d’un processus.

Le schema ci-dessous presente le PCB

Figure 1:Schema du PCB

2. Types de processus
a. Par le rôle du processus
❖ Processus en premier plan (Foreground Processes) : Ce sont des processus
actuellement utilisés et sur lesquels l'utilisateur se concentre. Par exemple, le navigateur
web que vous utilisez pour lire ce texte ou un logiciel de montage vidéo sur lequel vous
travaillez activement sont des processus en premier plan.
❖ Processus en arrière-plan (Background Processes) : Ces processus

s'exécutent en arrière-plan sans nécessiter d'interaction directe de l'utilisateur.


Des exemples incluent un logiciel antivirus surveillant constamment votre

système, un lecteur de musique fonctionnant en arrière-plan, ou un gestionnaire


de téléchargement téléchargeant silencieusement des fichiers.
❖ Processus démons (Daemon Processes) : Ce sont des processus système qui
s'exécutent continuellement en arrière-plan sans intervention de l'utilisateur. Ils sont
essentiels pour la fonctionnalité de base du système d'exploitation, tels que la gestion
des périphériques matériels, la gestion des connexions réseau, ou la gestion des journaux
système.

b. Par la relation de processus :


❖ Processus indépendants (Independent Processes) : Ces processus fonctionnent
entièrement par eux-mêmes, sans aucune interaction ou communication avec d'autres
processus. Ils disposent de leur propre espace mémoire dédié et de leurs propres
ressources.
❖ Processus parent et enfant (Parent and Child Processes) : Un processus parent peut
créer un ou plusieurs processus enfants. Le processus parent peut communiquer et
synchroniser avec ses processus enfants, influençant potentiellement leur exécution.
Cela est souvent utilisé pour diviser des tâches complexes en unités plus petites et
gérables.
❖ Processus frères et sœurs (Sibling Processes) : Ce sont des processus qui partagent le
même processus parent. Ils peuvent potentiellement accéder aux ressources partagées
allouées par le processus parent, mais ne communiquent généralement pas directement
entre eux.

c. Par le mode d'exécution :


❖ Processus séquentiels (Sequential Processes) : Ces processus exécutent leurs étapes
dans un ordre strict, l'une après l'autre. Chaque étape doit être terminée avant que la
suivante puisse commencer.
❖ Processus parallèles (Parallel Processes) : Ces processus permettent à plusieurs étapes
de s'exécuter simultanément, améliorant potentiellement les performances globales.
Cependant, la gestion de la synchronisation et de la communication entre les tâches
parallèles peut être plus complexe.
❖ Processus distribués (Distributed Processes) : Ces processus s'étendent sur plusieurs
ordinateurs, travaillant ensemble pour accomplir une tâche commune. Ils nécessitent
des mécanismes de coordination et de communication pour assurer une collaboration
efficace.etc..

II. OPERATIONS SUR LES PROCESSUS


a. 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.

b. 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é ou que le
processus n’est pas utile. Une commande spéciale est utilisée à cette fin : KILL
nomprocessus

c. Quelques commandes pour la gestion des processus

Commandes Windows Linux

Creation d’un process Createprocess() Fork()

Terminer un process Taskkill Kill(), exit()

La liste des process Tasklist Ps

Obtenir son PID GetCurrentProcessId() Getpid()

Mise en someil d’un process WaitForSingleObject() Wait()

Figure 2:Quelques commandes


III. ETATS D’UN PROCESSUS
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….

L`évolution des processus passe par différents états allant de la naissance à la destruction
au bout d`un temps fini (Figure 3).

• Etat Prêt. si le processus dispose de toutes les ressources nécessaires à son


exécution à l’exception du processeur.
• Etat Elu (en Exécution). Processus en cours d`exécution sur le processeur

• Etat bloqué. Si le processus ne dispose pas du processeur et d`autres ressources ou de


données nécessaires à son exécution.

Figure 3:Etats d'un processus

IV. COMMUTATION ET ORDANANCEMENT DES PROCESSUS

1. COMMUTATION DES PROCESSUS


La commutation des processus fait référence au mécanisme par lequel un système
d'exploitation suspend l'exécution d'un processus en cours pour permettre à un autre processus
de s'exécuter. La nécessité de commutation peut survenir pour diverses raisons, telles que
l'attente d'une ressource, une interruption matérielle, l'expiration du temps alloué (quantum) du
processeur ou une demande de basculement volontaire par le processus lui-même.
Lorsqu'un processus est commuté, son état (contexte) est sauvegardé pour pouvoir
reprendre son exécution ultérieurement. Le contexte comprend généralement des informations
telles que les valeurs des registres du processeur, le pointeur d'instruction et les données
associées. Une fois que le processus est commuté et qu'un autre processus est sélectionné pour
s'exécuter, le système d'exploitation restaure le contexte du nouveau processus à partir de la
sauvegarde précédente et lui donne accès au processeur.

La commutation des processus est essentielle pour assurer un partage équitable des
ressources du système, optimiser l'utilisation du processeur et garantir une exécution fluide des
différents processus en cours.

2. ORDONNANCEMENT DES PROCESSUS


L'ordonnancement des processus concerne la décision de l'ordre dans lequel les processus
seront exécutés sur le processeur. Il s'agit d'une fonction clé du système d'exploitation qui vise
à optimiser l'utilisation des ressources et à répondre aux objectifs spécifiques du système.

Différents algorithmes d'ordonnancement des processus peuvent être utilisés, en fonction


des critères et des priorités du système. Certains des algorithmes d'ordonnancement
couramment utilisés comprennent le premier arrivé, premier servi (FIFO), le plus court d'abord
(SJF), le tourniquet (Round Robin), le prioritaire et le multi-niveaux.

Le choix de l'algorithme d'ordonnancement dépend de divers facteurs tels que les


caractéristiques des processus, les priorités, les délais, l'utilisation des ressources et les objectifs
de performance. L'objectif principal de l'ordonnancement des processus est de minimiser le
temps d'attente, d'optimiser l'utilisation du processeur et de répondre aux contraintes spécifiques
du système.

a. ALGORITHME PREMIER ARRIVE, PREMIER SERVI (FIFO)


L'algorithme Premier Arrivé, Premier Servi (FIFO) est un algorithme de
planification des processus utilisé dans les systèmes d'exploitation. Il fonctionne selon le
principe que le premier processus à arriver est le premier à être servi. Voici un exemple
d'algorithme FIFO pour la planification des processus :

1. Créez une file d'attente pour les processus prêts à être exécutés.

2. Lorsqu'un processus arrive, ajoutez-le à la file d'attente à la fin.

3. Si le processeur est actuellement libre, sélectionnez le premier processus de la file d'attente


et exécutez-le.
4. Lorsque le processus en cours d'exécution se termine ou est bloqué, passez au processus
suivant dans la file d'attente.

5. Répétez les étapes 3 et 4 jusqu'à ce que tous les processus aient été exécutés.

L'algorithme FIFO suit un modèle de file d'attente simple où les processus sont traités dans
l'ordre d'arrivée. Cela signifie que les processus qui arrivent en premier sont les premiers à être
exécutés, peu importe leur temps d'exécution ou leur priorité. Cependant, cela peut entraîner
des problèmes de famine pour les processus plus longs si des processus courts continuent
d'arriver en permanence.

b. ALGORITHME DU PLUS COURT D'ABORD (SJF - SHORTEST JOB FIRST)


L'algorithme du plus court d'abord (SJF - Shortest Job First) est un algorithme de
planification des processus qui sélectionne le processus avec le temps d'exécution le plus court
pour être exécuté en premier. L'idée principale derrière cet algorithme est de minimiser le temps
d'attente total des processus.

Voici comment fonctionne l'algorithme SJF :

1. Pour chaque processus, connaissez le temps d'exécution total requis.

2. Triez les processus en fonction de leur temps d'exécution, du plus court au plus long. Si
plusieurs processus ont la même durée d'exécution, vous pouvez utiliser le principe du premier
arrivé, premier servi (FIFO) pour les départager.

3. Exécutez le processus ayant le temps d'exécution le plus court en premier.

4. Lorsque ce processus est terminé, passez au processus suivant avec le temps d'exécution le
plus court parmi les processus restants.

L'algorithme SJF peut être implémenté de différentes manières. Voici deux


approches courantes :

Approche non préemptive (SJF non préemptif) : Une fois qu'un processus est sélectionné pour
être exécuté, il n'est pas interrompu tant qu'il ne se termine pas.

Approche préemptive (SJF préemptif) : Si un processus avec un temps d'exécution plus court
arrive pendant l'exécution d'un processus, et que ce temps d'exécution plus court est inférieur
au temps restant du processus en cours d'exécution, le processus en cours est interrompu et le
nouveau processus est exécuté.
L'algorithme SJF vise à minimiser le temps d'attente moyen des processus, ce qui
peut conduire à une meilleure utilisation des ressources du système. Cependant, il peut entraîner
des problèmes de famine pour les processus plus longs si des processus courts continuent
d'arriver en permanence.

V. LA SYNCHRONISATION ET LA COMMUNICATION INTERPROCESSUS


Les processus sont des entités autonomes et indépendantes qui peuvent se retrouver en
conflit pour l’accès à certaines ressources communes. Ceci nécessite la mise en œuvre des
mécanismes dit de synchronisation pour gérer ces conflits. Par ailleurs, si les processus sont en
général indépendants, cela ne doit pas interdire la communication. La conséquence de ces
mécanismes est le blocage des processus en attente d’une ressource momentanément
indisponible.

1. La synchronisation interprocessus
La synchronisation interprocessus est le mécanisme essentiel pour assurer que les
différents processus informatiques coopèrent correctement. Elle vise à coordonner l'exécution
de plusieurs processus ou threads afin d'éviter des situations de concurrence indésirables. Dans
un environnement multitâche, différents processus ou threads peuvent accéder aux mêmes
ressources simultanément, ce qui peut entraîner des résultats imprévus ou des erreurs. Les
mécanismes de synchronisation, tels que les sémaphores, les mutex, et les moniteurs, sont
utilisés pour résoudre ce problème en assurant l'exclusion mutuelle ou en permettant la
communication entre les processus.

Un sémaphore est un mécanisme de synchronisation qui contrôle l’accès à une


ressource partagée par plusieurs processus. Il comprend deux opérations principales :
« acquérir » et « libérer ». Lorsqu’un processus veut accéder à une ressource, il doit d’abord
utiliser le sémaphore, si le sémaphore est disponible, le processus peut accéder à la ressource et
le sémaphore est décrémenté. Sinon le sémaphore est mis en attente jusqu’à ce que le sémaphore
devienne disponible. Une fois le processus a fini d’exploiter la ressource, il libère le sémaphore
en l’incrémentant, permettant à d’autres processus d’accéder à la ressource. Cela permet de
contrôler l’accès concurrentiel à la ressource et d’éviter les problèmes de concurrence.

Un mutex (ou verrou d’exclusion mutuelle) est utilisé pour protéger les ressources
partagées entre plusieurs processus. L’objectif principal du mutex est d’assurer que seul un
processus à la fois peut accéder à une ressource critique. Lorsqu’un processus souhaite accéder
à la ressource, il verrouille le mutex, si une autre ressource tente d’accéder à la même ressource,
il doit attendre jusqu’à ce que le mutex soit déverrouillé. Une fois qu’un processus a terminé
d’utiliser la ressource, il déverrouille le mutex pour permettre aux autres processus d’y accéder.
On dira que les mécanismes de mutex sont essentiels pour éviter les conflits entre d’accès aux
ressources partagées et garantir la cohérence des données entre les processus.

Les moniteurs sont des constructions de synchronisation de niveau supérieure qui


encapsule es données partagées et les procédures qui les utilisent. Ils garantissent qu’un seul
processus peut exécuter une procédure dans le moniteur a un moment donné, empêchant ainsi
l’accès simultané aux données partagées

La synchronisation permet donc l’ordonnancement cohérent des activités entre les


processus, évite les conflits d’accès aux ressources partagées, et assure la communication
efficace entre les processus. Quand est-il de communication interprocessus ?

2. La communication interprocessus (IPC)


La communication interprocessus est essentielle dans le développement logiciel pour
permettre à différents processus de partager des informations et de coopérer. La communication
interprocessus facilite la synchronisation, la coordination et l'échange de données entre les
processus d'un système.

Elle peut se faire de plusieurs manières, telles que les sockets, les files d'attente, les signaux,
ou les mémoires partagées. Ces mécanismes permettent aux processus de communiquer de
manière efficace, tout en garantissant la sécurité et la fiabilité des données échangées.

La communication interprocessus est utilisée dans de nombreux domaines, notamment les


systèmes d'exploitation, les applications réseau, les systèmes embarqués, et les environnements
distribués. Elle permet de créer des systèmes robustes et modulaires, où différents processus
peuvent fonctionner de manière indépendante tout en collaborant pour atteindre un objectif
commun.

VI. LE PROBLEMES DES PRODUCTEURS ET DES CONSOMMATEURS


Le problème des producteurs et des consommateurs est un problème classique en
informatique qui concerne la synchronisation des processus dans un environnement multitâche.
Il implique généralement deux types de processus : les producteurs, qui produisent des données,
et les consommateurs, qui consomment ces données.

Le scénario typique du problème des producteurs et des consommateurs est le suivant :


- Il y a une zone de mémoire partagée, souvent appelée tampon, qui est utilisée par les
producteurs pour déposer les données produites et par les consommateurs pour récupérer ces
données.

- Les producteurs et les consommateurs fonctionnent de manière concurrente et doivent se


synchroniser pour éviter des conditions de concurrence indésirables.

- Le tampon a une taille limitée, de sorte que si le tampon est plein, les producteurs doivent
attendre qu'un consommateur retire des données avant de pouvoir en déposer de nouvelles, et
inversement, si le tampon est vide, les consommateurs doivent attendre qu'un producteur dépose
des données avant de pouvoir les consommer.

Pour résoudre ce problème, différentes approches de synchronisation peuvent être utilisées,


telles que les sémaphores, les mutex (mutual exclusion), les moniteurs ou les variables
conditionnelles. Ces mécanismes permettent de coordonner l'exécution des processus et d'éviter
les conditions de concurrence.
CONCLUSION

Les processus sont des éléments fondamentaux des systèmes informatiques modernes.
Ils permettent de gérer l'exécution des programmes, de partager les ressources et de coordonner
les tâches.

La compréhension des concepts clés liés aux processus, tels que leur création, leur
planification, leur synchronisation et leur communication, est essentielle pour le développement
d'applications robustes et performantes.

Les processus sont des outils puissants qui nous permettent de structurer nos
programmes, de les rendre plus efficaces et d'atteindre nos objectifs. En les utilisant de manière
optimale.
Bibliographie
1. Les listes des liens utilisés
a) https://fr.m.wikipedia.org/wiki/Processus_(informatique)
b) https://cours.polymtl.ca/inf2610/documentataion/note/chap8
2. Les listes des documents
a) Cours_SE_L 3
b) Champitre 1 SE2 Géneralité

Vous aimerez peut-être aussi