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