Académique Documents
Professionnel Documents
Culture Documents
paumier@univ-mlv.fr
Le multi-tche
2 contraintes:
consquences:
paumier@univ-mlv.fr
paumier@univ-mlv.fr
Les interruptions
paumier@univ-mlv.fr
Chemins de contrle
chemin de contrle=squence
d'instructions excute par le noyau pour
grer une interruption ou une exception
ces routines doivent tre:
rapides
paumier@univ-mlv.fr
paumier@univ-mlv.fr
2 catgories:
paumier@univ-mlv.fr
paumier@univ-mlv.fr
paumier@univ-mlv.fr
Les exceptions
paumier@univ-mlv.fr
10
Les exceptions
paumier@univ-mlv.fr
11
Synchronisation
oprations atomiques
verrouillage du noyau
paumier@univ-mlv.fr
12
Non-premptibilit
paumier@univ-mlv.fr
13
Atomicit
atomic_read(v)
atomic_set(v,i)
atomic_add(v,i)
atomic_dec_and_test(v)
etc
paumier@univ-mlv.fr
14
paumier@univ-mlv.fr
15
Verrous
paumier@univ-mlv.fr
16
Les spinlocks
paumier@univ-mlv.fr
17
Les smaphores
verrous possdant:
paumier@univ-mlv.fr
18
include/linux/sched.h
paumier@univ-mlv.fr
19
Ordonnancement
ordonnancement=slection du prochain
processus qui va s'excuter
ordonnancement non premptif:
ordonnancement premptif:
paumier@univ-mlv.fr
20
Ordonnancement
paumier@univ-mlv.fr
21
Mesures
paumier@univ-mlv.fr
22
Types de processus
processus interactifs:
paumier@univ-mlv.fr
23
Quantum de temps
paumier@univ-mlv.fr
24
Round robin
algorithme du tourniquet:
paumier@univ-mlv.fr
25
Priorits
paumier@univ-mlv.fr
26
Classes de priorits
paumier@univ-mlv.fr
27
Queues multiples
paumier@univ-mlv.fr
28
CFS
paumier@univ-mlv.fr
29
Load balancing
l'lection
paumier@univ-mlv.fr
30
Appels systme
paumier@univ-mlv.fr
sched_yield.cpp
31
Appels systme
sched_setscheduler/sched_getscheduler:
SCHED_FIFO: FCFS
paumier@univ-mlv.fr
32
Le temps
sur pile
ordre de grandeur=milliseconde
paumier@univ-mlv.fr
33
Le temps
ordre de grandeur=nanoseconde
paumier@univ-mlv.fr
34
Le temps
intervalle=tick
ordre de grandeur=milliseconde
paumier@univ-mlv.fr
35
Les timers
unsignedintalarm(unsignedint
nb_sec);
envoie au processus en cours un signal
SIGALRM au bout d'une dure fixe en
secondes (peu prcis)
pour un timer plus prcis, il faut les
itimers:
intsetitimer(intwhich,const
structitimerval*value,struct
itimerval*ovalue);
paumier@univ-mlv.fr
36
Les timers
paumier@univ-mlv.fr
37
Les timers
paumier@univ-mlv.fr
38
Temps rel
paumier@univ-mlv.fr
39
paumier@univ-mlv.fr
40