Gestion de processuskanawati/system/cours3-proc… ·  · 2011-11-17Introduction Etats d’un...

37
Introduction Etats d’un processus Commutation de processus Ordonnancement de processus Communication entre processus Gestion de la concurrence ef´ erences Gestion de processus Rushed Kanawati [email protected] 13 octobre 2008 R. Kanawati Syst` eme d’exploitation

Transcript of Gestion de processuskanawati/system/cours3-proc… ·  · 2011-11-17Introduction Etats d’un...

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Gestion de processus

Rushed [email protected]

13 octobre 2008

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Plan

Introduction

Etats d’un processus

Commutation de processus

Ordonnancement de processus

Communication entre processus

Gestion de la concurrenceSection critiqueInterblocage

References

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Definitions

I Un processus est un programme en execution.

I Un processus est identifie par un numero unique PID (ProcessIDentifier).

I Sous Linux, la commande ps donne la liste des processus encours d’execution (voir man ps).

I L’etat courant d’un processus est donnee par son contexte.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Contexte d’un processus

I Espace d’adressage : zone memoire (virtuelle) associee auprocessus qui contient :

I Le code du programme a executer.I Les donnees statiques.I Le tas : une zone pour l’allocation des variables dynamiques.I La pile : zone pur l’allocation des variables temporaires (appel

de fonctions, variables locales,. . . , etc.)I Variables d’environnement.

I L’etat d’execution : pointeur d’instruction, pointeur de pile,registre d’etat, les autres registres,. . . ,

I Autres information : priorite, utilisateur, mode d’execution,etc.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Les processus legers (Threads)

I Un thread est un flux d’execution qui s’execute au sein del’espace d’adressage d’un processus.

I Les threads definis dans un processus partagent l’espaced’adressage du processus.

I Communication entre threads par variables partagees.I Utilite : programmation d’application concurrente ou

differentes instructions peuvent etre executees en memetemps :

I Applications dotees d’interfaces graphiques.I Des serveurs : traitement de requetes en parallele.I . . .

I Programmation delicate : probleme de gestion de laconcurrence, de la synchronisation entre threads, etc.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Cycle de vie d’un processus

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Creation de processus (Unix) 1/2

I Un processus (fils) est cree par un autre processus (leprocessus pere).

I Un processus primitif (init, pid 1) est cree au demarrage dusysteme.

I Un processus de gestion de swap (pid 0) est cree avant afinde se charger de migration de processus entre la memoirecentrale et la memoire secondaire (disque).

I Le processus pere cree un clone (appel systeme fork()).I Le pere et le fils ne se distinguent que par le resultat de

l’appel fork() :I Pour le pere : fork() renvoie le pid du fils, -1 si pas de

creation de fils.I Pour le fils, fork() renvoie 0.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Creation de processus Unix (2/2)

I pid = fork() ;if (pid !=0)/* code du pere */else/* code du fils */

I Les processus sont alors organises en arbre dont la racine estle processus init

I La commande pstree permet d’afficher l’arbre des processusen execution.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Terminaison d’un processus

I Fin du programme execute.

I Destruction (explicite) par un autre processus ((ex. kill -9 )

I Fin d’un processus ancetre.

I La commande nohup permet a un processus de survivre a sonpere.

I Des processus demons ne se terminent pas. Ils realisent desservices systemes.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Execution de processus

I Si nombre de processeurs gt nombre de processus alorsexecuter un processus par processeur (cas ideal).

I Sinon : execution de plusieurs processus sur un memeprocesseur en mode : temps partage.

I Un processus est pret si toutes les ressources requises sontdisponibles, sauf le processeur.

I Le processeur est alloue a des processus prets par tranches detemps : appele quantum

I Un quantum est une periode qui permet d’executer quelquesmillions d’instructions machines (ex. 10-100 ms).

I L’expiration d’un quantum est signalee par une interruptiond’horloge.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Commutation de processus 1/2

I A l’expiration d’un quantum, le systeme doit effectuer uneoperation de commutation de processus.

I Operation effectuee par un service du noyau du systemeappele l’ordonnanceur (schedular).

I Un processus en execution peut etre amene a liberer leprocesseur en cas de :

I fin du processus,I blocage du processus : suite a une demande d’operation E/S,

de synchronisation avec d’autres processus, d’interruption duprocessus, etc. (passage en mode bloque).

I Expiration du quantum.

I Exemple : lancement d’une application a partir d’un shell enmode interactive : Ex. emcas

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Commutation 2/2

I L’ordonnaceur doit :

I Sauvegarder le contexte du processus actuel (si il n’est pastermine).

I Elire un processus parmi les processus prets.I Charger le contexte du processus elu et l’executer :I Restaurer les structure definissant la memoire virtuelle.I Charger les registres.I Le temps de la commutation doit etre inferieur au quantum

(de l’ordre de 0.5 ms).

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Files d’attentes

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Criteres a optimiser

I Maximiser l’utilisation du temps processeurI Maximiser le debit

en terme de nombre de processus traite par unite du tempsI Minimiser le temps moyen d’attente de processus (dans la file

pret)I Minimiser le temps moyen de rotation

temps de rotation : le temps de l’execution attentes inclusI Minimiser le temps de reponseI . . .I Proprietes necessaires :

I Equite entre processus.I Absence de famine.

I Grand nombre d’algorithmes d’ordonnancement.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Politique FIFO

I Premier arrive premier servi.

I Exemple : Soient les trois processus cites en ordre d’arriveeP1,P2,P3 dont les temps processeur sont respectivement : 20,2, 1.

I Politique FIFO donne un temps d’attente moyen de : (0 + 20+ 22 )/3 = 14.

I Si ordre d’arrivee : P3,P2,P1 le temps moyen d’attente serade : (0 + 1 + 3)= 1.33

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Politique : Processus court d’abords

I SJF : Shortest Job First.

I Estimer le temps restant d’un processus.

I τn+1 =n +((1− α)τn ou τn est l’estimation a l’etape n et tn letemps d’execution a l’etape n.

I Elire le processus associe au temps le plus court.I Deux schema :

I non preemptif : une fois une processus est elu, il s’executejusqu’au blocage ou expiration du quantum.

I preemptif : Si un nouveau processus arrive avec un tempsestime inferieur au temps restant du processus en cours alorson effectue la commutation.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

SJF : exemple

Processus Temps d’arrivee Temps d’execution

P1 0 7P2 2 4P3 4 1P4 5 4

I Non preemptif : temps d’attente : (0 + 6 + 3 +7)/4 = 4

I Preemptif : temps d’attente : (9 + 1 + 0 + 2)/4 = 3

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Ordonnancement avec priorite

I Principe : Associer une priorite a chaque processus (ex. tempsd’execution restant ! !)

I Elire le processus le plus prioritaire.

I Deux schema : preemptif et non preemptif.

I Probleme : Famine, les processus de faible priorite peuvent nepas etre servis

I Solution : Changer la priorite des processus en file d’attente.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Tourniquet (Round Robin)

I A l’expiration d’un quantum ou au blocage, le processus estmis en fine de la file d’attente.

I Temps maximale d’attente d’un processus : q × N − 1 ou qest le quantum et N est le nombre de processus dans la file.

I Equite et pas famine.I probleme : choix de la valeur de q :

I grande valeur : performance FIFO.I petite valeur : faible performance (sur-cout)

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Ordonnancement avec file multi-niveaux

I Plusieurs files d’attentes de differentes priorites.

I Differentes politiques pour gerer les differentes files.

I Prevoir des mecanismes de passage d’une file a une autre (suret sous-classement).

I Ordonnancement inter files.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Exemple

I Emploi de trois files d’attentes : Q1,Q2,Q3.

I Le quantum associe a Q1 (resp. Q2) est q1 (resp. q2 > q1).

I Q3 est geree en politique FIFO.

I A la creation un processus est ajoute a Q1.

I A l’expiration du q1 le processus passe a Q2.

I A l’expiration de Q2 le processus passe a Q3.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Communication entre processus

I IPC Inter process Communication.I Differents mecanismes :

I Communication par signaux.I Communication par tubes.I Communication par files de messages.

voir cours programmation systeme (ing2)I Communication par memoire partage

voir cours programmation systeme (ing2)I Communication par sockets.

voir cours programmation reseaux

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Signaux

I Un signal est un evenement asynchrone destine a un ouplusieurs processus.

I Un signal peut etre envoye par un processus ou par le systeme.

I Liste predefinis de signaux possibles.

I Un processus definit les signaux auxquels il peut reagir.

I L’arrivee d’un signal interrompe l’execution d’un processus etexecute la fonction de traitement du signal recu.

I A la fin du traitement, le processus reprend son executionnormale.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Signaux

I Chaque signal est identifie par un nom symbolique (representeun entier).

I utiliser la commande trap -l pour avoir la liste des signaux.

I Chaque signal est associe a un traitant par defaut.

I Un signal peut etre ignore par un processus.

I Les signaux ne sont pas memorises.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Exemples de signaux

Nom Evenement Traitement par defaut

SIGINT CTL-C terminaisonSIGSTP CTL-Z SuspensionSIGKILL terminaisonSIGCONT reprise

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Etat d’un signal

I Un signal est envoye par un emetteur et recu par undestinataire.

I Tant que le signal n’est pris en compte par le destinataire ilest pendant.

I IL ne peut exister qu’un signal pendant d’un type donnee a lafois. S’il arrive un autre signal du meme type il est ignore.

I un signal est bloque pendant l’execution d’un traitant d’unsignal du meme type.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Structure de gestion de signaux

No. Signal Pendant Bloque Pointeur traitant Masque

1 0/1 0/1 fonction 1,1/0,. . . ,mNbSignaux

. . . . . . . . . . . . . . .NbSignaux 0/1 0/1 fonction m1, . . . ,mNbSignaux

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Gestion d’un signal

I A la reception d’un signal iI Si not bloque[i] Alors

I Si not pendant[i] AlorsI pendant[i] = 1I appliquer le masque iI executer le traitant iI retablir le masque

I SinonI ignorer le signal

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Section critiqueInterblocage

Gestion de la concurrence : exemple introductif

I Retirer un montant m d’un compte bancaire : retrait(m)

I OP1. lire le solde.I Op2. Si m = solde alors

I Op3. solde=solde -m

I SinonI retrait refuse

I Soit un compte dont le solde = 1000

I On fait deux retraits en parallele : P1 : retrait(800), P2 :retrait(500)

I Execution : P1.1, P1.2, P2.1, P2.2, P1.3, P2.3

I Resultat : retrait de 1300 et le solde reste a 500 ! !

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Section critiqueInterblocage

Le probleme

I Probleme d’acces concurrent a une ressource partagee :section critique

I Solution : Assurer l’exclusion mutuelle lors de la manipulationd’une section critique

I Un seul processus, a la fois, peut entrer dans une sectioncritique.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Section critiqueInterblocage

Exclusion mutuelle

I Differentes types de solutionI Solution a base de verrouillage :

I Avant l’entree en section critique, un processus demande deverrouiller la section

I Si la section est libre alors elle sera verrouille au profit duprocessus demandeur

I Sinon le processus se bloque en attendant la liberation de lasection.

I Exemple de retrait : P1 verrouille le compte, P.OP1, P1.OP2,P2. est bloque suite a la demande de verrouillage, P1.OP3, P1.Liberation du compte. P2. OP1, P2.OP2, P2 : retrait refuse.solde=200.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Section critiqueInterblocage

Verrouillage partage

I Probleme : Le verrouillage exclusif n’est par toujours requis.

I Exemple : deux processus P1, P2. qui lisent un fichier f sansle modifier

I Besoins :I Lectures multiples : P1, P2. lisent le fichier en meme tempsI Ecriture exclusive : Un processus P3 qui modifie f doit etre en

exclusion mutuelle meme avec des lecteurs.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Section critiqueInterblocage

Verrouillage partage

I Demande Verrouillage de r en acces partage :I si r est verrouille en mode partage alors OK.I si r est verrouille en mode exclusif alors attente.

I Demande de verrouillage de r en acces exclusive :I si r est verrouille (partage ou exclusive) alors attente sinon

verrouillage.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Section critiqueInterblocage

Partage de plusieurs ressources

I Soient P1,P2 deux processus qui partagent deux ressourcesr1, r2

I processus P1 : Verrouillage exclusif(r1), manipulation de r1,Verrouillage exclusif(r2), . . . , Liberation des verrous.

I processus P2 : Verrouillage exclusif(r2), manipulation de r2,Verrouillage exclusif(r1), . . . ,liberation des verrous.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Section critiqueInterblocage

Interblocage

I Situation dans laquelle plusieurs processus sont bloque et ouchacun des processus ne peut etre reveille que par une actionde l’un des autres processus.

I Solutions : dux familles d’approches ; prevention et guerison

I Prevention : reservation globale des ressource, ou reservationselon le meme ordre.

I Guerison : detection de l’interblocage, arreter certainsprocessus.

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

Section critiqueInterblocage

Detection de l’interblocage

I Utilisation d’un graph G =< V ,E ⊂ V × V > ou V estl’ensemble de processus et E est l’ensemble de liens.

I Deux processus sont lies (v1, v2) ∈ E si v1 attends v2

I Interblocage : Apparition d’un cycle dans G

R. Kanawati Systeme d’exploitation

IntroductionEtats d’un processus

Commutation de processusOrdonnancement de processus

Communication entre processusGestion de la concurrence

References

References

I A. Tanenbaum, Systeme d’exploitation, Pearson Eductaion,2003.

I S. Karkowiak, Principe des systeme d’exploitation desordinateurs. Dunod, 1985.

I J-M. Lery, Unix et Linux, utilisation et adminsitration.Pearson eduation, 2004.

R. Kanawati Systeme d’exploitation