Informatique de Base Introduction aux Systèmes d'Exploitation

Preview:

DESCRIPTION

Informatique de Base Introduction aux Systèmes d'Exploitation. Pierre Manneback Service d ’Informatique Faculté Polytechnique de Mons Pierre.Manneback@fpms.ac.be http://elearning.fpms.ac.be (info). Gestion des Processus. 2.1. Les processus 2.2. L'ordonnancement des processus. Chapitre 2. - PowerPoint PPT Presentation

Citation preview

OS 2003-04, FPMs, Ch. 21

Informatique de BaseIntroduction aux Systèmes

d'Exploitation

Pierre Manneback

Service d ’Informatique

Faculté Polytechnique de MonsPierre.Manneback@fpms.ac.be

http://elearning.fpms.ac.be

(info)

OS 2003-04, FPMs, Ch. 22

Gestion des Processus

Chapitre 2

2.1. Les processus2.2. L'ordonnancement des processus

OS 2003-04, FPMs, Ch. 23

2.1. Les processus

• Un processus est un programme en exécution

• Un processus est caractérisé par un contexte d ’exécution

– segments de texte, données et pile– compteur spécifiant l’instruction suivante à exécuter– registres

OS 2003-04, FPMs, Ch. 24

Les segments d'un processus: le texte, les données, la pile

.

OS 2003-04, FPMs, Ch. 25

Etats d'un processus

.

ordonnanceur

OS 2003-04, FPMs, Ch. 26

L'importance de l'ordonnanceur

• Une des bases d'un OS multiprogrammé est– le traitement des interruptions– l'ordonnancement

OS 2003-04, FPMs, Ch. 27

Opérations sur les processus

• Création de nouveaux processus

• Terminaison de processus

• Suspension– Interne (wait)

– Externe (attente d’une ressource)

P1

P4

P5

P6

P2

P3 P7

Arbre de processus

OS 2003-04, FPMs, Ch. 28

Création de processus

• Un processus (père) peut créer des processus fils– stockage en une structure d'arbre de processus,– chaque processus connaît son père

• Partage de ressources (mémoire, fichiers) entre père et fils– total ou partiel

• Exécution– soit concurrente– soit le père attend la terminaison du fils

OS 2003-04, FPMs, Ch. 29

Création de Processus

• Espace d'adressage– soit le fils duplique celui du père– soit le fils charge un nouveau programme

• exemples UNIX – l'appel système fork crée un processus fils– l'appel système execve utilisé après fork charge

un nouveau programme dans l'espace d'adressage du processus fils

OS 2003-04, FPMs, Ch. 210

L’exemple de UNIX Identification des processus

• Les processus sont gérés de manière hiérarchique (arbre de processus)

• Chaque processus a donc un processus père, l’ayant créé. Sauf le processus initial, de numéro (pid) 0, qui est le swap.

Init

make xmail

xtermsyslog inetd

tcsh

MonProgramme

OS 2003-04, FPMs, Ch. 211

Identification des processus

• pid : entier positif unique identifiant le processus

• ppid : pid du processus père• uid, euid : identifieur de l’utilisateur

réel (celui qui a lancé le proc) ou effectif (au moment de l’instruction)

• gid, egid :identifieur du groupe de l’utilisateur réel (ou effectif)

OS 2003-04, FPMs, Ch. 212

Création de processuspid_t fork(void);

• Un processus (père) peut en créer un autre (processus fils) par l ’appel système fork().

• L ’appel fork() duplique le contexte du processus père. Il retourne la valeur 0 au fils, et le pid du fils au père.

père

fils

fork()

0

pid fils

OS 2003-04, FPMs, Ch. 213

Toute création de processus se fera donc en unix par un code du type:

#include <unistd.h>…if ( pid_child = fork() ) {

/* I am the father*/…}else {

/* I am the child*/…}

Création de processus

OS 2003-04, FPMs, Ch. 214

Création de processus

• Le branchement en fonction du retour de fork() permet de donner au fils un code distinct du père.

• Seules limitations: – nombre maximal de processus en cours dans le

système, ou pour l’utilisateur (code erreur , retour de fork() = -1)

– plus assez de mémoire (code erreur, retour de fork() = -1)

OS 2003-04, FPMs, Ch. 215

La terminaison de processus

• Exécution de la dernière instruction ou appel système exit() .– L'O.S. libère les ressources employées– Le père en attente peut se réactiver

• Un parent peut arrêter son exécution (abort()) ou un processus peut "tuer" un autre s'il en a le droit (kill())

• Les processus orphelins (père mort) sont généralement associés au processus racine.

OS 2003-04, FPMs, Ch. 216

La terminaison de processus

4 possibilités:

1. Sortie normale (appel exit() ou fin de code)

2. Sortie en cas d'erreur (volontaire, appel abort())

3. Erreur fatale (involontaire, kill() par l'O.S.)

4. Processus tué par un autre (involontaire, appel- système kill())

OS 2003-04, FPMs, Ch. 217

Implémentation des processus

PCB = Process Control Block

Bloc d'informations caractérisant complètement un processus– Etat

– Compteur d'instruction

– état des registres

– paramètres de priorité et d'ordonnancement

– paramètres de gestion de la mémoire

– informations comptables

– informations I/O (fichiers ouverts…)

OS 2003-04, FPMs, Ch. 218

Process Control Block (PCB)

OS 2003-04, FPMs, Ch. 219

Les PCB permettent d'interrompre et de relancer des processus

OS 2003-04, FPMs, Ch. 220

Vision plus détaillée des PCB

les PCB sont regroupés dans une table de processus

OS 2003-04, FPMs, Ch. 221

2.2. L'ordonnancement des processus

• Bursts of CPU usage alternate with periods of I/O wait– (a) a CPU-bound process– (b) an I/O-bound process

OS 2003-04, FPMs, Ch. 222

Objectifs de l'ordonnancement

.

OS 2003-04, FPMs, Ch. 223

Objectifs de l’ordonnancement

• Beau problème multicritère!• Il n ’y a pas qu’une politique

d’ordonnancement mais des politiques paramétrées

• Souvent, on choisit une politique, que l’on adapte (tuning) à la situation concrète

nombre et type de processus, priorités, contraintes,...

OS 2003-04, FPMs, Ch. 224

Algorithmes d'ordonnancement

• Premier arrivé, premier servi (FCFS)

• Plus court d'abord (SJF)

• Avec priorité

• Carrousel (Round Robin)

• Avec files multiples

OS 2003-04, FPMs, Ch. 225

L’ordonnancement le plus simple First Come First Served

• Simple• Souvent frustrant

(attente pour les jobs courts)

Job CPU use 1 24 2 3 3 3

temps d'attente moyen =17

2 31

t=0 24 30

OS 2003-04, FPMs, Ch. 226

First Come First Served

• Grande variabilité suivant l’ordre d’arrivée

Job CPU use 1 3 2 3 3 24

• Temps d'attente moyen=3• Entraîne un effet de convoi:

grand nombre de jobs courts derrière un job long (analogie au camion dépassant sur autoroute)

21 3

t=0 6 30

OS 2003-04, FPMs, Ch. 227

Ordonnancement Shortest-Job-First (SJF)

• Associe à chaque processus une estimation n+1 de

la durée de la prochaine utilisation CPU (CPU burst).

• Choisit le processus avec le plus petit n+1

• Difficulté: l'estimation n+1

• SJF est optimal : il donne le temps moyen d'attente minimal pour un ensemble de processus donnés (où l'on connaît les temps successifs d'exécution!)

OS 2003-04, FPMs, Ch. 228

SJF non préemptif ou préemptif

• 2 schémas possibles– nonpréemptif – préemptif: réquisitionner le CPU si un

processus nouveau a une estimation n+1 plus petite que le temps estimé restant du processus en cours. Ce schéma est connu sous le nom deShortest-Remaining-Time-First (SRTF).

OS 2003-04, FPMs, Ch. 229

Exemple de SJF non préemptif

P1 P3 P2

73 160

P4

8 12

Process Arrival Time Burst Time(estimated)

P1 0.0 7

P2 2.0 4

P3 4.0 1

P4 5.0 4

temps moyen d'attente = (0 + (12-4-2) + (8-1-4)+ (16-4-5))/4 = 4

OS 2003-04, FPMs, Ch. 230

Exemple de SRTF

Process Arrival Time Burst Time

P1 0.0 7

P2 2.0 4

P3 4.0 1

P4 5.0 4

Average waiting time = ((16-7)+ (7-4-2) + (5-4-1) +(11-4-5)/4 = 3

P1 P3P2

42 110

P4

5 7

P2 P1

16

OS 2003-04, FPMs, Ch. 231

Estimer la durée du prochain CPU Burst

Sur base du passé : estimation du burst précédent + durée réelle burst précédent

:Define 4.

10 , 3.

burst CPU next the for value predicted 2.

burst CPU of lenght actual 1.

1n

thn nt

n+1 = tn + (1 - )n

souvent = 0.5

OS 2003-04, FPMs, Ch. 232

SJFExemple de moyenne exponentielle

=0 n+1 = n

– Ne tient pas compte de l'historique =1 n+1 = tn

– Tient uniquement compte de la durée du burst précédent.• Par expansion de la formule

n+1 = tn+(1 - ) tn-1 + …+(1 - )j t n-j + …

• comme et (1 - ) sont compris entre 0 et 1, chaque terme a moins de poids que son prédécesseur (moyenne pondérée).

OS 2003-04, FPMs, Ch. 233

SJFExemple de moyenne exponentielle (2)

CPU Burst: 6 4 6 4 13 13 13

Guess: 10 8 6 6 5 9 11 12

n+1 = tn + (1 - )n

= 0.5

OS 2003-04, FPMs, Ch. 234

Ordonnancement par priorité

• Une priorité (nombre entier positif) est associée à chaque processus

• Le CPU est alloué au processus prêt avec la plus haute priorité (FIFO par priorité) (plus petit entier = plus haute priorité), de manière préemptive ou non.

• SJF est en fait un ordonnancement par priorité où la priorité est l'estimation du temps CPU du prochain cycle

• Problème Famine: un processus avec faible priorité peut attendre très longtemps

• Solution Priorité dynamique en fonction du temps d'attente. Au plus on attend, au plus la priorité augmente

OS 2003-04, FPMs, Ch. 235

Ordonnancement "Carrousel" Round Robin (RR)

• Définition d'une durée maximale d'utilisation continue du CPU par processus (quantum), par ex. 10-100 millisecondes. Quand un processus en exécution atteint son quantum, il est interrompu.Choix FIFO des processus prêts (Carrousel)

• Si n processus prêts avec un quantum q, chaque processus utilisera 1/n du CPU au plus un temps q. Aucun processus n'attend donc plus de (n-1)q unités de temps

• si q grand => FIFO

• si q petit, beaucoup de pertes

OS 2003-04, FPMs, Ch. 236

Exemple: RR avec Quantum = 20

Process Burst Time

P1 53

P2 17

P3 68

P4 24

• Typically, higher average turnaround than SJF, but better response.

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162

OS 2003-04, FPMs, Ch. 237

RR: problème du choix du quantum

OS 2003-04, FPMs, Ch. 238

RR: le temps total moyen d'exécution varie avec le quantum

OS 2003-04, FPMs, Ch. 239

RR: le temps total moyen d'exécution varie avec le quantum (2)

• q=6 t(P1) =6, t(P2) =9, t(P3) =10, t(P4) =17 => temps moyen = 10.5

• q=5 t(P1) =15, t(P2) =8, t(P3) =9, t(P4) =17 => temps moyen=12.25

• Compromis temps d'attente d'un tour/temps total d'exécution

• tenir compte de la durée des changements de contexte

• Idéalement, quantum proche des durées de cycle CPU (burst) moyen

OS 2003-04, FPMs, Ch. 240

Ordonnancement avec files multiples

• Le pool des processus prêts est partitionné en différentes files suivant le type de processus ou ses priorités

• Chaque file peut avoir son propre algorithme d'ordonnancement

– file de processus utilisateurs interactifs – RR

– file de processus système – FCFS

– file de processus batch -Par priorité

• Un ordonnancement doit être effectué entre les files.

OS 2003-04, FPMs, Ch. 241

Ordonnancement avec files multiples (2)

• Priorités de files: d'abord les processus systèmes, ensuite les processus interactifs, enfin les batchs. Si priorité fixe, danger de famine.

• Réserver des quotas d'utilisation CPU par files: maximum 20% pour la file système, 50% pour l'interactive, 30% pour la batch (éventuellement quota dynamique suivant le moment de la journée).

OS 2003-04, FPMs, Ch. 242

Ordonnancement avec files multiples (3)

OS 2003-04, FPMs, Ch. 243

Ordonnancement avec files multiples et feedback

• Possibilité de transition d'un processus d'une file à une autre en fonction de son temps d'attente

• De nombreux paramètres sont à considérer:

– nombre de files

– ordonnanceur pour chaque file

– algorithme de rehaussement de priorité

– algorithme d'abaissement de priorité

– algorithme de choix de file de départ

OS 2003-04, FPMs, Ch. 244

Exemple d'ordonnancement avec files multiples et feedback

• 3 files: – Q0 – quantum 8 ms– Q1 – quantum 16 ms– Q2 – FCFS

• Ordonnancement – Un processus P entre dans la file Q0. Quand il est élu, il reçoit 8

ms. S'il ne termine pas en 8 ms, il passe à la file Q1 (abaissement de priorité).

– Soit la file Q0 devient vide, auquel cas P peut s'exécuter et recevoir un quantum de 16 ms. Après coup, il passe à la file Q2.

– Un algorithme de rehaussement de priorité doit être associé.

OS 2003-04, FPMs, Ch. 245

Exemple d'ordonnancement avec files multiples et feedback (2)

OS 2003-04, FPMs, Ch. 246

Ordonnancement Unix

• Niveaux de priorité définis par le système– suivant l’activité

– mode user

– mode noyau

0 - while swapping

10 - waiting for file ctrl

20 - waiting on disk i/o

25 - PZERO, baseline

30 - waiting on resources

35 - waiting on locks

40 - waiting for an event

50 - PUSER, base user

OS 2003-04, FPMs, Ch. 247

Ordonnancement Unix

• Mode noyau– dépend de l’activité

• Mode user– pusrpri < 128– pnice diminue la priorité– pcpu reflète l’utilisation cpu

pusrpri = PUSER + pcpu/4 + 2*pnice

OS 2003-04, FPMs, Ch. 248

Ordonnancement linux

• 3 types de processus pour l ’ordonnanceur

– SCHED_FIFO processus prioritaire non préemptible

– SCHED_RR processus prioritaire préemptible– SCHED_OTHER processus classique

OS 2003-04, FPMs, Ch. 249

Ordonnancement linux

• La file des processus SCHED_FIFO « ready to run » est exécutée prioritairement

• Ces processus ne sont interruptibles que si:– un autre processus SCHED_FIFO avec plus

haute priorité est prêt– le processus abandonne le processeur (appel

sched_yield) ou est en attente d'un événement

OS 2003-04, FPMs, Ch. 250

Ordonnancement linux

• Les processus SCHED_RR suivent le même schéma, mais ils travaillent avec un quantum de temps pour leur exécution

• Il y a possibilité de modifier la politique d’ordonnancement et les paramètres d’ordonnancement associés à un processus par des appels-système

OS 2003-04, FPMs, Ch. 251

Ordonnancement temps-réel

Garantie d'exécution de certains processus en des temps déterminés. Cela nécessite de l'ordonnanceur:

• la préemption possible (réquisition du CPU)

• la gestion des priorités

OS 2003-04, FPMs, Ch. 252

Recommended