Вы находитесь на странице: 1из 58

Notions de base

Ordonnancement

Communication et synchronisation

Les processus

Julien Forget 1
Universit Lille 1 cole Polytechnique Universitaire de Lille Cit Scientique 59655 Villeneuve dAscq

GIS3 2011 - 2012

1. Inspir des slides de Thomas Vantroys


Les processus 1 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Plan

Notions de base

Ordonnancement

Communication et synchronisation inter-processus

Les processus 2 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Programme et processus
Dnition Un processus est un programme en cours dexcution.
Chaque excution dun programme (ventuellement plusieurs fois le mme) donne lieu un processus diffrent ; A tout instant, un processeur excute au plus un processus ; Dans un OS multi-tches, le systme alterne entre lexcution de plusieurs processus ; Seuls les systmes multi-cur ou multi-processeur excutent rellement plusieurs processus en mme temps (un par cur/processeur) ; Plus gnralement, les processus partagent laccs diffrentes ressources : processeur mais aussi mmoire et priphriques.
Les processus 3 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Proprits dun processus


A un instant donn, un processus est caractris par de nombreuses informations, dont :
Son tat : excution, suspendu, etc. ; Son identicateur ; Son compteur ordinal : indique la prochaine instruction excuter ; Sa pile dexcution : mmorise lempilement des appels de fonction ; Ses donnes en mmoire ; Toutes autres informations utiles son excution (E/S, chiers ouverts, . . . )

Les processus 4 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Cration de processus
En Unix :
Au lancement du systme, un unique processus ; Lappel systme fork cre un nouveau processus ; Le processus pre et le processus ls sexcutent en parallle ; Le pre et le ls peuvent nouveau effectuer un fork ; Hirarchie arborescente de processus.

Visualiser larborescence des processus : pstree [options]


init NetworkManager 2[ d h c l i e n t ] | | 2 [ { NetworkManager } ] | acroread 2[{acroread } ] | gnomet e r m i n a l bash emacs sh evince 4[{ e v i n c e } ] | | {emacs } | evince 3[{ e v i n c e } ] | p s t r e e
Les processus 5 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Mode dexcution

Deux modes dexcution dun processus :


Mode noyau : accs sans restriction (manipulation de la mmoire, dialogue avec les contrleurs de priphriques, . . . ) Mode utilisateur : accs restreint, certaines instructions sont interdites (pas daccs direct aux priphriques). Il peut tre interrompu par dautres processus.

Les appels systmes permettent un processus en mode utilisateur daccder (temporairement) des fonctions ncessitant le mode noyau.

Les processus 6 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Identicateurs dun processus


Plusieurs identicateurs sont associs un processus (UNIX) :
Numro de processus (pid) ; Numro du processus pre (ppid) ; Identicateur dutilisateur rel ; Identicateur dutilisateur effectif (bit setuid) ; Identicateur de groupe rel ; Identicateur de groupe effectif (bit setgid) ; Liste didenticateurs de groupes.

Possibilit de connatre ces informations dynamiquement via des appels systmes.

Les processus 7 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Evolution de ltat au cours de lexcution

Les processus 8 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Etat dun processus

non cr : le code nest pas en mmoire ; cr : le code est en mmoire, en attente dactivitation ; ligible : lactivation a t demande. En attente de laccs au processeur ; lu : le processus sexcute ; suspendu : une ressource est indisponible (alloue un autre processus).

Les processus 9 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Premption
1

Le systme interrompt lexcution dun processus pour en excuter un autre (ressource indisponible, processus prioritaire, etc.) ; Il sauve le contexte du processus et le remplace par celui dun autre ; Il rtablira plus tard le contexte du processus prempt.

Contexte dun processus : valeur du compteur ordinal, adresse de la pile, valeur des registres, etc.

Les processus 10 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Classication des systmes

Gestion des processus


mono-tche : CPU ddi un processus ; multi-tche : CPU partag entre les processus ; multi-tche premptif : possibilit de suspendre puis rtablir un processus en cours dexcution.

Gestion des utilisateurs


mono-utilisateur : pas de cohabitation entre utilisateurs ; multi-utilisateur : cohabitation possible.

Les processus 11 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Exemples de systme dexploitation

MS-DOS : mono-utilisateur, mono-tche ; Windows : mono-utilisateur, multi-tche ; WinNT : mono-utilisateur, multi-tche premptif ; UNIX : multi-utilisateur, multi-tche premptif.

Les processus 12 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Visualisation des processus


Sous WinNT :

Les processus 13 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Visualisation des processus


Sous UNIX :
linformation sur les processus en cours peut tre obtenue par : ps [options] pour les options consultez le man

Les processus 14 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Visualisation des processus


Sous UNIX :
visualisation dynamique des processus : top [options]

Les processus 15 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Interruption des processus


Sous UNIX : kill [numro_de_signal] numro_de_processus
kill -l donne lensemble des signaux disponibles exemple de signaux :
SIGHUP (1) : mis tous les processus associs un terminal lorsque celui-ci se dconnecte SIGINT (2) : mis tous les processus associs un terminal lorsque <ctrl + C > est tap SIGKILL (9) : tue un processus quel que soit son tat. Cest larme absolue. SIGTERM (15) : signal de terminaison normale dun processus

Les processus 16 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Lancement en arrire plan


Il est possible de lancer une commande sans que le shell courant en attende la terminaison : commande &
Elle ne peut plus lire au clavier ; Les sorties standards sont toujours associes, par dfaut, au terminal ; Elles ne sont plus interruptibles partir du clavier (ctrl-c par exemple).

Connatre les processus lancs en arrire plan (pour un shell donn) : jobs

Les processus 17 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Changement dtat dun processus


Sous UNIX :

Les processus 18 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Problmatiques de la gestion de processus

Difcult principale : gestion de laccs concurrent diverses ressources :


Accs au processeur : ordonnancement ; Lecture/criture de donnes :
Assurer la cohrence des donnes ; Grer les synchronisations lecteur/crivain ; Eviter les blocages.

Les processus 19 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Plan

Notions de base

Ordonnancement

Communication et synchronisation inter-processus

Les processus 20 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Dnition

Lordonnancement (scheduling) est une fonction fondamentale dun systme dexploitation ; A la base de la programmation multi-tche :
Plusieurs processus en mmoire en mme temps ; Assignation du processeur un processus en fonction de certains critres ;

Objectif = optimiser lutilisation concurrente du processeur.

Les processus 21 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Ordonnanceur vs dispatcher
Lordonnanceur est responsable de lorganisation des le dattente des tches ligibles ; Le dispatcher ralise llection dun processus et le changement de contexte associ.

Les processus 22 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Dcisions de lordonnanceur
Les dcisions de lordonnanceur peuvent avoir lieu dans les circonstances suivantes :
1

Quand un processus passe de ltat "lu" "suspendu" (attente de disponibilit dune ressource) ; Quand un processus passe de ltat "lu" ltat "ligible" ( cause dune interruption) ; Quand un processus passe de ltat "suspendu" ltat "ligible" (libration dune ressource) ; Quand un processus se termine.

Les processus 23 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Rquisition

Ordonnancement sans rquisition :


Lordonnanceur nintervient quen 1 et 4 ; Une fois le processeur allou un processus, celui-ci le garde jusqu ce quil ait termin ou passe en attente.

ordonnancement avec rquisition :


lordonnanceur intervient dans les cas 1 4 problmes rsoudre :
Le partage des donnes ; Accs des priphriques non partageables.

Les processus 24 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Qualit de lordonnancement

Quelques critres de qualit de lordonnancement :


Taux dutilisation du processeur lev ; Temps de rponse court : rpondre rapidement un vnement extrieur ; Equit : partage quitable du processeur entre les processus ; Discrtion : le temps pass faire les choix dordonnancement doit rester faible.

Les processus 25 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Premier arriv, premier servi (FCFS)

First Come, First Serve cest le plus simple gestion dune le FIFO une fois le processeur allou un processus celui-ci le garde . . . peu utilisable pour le temps partag dsastreux si le processus en excution ne se termine pas

Les processus 26 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Exercice
Processus P1 P2 P3 P4 Questions :
Un processus peut-il tre prempt ? Que faire en cas dgalit ? Donner lordonnancement en mono puis bi-processeur.

Arrive 20 0 10 10

Dure 10 30 40 20

Les processus 27 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Plus court temps de traitement

les temps dexcutions des tches sont supposs connu technique favorisant les traitements courts en cas de charge, le temps de rponse des traitements longs sera catastrophique

Les processus 28 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Exercice

Processus P1 P2 P3 P4 Questions :

Arrive 20 0 10 10

Dure 10 30 40 20

Un processus peut-il tre prempt ? Donner lordonnancement en mono-processeur.

Les processus 29 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Le tourniquet (round robin)


spcialement conu pour le temps partag le datente circulaire un quantum de temps est allou chaque processus tout processus ligible est certain dtre lu une fois

Les processus 30 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Le tourniquet : exemple

Les processus 31 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Le tourniquet : choix du quantum


cest une affaire de compromis
sil est trop court, le temps de commutation t1 devient prohibitif devant le temps consacr au processus t2 sil est trop long, le temps dattente des autres processus peut devenir gnant par rapport au temps de rponse fournir

Les processus 32 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Exercice
Processus P1 P2 P3 P4 Arrive 20 0 10 10 Dure 10 30 40 20

On considre un quantum de 10 :
Un processus peut-il tre prempt ? A-t-on une notion de priorit ? Donner lordonnancement en mono-processeur.

Les processus 33 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Par priorit

attribution dune priorit chaque processus priorit alloue statiquement ou dynamiquement sans ou avec rquisition du processeur
sans : le processus est rang en le dattente en fonction de sa priorit par rapport aux processus en attente avec : si le processus qui arrive dans la le dattente est plus prioritaire que celui en cours dexcution, il y aura rquisition du processeur en faveur du processus arrivant.

Les processus 34 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Exercice
Processus P1 P2 P3 P4 Arrive 20 0 10 10 Dure 10 30 40 20 Priorit 4 1 3 2

Sachant que la priorit la plus faible est 1, donner lordonnancement en mono-processeur :


Sans rquisition ; Avec rquisition.

Les processus 35 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Par les dattente multi-niveaux


Combinaison des systmes prcdents :
Gestion par priorits et si priorits gales, gestion par tourniquet ou FIFO

Les processus 36 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Exercice

Processus P1 P2 P3 P4

Arrive 30 0 10 10

Dure 10 30 40 20

Priorit 3 1 2 2

La priorit la plus faible est 1 et le quantum est de 10 :


Le systme peut-il fonctionner avec/sans rquisition ? Donner lordonnancement en mono-processeur.

Les processus 37 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Par priorit + temps partag + ge

les processus sont lus en fonction de leur priorit ; chaque priode dhorloge (tick ), la priorit des processus en attente augmente ; si un processus devient plus prioritaire que celui en cours dexcution, alors il y a premption et le processus interrompu revient en le dattente avec sa priorit initiale.

Les processus 38 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Par priorit + temps partag + ge (exemple)

Les processus 39 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Plan

Notions de base

Ordonnancement

Communication et synchronisation inter-processus

Les processus 40 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Processus communicants
Les processus concurrents dun systme dexploitation peuvent tre :
Indpendants : les traitements quils effectuent ne sont pas lis ; Communicants : les processus ont besoin dchanger des donnes.

Plusieurs raisons pour la communication :


Le partage dinformation ; Lacclration du calcul ; La modularit (sparation dun programme complexe en plusieurs processus).

La communication peut se faire :


Via une zone mmoire commune ; Par change de messages ; Par chiers.

Ncessite de synchroniser les processus communicants.


Les processus 41 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Le problme des accs concurrents


Les processus communicants partagent des donnes assurer la cohrence des donnes. Exemple :
out indique le chier imprimer ; in indique o mettre en attente un chier imprimer ; Problme : si B interrompt A juste quand il lit la valeur de in.

Les processus 42 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Exclusion mutuelle

Il faut interdire laccs simultan une ressource partage ; On parle dexclusion mutuelle entre processus concurrents ; Lexclusion mutuelle ne concerne quune portion de lexcution des processus : les sections critiques ; Il faut assurer que :
On na jamais deux processus simultanment en section critique ; La solution ne dpend pas de la vitesse relative des processus ; Un processus suspendu hors section critique ne bloque pas les autres ; Tout processus nit par rentrer en section critique.

Les processus 43 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Exclusion par verrou


Si verrou =1 alors la ressource est utilise par un autre processus donc on attend ; Si verrou = 0 le processus met 1 et utilise la ressource ; La variable verrou doit tre commune aux processus cooprants ; Problme :
Attente active gaspillage du temps processeur ; 2 processus en section critique si interruption/premption au point "A".
Les processus 44 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Exclusion par alternance


while (TRUE) { while ( t o u r ! = 0 ) { section_critique ( ) ; t o u r =1; section_noncritique ( ) ; } while (TRUE) { while ( t o u r ! = 1 ) { section_critique ( ) ; t o u r =0; section_noncritique ( ) ; }

Le processus n rentre en section critique si tour = n ; En n de section critique il indique que cest le tour de lautre processus ; Problmes :
Attente active ; Un processus (P1) peut bloquer lautre (P2) sans tre (P1) en section critique. Ex : si la section non critique de P1 est trs longue.
Les processus 45 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Les smaphores
Proposs en 1965 par E.W. Dijsktra ; Un smaphore est un compteur muni de deux oprations :
P(s)/wait(s) (prendre) : Si cpt(s) > 0 alors cpt(s) = cpt(s)-1 Sinon processus mis en attente de s V(s)/signal(s) (rendre) : cpt(s)=cpt(s)+1 liberer un processus en attente de s

Toute opration sur un smaphore est atomique (ininterruptible).

Les processus 46 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Exclusion par smaphore


Exemple : 3 tches qui dsirent utiliser une ressource commune (une imprimante) ; Les processus synchroniser partagent un smaphore ; Smaphore binaire : le compteur vaut 0 ou 1 ressource unique, pas daccs simultan.

Les processus 47 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Smaphore compte
Exemple : un consommateur et plusieurs producteurs ; Smaphore compte : cpt (s) varie entre 0 et un certain n (ici, n = 6).

Les processus 48 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Smaphores : ressources multiples


Problme :
Tche 1 crit dans tampon 1, tche 2 crit dans tampon 2 ; Tche 3 lit ces zones lorsquelles sont toutes deux remplies ; Tche 3 ne peut pas lire si tche 1 ou tche 2 crit ; Tche 1 et la tche 2 ne peuvent pas crire tant que leur zone tampon respective na pas t lue.

Les processus 49 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Smaphores : ressources multiples


Solution :

Les processus 50 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Interblocage
Soit deux processus P0, P1, tels que P0 est plus prioritaire que P1 et P0 commence un peu plus tard que P1.

1 2

P1 excute wait(s2), qui est alors non bloquant. A ce moment, P1 est interrompu par P0 qui excute wait(s1) (non bloquant) puis wait(s2) (bloquant !). P1 reprend donc la main et excute wait(s1) (bloquant aussi !) Interblocage : les processus sattendent mutuellement.
Les processus 51 / 58

3 4

Notions de base

Ordonnancement

Communication et synchronisation

Un classique : philosophes et spaghetti


Un philosophe a deux activits : manger ou penser ; Un philosophe mange des spaghetti avec 2 fourchettes ; Il ny a quune fourchette par personne...

Comment assurer le bon droulement du repas ?


Les processus 52 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Smaphore et inversion de priorit

Une erreur de ce type est lorignie du crash du rover sur Mars.


Les processus 53 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Protocole dhritage de priorit

Solution linversion de priorit :


A lentre en section critique : une tche hrite de la plus haute priorit des tches concurrentes sur cette section ; A la sortie de la section critique : la tche retrouve sa priorit normale ; Limitations :
Nvite pas les deadlocks ; Dans le cas dune chane de blocage le changement de priorit peut amener un fort dlai sur la tche de haute priorit.

Les processus 54 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Communication par messages

Dans le cas de systmes distribus (mmoires distinctes) :


On doit synchroniser des processus distants les uns des autres ; On utilise un systme dchange de message :
Envoi du message : sendMsg(destinataire, message) ; Rception du message : rcvMsg(expditeur, message).

Principaux modes dchange de messages possibles :


Bote aux lettres ; Rendez-vous.

Les processus 55 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Messages par bote aux lettres


Un producteur poste dans la bote et continue ses traitements sans attendre ; Le consommateur relve le courrier quand il veut ; Questions :
Quelle dimension pour la bote aux lettres ? Que faire lorsque la bote est pleine : ignorer ou craser ?

Les processus 56 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Messages par rendez-vous

Pas de mmoire tampon ; Le send et le receive sont synchroniss :


Si send avant receive alors send bloquant ; Si receive avant send alors receive bloquant.

Avantages :
Economise la mmoire ; Pas de pertes de donnes.

Inconvnient : ralentit les processus sils ne vont pas au mme rythme.

Les processus 57 / 58

Notions de base

Ordonnancement

Communication et synchronisation

Echange de messages : problmes classiques

Rseau imparfait possibilit de perte de message ; Ct producteur : sassurer que le message est bien arriv (acquittement) ; Ct consommateur, si aucune donne narrive :
Continuer avec une donne ancienne ? Attendre larrive dune nouvelle donne ?

Les processus 58 / 58

Вам также может понравиться