Cours Systèmes d’exploitation: Gestion des Processus

Page 1 sur 35Lecteur de document UniversityLib

Cours Systèmes d’exploitation: Gestion des Processus

Computer Science - Operating Systems · course

Voir tous les documents en systèmes d'exploitation et cloud

Cours Systèmes d’exploitation: Gestion des Processus

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

1

1- Processus

le concept de base de tout système

- Un processus est un ensemble d'octets (en langage machine) en cours d'exécution - C'est l'exécution d'un programme par le système. - le processus est d’exploitation. - Un processus est une entité dynamique correspondant à l’exécution d’une suite d’instructions : un programme qui s'exécute, ainsi que ses données, sa pile d’exécution, son compteur ordinal, son pointeur de pile et les autres contenus de registres nécessaires à son exécution. Remarque: à ne pas confondre un processus (aspect dynamique, exécution qui peut être suspendue, puis reprise), avec un programme exécutable (aspect statique: fichier sur disque).

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

2

2- Multiprogrammation

-Un système d'exploitation doit en général exécuter plusieurs programmes en même temps. Comme il n'a (la plupart du temps) qu'un processeur, il résout ce problème grâce à un pseudo parallélisme: Il traite une tâche à la fois, s'interrompt et passe à la suivante. -La commutation de tâches étant très rapide, il donne l'illusion d'effectuer un traitement simultané. -La multiprogrammation se base sur le basculement de la CPU entre plusieurs processus qui s’exécutent pendant des périodes de temps très réduites.

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

3

3- Généalogies des processus:

- Un processus est généralement créés par un autre processus. Il peut lui même lancer ensuite d'autres processus. - Le processus créateur est appelé «père », et les processus créés «fils ». Les processus peuvent donc se structurer sous la forme d'une arborescence.

seul

processus,

- Au lancement du système, il n'existe qu'un appelé processus « init », qui est l'ancêtre de tous les autres. C’est le seul processus sans père au moment de sa création.

P1

P2

P3

P4

Eléments de TP: -Commandes ps: liste de processus -Commande pstree: arborescence des processus

P5

P6

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

4

4- Espace mémoire d’un processus (espace Les processus sont composés d'un espace de travail d'adressage) en mémoire formé de 3 segments et accessible par les programmes utilisateur :

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

5

Un processus est donc un «programme» qui s'exécute et qui possède : - son propre compteur ordinal (@ de la prochaine instruction exécutable), -ses registres -ses variables. Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

6

Le noyau maintient une table en mémoire, appelée « table des processus », pour gérer l'ensemble des processus (ici P1, ..., P5, ...). Elle contient la liste de tous les processus avec des informations concernant chacun d’entre eux. - Le nombre des emplacements dans cette table des processus est limité pour chaque système et pour chaque utilisateur

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

7

5- Contexte d’un processus l’ensemble des données qui Le contexte d’un processus est permettent de reprendre l’exécution d’un processus qui a été interrompu. Le contexte d’un processus comporte:

1. son état 2. son mot d’état (PSW) : comprend

- La valeur des registres actifs - Le compteur ordinal

3. les valeurs des variables globales statiques ou dynamiques 4. son entrée dans la table des processus 5. sa zone u 6. Les piles user et system 7. les zones de code et de données.

Le noyau et ses variables ne font partie du contexte d’aucun processus! L’exécution d’un processus se fait dans son contexte. Quand il y a changement de processus courant, il y a réalisation d’une commutation de mot d’état et d’un changement de contexte. Le noyau s’exécute alors dans le nouveau contexte.

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

8

6- Commutation de mot d’état et interruptions - Ce sont des fonction fondamentales (de très bas niveau) pour un système d’exploitation. - Pour être exécuté et donner naissance à un processus, un programme et ses données doivent être chargés en mémoire centrale. Les instructions du programme sont transférées une à une de la mémoire centrale sur l’unité centrale ou elles sont exécutées. - L’unité centrale comprend des circuits logiques et arithmétiques (qui efféctuent les instructions) et des mémoires appelées registres tels que:

* L’accumulateur: reçoit le résultat d’une instruction * le registre d’instruction: contient l’instruction en cours *le compteur ordinal: adresse de la prochaine instruction en mémoire à exécuter * le registre d’adresse * les registres de données: utilisés pour lire ou écrire une donnée à une adresse spécifiée en mémoire. * les registres d’´etat du processeur: actif, mode (user/system), retenue, vecteur d’interruptions, ..) * les registres d’´etat du processus :droits, adresses, priorités, ..

Beyaoui Walid

9

Licence appliquée en TI- Cours Systèmes d'exploitation

6- Commutation de mot d’état et interruptions (suite)  Ces registres forment le contexte d’unité centrale d’un processus. A tout moment, un processus est caractérisé par ces deux contextes :

- le contexte d’unité centrale qui est composé des mêmes données pour tous les processus -le contexte qui dépend du code du programme exécuté.

Pour pouvoir exécuter un nouveau processus, le système doit sauvegarder le contexte d’unité centrale du processus courant (mot d’´etat), puis charger le nouveau mot d’´etat du processus à exécuter: cette opération est appelée commutation de mot d’´etat. Elle utilise 2 adresses qui sont respectivement :

- l’adresse de sauvegarde du mot d’´etat - l’adresse de lecture du nouveau mot d’´etat

Le processus interrompu pourra ainsi reprendre exactement ou il avait abandonné.

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

10

7- interruptions Une interruption est une commutation de mot d’´etat (de contexte) provoquée par un signal produit par le matériel. Ce signal étant la conséquence d’un événement extérieur ou intérieur, il modifie l’´etat d’un indicateur qui est régulièrement testé par l’unité centrale. Une fois que le signal est détecté, faut déterminer la cause de l’interruption. Pour cela on utilise un indicateur, pour les différentes causes, on parle alors du vecteur d’interruptions. On distingue trois grands types d’interruptions :

il

interventions de

(indépendantes du processus)

- externes l’opérateur, pannes, .. - déroutements: erreur interne dans l’exécution du processus courant (débordement de mémoire ,division par zéro,..) - appels systèmes: demande d’entrée-sortie par exemple. Généralement un numéro de priorité est affecté à un niveau d'interruption pour déterminer l'ordre de traitement lorsque plusieurs interruptions sont positionnées. L’horloge est l’interruption la plus prioritaire sur un syst`eme Unix.

Beyaoui Walid

Licence appliquée en TI- Cours Systèmes d'exploitation

11

8-Processus et SE

● Plusieurs processus indépendants doivent pouvoir s'exécuter sans interférence -partage des ressources : processeur, mémoire, stockage... -isolation des processus (sécurité, fiabilité) ● l'inverse, les processus doivent pouvoir communiquer si leur programme le demande -mécanismes de Communication Inter-Processus:

(IPC)

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

12

9-Informations sur les processus : gestionnaire de tâches Windows

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

Publicité

13

9-Informations sur les processus : gestionnaire de tâches Linux

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

14

10- Bloc de contrôle processus PCB :Process Control Block

informations

● Structure de données du SE contenant les informations sur un processus ● Ces uniquement par le noyau ● Pour obtenir des informations sur les processus, il est donc nécessaire de passer par des appels systèmes: getpid, getppid, getuid, geteuid, setuid...

sont dans une zone mémoire accessible

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

15

11-Informations du PCB

1- Identité ●Identificateur de processus (PID): numéro unique (à un instant donné, mais réutilisable) ●Informations éventuellement processus enfants ●Information de droits:

généalogie:

processus

(PPID),

parent

de

-utilisateur propriétaire du processus -utilisateur effectif

(augmentation ou diminution de droits),

exemples :

- droits d'administration « locale » - serveurs lancés par l'administrateur - serveur d'application

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

16

11-Informations du PCB

2- Exécution ●Etat du processus ●Contexte processeur: état des registres du processeur pour ce processus ●Autres informations d'ordonnancement

exemple : priorité

3- Ressources ● Informations sur la mémoire utilisée / utilisable: tables de pages (cf. cours gestion de la mémoire) ● Informations sur le temps passé: temps réel (d’exécution), temps utilisateur ● Liste des fichiers ouverts: fichiers classiques, périphériques, moyens de communication avec d'autres processus (pipe...) ● Autres ressources utilisées...

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

17

12-Exemple simplifié d’un processus

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

18

12-Exemple simplifié d’un processus (suite)

Il est en train d'exécuter le programme 'cmd1'.

Ce processus a le numéro 36. Il a été lancé par l'utilisateur qui a 106 Il a pour UID. consommé 0.3 seconde, avec une priorité de 20. Son masque de création de fichier est 027. Son terminal de contrôle est /dev/term/c4. Son répertoire courant est /usr/c1.

0 :entrée standard 1 :sortie standard 2 :sortie standard d'erreur.

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

19

13-Etats d’un processus - Selon les systèmes, le nombre et le nom des états peut varier. -Tous les systèmes comportent au minimum les trois états suivants : Élu ou Actif :

- Le processus est en cours d’exécution par le processeur. -Si le processus épuise le temps qui lui est alloué par le SE, il est remis en file d’attente des prêts. -S’il a besoin d’une ressource non disponible (opérations sur les périphériques), il est mis en attente prolongée (Interruption : état bloqué) jusqu’à la libération de la ressource nécessaire.

Eligible ou prêt: en attente de pouvoir s'exécuter sur le processeur

(il passera alors à l’état Actif).

Bloqué ou en attente: en attente d'un événement (interruption ou ressource). Dès sa libération il repasse à l’état Prêt

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

20

13-Etats d’un processus: transitions

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

21

14- Création des processus La création d’un processus peut se faire suite à:

-L’initialisation du système : au chargement du système il y’a création automatique du processus racine père de tous les processus utilisateurs (id=0) -Un processus peut lancer un autre processus, il en devient le parent, l’autre sera désigné comme processus fils. (Un processus père ne se termine que lorsque tous ses fils sont terminés). -Une requête de l’utilisateur (commande par exemple) -Initiation d’un travail en traitement par lot

La destruction d’un processus (et la libération de toutes ses ressources allouées a quatre causes possibles :

-Arrêt normal : volontaire, lorsque le processus termine sa tâche. -Arrêt pour erreur : volontaire suite à une erreur pour une instruction illégale

-Arrêt pour erreur fatale : involontaire tel que les mauvais paramètres de l’exécution du processus

- Arrêt volontaire par un autre processus

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

22

14- Création des processus: sous Windows

les

sont

caractéristiques

●Appel système CreateProcess : crée un processus données dont paramètres de l'appel système (10 paramètres) ● Exemple : STARTUPINFO si; // à renseigner PROCESS_INFORMATION pi; // utilisé en sortie bool succes = CreateProcess(0, "mon_prog.exe", 0, 0, FALSE, 0, 0, 0, &si, &pi);

en

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

23

14- Création des processus: sous Unix

● Appel système fork() : - duplique le processus courant avec toutes ses informations: copie de la zone mémoire du père (seul le PID et le PPID changent). A la création les 2 processus s’exécutent parallèlement, on ne connait pas lequel des processus continuera à s’exécuter avant l’autre. - retourne une valeur différente dans le processus père et le processus fils pour faire la distinction (0 dans le fils et le PID du fils dans le père) ● Exemple : int pid_fils = fork(); if (pid_fils == 0) // il s’agit du fils….. else // il s’agit du fils……

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

24

Publicité

14- Création des processus: sous Unix (suite)

● Si on souhaite que le fils exécute un autre programme que le père, on utilise un appel système de type exec qui remplace le programme courant par un autre programme ● Exemple : int pid_fils = fork(); if (pid_fils == 0) exec("chemin d’un autre programme");

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

25

15- Ordonnancement des processus

P1 ; P2 ; ……… ; Pn

Chargement

En M.C

Mémoire

centrale

CPU

Exécution

Selon un ordre bien déterminé

Rôle de l'ordonnanceur : choisir, parmi tous les processus éligibles, lequel va devenir élu (utiliser la CPU pour s’exécuter). Stratégies / politiques d'ordonnancement: Algorithmes d’ordonnancement. Objectifs: - une bonne gestion du processeur (taux d'utilisation élevé de l'UC). - Augmenter le nombre de processus exécuté pendant une période - Minimiser le temps moyen d’exécution d’un processus - Minimiser le temps d’attente d’un processus (satisfaction des utilisateurs). - Minimiser les temps d’inactivité d’un processeur.

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

26

16- Algorithmes d’ordonnancement

Performance s des algorithmes d’ordonnancement:

•Temps de rotation d’un processus = date de fin d’exécution - date d’arrivée

•Temps de rotation moyen = ∑ Temps de rotation /nombre de processus

•Temps d’attente d’un processus = temps de rotation - durée d’exécution

•Temps moyen d’attente = ∑ temps d’attente / nombre de processus

•Rendement = durée totale d’exécution /nombre de processus

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

27

16- Algorithmes d’ordonnancement

1- Algorithme du premier venu premier servi (first come first serve : FCFS) : ● géré par une file d’attente FIFO (first in first out) ● Ordonnancement nom préemptif (pas de préemption) ● Quand l’unité centrale est libre, elle est allouée au processus en tête de la file d’attente des processus « prêt ».

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

28

16- Algorithmes d’ordonnancement

Exemple:

Processus

Temps CPU

P1

P2

P3

25

3

11

*Ordre d’exécution : P1 ; P2 ; P3.

-Temps d’attente:

P1 0

P2 25

P3 28

P1

P2 0 25 28 39

P3

Temps d’attente moyen = (25 + 28) / 3 = 17,66.

*Ordre d’exécution : P2 ; P3 ; P1. -Temps d’attente:

P1 14

P2 0

P3 3

Temps d’attente moyen = (14 + 3) / 3 = 5,66.

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

29

16- Algorithmes d’ordonnancement l’algorithme FCFS n’est généralement pas optimal. Il dépend de l’ordre de l’arrivée du processus, ainsi que le temps d’exécution. Cet algorithme est particulièrement incommode pour les systèmes à temps partagés. ● Avantages : - simple, surcoût faible, équitable - assez efficace en multi-processeurs, pour des processus très fréquemment bloqués(gestions E/S) ● Inconvénient : - temps de réponse dépend du processus qui a la main: tant qu'il ne se bloque pas, les autres doivent attendre - pénalise les processus courts: proportion temps d'attente / temps d'exécution

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

30

16- Algorithmes d’ordonnancement

2- Algorithme du travail le plus court d’abord ou SJF (Shortest Job First) : ● Ordonnancement nom préemptif (pas de préemption) ● On donne toujours la main à celui qui met le moins de temps avant de se bloquer / terminer. ● Suppose d'avoir une connaissance / estimation de ce temps pour chaque processus :hypothèse forte(cas du travail par lot) ● En cas d’égalité, l’ordonnancement FCFS est utilisé. Exemple:

Processus

Temps d’arrivée

Temps CPU

P1

P2

P3

0

2

4

5

2

1

Donner un schéma illustrant l’exécution de ces processus.

Publicité

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

31

16- Algorithmes d’ordonnancement

3- Algorithme du temps restant le plus court SRT (Shortest Remaining Time): ● version préemptive de l’algorithme SJF. ● L’ordonnanceur compare la valeur estimée du temps de traitement restant du processus en cours avec le temps d’exécution d’un nouveau processus qui vient d’arriver. Si le temps de traitement du nouveau processus est inférieur, le processus en cours est préempté c'est-à-dire interrompu pour que le nouveau processus prenne sa place. Exemple:

Processus

Temps d’arrivée

Temps CPU

P1

P2

P3

0

1

2

5

3

1

Donner un schéma illustrant l’exécution de ces processus.

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

32

16- Algorithmes d’ordonnancement

4- Algorithme du Tourniquet (Round Robin : RR) : ● FCFS avec préemption ● Chaque processus reçoit un quantum de temps ● Une fois le quantum épuisé, le processus passe la main et retourne dans la file d'attente .

Terminaison de l’exécution <= 1 quantum

P1

P2

P3 …

….

Pn

Processeur

> 1 quantum

Partitionnement du temps du cycle en quantas

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

33

16- Algorithmes d’ordonnancement

4- Algorithme du Tourniquet (Round Robin : RR) : Exemple

Processus P1 P2 P3

Temps d’arrivée 0 1 3

Temps CPU 2 4 3

* qantum = 2 unités

commutation de contexte

P1

P2

P3

P2

P3

0 2 4 6 8 9 Le processeur effectue une commutation de contexte uniquement lorsqu’il atteint la fin du quantum, et que le processus ne s’est pas terminé. * Temps d’attente de P1 : 0 * Temps d’attente de P2 : 1.97 + 2 = 3.97 (lorsque P3 est en exécution, P2 est en attente). * Temps d’attente de P3 : 3.96 + 2 = 5.96 Temps d’attente moyen : 9.93/3 = 3.31 unités * Si le temps CPU de P1 = 5 …?

Beyaoui Walid

34

Licence appliquée en TI- Cours Systèmes d'exploitation

16- Algorithmes d’ordonnancement

5- Algorithme avec priorité: •Chaque processus est muni d’une priorité. •Le processus le plus prioritaire va s’exécuter en premier lieu. •Généralement, on considère toujours la priorité avec préemption • Généralement, la priorité est croissante (processus à priorité élevée plus prioritaire) Exemple:

Processus

P1

P2

P3

P4

Temps d’arrivée 0

1

4

4

Temps CPU

Priorité

6

5

3

4

3

4

2

5

a) Priorité avec préemption : b) Priorité sans préemption :

Licence appliquée en TI- Cours Systèmes d'exploitation

Beyaoui Walid

35