33
Francis ROGARD Initiation SE processus et threads 1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Embed Size (px)

Citation preview

Page 1: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 1

SYSTEME D’EXPLOITATION

Gestion des processus et threads

Ordonnancement

Page 2: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 2

Une définition

• Un processus est l’image dynamique de l’exécution en mémoire centrale d’un programme exécutable dans une zone protégée.

• A chaque processus est associé le contexte :

CO, les registres, pointeur de pile

et une zone mémoire (code, pile, données)

Page 3: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 3

Les états d’un processus

Prêt

Bloqué

En exécution

Attente processeur

Attente ressources

création

Fin

Élection

Blocage

Déblocage

Préemption

Page 4: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 4

Le diagramme des états

actif utilisateur

actif noyau zombienouveau prêt

Endormi ou suspendu

Page 5: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 5

Le bloc de contrôle (PCB)

• En plus des données et du code, le chargeur associe au processus le PCB :

un identificateur (PID)l’état (élu, bloqué ou prêt)le contexte processeur et mémoireles statistiquesles informations sur l’ordonnancementles informations sur ses ressources

ce bloc permet de gérer le contexte

Page 6: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 6

Les threads (processus légers)

File exécution Ressources Espace d’adressage

Thread 3

Thread 2

Thread 1

Processus monothread

Processus multithreads

Ressources Espace d’adressage

Page 7: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 7

L’ordonnancement

La fonction d’ordonnancement va permettre de choisir le processeur élu.

Si l’ordonnancement est préemptif, il sera possible de retirer un processus élu en particulier pour assurer un temps de réponse « acceptable » pour chaque processus

Page 8: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 8

Les dispositifs d’ordonnancement

µP

µP

µP

µP

Répartiteur Ordonnanceur

Préemption

Blocage Déblocage

Liste des PCB bloqués

Liste des PCB prêts

Page 9: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 9

Les algorithmes de choix

• Premier arrivé, Premier servi (FIFO)

temps d’attente sur les processus longs

• Par prioritéProblème de famine

• Politique du tourniquet (quantum de temps)Adapter le quantum de temps

Page 10: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 10

Les politiques d’ordonnancement

• Unix/Linux :Sur la base des priorités décroissant (1-99)

temps réel : fixe (FIFO et priorité)classiques : calcul dynamique (priorité)

• WindowsSur la base des priorités croissantes (1-32)

thread temps réel : fixe (16-32)thread système : dynamique (1-15)

Une file d’attente par niveau de priorité

Page 11: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 11

L’implantation Unix/Linux

Le principe de base est d’organiser les processus hiérarchiquement, à chaque nœud est associé un fils (arbre binaire)

Page 12: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 12

Les caractéristiques

• Le pid, le ppid• L’uid et le gid, l’euid et l’egid• Les trois fichiers input, output et error• Le niveau de priorité• Les temps processeur, mémoire et total utilisateur• La quantité de mémoire utilisée• Le nom de la primitive en attente de sa mort

Page 13: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 13

Les mécanismes de création

• Création par duplicationLa primitive C fork() crée un processus fils avec duplication du contexte au filsLe père et le fils ont le même nom

• Création par recouvrementIl n’existe pas un nouveau processus, mais un exécutable récupère le contexte d’un processus existant via le pidLa commande exec permet ce type de recouvrement

Page 14: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 14

La primitive fork ()

Le schéma de création du processus dans un programme en langage C :

switch ( fork())

{ case – 1 : /* erreur */ ; break ;

case 0 : /* chez le fils */ ; break ;

default : /* chez le père */

}

/* code exécuté par les deux processus */

Page 15: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 15

La synchronisation

• On dispose de trois mécanismes pour synchroniser les processus :

L’attente de mort du fils (wait)

Les signaux

Les sémaphores

Page 16: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 16

L’échange de données

• On dispose de mécanismes pour transférer des données entre deux processus sans utiliser un fichier du disque dur :

Les tubes systèmes ou nommés

La mémoire partagée

Les files de messages

Page 17: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 17

L’interprète de commandes

Le_prompt > ls -l

bash

wait()

ls -l

fork()

execl()

bash

Page 18: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 18

La programmation de l’interprétation

Le schéma d’interprétation :switch ( fork())

{ case – 1 : /* erreur */ ; break ;case 0 : execl(« /bin/ls », « ls » ,« -l »,

NULL); break ;default : wait(0) ;

}/* code exécuté par le bash qui affiche le prompt*/

Page 19: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 19

La mort d’un processus

• La fin de l’exécution de la fonction main() entraîne la mort du processus et la valeur du return est retournée à l’interprète de commandes

• L’exécution de la primitive exit() ou la commande exit entraîne la fin du processus avec l’envoi de la valeur associée à l’interprète

• La réception d’un signal entraîne aussi sa mort si le signal n’est pas associé à un traitement spécifique

Page 20: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 20

Les commandes

• ps visualisation• top visualisation en temps réel• nice gestion de la priorité• time temps d’exécution• kill suppression d’un processus• wait attente de la fin du fils• exec <commande>

recouvrement par la <commande>

Page 21: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 21

Démarrage du système

• Le premier processus après l’initialisation est int de pid 1Les tâches d’int sont :

Montage des systèmes de fichiers ( /proc et ceux de /etc/fstab)Mise à l’heureL’activation du swapLe lancement des services (démons) syslog, crond, lpd …Le chargement des modulesL’affectation des variables d’environnement

Page 22: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 22

Le fichier /etc/inittab (1)

• Ce fichier, lu par init, indique les services à démarrer à l’initialisation. Les services sont regroupés suivant 7 niveaux d’exécution successifs

• En général : 0 arrêt du système1,s et S mode mono-utilisateur2 mode multi-utilisateurs6 redémarrage

Le niveau 3 est utilisé pour les services et 5 pour l’environnement graphique

Page 23: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 23

Le fichier /etc/inittab (2)

• Une ligne du fichier comporte les informations suivantes

<identifiant> <liste des runlevels> <action> <commande>

Les actions sont :Respawn, Once, Wait, Powerfail …• Les scripts exécutés suivant les runlevels sont

dans le répertoire /etc/rc.d (rc.sysinit, init.d avec les sous répertoires rc0.d, rc1.d …)

Page 24: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 24

Le script rc

• Le script rc exécute les fichiers du répertoire correspondant au numéro de runlevel passé en argument (rc 2 rc2.d)

• Dans le répertoire rc2.d, on trouve les liens symboliques vers des fichiers de /etc/init.d :

lrwxrwxrwx 1 root root 15 dec 16 2004 K50xinetd -> ../init.d/xinetd

lrwxrwxrwx 1 root root 15 dec 16 2004 S90crond -> ../init.d/crond

Page 25: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 25

La hiérarchie des processus

init (pid 1) /etc/inittab

Les démons initialisés par la commande rc suivant les niveaux de priorité

crond, lpd, xinetd … Le processus de login

bash

login

getty

/etc/passwd

/etc/profile

/etc/bashrc

~/.bashrc

Page 26: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 26

L’arrêt du système

• La commande shutdown

• La commande halt

• <ctrl> <alt> et <suppr>

Page 27: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 27

Implantation NT et XP

Page 28: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 28

Rappel

Mode utilisateur

Mode noyau

Application client

Sous système protégé (Win32)

Message

Service système

Noyau

Matériel

Gestionnaire Processus et threads

Appel système

Page 29: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 29

Processus et threads

• Chaque processus comporte un ou plusieurs threads

• Le système gère des objets processus et threads

• Pas de relation père-fils, le gestionnaire de processus crée des instances d’objet pour les sous-systèmes d’environnement qui les gèrent

Page 30: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 30

Les éléments du thread

• Le contexte :CO, une pile utilisateur et une noyau, les valeurs des registres, une zone privée pour des données

• L’espace commun :ce sont les objets du processus via les handles, l’espace d’adressage et toute autre ressource.

Page 31: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 31

Ressources d’un processus

Processus

Jetond’accès

Liste des descripteurs espace virtuel

handle 1handle 2handle 3

Table des objets

threadfichier

sectionObjets

Page 32: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 32

Les services du noyau

• Ordonnancement

• Gestion des interruptions et exceptions

interruption asynchrone

exception synchrone

• La synchronisation des processeurs

• La procédure de reprise du défaut d’alimentation

Page 33: Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

Francis ROGARD Initiation SE processus et threads 33

FIN