Groupe 6 Tpe326
Groupe 6 Tpe326
Groupe 6 Tpe326
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
Sous l’encadrement de :
Dr. DJAM-DOUDOU
MOUNIRAH
2. Types de processus......................................................................................... 1
V. LA SYNCHRONISATION ET LA COMMUNICATION
INTERPROCESSUS ................................................................................................... 7
CONCLUSION ............................................................................................................. 10
Bibliographie................................................................................................................. 11
LISTE DES FIGURES
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.
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.
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
b. Terminaison de processus
La terminaison d’un processus peut avoir lieu de deux façons :
L`évolution des processus passe par différents états allant de la naissance à la destruction
au bout d`un temps fini (Figure 3).
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.
1. Créez une file d'attente pour les processus prêts à être exécutés.
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.
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.
4. Lorsque ce processus est terminé, passez au processus suivant avec le temps d'exécution le
plus court parmi les processus restants.
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.
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 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.
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.
- 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.
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é