LES PROCESSUS INTRODUCTION
Le système d’exploitation a comme fonctions principales:
• Chargement et lancement de programmes.
• Gestion des processeurs, de la mémoire, des
périphériques
• Gestion des processus (programmes en cours
d’exécution) et des fichiers.
• Protection contre les erreurs et la détection des
erreurs, etc.
LES PROCESSUS INTRODUCTION
Le système d’exploitation est structuré en 5 couches. Chaque couche utilise les fonctions des couches inférieures:
1. Au plus bas niveau on trouve le noyau, l’interface entre le
matériel et le logiciel. Il se charge, en utilisant les
fonctions fournies par le matériel, de gérer l’unité
centrale de traitement, les interruptions et les processus
(la communication et la synchronisation).
2. Au second niveau, on trouve le gestionnaire de la
mémoire qui se charge du partage de la mémoire entre
les processus en attente d’exécution.
3. Au troisième niveau, on trouve le gestionnaire de
périphériques qui se charge du partage de gérer tous les
périphériques (clavier, écran, disques, imprimantes, etc.).
LES PROCESSUS INTRODUCTION
Le système d’exploitation est structuré en 5 couches. Chaque couche utilise les fonctions des couches inférieures:
4. Au quatrième niveau, on trouve le gestionnaire de fichiers qui se
charge de la gestion de l’espace du disque, de la manipulation des
fichiers tout en assurant l’intégrité des données, la protection des
fichiers, etc.
5. Au cinquième niveau, on a le module d’allocation des ressources
qui se charge d’assurer une bonne utilisation des ressources ; de
comptabiliser et de fournir des statistiques sur des ressources
principales ; de créer de nouveaux processus et leur attribuer un
niveau de priorité : de permette à chaque processus existant dans
le système d’obtenir les ressources nécessaires dans des limites de
temps raisonnable ; d’exclure mutuellement les processus qui
demandent une ressource non partageable et d’éviter les
situations de blocage.
LES PROCESSUS APPELS SYSTÈME
En général, les processeurs on deux mode fonctionnement :
• Le mode superviseur (noyau, privilégié ou maître) : pour le système
d’exploitation, où toutes les instructions sont autorisées.
• Le mode utilisateur (esclave) : pour les programmes des utilisateurs et les
utilitaires, où certaines instructions ne sont pas permises.
LES PROCESSUS APPELS SYSTÈME
Un appel système consiste en une interruption logicielle qui a
pour rôle d’activer le système d’exploitation.
Il a pour but :
• Changer le mode d’exécution pour passer du mode utilisateur
au mode maître, récupérer les paramètres et vérifier la
validité de l’appel, de lancer l’exécution de la fonction
demandée, de récupérer la (les) valeur(s) de retour et de
retourner au programme appelant avec retour au mode
utilisateur.
LES PROCESSUS APPELS SYSTÈME
Exemples d’appels système :
• Créer un processus
• Attendre la terminaison d’un processus
• Exécuter un autre programme
• Terminer l’exécution
• Créer ou ouvrir un fichier
• Fermer un fichier
• Lecture de données
• Pointeur dans un fichier
• Obtenir l’état des attributs
• Créer un répertoire
• Eliminer un fichier
• Changer de répertoire
LES PROCESSUS LES PROCESSUS
• Un processus est un programme en cours d’exécution. Il est
composé d’un programme exécutable (code), un compteur
ordinal (CO), un ensemble de données, une pile d’exécution
et autre registre et informations nécessaires à l’exécution.
LES PROCESSUS ÉTATS D’UN PROCESSUS
LES PROCESSUS IMPLÉMENTATION D’UN PROCESSUS
Chaque entrée dans la table PCB comporte des informations sur :
• Un numéro d’identification unique (PID);
• Un espace d’adressage (code, données, piles d’exécution);
• Un état principal (prêt, en cours d’exécution (élu), bloqué, …);
• Les valeurs des registres lors de la dernière suspension (CO, PSW,
Sommet de Pile…);
• Une priorité;
• Les ressources allouées (fichiers ouverts, mémoires, périphériques
…);
• Les signaux à capturer, à masquer, à ignorer, en attente ainsi que
les actions associées;
• Autres informations indiquant, notamment, son processus père,
ses processus fils, son groupe, ses variables d’environnement, les
statistiques et les limites d’utilisation des ressources….
LES PROCESSUS IMPLÉMENTATION D’UN PROCESSUS
Changement de contexte de processus :
LES PROCESSUS IMPLÉMENTATION D’UN PROCESSUS
Les démons
• Les démons sont des processus particuliers. Un
démon s’exécute toujours en arrière plan
(bachground). Les démons sont toujours à
l’écoute et attendent q’un événement se
produise.
• Ils réalisent des tâches de manière périodique.
• Les démons démarrent normalement au début
de chargement du système d’exploitation et ne
meurent pas. Les démons ne travaillent pas : ils
lancent plutôt d’autres processus pour effectuer
les tâches.
LES PROCESSUS SYNCHRONISATION DES PROCESSUS
• Dans un système d’exploitation multitâche en
temps partagé, plusieurs processus
s’exécutent en pseudo parallèle et partagent
des objets (mémoires, imprimantes, etc.).
• Le partage d’objets sans précaution
particulière peut conduire à des résultats
imprévisibles.
• La solution au problème s’appelle
synchronisation des processus.
LES PROCESSUS SYNCHRONISATION DES PROCESSUS
Exemple
• Considérons par exemple, le fonctionnement d’un spool
d’impression(d’une imprimante) :
• Quand un processus veut imprimer un fichier, il doit
placer le nom de ce fichier dans un répertoire spécial,
appelé répertoire de spool. Un autre processus, le
démon d’impression, vérifie périodiquement s’il y a des
fichiers à imprimer. Si c’est le cas, il les imprime et retire
leur nom du répertoire.
LES PROCESSUS SYNCHRONISATION DES PROCESSUS
Sous ces conditions, deux problèmes peuvent se présenter :
• Le fichier du processus A ne sera jamais imprimé ;
• IN ne pointe plus sur le prochain emplacement libre.
• Comment éviter ces problèmes ? Le problème provient du fait que le
processus B a utilisé une variable partagée avant que A ait fini de s’en
servir.
• Si l’on arrive à bien synchroniser les processus, le problème peut être
résolu.
• Lorsqu’un processus accède à la variable IN, les autres processus ne
doivent ni la lire, in la modifier jusqu’à ce que le processus ait terminé de
la mettre à jour. D’une manière générale, il faut empêcher les autres
processus d’accéder à un objet partagé si cet objet est en train d’être
utilisé par un processus, ce qu’on appelle d’assurer l’exclusion
mutuelle.
LES PROCESSUS SYNCHRONISATION DES PROCESSUS
Objets et sections critiques :
• Objet critique : objet qui ne peut être accédé
simultanément. Comme par exemple, les
imprimantes, la mémoire, les fichiers etc.
• Section critique : Ensemble de suites
d’instructions qui opèrent sur un ou plusieurs
objets critiques et qui peuvent produire des
résultats imprévisibles lorsqu’elles sont
exécutées simultanément par des processus
différents.
LES PROCESSUS INTERBLOCAGE
Les processus et les ressources :
L’exécution d’un processus nécessite un ensemble de
ressources (mémoire principale, disques, fichiers,
périphériques, etc.) qui lui sont attribuées par le système
d’exploitation.
• L’utilisation d’une ressource passe par les étapes
suivantes :
• Demande de la ressource : si l’on ne peut pas satisfaire
la demande il faut attendre. La demande sera mise dans
la table d’attente des ressources.
• Utilisation de la ressource : Le processus peut utiliser la
ressource.
• Libération de la ressource : le processus libère la
ressource demandée et allouée.
LES PROCESSUS INTERBLOCAGE
Les ressources peuvent être de plusieurs types :
• Réutilisables :
Toutes les ressources physiques.
Quelques unes logiques (fichiers)
• Disponibles :
Un processus engendre une ressource et un autre l’utilise.
Ressources associées à la communication et à la synchronisation
comme les messages et les signaux.
• D’usage partagé :
Est-ce que la ressource peut être utilisée par plusieurs processus en
même temps. Les ressources partagées n’affectent pas les
interblocages.
• Avec un ou multiples exemplaires :
Existent-ils de multiples exemplaires d’une même ressource ?
• Préemptible ou non préemptible :
Est-ce qu’on a le droit de retirer une ressource quand elle est utilisée
par un processus ?
LES PROCESSUS INTERBLOCAGE
Définition d’un interblocage :
• Des problèmes peuvent survenir, lorsque les processus obtiennent des
accès exclusifs aux ressources.
• On a la situation d’interblocage (deadlock en anglais) car P1 attend P2 et P2
attend P1.
• Les deux processus vont attendre indéfiniment comme le montre la figure
LES PROCESSUS INTERBLOCAGE
Conditions nécessaires pour l’interblocage :
• L’exclusion mutuelle : A un instant précis, un ressource
est allouée à un seul processus.
• La détention et l’attente : Les processus qui détiennent
des ressources peuvent en demander d’autres.
• Pas de préemption : les ressources allouées à un
processus sont libérées uniquement par le processus.
• L’attente circulaire : il existe une chaîne de deux ou plus
processus de telle manière que chaque processus dans la
chaîne requiert une ressource allouée au processus
suivant dans la chaîne.
LES PROCESSUS INTERBLOCAGE
Exemple:
les quatre conditions d’interblocages sont-elles
remplies?
LES PROCESSUS L’ORDONNANCEMENT
• Dans un système multi utilisateur à temps partagé,
plusieurs processus peuvent être présents en mémoire
centrale en attente d’exécution.
• Si plusieurs processus sont prêts, le système d’exploitation
doit gérer l’allocation du processeur aux différents
processus à exécuter. C’est l’Ordonnancement qui
s’acquitte de cette tâche.
• Tout logiciel d’un ordinateur peut être vu comme un
ensemble de processus dont l’exécution est gérée par un
processus particulier : l’ordonnanceur (Scheduler en
anglais).
• Un Ordonnanceur fait face à deux problèmes principaux :
Le choix du processus à exécuter, et
Le temps d’allocation du processeur choisi.
LES PROCESSUS L’ORDONNANCEMENT
Type d’Ordonnancements :
Il est possible de distinguer trois type d’ordonnanceurs : à long terme, à
moyen terme et à court terme. Leurs principales fonctions sont les suivantes :
• A long terme : L’ordonnanceur fait la sélection de programmes à admettre
dans le système pour leur exécution. Les programmes admis deviennent des
processus à l’état prêt. L’admission dépend de la capacité du système (degré
de multiprogrammation) et du niveau de performance requis.
• A moyen terme : il faut la sélection de processus déjà admis à débarquer ou
rembarquer sur la mémoire. Il effectue ses tâches de gestion en fonction de
degré de multiprogrammation du système, et aussi des requêtes d’E/S des
périphériques.
• A court terme : L’ordonnanceur à court terme a comme tâche la gestion de la
file des processus prêts. Il sélectionne en fonction d’une certaine politique le
prochain processus à exécuter. Il effectue aussi le changement de contexte des
processus. Il peut implanter un ordonnancement préemptif, non préemptif, ou
coopératif. L’ordonnanceur est activé par un événement : interruption du
temporisateur, interruption d’un périphérique, appel système ou signal.
LES PROCESSUS L’ORDONNANCEMENT
Objectifs de l’Ordonnanceur :
Les objectifs d’un ordonnanceur d’un système
multiutilisateur sont, entre autres :
• S’assurer que chaque processus en attente
d’exécution reçoive sa part de temps processeur.
• Minimiser le temps de réponse.
• Utiliser le processeur à 100%.
• Utilisation équilibrée des ressources.
• Prendre en compte des priorités.
• Etre prédictibles.
LES PROCESSUS L’ORDONNANCEMENT
• Ordonnanceurs non préemptifs
• Dans un système à ordonnanceurs non préemptif ou
sans réquisition, le système d’exploitation alloue le
processeur au processus jusqu’à ce qu’il se termine
ou qu’il se bloque (en attente d’un événement). Il n’y
a pas de réquisition.
• Il choisit le prochain processus à exécuter, en général,
par:
le Premier Arrivé est le Premier Servi (First In First
Out FIFO) ou
le plus court d’abord (Short Job First SJF).
LES PROCESSUS L’ORDONNANCEMENT
• Exemple :
• Considérons cinq travaux A, B, C, D, E, dont les temps
d’exécution et leurs arrivages respectifs son donnés
dans la table suivante :
Processus Temps d’exécution Temps d’arrivé
A 3 0
B 6 1
C 4 4
D 2 6
E 1 7
LES PROCESSUS L’ORDONNANCEMENT
• Ordonnancement préemptifs
• Dans un schéma d’Ordonnancement préemptif, ou avec
réquisition, pour s’assurer qu’aucun processus ne s’exécute
pendant trop de temps, les ordinateurs ont une horloge
électronique qui génère périodiquement une interruption.
• A chaque interruption d’horloge, le système d’exploitation
reprend la main et décide si le processus courant doit
poursuivre son exécution ou s’il doit être suspendu pour
laisser place à un autre. S’il décide de suspendre son
exécution au profit d’un autre, il doit d’abord sauvegarder
l’état des registres de processeur (changement de contexte)
avant de charger dans les registres les données du processus
à lancer. Cette sauvegarde est nécessaire pour pouvoir
poursuivre ultérieurement l’exécution du processus
suspendu.
LES PROCESSUS L’ORDONNANCEMENT
• Ordonnancement préemptifs
• Le processeur, à un instant donné, n’exécute
réellement qu’un processus, mais pendant un
seconde, le processeur peut exécuter plusieurs
processus et donne ainsi l’impression de parallélisme
(pseudo parallélisme).
Ordonnancement du plus petit temps de séjour
(SRT)
Ordonnancement circulaire (RR)
LES PROCESSUS L’ORDONNANCEMENT
• Ordonnancement préemptifs
• Le processeur, à un instant donné, n’exécute
réellement qu’un processus, mais pendant un
seconde, le processeur peut exécuter plusieurs
processus et donne ainsi l’impression de parallélisme
(pseudo parallélisme).
Ordonnancement du plus petit temps de séjour
(SRT)
Ordonnancement circulaire (RR)
LES PROCESSUS L’ORDONNANCEMENT
• Exemple
• Soient deux processus A et B prêts tel que A est
arrivé en premier suivi de B, 2 unités de temps après.
Les temps de processeur nécessaires pour l’exécution
des processus A et B sont respectivement 15 et4
unités de temps. Le temps de commutation est
supposé nul. Calculer le temps de séjour pour chaque
processus, temps moyen de séjour, le temps
d’attente et le temps moyen d’attente pour :
SRT
RR (quantum=10 unités de temps)
RR (quantum=3 unités de temps)
LES PROCESSUS LE THREAD
Définition:
• Un thread est une unité d’exécution rattachée à un
processus, chargée d’exécuter une partie du processus.
• Un processus est vu comme étant un ensemble de ressources
(espace d’adressage, fichiers, périphériques…) que ses
threads (flots de contrôle ou processus légers) partagent.
• Lorsqu’un processus est créé, un seul flot d’exécution
(thread) est associé au processus. Ce thread peut en créer
d’autres.
• Chaque thread a :
un identificateur unique
une pile d'exécution
des registres (un compteur ordinal)
un état…
LES PROCESSUS LE THREAD
Le multithreading permet l’exécution simultanée ou en pseudo-parallèle de
plusieurs parties d’un même processus.
LES PROCESSUS LE THREAD
• • Dndd
Dndq• Dnddj
• • jlqdjl
Hqdjl• Hqdjl
• • Jddm
Jddm• Jddmk
• • Djdlq
• Djdlqj
Djdlq
• clavier
• Disque
• noya
u
Thread 1: remet en forme le document
Thread 2: interaction avec l’utilisateur
Thread 3: écrit périodiquement le contenu de la RAM sur le disque
LES PROCESSUS LE THREAD
• Avantages des threads / processus
• Réactivité (le processus peut continuer à s’exécuter
même si certaines de ses parties sont bloquées),
• Partage de ressources (facilite la coopération,
améliore la performance),
• Économie d’espace mémoire et de temps. Il faut
moins de temps pour :
créer, terminer un thread
Communiquer avec d’autres threads d’un même
processus.