Vous êtes sur la page 1sur 11

INF3600+INF2610 Automne 2006

Partie 6 : Ordonnancement de processus

Exercice 1 :

Considrez un systme dexploitation qui ordonnance les processus selon lalgorithme du


tourniquet. La file des processus prts contient des pointeurs vers les entres de la table des
processus (les descripteurs des processus).
1) Citez deux problmes qui peuvent survenir si la file contient des lments identiques (deux ou
plusieurs pointeurs gaux).
2) Supposez que le systme dexploitation est compos de deux units de contrle (deux
processeurs CPU1 et CPU2) et dune unit dE/S. Chaque processeur excute lalgorithme du
tourniquet avec un quantum de trois units de temps (qt = 3). Tous les processus prts sont dans
une mme file dattente. La commutation de contexte est suppose de dure nulle.
Considrez trois processus A, B et C dcrits dans le tableau suivant :

Processus Instant darrive Temps dexcution


A 0 4 units de CPU, 2 units dE/S, 2 units de CPU
B 2 3 units de CPU, 4 units dE/S, 2 units de CPU
C 3.5 5 units de CPU

La premire ligne signifie que le processus A arrive dans le systme linstant 0, son excution
ncessite dans lordre 4 units de temps CPU, 2 units de temps dE/S et 2 units de temps CPU.
Au dpart le processus A est lu par le processeur CPU1.
Si plusieurs vnements surviennent en mme temps, vous supposerez les priorits suivantes :
- Le CPU1 a la priorit daccs la file des processus prts par rapport au CPU2.
- A la fin dun quantum, le processus non termin en cours est suspendu uniquement si la file des
processus prts nest pas vide. Le traitement ralis la fin dun quantum est plus prioritaire que
celui dune fin dE/S qui, son tour, est plus prioritaire que larrive de nouveaux processus dans
le systme.

1
a) Donnez les diagrammes de Gantt montrant lallocation des deux processeurs, de lunit dE/S
et lvolution des tats des files dattente (celle des processus prts et celle des processus en
attente de lunit dE/S).

b) Calculez le temps moyen de virement (temps moyen de sjour).

Exercice 2 :

1) Expliquez la diffrence entre les Ordonnanceurs dexcution non premptifs (ex : ceux des
premires versions de MacOS) et premptifs (ex. ceux dUnix, de Windows2000).
2) Supposez que plusieurs processus sont ltat prt et que le processus lu excute le
programme suivant :

int main ( )
{
for ( int i=0; i<=100; i = min(100,i++));
return 0;
}

a) Que se passe-t-il pour les processus qui sont ltat prt, si lOrdonnanceur dexcution est
non premptif?
b) Que se passe-t-il pour les processus qui sont ltat prt, si lOrdonnanceur dexcution est
premptif?
3) A linstant t, deux processus utilisateur P1 et P2 existent dans un systme monoprocesseur. Le
processus P1 est compos de deux threads. Le processus P2 est compos de trois threads. Les
temps ncessaires leurs excutions sont rsums dans le tableau suivant :

Proc. Threads Temps dexcution


P1 T11 1 unit de CPU
T12 3 units de CPU
P2 T21 3 units de CPU
T22 2 units de CPU
T23 1 unit de CPU

2
Supposez que le processeur est libre. Donnez les diagrammes de Gantt montrant lallocation du
processeur, pour chacun des cas suivants :
a) Les threads sont supports par le noyau (threads noyau). Le noyau ordonnance lexcution des
threads selon lalgorithme du tourniquet (Round Robin) avec un quantum de 2 units.
La file dattente des threads prts, linstant t, est : T23 T12 T22 T21 T11
T11 est en tte de file.
b) Les threads sont implments entirement au niveau utilisateur. Le noyau ordonnance
lexcution des processus selon lalgorithme du tourniquet avec un quantum de 2 units. Les
threads sont ordonnancs au niveau utilisateur selon lalgorithme du tourniquet avec un quantum
de 1 unit.
Supposez que le processeur est libre et que les processus sont passs ltat prt dans lordre
suivant :
P1 puis P2
Dans P1 : T11 puis T12
Dans P2 : T21 puis T22 puis T23
Dans tous les cas, le temps de commutation est suppos nul.
c) Calculez, pour chaque cas, le temps de virement (temps de sjour), relatif linstant t, de
chaque processus. Comparez puis commentez les rsultats.

Exercice 3 :
Une firme bien connue concurrente de Apple dcide de lancer un nouvel appareil qui permet
dcouter de la musique de format mp3 et den stocker plus de 80 Go, soit 40Go de plus que
le fameux iPod . Cependant, avant de faire lenvoi sur le march, elle dcide de vous engager
pour vrifier si leurs choix technologiques ont t judicieux pour ce type dapplication.
Ce fameux appareil possde 64 Mo de mmoire principale et 80 Go de mmoire secondaire. Il
peut en tout temps nexcuter que trois processus (en plus de lOS) sur son processeur embarqu.
Le processus le plus important parmi ces trois est lAfficheur charg en mmoire ds le dpart
(dsign par A). De plus, un processus Transfert (nomm T) permet de transfrer les donnes
dun ordinateur sa mmoire secondaire partir dun port externe de type USB . Finalement,
3
le dernier processus Son (appel S) permet denvoyer de la musique partir des donnes de la
mmoire secondaire vers un port externe dcouteur. Il est important de savoir que lcoute de la
musique est la principale fonction de cet engin. Laffichage et le son doivent toujours tre
parfaits, tandis que le transfert de donnes nest que secondaire.
Dans cette gigantesque firme, deux groupes dingnieurs ont donn leur avis sur le choix de la
politique dordonnancement. Cependant, ces deux groupes ont propos des algorithmes
diffrents. Un diagramme de Gantt reprsente chacun de ces algorithmes. Chaque case du
diagramme correspond une unit de temps.

GROUPE A:

A A A T T T A A A T T T S S S A A A S S S A A A S A A A

GROUPE B:

A A A T T T A A A S S S A A A S S S A A A S A A A T T T

Sachant que :
Le processus Afficheur (A) fait une entre/sortie aprs chaque 3 units de temps (de
calcul), les autres nen font aucune.
Chaque entre/sortie dure une unit de temps.
Les processus terminent durant la simulation.

Processus Temps darrive


A 0
T 2
S 8
1- Identifiez les politiques dordonnancement choisies par les deux groupes.
2- Calculez les temps de sjour des processus, ainsi que les temps de sjour moyens pour les
deux politiques.
3- Justifiez votre choix en tenant compte des caractristiques du systme.

4
Exercice 4 :
Lordonnancement EDF (Earliest Deadline First) est un algorithme dordonnancement temps rel
de processus. A chaque fois quun processus demande du temps CPU, il doit prciser une
chance (une date limite >0). Le processus doit avoir obtenu son temps CPU avant datteindre
la date limite. Lordonnanceur vise satisfaire les demandes avant leurs chances. Pour se faire,
il gre une liste des processus prts, classs par ordre croissant des chances. Lalgorithme
excute le premier processus de la liste qui correspond celui dont lchance est la plus proche.
Lorsquun processus devient prt ou arrive dans le systme, le systme vrifie si son chance
est antrieure (strictement infrieure) celle du processus en cours dexcution. Si tel est le cas,
le nouveau processus prempte le processus en cours.

a) Considrez trois processus A,B et C suivants :


A demande le CPU toutes les 30ms et requiert chaque fois 10 ms de temps CPU.
B demande du temps CPU toutes les 40ms et requiert chaque fois 15 ms.
C demande du temps CPU toutes les 50ms et a besoin chaque fois 5 ms de temps
CPU.
Supposez quau dpart, les processus sont prts et que lchance de chaque demande est la date
de la prochaine demande.
Donnez le diagramme de Gantt pour les 100 premires ms.

b) Peut-on avoir des cas de non respect dchances ? Justifiez votre rponse.

Exercice 5 :
1.On considre une implmentation de lextension temps-rel de POSIX sur un systme
dexploitation avec 30 niveaux de priorit (de 0 29, 29 tant la plus forte priorit). Par
consquent, le systme offre trois politiques dordonnancement: SCHED_FIFO (pour les
processus FIFO temps-rel), SCHED_RR (pour les processus tourniquet temps-rel) et
SCHED_OTHER (pour les processus temps partag). Le quantum dexcution pour la politique
SCHED_RR est dune unit de temps. Lordonnancement est premptif.

5
Soit le jeu de processus prsent dans la table 1 suivante :

Processus Politique Pattern Priode Instant Temps Priorit


darrive darrive dexcution
Fifo1 SCHED_FIFO Priodique 8 0 1 28
Fifo2 SCHED_FIFO Priodique 7 0 2 26
Fifo3 SCHED_FIFO Apriodique --- 5 4 20
Fifo4 SCHED_FIFO Apriodique --- 4 3 20
rr1 SCHED_RR Apriodique --- 3 3 10
rr2 SCHED_RR Apriodique --- 4 3 10
Other SCHED_OTHER Apriodique --- 0 1 0

Un processus priodique est un processus qui est activ rgulirement, aux temps 0, T, 2T, 3T,
.., o T est la priode du processus.
Donnez le diagramme de Gantt pour lordonnancement des processus de la table 1 entre les
instants 0 et 26.
2. Considrons un systme dexploitation dot dun ordonnanceur premptif, priorit. Dans le
systme, il existe 20 niveaux de priorit, de 0 19, 0 tant la plus faible priorit. Supposons que
le processeur excute le jeu de processus prsent dans la table 2 suivante :

Processus Instant Squence dexcution Priorit


darrive
A 2 EEQE 10
B 5 EE 7
C 0 EQQQQE 3

Les processus A et C partagent la ressource Q, quils accdent en exclusion mutuelle.


Dans la squence dexcution dun processus, Q signifie que pour une unit de temps le
processus sexcute et accde la ressource Q, tandis que E signifie que pour une unit de temps
le processus sexcute sans accder la ressource Q.
a) Donnez le diagramme de Gantt pour lordonnancement des processus de la table 2 entre les
instants 0 et 11. Sur le diagramme, indiquez les accs des processus la ressource Q.
b) Y a-t-il une inversion de priorit sur le diagramme? Si oui, prcisez linstant de dbut, ainsi
que la dure de linversion de priorit.

6
Exercice 6 :
RMS est un algorithme dordonnancement temps-rel des processus priodiques. Un processus
priodique (Pi) est caractris par sa priode dactivation (Ti), son temps dexcution (Ci) et sa
date darrive dans le systme (Si). Chaque processus possde une contrainte temporelle : il doit
sexcuter compltement avant que sa priode arrive de nouveau. Le principe de lalgorithme
RMS consiste associer chaque processus une priorit fixe, inversement proportionnelle sa
priode. Lorsquil est appel, lordonnanceur du systme choisit le processus de plus forte
priorit et le lance en excution (ordonnacement priorits).
Soit trois processus A, B et C dfinis par les paramtres suivants :
SA = SB = SC = 0
TA = 29 ms, CA = 7
TB = 5 ms, CB = 1
TC = 10 ms, CC= 2
a) Indiquez les priorits des processus A, B et C selon RMS.
b) Donnez le diagramme de Gantt pour les 30 premires ms dordonnancement RMS, si
lordonnanceur est premptif.
c) Donnez le diagramme de Gantt pour les 30 premires ms dordonnancement RMS, si
lordonnanceur est non premptif.
d) Est-ce que tous les processus respectent leurs contraintes temporelles sur les 30 premires
ms dans le cas b)? Et dans le cas c)? Sinon, justifiez.

Exercice 7 :
Lordonnancement EDF (Earliest Deadline First) est un algorithme dordonnancement temps rel
de processus. A chaque fois quun processus demande du temps CPU, il doit prciser une
chance (une date limite >0). Le processus doit avoir obtenu son temps CPU avant datteindre
la date limite. Lordonnanceur vise satisfaire les demandes avant leurs chances. Pour se faire,
il gre une liste des processus prts, classs par ordre croissant des chances. Lalgorithme
excute le premier processus de la liste qui correspond celui dont lchance est la plus proche.
7
Si deux processus ont la mme chance, lordonnanceur slectionne le plus prioritaire.
Lorsquun processus devient prt ou arrive dans le systme, le systme vrifie si son chance
est antrieure ou gale celle du processus en cours dexcution. Le processus en cours est
prempt pour lune des deux raisons suivantes :
Lchance du processus en cours est plus loin que celle dun processus prt.
Lchance du processus en cours est la mme que celle dun processus prt plus
prioritaire.

Considrez trois processus A, B et C suivants :


A demande le CPU toutes les 20ms et requiert chaque fois 4 ms de temps CPU.
B demande du temps CPU toutes les 30ms et requiert chaque fois 10 ms.
C demande du temps CPU toutes les 40ms et a besoin chaque fois 20 ms de temps
CPU.
A est suppos plus prioritaire que B qui est, son tour, plus prioritaire que C.

Supposez quau dpart, les processus sont prts et que lchance de chaque demande est la date
de la prochaine demande. Par exemple, pour A, les dates dchances sont successivement 20,
2*20, 3*20, .

Donnez le diagramme de Gantt pour les 90 premires ms.

Exercice 8 :
Considrons n processus P1, P2, , Pn, arrivs en mme temps et insrs dans cette ordre dans la
file des processus prts. Ces processus ne font pas dE/S et leurs temps dexcution sont
respectivement c1, et cn. Le temps de commutation est suppos nul.
1) Quel est le temps dattente moyen des n processus dans chacun des cas suivants :
- Dun ordonnanceur circulaire avec un quantum qt.
- Dun ordonnanceur sans premption fonctionnant selon la discipline premier arriv, premier
servi.
8
Dans quel cas, obtient-on un meilleur temps dattente moyen ?
2) Supposons que le nombre de processus est 5 et que leurs temps dexcution sont gaux :
2*qt + r avec r<qt.
- Montrez comment les processus vont utiliser le processeur dans le cas dun ordonnanceur
circulaire avec un quantum qt. Calculer le temps moyen de sjour des processus.
- Quel serait le temps moyen de sjour des 5 processus dans le cas dun ordonnanceur sans
premption fonctionnant selon la discipline premier arriv, premier servi.
Dans quel cas, obtient-on un meilleur temps de sjour moyen ?

Exercice 9 :
On considre 4 processus, A, B, C, D. On suppose que lexcution des processus ncessite :
Pour A : 7 units de temps CPU, 3 units de temps d'E/S et 5 units de temps CPU.
Pour B : 6 units de temps CPU, 4 units de temps dE/S, 4 units de temps CPU.
Pour C : 5 units de temps CPU.
Pour D : 1 unit de temps CPU, 4 units de temps dE/S et 2 units de temps CPU.
On suppose que :
A se prsente en premier, linstant 0,
B se prsente linstant 1,
C se prsente linstant 9,
D se prsente linstant 12.
Montrez comment les 4 processus vont utiliser le processeur dans chacun des cas suivants:
1) Chaque processus a son propre priphrique dE/S et lordonnanceur fonctionne selon Premier
Arrive Premier Servi PAPS (sans premption).
2) Chaque processus a son propre priphrique dE/S et lordonnanceur utilise l'algorithme du
tourniquet, avec un quantum de 5. Le temps de commutation est gal 0. Donnez, dans ce cas,
les temps de sjour des processus A, B, C et D.
3) Les trois processus utilisent le mme priphrique d'E/S dont la file d'attente est gre premier
arrive premier servi. Lordonnanceur du processeur utilise l'algorithme du tourniquet, avec un
quantum de 5.
9
Le temps de commutation est suppos gal 0.

Exercice 10 :
1. Citez quatre vnements qui provoquent linterruption de lexcution dun processus en cours,
dans le systme Unix.
2. Quel est le rle de lordonnanceur ?
3. Dcrire brivement lordonnanceur du systme Unix. Favorise-t-il les processus interactifs ?
4. Expliquez une raison pour laquelle certains systmes (tel Unix) assignent des priorits internes
plutt quexternes aux processus.
5. Identifiez lalgorithme dordonnancement qui est le plus utilis, et spcifiez la raison.
6. Identifiez lalgorithme dordonnancement sans rquisition qui fournitla meilleure
performance. Pourquoi ?
7. Expliquez la diffrence fondamentale entre un algorithme dordonnancement rquisition et
sans rquisition. Lequel fournit la meilleure performance ?
8. Quel sera leffet sur la performance du systme dun temps de quantum trop long et trop petit.
9. Expliquez la diffrence fondamentale existant entre un ordonnanceur de bas-niveau et un
ordonnanceur de haut-niveau. Existe-il des systmes dexploitation qui utilisent un seul
ordonnanceur ? Expliquez aussi.
10. Expliquez quel mcanisme permet un processus deffectuer un partage volontaire de
lUCT. Quels sont les avantages et dsavantages du partage volontaire ?
11. Expliquez comment le systme dtermine le moment deffectuer un changement de contexte
entre deux processus. Durant un changement de contexte, quels sont les processus (utilisateur ou
systme) qui sont chargs et dchargs ?
12. Considrez la charge de processus montr sur la table suivante. Pour chacun des algorithmes
dordonnancement spcifis ci-bas, dessinez un diagramme montrant ltat doccupation de
lUCT, des priphriques, et des files dattente. Aussi, calculez les temps de virement et
dattente. Supposez un temps de changement de contexte instantan (infiniment petit).
Finalement, comparez les performances des divers algorithmes pour cette charge de processus.
a) Lalgorithme du premier-arriv-premier-servi (PAPS).

10
b)
Processus Temps darrive Dure des E/S Priodes des E/S
Temps de
service
P0 0 9 2 5,9
P1 2 6 0 -
P2 5 5 1 4
TAB. - Charge de processus.
b) Lalgorithme du tourniquet avec un quantum de 5 units de temps.
c) Lalgorithme du tourniquet avec un quantum de 5 units de temps et des niveaux de priorit
externe de 3, 1, 2 respectivement pour P0, P1, P2.
d) Lalgorithme du tourniquet avec un quantum de 5 units de temps et deux UCTs fonctionnant
en parallle.
e) Lalgorithme du tourniquet avec un quantum de 5 units de temps et des niveaux de priorit
interne initiaux de 20 respectivement pour P0, P1, P2. Au moment dun changement de contexte,
la priorit du processus dbarquant diminue de 1 unit. Aussi, un processus qui est bloqu dans
une file dattente des E/S perd 2 units de priorit. Si le processus nattend pas pour effectuer son
E/S alors il ne perd que 1 unit de priorit. Lorsquun processus dans la file dattente de lUCT a
plus haute priorit quun processus en excution, lUCT est alors prempt avant la fin du
quantum.

11