• Aucun résultat trouvé

La fin d’un processus

N/A
N/A
Protected

Academic year: 2022

Partager "La fin d’un processus"

Copied!
35
0
0

Texte intégral

(1)

Syst`emes d’exploitation : Gestion des processus

M. T. Bennani

Maˆıtre Assistant, ISIM Monastir, UR MOSIC

-Ann´ee universitaire 2008-2009-

M. T. Bennani Maˆıtre Assistant, ISIM Monastir, UR MOSIC Cours sur syst`emes d’exploitation

(2)

2 / 35

(3)

Le mod`ele de processus

D´efinition - Le processus est une activit´e

Un processus est un programme qui s’ex´ecute, avec des valeurs du compteur ordinal des registres et des variables. Le compteur ordinal contient l’adresse de la prochaine instruction `a extraire de la m´emoire.

Remarque

Un SE donne l’impression qu’il ex´ecute plusieurs processus d’une mani`ere parall`ele. En r´ealit´e, le processeur bascule constemment d’un processus `a un l’autre. Ce basculement rapide est appel´emultiprogrammation.

un compteur ordinal

A B C D

A B C D

quatre compteurs ordinaux

processus

Temps A

B C D

3 / 35

(4)

Le mod`ele de processus

La cr´eation d’un processus

Il existe quatre ´ev´enements provoquant la cr´eation d’un processus : + Initialisation du syst`eme (Cr´eation de processus de premier plan et d’arri`ere-plan ”Deamon”)

+ Ex´ecution d’un appel syst`eme de cr´eation de processus par un processus en cours d’x´ecution (d´ecomposition des traitements) + Requˆete utilisateur sollicitant la cr´eation d’un nouveau processus (Besoin pour l’utilisateur)

+ Initialisation d’un travail en traitement par lots (Dans le cas des mainframe : ensemble de processus ”jobs”)

Remarques

- Dans le cas du SE UNIX, la cr´eation d’un processus se traduit par l’appel fork. Ceci permet de cr´er un processus fils image du p`ere. Le processus fils ex´ecute la commande execvepour cr´eer sa propre image.

- Dans le cas du SE WINDOWS, la cr´eation d’un processus se traduit par l’appel CreateProcess qui prend `a la fois la cr´eation du processus et le

chargement du programme appropri´e dans le nouveau processus. 4 / 35

(5)

Le mod`ele de processus

La fin d’un processus

Un processus s’arrˆete pour les raisons suivantes :

Arrˆet normal (volontaire) (i.e. exitouExitProcess)

Arrˆet pour erreur (volontaire) (i.e. cc foo.c o`u le fichier n’existe pas)

Arrˆet pour erreur fatale (involontaire) (i.e. bogue)

Le processus est arrˆet´e par un autre processus (involontaire) (I.e. killouTerminateProcess)

5 / 35

(6)

Le mod`ele de processus

La hi´erarchie des processus

Deux mani`eres peuvent ˆetre envisag´ees : gestion hi´erarchique et non hi´erarchique.

Gestion hi´erarchique (UNIX)

+ Un processus n’a qu’un seul parent. En revanche, il poss`ede z´ero ou plusieurs enfants.

+ Tous les processus d´escendent du porcessus initpr´esent dans l’image d’amor¸cage. Il g´en`ere un processus par Terminal qui attend l’ouverture d’une session (login). Le porcessusloginex´ecute un shell pour acc´epter les commandes.

Gestion non hi´erarchique (Windows)

+ Tous les processus sont ´egaux

+ Le seul moment o`u l’on trouve une hi´erarchie est celui de la cr´eation du processus. Le parent r´ecup`ere un jeton sp´ecial (Handle) qu’il peut utiliser pour contrˆoler son fils. Ce jeton peut ˆetre pass´e `a un autre processus (non autoris´e dans UNIX)

6 / 35

(7)

Les ´etats des processus

Un processus poss`ede les septs ´etats suivants :

Suspendu

Pérmuté Pret

Pret

Bloqué Pérmuté

bloqué

En

exécution Terminé (1)

(2) Fin des E/S

(1), (2) : permutateur

sortie Fin des E/S

(4) (3)

(3) : Interruption de l’horloge (4): Allocateur

-manque attente d’E/S

7 / 35

(8)

Les ´etats des processus

Prˆet : ´etat d’un processus qui n’est pas allou´e `a l’UC, mais qui est prˆet `a ˆetre ex´ecut´e. Un processus prˆet pourrait s’ex´ecuter s’il est allou´e `a l’UC.

En ex´ecution: ´etat d’un processus ex´ecut´e sur une UC. Si le syst`eme dispose de n UC, n processus au maximum peuvent se trouver en ´etat d’ex´ecution.

Termin´e: ´etat d’un processus qui a termin´e son ex´ecution, mais dont l’enregistrement est conserv´e par le SE (zombie). Par exemple, un processus fils est toujours en vie alors on doit garder le Handle.

Permut´e-bloqu´e: ´etat d’un processus qui attend l’occurence d’un

´ev´enement et qui a ´et´e extrait de la m´emoire auxiliaire.

Permut´e-prˆet: ´etat d’un processus qui est prˆet `a ˆetre ex´ecut´e, mais qui est plac´e dans la m´emoire auxiliaire. Un processus Permut´e-prˆet ne peut pas ˆetre allou´e `a l’UC car il ne se trouve pas dans la m´emoire principale.

Suspendu: ´etat d’un processus qui a ´et´e cr´e´e, mais qui n’est pas pris en compte pour le chargement en m´emoire ou l’ex´ecution. Il s’agit de processus nouveaux. On ne peut pas revenir `a l’´etat

suspendu. 8 / 35

(9)

Les ´etats des processus

Passage entre les ´etats

Cr´eation d’un processus suspendu: Lors de sa cr´eation, un processus est plac´e en ´etat suspendu.

Suspendu→ {Permut´e prˆet ou Prˆet} : si la m´emoire est trop petite, on commence par activer le processus `a l’exterieur de la m´emoire principale en attendant qu’elle soit lib´er´ee par le SE.

Permut´e prˆet prˆet: Un processus est introduit lorsque suffisamment de m´emoire est disponible.

Permut´e bloqu´ebloqu´e: le syst`eme peut introduire en m´emoire principale des processus bloqu´es. Ceci s’av`ere int´eressant si le processus en question est de haut niveau de priorit´e ou bien, le syst`eme poss`ede une grande m´emoire.

Prˆet Permut´e prˆetoubloqu´ePermut´e bloqu´e: Les processus en m´emoire y sont extrait afin de lib´erer de l’espace m´emoire pour les processus en ex´ecution ayant une grande emprinte.

9 / 35

(10)

Les ´etats des processus

Passage entre les ´etats (suite)

Permut´e bloqu´ePermut´e prˆetoubloqu´ebloqu´e: Lorsqu’un processus est bloqu´e, il attend qu’un ´ev`enement survienne. Si c’est le cas, le processus est transf´er´e `a l’´etat prˆet correspondant.

En ex´ecution prˆet: Les processus sont allou´es `a l’UC pour une dur´ee d´efinie appel´ee tranche de temps. Si un processus ne se bloque pas et lib`ere volontairement l’UC avant la fin de la tranche de temps, une interruption transf`ere le contrˆole au SE qui met le processus `a l’´etat prˆet et choisit le prochain processus `a ex´ecuter.

Prˆet en ex´ecution: Lorsqu’un processus n’est pas allou´e `a l’UC, l’ordonnanceur selectionne le prochain processus `a ex´ecuter dans lepool (i.e. liste) des processus prˆet

10 / 35

(11)

Les ´etats des processus

Passage entre les ´etats (suite)

En ex´ecution bloqu´e: La r´ealisation d’op´erations d’E/S est contrˆol´ee par des facteurs externes au processus. Dans la plupart des cas, l’ex´ecution du processus doit ˆetre suspendue, jusqu’`a la notification que la condition sp´ecifi´ee est survenue. Pour ´eviter que l’UC reste inactive pendant que le processus attend un ´ev´enement, celui-ci est bloqu´e pour que l’UC puisse ˆetre attribu´ee `a un autre processus ex´ecutable.

En ex´ecution Termin´e: Un processus en cours d’ex´ecution prend fin lorsqu’il accomplit une action non autroris´ee ou il ach`eve normalement l’ex´ecution de son code.

Tout ´etattermin´e: Cette situation n’est pas repr´esent´ee sauf qu’elle indique que l’´etat d’un processus n’a pas d’importance si le SE ou un autre processus veulent mettre fin au processus en cours.

11 / 35

(12)

L’impl´ementation des processus

Pour impl´ementer le mod`ele de processus, le syst`eme d’exploitation maintient une table appel´ee (table de processus) contenant une entr´ee par processus. Cette table contient 3 groupes

d’informations:

- Gestion des processus - Gestion de la m´emoire - Gestion des fichiers Gestion des processus - L’identificateur du processus - L’´etat du processus

- Le compteur ordinal - Le pointeur de pile - Priorit´e

- Processus parent

- Param`etres d’ordonnancement

Gestion de la m´emoire - Pointeur vers la zone m´emoire allou´ee au processus

Gestion des fichiers - R´epertoire racine - R´epertoire de travail - ´Etat des fichiers ouvert - ID Utilisateur

12 / 35

(13)

Algorithmes non pr´eemptifs

D´efinition

L’ordonnancement permet de maximiser l’utilisation du processeur, de tenir un temps de r´eponse acceptable et de respecter l’´equit´e entre les processus. Il existe deux types d’ordonnancements.

Pr´eemptif

Non-Pr´eemptif

D´efinition

Dans un algorithme d’ordonnancement non pr´eemptif, chaque processus est ex´ecut´e jusqu’`a ach`evement. Le processus ´elu garde le contrˆole jusqu’`a ´epuisement du temps qui lui est a ´et´e allou´e mˆeme si des processus plus prioritaires on atteint la liste des processsu prˆets.

13 / 35

(14)

Algorithmes non pr´eemptifs

Remarque

Il existe plusieurs types d’algorithmes non pr´eemptifs :

FIFO :First In First Out

SJF : Shortet Job First

EDF : Earlier Deadline First FIFO

Cet algorithme traite les processus dans l’ordre de leur soumission (i.e. date d’arriv´ee) sans consid´eration de leur temps d’ex´ecution.

L’organisation de la file d’attente des processus prˆets est donc toute simple.

14 / 35

(15)

Algorithmes non pr´eemptifs

Exemple sur FIFO

Soit 4 processus : P1,P2,P3etP4 ayant des dur´ees de traitement estim´ees `a : 8, 4, 5 et 9 et des dates d’arriv´ees : 0, 1, 2 et 3.

Le diagramme de Gantt des 4 processus est le suivant : La dur´ee de traitement moyen Ttmoy =...

Remarque

- Avantage : Simplicit´e de l’algorithme - Inconv´enient : Risque de famine

15 / 35

(16)

Algorithmes non pr´eemptifs

SJF

D´efintion

Cet algorithme choisit de fa¸con prioritaire les processus ayant le plus court temps d’ex´ecution sans tenir compte de leur date d’arriv´ee.

Exemple sur SJF

Soit 4 processus : P1,P2,P3etP4 ayant des dur´ees de traitement estim´ees `a : 8, 4, 5 et 9 et des dates d’arriv´ees : 0, 1, 2 et 3.

Le diagramme de Gantt des 4 processus est le suivant : La dur´ee de traitement moyen Ttmoy =...

Remarque

- Avantage : Minimisation du temps d’attente

- Inconv´enient : Impossibilit´e de mise en œuvre car les dur´ees de traitement ne sont pas connues d’avance.

16 / 35

(17)

Algorithmes pr´eemptifs

D´efinition

Dans ce type d’algorithmes, mˆeme si un processus est ´elu, le processeur ne peut pas ˆetre r´equisitionn´e. L’ordonnanceur peut interrompre un processus en cours d’ex´ecution si un nouveau processus plus prioritaire est ins´er´e dans la file des processus prˆets.

Remarque

Il existe plusieurs types d’algorithmes pr´eemptifs :

Round Robin : Ordonnancement circulaire

SJF avec pr´eemption : Shortet Job First

17 / 35

(18)

Algorithmes pr´eemptifs

Round-Robin

D´efinition

Cet algorithme d´ecrit une strat´egie dite de du tourniquet o`u on proc`ede `a un recyclage des processus sur le processeur tant que ceux-ci ne sont pas termin´es.

Lorsqu’un processus est ´elu, on lui attribue une tranche de temps fixe, appel´ee quantum, pendant laquelle il s’ex´ecute. Au bout de ce temps, on ne poursuit plus l’ex´ecution du processus, on lui retire donc le processeurs et on le r´eins`ere dans la file des processus prˆets. Il devra ainsi attendre sa prochaine ´election.

Le processus se voit attribuer successivement plusieurs tranches de temps avant d’atteindre se terminaison.

18 / 35

(19)

Algorithmes pr´eemptifs

Round-Robin

Exemple sur RR

Soit 3 processus : P1,P2etP3 ayant des dur´ees de traitement estim´ees `a : 30, 5 et 2 et des dates d’arriv´ees : 0, 1 et 2.

Le diagramme de Gantt des 3 processus est le suivant : La dur´ee de traitement moyen Ttmoy =...

Remarque

- Avantage : Pas de famine

- Inconv´enient : Des processus prioritaires attendent des procesus non prioritaires.

19 / 35

(20)

Introduction

D´efinition

Nous parlons de communication interprocessus (IPC) lorsqu’un processus n’arrive pas `a r´ealiser un service sans l’aide d’autresou qu’il est en concurrence avec d’autres processus(race conditions). Cette concurrence peut ˆetre sur une partie du traitement du processus appel´ee ection critique. Par exemple, ”ps -ef | grep username” le pipe repr´esente un moyen de communication entre les processus ”ps” et

”grep” au niveau du shell.

Probl´ematique

Nous rencontrons trois probl`eme dans la communication interprocessus :

Comment un processus fait-il pour passer des informations ?

Est-ce que les processus en communication ne produisent pas des conflits lorsqu’ils s’engagent dans des activit´es critiques ?

Comment s´equencer les d´ependances. Par exemple, si le processus A produit des donn´ees et le processus B les consomme.

20 / 35

(21)

Introduction

Diff´erentes solutions

Il existe plusieurs solutions pour prendre en charge la communication interprocessus au niveau noyau :

L’exclutions mutuelle avec attente active

D´esactivation des interruptions, variables de v´errou, alt´ernative stricte (utilisation duwhile), Peterson, instruction TSL.

Le sommeil et l’activation

Utilisation des m´ethodes : sleep()etwakeup().

Les s´emaphores

Les mutex

Les moniteurs

Primitive de haut niveau (Hoare et Brinch Hansen). Une sorte de biblioth`eque.

L’´echange de messages

Les barri`eres (i.e. Ensemble de processus `a synchroniser) 21 / 35

(22)

Les S´emaphores

D´efiniton

Dans la proposition de Dijkastra, un s´emaphore est une variable qui permet partager une ressource entre plusieurs processus. Ceci est r´ealis´e par l’interm´ediaire de deux op´erations : downetup.

L’op´eration down sur un s´emaphore d´etermine si sa valeur est sup´erieure `a 0. Si c’est le cas, elle la d´ecremente et poursuit son activit´e. Si la valeur est de 0, le processus est plac´e en sommeil sans que le down ne se termine. Lorsqu’un processus finit son traitement, il r´ealise l’op´eration up qui incr´emente de un le s´emaphore dans le cas o`u il n’y a pas de processus en sommeil.

22 / 35

(23)

Les mutuex

D´efiniton

Si le d´ecompte n’est pas n´ecessaire, on peut utiliser une version simplifi´ee des s´emaphores qui est les mutex. Il ne prennent en charge que l’exclusion mutuelle. Un mutex est une variable qui peut prendre deux ´etats : v´errouill´e et d´ev´errouill´e d’o`u la n´ecessit´e d’un seul bit pour le repr´esenter. Deux proc´edures sont n´ecessaires pour utiliser un mutex :

- mutex lock: Pour entrer dans une section critique - mutex unlock: Pour lib´erer la ressource partag´ee

23 / 35

(24)

´Echange de messages

D´efiniton

Cette m´ethode de communication emploie deux primitives : send et receive. Les en-tˆete des primitives sont les suivantes : - send (destination, &message)

- receive (source, &message)

24 / 35

(25)

Introduction

D´efinition

Un ensemble de processus est en interblocage si chaque processus attend un ´ev´enement que seul un autre processus de l’ensemble peut provoquer.

Causes possibles

Condition d’exclusion mutuelle : Chaque ressource est soit attribu´ee `a un seul processus, soit disponible.

Condition de d´etention et d’attente : Les processus ayant d´ej`a obtenu des ressources peuvent en demander de nouvelles.

Pas de r´equisition : Les ressources d´ej`a d´etenues ne peuvent ˆetre retir´ees de force `a un processus. Elles doivent ˆetre explicitement lib´er´ees par le processus qui les d´etient.

Condition d’attente circulaire : il doit y avoir un cycle d’au moins deux processus, chacun attendant une ressource d´etenue par un autre processus du cycle.

25 / 35

(26)

etection de l’interblocage

Une ressource pour chaque type

1. Pour chaque nœud, N dans le graphe, suivre les cinq ´etapes suivantes, avec N comme point de d´epart.

2. Initialiser L `a une liste vide et d´esigner tous les arcs comme non marqu´es.

3. Ajouter le nœud en cours `a la fin de la liste L et v´erifier que le nœud apparaˆıt deux fois dans L. Si tel est le cas, le graphe contient un cycle et l’algorithme prend fin.

4.

26 / 35

(27)

etection de l’interblocage

Plusieurs ressources

Quatre structures sont n´ecessaires pour d´etecter les interblocages.

Ressources existantes (E1,E2, ...,Em)

Matrice des allocations en cours

C11 C12 ... C1m

C21 C22 ... C2m

. . .

. . .

. . .

Cn1 Cn2 ... Cnm

Ressource Disponibles (A1,A2, ...,Am) Matrice des demandes

R11 R12 ... R1m

R21 R22 ... R2m

. . .

. . .

. . .

Rn1 Rn2 ... Rnm

La ligne n correspond `a l’attribution en cours du processus n.

La ligne 2 correspond `a ce dont le processus 2 a besoin.

27 / 35

(28)

etection de l’interblocage

Algorithme de d´et´ection de l’interblocage

1. On cherche un procesus non marqu´e, Pi, pour lequel laie rang´ee de R est inf´erieur ou ´egale `a A.

2. Si l’on trouve ce processus, on ajoute la ie rang´ee de C `a A, on marque le processus et l’on revient `a l’´etape 1;

3. Si un tel processus n’existe pas, l’algorithme se termine.

Lorsque l’algorithme se termine, tous les processus non marqu´es, s’il y en a, sont en interblocage.

28 / 35

(29)

etection de l’interblocage

Exemple

Ressources existantes E = (4,2,3,1)

Matrice des allocations en cours

0 0 1 0 2 0 0 1 0 1 2 0

Ressources disponibles A= (2,1,0,0)

Matrice des requˆetes

2 0 0 1 1 0 1 0 2 1 0 0

29 / 35

(30)

Pr´evision de l’interblocage

Les trajectoires de ressources

Mettre deux processus sur deux axes diff´erents. Mettre, aussi, deux ressources et montrer qu’on doit raisonner en fonction de

trajectoires.

Algorithme du banquier

Chaque processus doit annoncer le nombre maximum d’instance de la ressource qu’il pourra demander.

Lorsqu’un processus demande une ressource, il peut ˆetre mis en attente.

Quand un processus poss`ede toute les ressources dont il a besoin, il termine son ex´ecution dans un temps fini.

30 / 35

(31)

Pr´evision de l’interblocage

Etats sˆurs et non sˆurs´ Etat sˆ´ ur

A Max

(A) 3 9

(B) 2 4

(C) 2 7

Libre : 3

´Etat non sˆur A Max

(A) 4 9

(B) 2 4

(C) 2 7

Libre : 2

31 / 35

(32)

D´efinition

C’est un processus l´eger.

Elements partag´es par les threads d’un processus´

Esapce d’adressage

Variables globales

Fichiers ouverts

Processus enfant

Alertes en attente

Signaux et handlers de signaux

Information de d´ecompte

Elements propres `a chaque thread´ Compteur ordianl, Registres, Pile et ´Etat

32 / 35

(33)

UNIX

Priorité utilisateur 0 Attente du buffer dique

Attente E/S disque

Priorité utilisateur 1 Priorité utilisateur 2

.. .

.. . maximale

Priorité

Priorité minimale

Attente d’affichage à l’écran

2 1 0

−1

−2

−3

Processus attendant en mode noyau

Processus attendant en mode utilisateur

Processus mis en file de priorité 3

33 / 35

(34)

LINUX

34 / 35

(35)

Windows

35 / 35

Références

Documents relatifs

Processus : d´ efinition Rˆ ole de l’OS Cr´ eation de processus Notion de thread Synth` ese Structure d’un processus Cycle de vie

L’inconv´enient essentiel des SSI est que le serveur HTTP doit lire ligne ` a ligne le code HTML de toute page `a renvoyer (tout au moins celles d’un suffixe d´etermin´e tel que

La strat´ egie SJF peut ˆ etre adpat´ ee pour un mode pr´ eemptif : si un processus plus court que le processus actif arrive dans la file, le processus actif est pr´ eempt´

La r´ esolution d’un syst` eme d’´ equations lin´ eaires se traduit matriciellement par Ax = b o` u A est une matrice, b un vecteur et x l’inconnue. R´ esoudre donc Ax = b,

Le gestionnaire de la biblioth` eque veut savoir pour quelles mati` eres on a achet´ e chaque livre, et quels sont les enseignants qui ont recommand´ e l’achat d’un livre.. Dans

◮ On peut enchaˆıner une s ´election avec une insertion, pour remplir une table avec les r ´esultats d’une requ ˆete SELECT :.. INSERT INTO R(a1, a2...)

Puisque la position de la structure d’activation n’est pas n´ecessairement au mˆeme em- placement en m´emoire d’une activation `a l’autre, on ne peut connaˆıtre

• (a) and (b) dominent la production de paire “nucl´ eaire” (dans le champ d’un noyau) de par les rapports de masse e/r... “Longueur de Radiation”