52
OS 2003-04, FPMs, Ch. 2 1 Informatique de Base Introduction aux Systèmes d'Exploitation Pierre Manneback Service d ’Informatique Faculté Polytechnique de Mons [email protected] http://elearning.fpms.ac.be (info)

Informatique de Base Introduction aux Systèmes d'Exploitation

  • Upload
    bing

  • View
    67

  • Download
    8

Embed Size (px)

DESCRIPTION

Informatique de Base Introduction aux Systèmes d'Exploitation. Pierre Manneback Service d ’Informatique Faculté Polytechnique de Mons [email protected] 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

Page 1: Informatique de Base Introduction aux Systèmes d'Exploitation

OS 2003-04, FPMs, Ch. 21

Informatique de BaseIntroduction aux Systèmes

d'Exploitation

Pierre Manneback

Service d ’Informatique

Faculté Polytechnique de [email protected]

http://elearning.fpms.ac.be

(info)

Page 2: Informatique de Base Introduction aux Systèmes d'Exploitation

OS 2003-04, FPMs, Ch. 22

Gestion des Processus

Chapitre 2

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

Page 3: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 4: Informatique de Base Introduction aux Systèmes d'Exploitation

OS 2003-04, FPMs, Ch. 24

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

.

Page 5: Informatique de Base Introduction aux Systèmes d'Exploitation

OS 2003-04, FPMs, Ch. 25

Etats d'un processus

.

ordonnanceur

Page 6: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 7: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 8: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 9: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 10: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 11: Informatique de Base Introduction aux Systèmes d'Exploitation

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)

Page 12: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 13: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 14: Informatique de Base Introduction aux Systèmes d'Exploitation

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)

Page 15: Informatique de Base Introduction aux Systèmes d'Exploitation

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.

Page 16: Informatique de Base Introduction aux Systèmes d'Exploitation

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())

Page 17: Informatique de Base Introduction aux Systèmes d'Exploitation

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…)

Page 18: Informatique de Base Introduction aux Systèmes d'Exploitation

OS 2003-04, FPMs, Ch. 218

Process Control Block (PCB)

Page 19: Informatique de Base Introduction aux Systèmes d'Exploitation

OS 2003-04, FPMs, Ch. 219

Les PCB permettent d'interrompre et de relancer des processus

Page 20: Informatique de Base Introduction aux Systèmes d'Exploitation

OS 2003-04, FPMs, Ch. 220

Vision plus détaillée des PCB

les PCB sont regroupés dans une table de processus

Page 21: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 22: Informatique de Base Introduction aux Systèmes d'Exploitation

OS 2003-04, FPMs, Ch. 222

Objectifs de l'ordonnancement

.

Page 23: Informatique de Base Introduction aux Systèmes d'Exploitation

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,...

Page 24: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 25: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 26: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 27: Informatique de Base Introduction aux Systèmes d'Exploitation

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!)

Page 28: Informatique de Base Introduction aux Systèmes d'Exploitation

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).

Page 29: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 30: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 31: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 32: Informatique de Base Introduction aux Systèmes d'Exploitation

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).

Page 33: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 34: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 35: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 36: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 37: Informatique de Base Introduction aux Systèmes d'Exploitation

OS 2003-04, FPMs, Ch. 237

RR: problème du choix du quantum

Page 38: Informatique de Base Introduction aux Systèmes d'Exploitation

OS 2003-04, FPMs, Ch. 238

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

Page 39: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 40: Informatique de Base Introduction aux Systèmes d'Exploitation

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.

Page 41: Informatique de Base Introduction aux Systèmes d'Exploitation

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).

Page 42: Informatique de Base Introduction aux Systèmes d'Exploitation

OS 2003-04, FPMs, Ch. 242

Ordonnancement avec files multiples (3)

Page 43: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 44: Informatique de Base Introduction aux Systèmes d'Exploitation

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é.

Page 45: Informatique de Base Introduction aux Systèmes d'Exploitation

OS 2003-04, FPMs, Ch. 245

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

Page 46: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 47: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 48: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 49: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 50: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 51: Informatique de Base Introduction aux Systèmes d'Exploitation

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

Page 52: Informatique de Base Introduction aux Systèmes d'Exploitation

OS 2003-04, FPMs, Ch. 252