37
Les Processus Les Threads Ordonnancement Processsus, Thread et Ordonnancement IFIPS – Formation Continue Joel Falcou - LRI [email protected] Bat. 490 - Bureau 104 2008-2009 J. Falcou Système

Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

  • Upload
    vankiet

  • View
    225

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

Processsus, Thread et OrdonnancementIFIPS – Formation Continue

Joel Falcou - [email protected]

Bat. 490 - Bureau 104

2008-2009

J. Falcou Système

Page 2: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsGestion des processusMise en œuvre

Définitions

Un programme

Code décrivant une tacheLangage machine dans un fichier

Un processeurAutomate électronique de traitementChange son état en fonction des instructions

Un processusUn programme exécuté par un processeur

J. Falcou Système

Page 3: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsGestion des processusMise en œuvre

Définitions

Un programme

Code décrivant une tacheLangage machine dans un fichier

Un processeurAutomate électronique de traitementChange son état en fonction des instructions

Un processusUn programme exécuté par un processeur

J. Falcou Système

Page 4: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsGestion des processusMise en œuvre

Définitions

Un programme

Code décrivant une tacheLangage machine dans un fichier

Un processeurAutomate électronique de traitementChange son état en fonction des instructions

Un processusUn programme exécuté par un processeur

J. Falcou Système

Page 5: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsGestion des processusMise en œuvre

Propriétés des processus

ObjectifsSéparer les différentes tâches du systèmeGestion des fichiers/applicationsPermettre le multitache

ConséquencesChaque processus doit respecter les autres

J. Falcou Système

Page 6: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsGestion des processusMise en œuvre

Propriétés des processus

ObjectifsSéparer les différentes tâches du systèmeGestion des fichiers/applicationsPermettre le multitache

ConséquencesChaque processus doit respecter les autres

J. Falcou Système

Page 7: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsGestion des processusMise en œuvre

Structure d’un processus

EnvironnementVariables héritéesForme générale : PATH=/usr/binen C : getenv() et setenv()

J. Falcou Système

Page 8: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsGestion des processusMise en œuvre

Structure d’un processus

Le TasDonnées globales statiquesVariables allouées dynamiquementPartagées par tout les threads duprocessus

J. Falcou Système

Page 9: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsGestion des processusMise en œuvre

Structure d’un processus

La PileVariables temporaires duprogrammeChangements de contexteEn général limitée

J. Falcou Système

Page 10: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsGestion des processusMise en œuvre

Structure d’un processus

Le CodeRecopie du programme machineFixe et protégé en mémoireSegment exécutable du processus

J. Falcou Système

Page 11: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsGestion des processusMise en œuvre

Cycle de vie d’un processus

Démarrage

Chargement du codeÉdition des liens dynamiquesRecopie de l’environnementInitialisation du tasInitialisation du pointeur de pileLancement premiere instruction

Comment ?Unix : fork(),exec()Windows : createprocess()

J. Falcou Système

Page 12: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsGestion des processusMise en œuvre

Cycle de vie d’un processus

Démarrage

Chargement du codeÉdition des liens dynamiquesRecopie de l’environnementInitialisation du tasInitialisation du pointeur de pileLancement premiere instruction

Comment ?Unix : fork(),exec()Windows : createprocess()

J. Falcou Système

Page 13: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsGestion des processusMise en œuvre

Cycle de vie d’un processus

En cours d’exécutionExecution instruction par instructionMise en attente si :

Demande d’E/S a satisfaireInterruptions matérielles

Allocation des ressources sur demande

J. Falcou Système

Page 14: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsGestion des processusMise en œuvre

Cycle de vie d’un processus

J. Falcou Système

Page 15: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsGestion des processusMise en œuvre

Création d’un processus#include <stdio.h>#include <sys/types.h>#include <unistd.h>int main(){

pid_t pere,fils;int ret,x=1;printf("Starting ...\n");

fils = fork();if (fils==-1) fprintf(stderr, "fork failed");else{

if (fils==0) /* c’est le fils */{

printf("%d: Je suis le fils de %d \n", getpid(), getppid());sleep(20); x=2;printf("%d: Je sort \n",getpid());exit(20);

}else{

printf("%d: Je suis le pére de %d \n", getpid(), fils);waitpid(fils, &ret, 0);printf("%d: Le processus fils %d est sorti (code %d)\n", getpid(), getppid(),ret);

}}

}

J. Falcou Système

Page 16: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsGestion des processusMise en œuvre

Recouvrement de processus

En cours d’exécutionRemplacement du code par un nouveauRemise a zéro de la pileRemise a zéro du tasCopie des descripteurs noyauxHéritage de l’environnement

On ne revient pas d’un recouvrement

J. Falcou Système

Page 17: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsGestion des processusMise en œuvre

Recouvrement de processus#include <stdio.h>#include <sys/types.h>#include <unistd.h>int main(){

char *argu[3];pid_t pere,fils;int vingt,x=1;

fils = fork();if (fils==-1) fprintf(stderr, "fork failed");else{

if (fils==0) /* c’est le fils */{

printf("%d: Je suis le fils de %d \n", getpid(), getppid());argu[0] = "";argu[1] = "-a";argu[2] = NULL;execv("/bin/uname", argu);printf("invisible !");

}else{

printf("%d: Je suis le pére de %d \n", getpid(), fils);waitpid(fils, &vingt, 0);printf("%d: Le processus fils %d est sorti \n", getpid(), getppid());

}}

}J. Falcou Système

Page 18: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsMise en œuvre

Thread vs Processus

DéfinitionUn thread est l’unité d’ordonnancement

Multi-thread = actions simultanées sur des ressources partageables

Gestion 10 à 100 fois plus rapide que pour les processus

Implantés en mode utilisateur, noyau ou hybride

J. Falcou Système

Page 19: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsMise en œuvre

Thread vs Processus

DéfinitionUn thread est l’unité d’ordonnancement

Multi-thread = actions simultanées sur des ressources partageables

Gestion 10 à 100 fois plus rapide que pour les processus

Implantés en mode utilisateur, noyau ou hybride

Gestion en mode User SpaceRapidePrécaution vis à vis des appels systèmesNotion de Fibre

J. Falcou Système

Page 20: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsMise en œuvre

Thread vs Processus

DéfinitionUn thread est l’unité d’ordonnancement

Multi-thread = actions simultanées sur des ressources partageables

Gestion 10 à 100 fois plus rapide que pour les processus

Implantés en mode utilisateur, noyau ou hybride

Gestion en mode Kernel SpaceUne fonction de thread = 1 appel systèmeBon couplage avec l’ordonnanceurGestion efficace des appels systèmes internes

J. Falcou Système

Page 21: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsMise en œuvre

Relation Processus-Threads

DéfinitionUn processus peut contenir plusieurs Threads simultanément

Ressources spécifiquesles Pilesle contexte d’appel

Ressources partagéesle Tasles descripteurs de fichiersle processeur (hyper-threading)

Nécessité de gérer ces partages

J. Falcou Système

Page 22: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsMise en œuvre

Relation Processus-Threads

DéfinitionUn processus peut contenir plusieurs Threads simultanément

Ressources spécifiquesles Pilesle contexte d’appel

Ressources partagéesle Tasles descripteurs de fichiersle processeur (hyper-threading)

Nécessité de gérer ces partages

J. Falcou Système

Page 23: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsMise en œuvre

Relation Processus-Threads

DéfinitionUn processus peut contenir plusieurs Threads simultanément

Ressources spécifiquesles Pilesle contexte d’appel

Ressources partagéesle Tasles descripteurs de fichiersle processeur (hyper-threading)

Nécessité de gérer ces partages

J. Falcou Système

Page 24: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsMise en œuvre

API et standards

Plusieurs variantes ...Posix le plus standardWinThreadJava.Thread géré par la machine virtuelle

Pièges à éviterVariables globalesDebordement de pilesGestion des signaux

J. Falcou Système

Page 25: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsMise en œuvre

API et standards

Plusieurs variantes ...Posix le plus standardWinThreadJava.Thread géré par la machine virtuelle

Pièges à éviterVariables globalesDebordement de pilesGestion des signaux

J. Falcou Système

Page 26: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

Ordonnancement

DéfinitionsMise en œuvre

Threads POSIX par l’exemple#include <stdio.h>#include <stdlib.h>#include <pthread.h>

void *my_process (void * arg){

int i;

for (i = 0 ; i < 5 ; i++) {printf ("Thread %s: %d\n", (char*)arg, i);sleep (1);

}pthread_exit (0);

}

int main(){

pthread_t th1, th2;void *ret;

pthread_create (&th1, NULL, my_process, "1");pthread_create (&th2, NULL, my_thread_process, "2");

pthread_join (th1, &ret);pthread_join (th2, &ret);

}

J. Falcou Système

Page 27: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

OrdonnancementPolitiques

Gestion réaliste des processus

ProblématiqueUn processus = ressourcesPlusieurs processus ? ? ?Il faut partager les ressources

L’ordonnancementSélectionner un processus parmi les activablesQuelles politiques ?Quelle représentation ?

J. Falcou Système

Page 28: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

OrdonnancementPolitiques

Gestion réaliste des processus

ProblématiqueUn processus = ressourcesPlusieurs processus ? ? ?Il faut partager les ressources

L’ordonnancementSélectionner un processus parmi les activablesQuelles politiques ?Quelle représentation ?

J. Falcou Système

Page 29: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

OrdonnancementPolitiques

Comment ordonnancer ?

Propriétés d’un ordonnancement

ÉquitéEfficacitéRéactivité

Solutions modernesOrdonancement préemptifAllocation de quantum de temps

Mais pas universelles :(Quantum faible = meilleur réactivitéQuantum fort = meilleur efficacité

J. Falcou Système

Page 30: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

OrdonnancementPolitiques

Comment ordonnancer ?

Propriétés d’un ordonnancement

ÉquitéEfficacitéRéactivité

Solutions modernesOrdonancement préemptifAllocation de quantum de temps

Mais pas universelles :(Quantum faible = meilleur réactivitéQuantum fort = meilleur efficacité

J. Falcou Système

Page 31: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

OrdonnancementPolitiques

Comment ordonnancer ?

Propriétés d’un ordonnancement

ÉquitéEfficacitéRéactivité

Solutions modernesOrdonancement préemptifAllocation de quantum de temps

Mais pas universelles :(Quantum faible = meilleur réactivitéQuantum fort = meilleur efficacité

J. Falcou Système

Page 32: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

OrdonnancementPolitiques

Quelques Ordonnancements

FIFO (ou round-robinPremier arrivé, Premier serviTemps de réponse ∝ nombre de processus actifsCertains processus doivent être activés avant les autres

Priority QueuesOrdonnancement en fonction de la priorité des processusProcessus interactif = Priorité hauteRisque de famine pour les processus à faible priorité

J. Falcou Système

Page 33: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

OrdonnancementPolitiques

Quelques Ordonnancements

FIFO (ou round-robinPremier arrivé, Premier serviTemps de réponse ∝ nombre de processus actifsCertains processus doivent être activés avant les autres

Priority QueuesOrdonnancement en fonction de la priorité des processusProcessus interactif = Priorité hauteRisque de famine pour les processus à faible priorité

J. Falcou Système

Page 34: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

OrdonnancementPolitiques

Exemples

Données du problèmeCinq processus A,B,C,D,E exécutés dans cet ordreAucun appel à des I/ODurées des processus :

Proc. A B C D EDurée 10s 6s 2s 4s 8sPrio 3 5 2 1 4

Stratégies

Ordonnancement préemptif à quantum de 2sPrioritéRound-Robin

J. Falcou Système

Page 35: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

OrdonnancementPolitiques

Exemples

Données du problèmeCinq processus A,B,C,D,E exécutés dans cet ordreAucun appel à des I/ODurées des processus :

Proc. A B C D EDurée 10s 6s 2s 4s 8sPrio 3 5 2 1 4

Stratégies

Ordonnancement préemptif à quantum de 2sPrioritéRound-Robin

J. Falcou Système

Page 36: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

OrdonnancementPolitiques

Exemples

A (3, 10s)

B (5, 6s)

C (2, 2s)

D (1, 4s)

E (4, 8s)0 5 10 15 20 25 30

J. Falcou Système

Page 37: Processsus, Thread et Ordonnancement - Laboratoire …falcou/teaching/processus.pdf · Les Processus Les Threads Ordonnancement Définitions Gestion des processus Mise en œuvre

Les ProcessusLes Threads

OrdonnancementPolitiques

Exemples

A (10s)

B (6s)

C (2s)

D (4s)

E (8s)0 5 10 15 20 25 30

J. Falcou Système