Vous êtes sur la page 1sur 8

Cours- Système d’exploitation 1

Système d’exploitation

Chapitre 2 : Gestion des processus

53

Plan du chapitre
1. Définitions
1.1 Processus
1.2 Processus légers
1.3 Bloc de contrôle
2. Les états d’un processus
3. La commutation de contexte
4. Ordonnancement des processus
4.1 FCFS
4.2 SJF
4.3 SNRT
4.4 Tourniquet
4.5 Ordonnancement basée sur la priorité

54

Asma Najjar ISTIC


Cours- Système d’exploitation 1

Définition: Processus
• Le processus est un concept fondamental de
tout système d’exploitation.

• Un processus est l’unité système qui permet


l’exécution d’un programme. Pile d’exécution
(fonctions)

•Un processus est une instance de programme Segment de code


en exécution. (instructions en langage
machine)

•Un processus est un objet dynamique tandis que Segment de données


le programme est un objet statique. (les variables)

•Un processus est caractérisé par son pointeur de Contexte d’un


pile, ses instructions et ses données processus
 le contexte d’un processus.
55

Définition: Thread
• Un thread ou encore processus léger (lightweight process)
est une unité d’exécution de code. il est issu d’un processus
mais ne contenant que la pile d’exécution.
• Un processus contient donc au moins un thread de contrôle
unique en plus de l’espace d’adressage (segments code et
données).

Exemple: traitement de texte multi-threaded: Disque


t1 t3
Absbjshd
Absbjshd
Absbjshd
Dnddjkjdq
Dnddjkjdq
Dnddjkjdq
Thread 1: remet en forme le document Hqdjlqdjl
Hqdjlqdjl
Hqdjlqdjl
JddmkmJddmkm
Djdlqjdjdq
Jddmkm
Djdlqjdjdq
Djdlqjdjdq
t2
Thread 2: interaction avec l’utilisateur djdqkmkd
djdqkmkd
djdqkmkd clavier
Thread 3: écrit périodiquement le contenu de la
RAM sur le disque
56

Asma Najjar ISTIC


Cours- Système d’exploitation 1

Définition: Thread
• Thread
– Les threads sont des processus
légers exécutés à l’intérieur d’un
processus.
Pile 1 Pile 2 Pile 3
(Thread 1) (Thread 2) (Thread 3) …
– La durée de vie d’un thread ne
peut pas dépasser celle du
processus qui l’a crée
Segment de code
(instructions en langage machine)
– Les threads d’un même processus
partagent la même mémoire
Segment de données
(les variables)

57
un processus

Modèle des processus: Arborescence

• Les processus sont organisés sous forme d’une


arborescence ou chaque processus a un seul père et peut
avoir plusieurs fils.
• Un processus est identifié par un PID (Process IDentifier)
et un PPID (Parent Process IDentifier).
• Exemple: L’arborescence des processus sous unix

init

Login:
Mot de passe:
Login:
Mot de passe:
… Login:
Mot de passe:

shell

58
ls

Asma Najjar ISTIC


Cours- Système d’exploitation 1

Définition : PCB
• Chaque processus est représenté dans le système d’exploitation par
une structure de données contenant toute information décrivant le
contexte du processus appelé bloc de contrôle (Process Control
Bloc: PCB).
• Attributs d’un PCB:
– PID et PPID,
– État,
– Priorité,
– Compteur ordinal,
– Fichiers ouverts,
– Pointeurs: seg. code, seg. données, seg. Pile,
– Temps d’exécution.
– Il existe des commandes pour afficher la listes des processus en
cours d’exécution et certains de leurs attributs
– Windows: tasklist
59
– Unix: ps

Les états d’un processus


• Lorsqu’un processus s’exécute; il change d’état. Il peut
se trouver dans l’un des trois états principaux
suivants:

• Prêt (Ready) : le processus attend son tour pour s’exécuter.

• Élu (Running) : les instructions sont en cours d’exécution.

• Bloqué (Sleep) : le processus bloqué en attente


d’événement: signal, E/S, …

60

Asma Najjar ISTIC


Cours- Système d’exploitation 1

Les états d’un processus

Nouveau Terminé

 

Prêt Élu


 

Bloqué

Graphe des états d’un processus


61

Les états d’un processus


• Création d’un processus
– Au démarrage du SE
– Par l’utilisateur: lancement d’un programme.
– Suite à un appel système
• Fonction fork()
#include <stdio.h>
#include <unistd.h>
void main()
{
int pid;
pid = fork();
if (pid == 0)
{ printf("Je suis le FILS (pid = %d). %d\n", pid, getpid()); }
else if (pid>0)
{ printf("Je suis le PERE (pid = %d). %d\n", pid, getpid());}
}

62

Asma Najjar ISTIC


Cours- Système d’exploitation 1

Les états d’un processus


• Actif (élu)
– Le processus s’exécute sur un processeur
– Il n’y a donc qu’un seul processus actif en même temps sur
une machine monoprocesseur
– Le processus dispose de toutes les ressources dont il a
besoin.

• Prêt
– Le processus peut devenir actif dès que le processeur lui
sera attribué par le SE.
– Le processus dispose de toutes les ressources dont il a
besoin à l'exception du processeur.
63

Les états d’un processus


• Bloqué
– Le processus se met en attente d’un évènement
extérieurLe processus a besoin d’une ressource pour
continuer (attente d’entrée/sortie par exemple).

– Le blocage ne peut avoir lieu qu’à la suite d’un appel


système.

– Un processus bloqué ne consomme pas de temps


processeuril peut y en avoir beaucoup sans pénaliser les
performances du système.

64

Asma Najjar ISTIC


Cours- Système d’exploitation 1

Les états d’un processus


• Terminaison d’un processus
– Terminaison Normale:
• Mettre fin au programme par l’utilisateur.
• Fin de la séquence de code du processus.
– Terminaison Anormale:
• Suite à une erreur
• Tuer par un autre processus
– Commandes
» Unix: Kill
» Windows: Taskkill

65

Les états d’un processus


• Les Transitions
1. Création du processus
2. Allocation du processeur
 Le SE choisi un processus parmi ceux dans la liste d’attente
pour qu’il devient actif
3. Fin du temps alloué sur le processeur.
 l’exécution du processus n’est pas terminée. Le SE retire le
processeur au processus.
4. Le processus se bloque en attente d’un événement
 Il demande une ressource qu’il n’arrive pas à obtenir
5. Le processus il se débloque
 Il arrive à obtenir la ressource qu’il a demandé /
L’événement s’est réalisé
6. Exécution est terminée
66

Asma Najjar ISTIC


Cours- Système d’exploitation 1

Commutation de contexte
• Sur un système multiprogrammé,
le SE doit redonner le contrôle P0 P1

du processeur d’un processus à Élu


Inactif
un autre en effectuant des Sauvegarde PCB0
commutations de contexte.
Recharge PCB1

Élu
• La commutation de contexte Inactif

consiste a mémoriser le PCB du Sauvegarde PCB1


processus courant et charger le Recharge PCB0
Inactif
PCB du processus a élire. Élu

67

Asma Najjar ISTIC

Vous aimerez peut-être aussi