Vous êtes sur la page 1sur 37

Chapitre 3 : Les Processus

Sommaire du CourS

i. introduCtion

ii. operationS Sur leS proCeSSuS


Création de Processus
Terminaison de Processus
Hiérarchie des Processus
Etat d’un Processus

iii. implémentation de proCeSSuS

iV. alloCution du proCeSSeur


Inter-Blocage et Exclusion Mutuelle
Ordonnancement
Algorithmes d’ordonnancement
Etude de Cas
introduCtion

Le concept le plus central de tout SE est le : traitement. Les processus


sont l’une des plus anciennes et les plus importantes abstractions
données par le SE.

Définition: Un processus est d’une manière basique un programme en


exécution.

D’une manière générale, un processus est un conteneur stockant toutes


les informations nécessaire à l’exécution d’un programme. A chaque
processus est associé un espace d’adressage, contenant

Le programme exécutable, et


Les données du programme
introduCtion

Dans tout système de multiprogrammation, le CPU bascule d’un


processus à un autre, faisant tourner chacun environ 10 à 100
millisecondes. Dans un intervalle de 1 seconde il peut travailler sur
plusieurs d’entre eux, donnant illusion à un parallélisme.

Les processus tournent un unique CPU en plusieurs CPUs virtuels.

On parle de pseudo-parallélisme.


introduCtion

Model de processus :
Dans ce model, tous les logiciels exécutables de la machine sont
organisés en un nombre de processus séquentiels. Conceptuellement,
chaque processus a son propre CPU virtuel.

(a) Multiprogrammation pour 4 programmes,


(b) Modèle conceptuel de 4 programmes indépendants
(c) Un unique programme est actif en un temps donné
introduCtion

On suppose dans ce cours qu’il existe un unique CPU. Cependant les


nouvelles puces sont assez souvent multicoeurs. S’il y’a deux cœurs,
chacun va tourner un unique processus en un moment donné. Un
processus admet

Un programme
Une entrée,
Une sortie, et
Un état

Au contraire, un programme est quelque chose qui peut être stocké sur
un disque. Si un programme tourne deux fois, il donne deux processus.

Exemple : Imprimer deux fichiers en même temps si deux imprimantes


sont disponibles.
Opérations sur les Processus
operationS Sur leS proCeSSuS
Création de Processus

Quatre raisons principales permettent la création d’un processus

1. Initialisation du système,
2. Processus de création appelé par un processus en cours,
3. Une requête utilisateur pour créer un nouveau processus,
4. Initialisation d’un job en batch.

Lorsqu’un SE est lancé plusieurs processus sont créés


certains interagissent avec l’utilisateur, et
d’autres tournent en arrière plan
operationS Sur leS proCeSSuS
Création de Processus

Définition : On appelle processus démon tout processus tournant en


arrière-plan pour la gestion de certaines taches telles que les emails, et
les pages Web.

Les grands systèmes ont communément des douzaines de ce type de


processus

Dans UNIX, le programme ps, peut être utilisé pour lister les processus
Dans Windows, on peut utiliser le gestionnaire des taches.
operationS Sur leS proCeSSuS
Terminaison de Processus

Les processus créés prennent fin sous les quatre conditions suivantes:

1) Une issue normale (volontairement) : quand un compilateur a compilé le


programme qui lui a été donné, alors il effectue un appel système, pour dire au SE
que le processus est fini.

2) Une erreur involontaire : le processus découvre une erreur comme un tel fichier
n’existe pas.

3) Une erreur fatale : généralement dû à un bug, par exemple la division par 0 .

4) Tué par un autre processus : (peut être) d’une manière involontaire.

Dans certains systèmes, quand un processus se termine, d’une manière volontaire ou


involontaire, alors tous les processus qu’il a créés sont immédiatement éliminés. Ce
qui n’est pas le cas pour Windows et pour les systèmes UNIX.
operationS Sur leS proCeSSuS
Hiérarchie des Processus

Un processus (père) peut créer un autre processus appelé processus fils,


et ce dernier peut lui-même créer plusieurs autre processus, donnant
lieu à une hiérarchie de processus.

Arbre de processus

Le processus A a créé 2 processus fils, B et C


Le processus B a créé, à son tour, 3 autres processus, D, E, et F
operationS Sur leS proCeSSuS
Hiérarchie des Processus : cas UNIX

Sous UNIX, un processus et tous ses fils forment un groupe de


processus. Un processus spécial, appelé init, est lancé lors de
l’amorçage.
Il lit un fichier indiquant le nombre de terminaux existants, puis
Il lance un nouveau processus par terminal

Ces derniers processus attendent qu’un utilisateur se connecte. Puis


le processus de login exécute un Shell pour accepter les commandes,
ces commandes peuvent aussi lancer plus de processus et
ainsi de suite.

Ainsi, tous les processus de l’ensemble du système UNIX appartiennent


à un unique arbre, avec init à la racine.
operationS Sur leS proCeSSuS
Hiérarchie des Processus : cas Windows

Windows n’a pas un concept clair d’hiérarchie comme UNIX. L’unique


indication d’hiérarchie est que, lorsqu’un processus est créé on donne
au processus père un jeton (appelé handle) qu’il utilise pour contrôler le
processus fils. Cependant, il est libre de passer le jeton à un autre
processus, invalidant ainsi la hiérarchie.
operationS Sur leS proCeSSuS
Etat d’un Processus

Un processus peut être dans 3 états :


1) En exécution : utilisant le CPU à cet instant.
2) Prêt : exécutable mais stoppé temporairement pour laisser un autre
processus s’exécuter.
3) Bloqué : incapable de s’exécuter, à moins qu’un autre événement
ait lieu.
operationS Sur leS proCeSSuS

Travaux Pratiques : le gestionnaire des taches de Windows


Implémentation de Processus
implémentation de proCeSSuS

Pour implémenter le modèle de processus, le SE maintient une table,


appelée table des processus, avec une entrée par processus. Cette
entrée contient des informations sur
l’état du processus,
les registres,
la mémoire allouée,
le statue des fichiers ouverts,
l’ordonnancement

et toute autre information nécessaire au basculement d’état :


d’exécutable à prêt ou bloqué.
.
implémentation de proCeSSuS

Le SE maintient dans la table des processus les informations sur tous les processus
créés (une entrée par processus : Bloc de Contrôle de Processus PCB).
Allocution du Processeur
alloCution du proCeSSeur
Inter-Blocage et Exclusion Mutuelle

Un processus, à exécuter, a besoin de ressources : fichiers, mémoire, processeur, etc.


Une ressource est de deux types :

locale : utilisée par un seul processus, par exemple un fichier temporaire.


commune ou partageable comme un disque, une imprimante, un fichier en lecture.

Une ressource peut posséder un ou plusieurs points d'accès à un moment donné.

Un seul : on parle de ressource critique, par exemple une zone mémoire partagée
en écriture entre plusieurs utilisateurs.

Plusieurs points d'accès: par exemple, un fichier en lecture utilisable par plusieurs
processus.

Lorsque la ressource est critique (ou en accès exclusif), il faut faire appel à l’exclusion
mutuelle.
alloCution du proCeSSeur
Inter-Blocage et Exclusion Mutuelle

Formalisme:
1) Deux processus ne peuvent pas être simultanément dans la même section critique.
2) Aucun processus en dehors d’une section critique ne peut bloquer les autres.
3) Aucun processus ne doit attendre longtemps avant d’entrer en section critique.
Définition : On appelle inter blocage la situation où tous les processus sont bloqués.
Chacun attend que l'autre lui envoie un message pour continuer. On parle de privation
la situation où quelques processus bloquent indéfiniment d'autres processus.
L’exclusion mutuelle est un mécanisme qui permet, lors de l’exécution d’une section
critique par une co-routine, d’empêcher l’entrée dans cette section par tout autre co-
routine.
Un programme multitâche est juste s'il répond aux critères de
sécurité comme l'exclusion mutuelle.
viabilité comme la non privation ou le non inter blocage.
Sur une machine monoprocesseur, le CPU est une ressource en exclusion mutuelle.
alloCution du proCeSSeur
Ordonnancement

Si un unique CPU est disponible, un choix doit être fait : lequel des
processus doit être exécuté ?

Définition : La partie du SE qui effectue le choix est appelé


ordonnanceur ou planificateur ou dispatcher et l’algorithme qu’il
utilise est appelé algorithme d’ordonnancement.

En plus de charger le processus approprié, l’ordonnanceur doit s’assurer


de l’utilisation efficace du CPU. En effet le basculement de processus
coûte cher.
alloCution du proCeSSeur
Ordonnancement

Quand est ce qu’on doit planifier?


Il existe une variété de situations dans lesquelles l’ordonnancement est
nécessaire:

Quand un nouveau processus est créé, on doit décider entre


l’exécution du processus père ou du fils.

Lorsqu’un processus sort. Si aucun processus n’est prêt, le processeur


devient inactif.

Lorsqu’un processus est bloqué sur un sémaphore (permet de


compter le nombre de processus inactifs), ou pour une autre raison
un autre processus doit être sélectionné.
alloCution du proCeSSeur
Les algorithmes d’ordonnancement

Les algorithmes d’ordonnancement peuvent être divisé en deux


catégories, en fonction de la méthode de la gestion des interruptions.

1) Algorithme non-préemptif : choisit un processus à exécuter et le


laisser s’exécuter jusqu’à son blocage ou un arrêt volontaire.

2) Algorithme préemptif : choisit un processus à exécuter et le laisser


tourner pour un temps donné .
alloCution du proCeSSeur
Les algorithmes d’ordonnancement

Objectif des algorithmes d’ordonnancement


Certains objectifs dépendent de l’environnement, mais d’autres sont
désirables pour tous les cas.

Tous les systèmes


Equité : donner à chaque processus un partage équitable du CPU
Mise en vigueur d’une politique
Balance : garder toutes les parties du système occupées.
alloCution du proCeSSeur
Les algorithmes d’ordonnancement

Système batch
Débit : maximiser les jobs par heure.
Temps moyen : minimiser le temps entre la soumission et la fin
Utilisation du CPU : garder le CPU occupé tout le temps.

Système interactif
Temps de réponse : répondre à une requête rapidement
Proportionnalité : entrer en phase avec les attentes de l’utilisateur.

Système à temps réel


Respect des délais, éviter la perte de données
Prévisibilité : éviter la dégradation de la qualité du système multimédia.
alloCution du proCeSSeur
Les algorithmes d’ordonnancement

Temps moyen d ’exécution


On considère 4 jobs A, B, C, et D en concurrence. Soient a, b, c, et d leur
temps d’exécution respectif. Alors
le premier job se termine en temps a,
le second en temps a+b,
et ainsi de suite.

Le temps moyen d’exécution de ce fil est de :

(4a + 3b + 2c + d)/4

Cette formule se généralise pour n jobs.


alloCution du proCeSSeur
Les algorithmes d’ordonnancement

First-Come, First-Served (FCFS)


Les processus sont affectés au CPU dans l’ordre des requêtes qu’il reçoit.

Shortest Job First (SJF)


Les processus sont affectés selon le temps le plus cours. On suppose que
les temps d’exécution sont connus à l’avance. Par exemple, dans une
entreprise, on peut prédire d’une manière assez exacte, combien de
temps il faut pour exécuter un batch de 1000 réclamations, puisque le
même travail est fait chaque jour.
alloCution du proCeSSeur
Les algorithmes d’ordonnancement

Shortest Remaining Time Next (SRTN)

Il s’agit de la version préemptive du SJF. Si le nouveau job requiert moins


de temps que le processus en cours d’exécution, alors le processus en
cours est suspendu.
alloCution du proCeSSeur
Les algorithmes d’ordonnancement

Exercice : Soient 4 jobs A, B, C, et D de temps d’exécution respectif 8, 4,


4, et 4 minutes
1) Dresser la séquence d’exécution pour les cas SJF, Shortest
Remaining Time Next, et le FCFS
2) Dans chaque cas donner le temps d’exécution des 4 jobs
3) Donner le temps moyens d’exécution du fil pour chaque cas.
alloCution du proCeSSeur
Les algorithmes d’ordonnancement

Round-Robin
On assigne à chaque processus un intervalle de temps, appelé quantum,
durant lequel il est autorisé à s’exécuter. Si le processus écoule son
temps sans se terminer, alors on passe à la préemption. Autrement dit
on alloue le CPU à un autre programme.

(a) Liste des processus exécutables


(b) Liste des processus exécutable après écoulement du quantum de B
alloCution du proCeSSeur
Les algorithmes d’ordonnancement

Basculer d’un processus à un autre requiert un certain temps :

 enregistrement et chargement des registres et des adresses,


rechargement des mémoires caches,
 etc.

Environ 20% du temps CPU peuvent s’écouler dans cette gestion.

Exercice : Proposer une méthode pour améliorer l’efficacité du CPU


dans le cadre du Round-Robin.
alloCution du proCeSSeur
Les algorithmes d’ordonnancement

Exercice : en fonction des objectifs donner les algorithmes


d’ordonnancement approprié au système en mode

1. batch,
2. mode interactif,
3. et à temps réel.

Justifier votre réponse.


alloCution du proCeSSeur
Les algorithmes d’ordonnancement

Ordonnancement avec priorité


L’idée basique est très simple : on assigne à chaque processus une
priorité, et le processus ayant la plus haute priorité sera autorisé à
s’exécuter.

Exemple : un processus démon contrôlant les mails, doit avoir une


priorité beaucoup plus faible qu’un processus affichant une vidéo, à
temps réel, sur l’écran.

Afin d’empêcher les processus à haute priorité de tourner indéfiniment


le dispatcher peut diminuer la priorité du processus en cours ou
chaque processus peut être assigné un quantum maximal.
alloCution du proCeSSeur
Les algorithmes d’ordonnancement

Les priorités peuvent être assignés de manière statique ou dynamique.


Par exemple sur un ordinateur des militaires les processus lancés par
les généraux peuvent commencer avec une priorité 100,
colonels à 90,
majors à80,
capitaines à 70,
lieutenants à 60,
et ainsi de suite

Alternativement sur un ordinateur commercial,


les jobs avec une haute priorité peuvent couter 10000 F l’heure,
les priorités moyennes à 7000 F l’heure, et
les priorités basses à 5000 F l’heure.
alloCution du proCeSSeur
Etude de cas : Windows

Une approche majeure pour l’augmentation de la vitesse est le


parallélisme d’ordinateur (Multiprocessing).

Définition : Un multiprocesseur à mémoire partagée est un système


d’ordinateur dans lequel deux ou plusieurs CPUs partage une mémoire
RAM.

Base de la communication inter-processeur : un CPU écrit sur la


mémoire et un autre peut lire les données de sortie.
alloCution du proCeSSeur
Etude de cas : Windows

L’OS de Microsoft utilise un ordonnanceur préemptif avec des priorités :


chaque fil d’exécution dispose de sa propre priorité,
le fil qui a la plus haute priorité est exécuté en priorité, quitte à arrêter
l’exécution d’un autre.

Gestion plus fine du verrouillage des ressources (sous Windows 7): au


lieu d’un vérrou global, chaque ressource est verrouillée
indépendamment des autres.

Windows 10 a continué ces améliorations avec le partitionnement des


groupes de processeurs : certains processus ont un accès exclusif à un
groupe de processeurs/cœurs, que les autres processus ne pourront
plus utiliser.

Vous aimerez peut-être aussi