37
La notion de processus Implantation du m´ ecanisme multitˆ aches Filiation des processus IPC Partage de ressources Chapitre III : La gestion des ressources Notions fondamentales [email protected] epartement IEM http://ufrsciencestech.u-bourgogne.fr http://ludique.u-bourgogne.fr/~leclercq 12 f´ evrier 2006

Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Chapitre III : La gestion des ressourcesNotions fondamentales

[email protected]

Departement IEMhttp://ufrsciencestech.u-bourgogne.fr

http://ludique.u-bourgogne.fr/~leclercq

12 fevrier 2006

Page 2: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Plan

1 La notion de processusLa gestion des ressourcesDefinitionsLa commutation de contexte

2 Implantation du mecanisme multitachesMultitache / multi-utilisateursClassification des processus

3 Filiation des processusModes de lancement des processusLes processus legersLe cycle de vie des processus

4 La communication inter-processusLe differents modes de communication

5 Le partage de ressources entre processusNotion de processus concurrents, exclusion mutuelle

Page 3: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

La gestion des ressources

Comme nous l’avons vu dans les chapitres precedent, une despremieres fonctions d’un SE est la gestion des ressources del’ordinateur.

Nous allons etudier dans ce chapitre et les suivants les modeles degestion :

du processeur

de la memoire centrale

des supports de stockage (disques, bandes etc.)

Page 4: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

L’evolution de la notion de processus

La notion de processus est basee sur celle de programme

Le terme processus apparu dans les annees 60 avec lesembryons de systeme d’exploitation (moniteurs)

Prehistoire : open shop, closed shopTraitement par lotsApparition des moniteurs permettant de lancer les programmeset de les gererDeveloppement de la multi-programmation puis de sonevolution naturelle time-sharing ou temps partage

Page 5: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Definitions

Definition : (Processus)

Un processus est un programme en execution

Definition : (SE multitaches)

Un systeme d’exploitation est dit multitaches s’il permetd’executer, apparemment simultanement, plusieurs programmes.

Ce fonctionnement est realise en alternant rapidementl’execution de differents processus c’est-a-dire en effectuantun multiplexage temporel du processeur (chaque processuss’execute pendant une fraction de seconde)

L’execution des processus est entremelee

Apr consequent, il ne s’agit pas d’un traitement simultanesauf si la machine a plusieurs processeurs

Page 6: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

La commutation de contexte

Definition : (Commutation de contexte)

Le passage de l’execution d’un processus a un autre est appele lacommutation de contexte.

Lors d’une commutation de contexte, le systeme doit sauver l’etatdu processus en cours (le compteur ordinal, les valeurs desregistres) pour les restaurer plus tard.

Deux strategies peuvent etre envisagees pour la commutation decontexte :

le mode cooperatif

le mode preemptif

Page 7: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

La commutation de contexte

Le multitache cooperatif : chaque processus doit explicitementpermettre a un autre d’acceder au processeur

ce mecanisme a ete utilise dans les SE Microsoft Windowsjusqu’a Windows 3.11 et dans Mac OS jusqu’a Mac OS 9

cette approche simplifie l’architecture du SE mais presenteplusieurs inconvenients :

si un des processus ne passe pas la main a un autre processus,le systeme entier peut etre bloque ;le partage des ressources (CPU, memoire, disque, etc.) peutetre inefficace (IO bound)

Page 8: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

La commutation de contexte

Le multitache preemptif : le processeur signale au systemed’exploitation que le processus en cours d’execution doit etre misen sommeil pour permettre l’execution d’un autre processus.

A la difference du multitache cooperatif, la commutation decontexte est transparente.

D’une facon generale la strategie de commutation choisie a unimpact enorme sur l’utilisation des ressources.

Une question subsiste : dans le mode preemptif comment peut-onrealiser la commutation de contexte ?

Page 9: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Gestion des ressources en environnement multitache

Problematique d’une facon generale il s’agit d’etudier commentallouer des ressources aux processus, plus precisement :

comment identifier les processus ?

comment partager le CPU entre plusieurs processus ?

comment restaurer l’etat de chaque processus ?

comment gerer la memoire attribuee aux processus ?

comment gerer les E/S dans un environnement multitaches ?

Page 10: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Multitache / multi-utilisateurs

Avec la multi-programmation, plusieurs programmes peuventetre traites en meme temps : c-a-d en cours d’execution etnon termines

Ce procede permet l’emploi simultane de la machine parplusieurs utilisateurs

Grace a ce mecanisme chaque utilisateur a l’impression d’avoirla machine pour lui seul

La machine traite alors des processus qui sont chacun lapropriete d’utilisateur

Page 11: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Classification des processus

Un certain nombre de processus existent aussi longtemps quel’ordinateur est en fonctionnement

Exemple :

la gestion des connexions utilisateur, gestion des disques, leprocessus init

A contrario, d’autres processus ont une duree de vie limitee

Exemple :

le processus de la commande date n’existe que le temps de lacommande

Certain processus ont un acces privilegie au SE : propriete del’administrateur

Certain processus sont sous le controle des utilisateurs,d’autre sous le controle du SE

Page 12: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Filiation des processus

De facon generale le SE alloue un processus pour l’interfaceutilisateur (un shell par exemple) puis d’autres processus (filsdu premier pour chaque commande utilisateur ou pour chaqueprogramme lance a partir du shell

Ainsi, il se cree une hierarchie de processus (pere fils) prenantla forme d’un arbrejaromil ~ # pstree

init-+-adsl-connect---pppd---pppoe

|-6*[agetty]

|-bdflush

|-cron

|-cupsd

|-devfsd

|-gconfd-2

|-gdict-applet

|-gdm---gdm-+-X

| ‘-gnome-session---ssh-agent

|-gnome-netstatus

|-gnome-terminal-+-bash---evolution---evolution---8*[evolution]

| |-bash

| |-bash---ssh

| |-gnome-pty-helpe

| ‘-gnome-terminal---gnome-terminal

|-gweather-applet---gweather-applet---3*[gweather-applet]

Page 13: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Filiation des processus

Le systeme d’eploiation d’une machine personnelle gere unecentaine de processus, celui d’un serveur plusieurs centaines

La limite maximum est fixee dans le noyau

Exemple :

pour un SE Linux le fichier concerne estinclude/linux/tasks.h, la variable NR TASKS fixe la limite a4096. Dans les noyaux 2.4 la limite est une fonction de la taillememoire disponible.

Page 14: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Les modes de lancement des processus

Un processus a trois facons de creer un processus fils :

clonage : processus parallele identique au pere maisindependant ;

recouvrement par le fils ;

mise en route d’un processus fils ne comportant que certainesportions du processus parent.

Ces differentes strategies permettent de fournir une maniereefficace pour organiser l’execution des applications des le SE.

La majorite des SE multi-taches propose les trois modes de creation

Comment sont gerees les interactions pere fils et attente determinaison ?

Page 15: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Lancement des processus

Ils existe different types de processus :

les demons (daemon) sont des processus crees par le systemehors controle des utilisateur. Plus generalement dans les SEUnix, les demons

peuvent etre relances automatiquement si ils sont tuesavoir comme parent direct le processus init

les zombies : processus sans filiation directe, ne pouvant pasetre tues

les processus utilisateurs

Page 16: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Clonage

Page 17: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Clonage et communication : strategies

Page 18: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Exemple de creation par clonage

L’appel systeme fork() cree un nouveau processus :

apres l’execution le pointeur d’instruction du fils et du peresont positionnes sur l’instruction suivante

fork() retourne la valeur 0 au fils

fork() retourne un entier non nul (identifiant du processusfils) au pere

Exemple :

id-fils=fork()if (id-fils==0)traitements relatif au filselsetraitements relatif au pere

Page 19: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Exemple de creation par clonage

Exemple :...

pid = fork();

switch(pid) {

case -1: /* erreur dans fork() */

fprintf(stderr,"error %d in fork: %s\n",errno,sys_errlist[errno]);

exit(errno);

case 0: /* on est dans le fils */

fprintf(stdout,"Dans le fils, pid = %d\n",getpid());

sleep(20);

break;

default: /* on est dans le pere */

fprintf(stdout,"Dans le pere, pid = %d\n",getpid());

sleep(20);

Page 20: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Exemple de creation par recouvrement

La creation par recouvrement se fait au moyen d’une operation dela famille exec

Exemple :...printf("Exemple de recouvrement\n");execve("/bin/ls", argv, envp);printf("Ne s’affiche pas");

...

Page 21: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Les processus legers (Thread)

Certains SE proposent en plus de la notion de processus, unmecanisme de processus legers appeles thread ou fil d’execution.Ce mecanisme permet :

une creation rapide des processus fils

une communication facile entre un processus pere et sesenfants

Le processus pere et le ou les threads fils partagent la zone dedonnees du programme.

Page 22: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Les processus legers (Thread)

Les threads existent dans de nombreux SE : la famille UNIXWindows NT et 2000 WIN 9x et Me

Dans cette derniere famille (9x, Me), la notion de processusn’existe pas : les programmes lances depuis l’interface graphiquesont des threads.

Ainsi le systeme peut etre rendu instable si un programmeendommage la zone de memoire commune.

Page 23: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Les Thread dans Java

Le langage Java propose deux modes de creation des threads vial’heritage ou l’implementation d’interface (heritage defonctionnalite) :

class Worker1 extends Thread{

2 public void run() {

System.out.println("I Am a Worker Thread");

4 }

}

6class Worker2 implement Runnable{

8 public void run() {

System.out.println("I Am a Worker Thread");

10 }

}

12public class First{

14 public static void main(String args []) {

// une premiere forme d’utilisation

16 Worker1 thr1 = new Worker1 ();

thr1.start ();

18 System.out.println("I Am The Main Thread");

// une seconde forme d’utilisation

20 Runnable runner = new Worker2 ();

Thread thrd = new Thread(runner);

22 thrd.start();

}

24 }

Page 24: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Le cycle de vie des processus

Un processus peut avoir trois etats principaux :

en train d’etre execute : on dit qu’il est actif

en attente d’etre execute : il est pret (toutes les ressourcesdont il a besoin sont disponibles)

bloque : il est en attente de ressources ou d’un signalprovenant d’un peripherique

mort : il n’existe plus et la place qu’il occupe dans le systemeva etre liberee

Page 25: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Le cycle de vie des processus

Page 26: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Les differents modes de communication

Le terme IPC (Inter Process Communication) recouvre les modesde communication entre processus a l’interieur du SE ou entreplusieurs SE sur des machines differentes :

communication par message (Message Passing)

memoire partage et buffering

appel de procedures / methodes (Remote Procedure Call)

socket pour les systemes distribues (chapitre 7)communiquant via un reseau

Page 27: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Passage / echange de messages

Deux fonctions de bases sont proposees pour la communicationentre processus :

send(message)

receive(message)

Si les processus P et Q souhaitent s’envoyer des messages un liende comminication est necessaire :

Lien direct : send(P, message) et receive(Q,message)

Lien indirect avec boıte aux lettres : send(A, message) etreceive(A,message)

Lien synchrone : envoi bloquant ou non, reception bloquanteou non

Lien bufferise avec file d’attente

Page 28: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Memoire partagee et buffer

Une zone de memoire est declaree par un processus et peut etreutilisee ensuite comme moyen de communication

Lors de l’utilisation de threads la zone de memoire partagee entrele parent et les threads enfants est automatique.

Page 29: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Appel de procedure (RPC)

Ce mecanisme est essentiellement utilise pour des communicationsau travers d’un reseau.

On parle alors de RPC (Remote Procedure Call).

Un systeme similaire est propose pour les langages orientes objet(Java RMI pour la langage Java).

Hors du domaine couvert par le cours de L2.

Page 30: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

La notion de processus concurrents

Definition : (Ressource)

La notion de ressource dans les SE designe tout element qui estutile au deroulement d’un processus

Une ressource peut etre :

Physique : processeur, memoire, peripherique

Logique : fichier, variable, objet

Page 31: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

La notion de processus concurrents

Plusieurs processus peuvent avoir besoin des memes ressources.

Definition :

une ressource est dite partageable si elle peut etre utilisee en memetemps a plusieurs processus. Une ressource est dite non partageablesi elle doit etre a utilisee exlucsivement par un seul processus.

Dans ce cas on dit que les processus doivent etre exclusionmutuelle pour l’acces a la ressource.

Page 32: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

La notion verrouillage

Lorsqu’une ressource est partagee, si plusieurs processus accedenta la ressource, des incoherences peuvent en resulter : il faut unarbitre

Exemple :

des guichets automatiques de retrait d’argent : simulation ducomportement

Comment eviter les situation de competition sur des ressources nonpartageable ?

interdire l’acces partage a la ressource : exclusion mutuelle

interdire l’execution simultanee du code accedant a laressource : section critique

Page 33: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

La notion verrouillage

Pour resoudre ce probleme on utilise la notion de verrou (lock)deux operations sont proposees :

Verouiller(v) permet a un processus d’acquerir un verrou,s’il n’est pas disponible, le processus est bloque en attente duverrou

Deverouiller(v) permet de liberer un verrou

Page 34: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Les semaphores

Les semaphores (Dijkstra 1965) proposent un mecanisme decontrole de la concurrence sous la forme d’un distributeur de jeton(n jetons).

Deux operations sont definies :

P(s) obtenir un jeton

V(s) restituer un jeton

Si il y a un seul jeton alors le semaphore est un verrou.

Page 35: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Les moniteurs

Hoare (1974) a propose une solution de plus haut niveau basee surle concept de moniteur.

il s’agit d’une construction specifique au langage deprogrammation ;

un seul processus a la fois peut executer une fonction dumoniteur ;

les moniteur sont implantes dans le langage Java via la notionde methodes. definies synchronized

Page 36: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Probleme des verrous mortels

Le probleme des verrous mortelle traduit une situationd’interblocage cause par l’acces a une ressource non partageable.On parle egalement d’etreinte fatale.

...Verouiller(R1)Verouiller(R2)utiliser R1 et R2Déverouiller(R2)Déverouiller(R1)

1...Verouiller(R2)Verouiller(R1)utiliser R1 et R2Déverouiller(R1)Déverouiller(R2)

2

Commutationde contexte

R2

P2

2

R1

1

P1

Page 37: Chapitre III : La gestion des ressources Notions fondamentalesufrsciencestech.u-bourgogne.fr/licence2/Info42/... · un multiplexage temporel du processeur (chaque processus ... du

La notion de processus Implantation du mecanisme multitaches Filiation des processus IPC Partage de ressources

Solutions au probleme des verrous mortels

Detection puis guerison

Prevention

Politique de l’autruche