You are on page 1of 7

Hiver 2004

Systmes dExploitation

Page 1 sur 7

INF3600

Question 1 : Gnralits (2 pts)


1 - Qui suis-je ?
a) Je moccupe de transfrer beaucoup de donnes vers la mmoire pour allger le travail
du processeur. DMA
b) Jacclre le temps moyen de recherche dun cadre associ une page. TLB
c) Je permets aux programmes de grande taille dutiliser plus de mmoire que le systme
ne le permet. Mmoire virtuelle
d) Je gre le partage du processeur central. Ordonnanceur

2 - Lesquelles des techniques de programmation et des structures de donnes suivantes sont


bonnes pour un environnement avec pagination la demande, et lesquelles sont moins
bonnes ? Justifiez vos rponses.
a) Recherche squentielle dans un tableau tri
b) Recherche binaire (par dichotomie) dans un tableau tri
c) Branchement inconditionnel (goto adr).
d) Pile
Les bonnes sont celles qui provoqueraient moins de dfauts de pages.
Bonnes : a, d moins bonnes : b, c

Question 2 : Synchronisation (3 pts)


Supposez que trois processus partagent une seule variable entire appele max, qui est initialise
zro. Chaque processus calcule rgulirement une valeur locale non ngative, et met jour max,
avant de poursuivre son excution. max devrait contenir le maximum des valeurs locales
calcules par les diffrents processus.
Pour ce faire, un tudiant a propos que chaque processus excute rgulirement les instructions
suivantes :
Update_max :
LOAD register, max // charger max dans un registre
CMP register, local // comparer le contenu du registre avec la valeur de local
BGE cont
// si >= aller cont
LOAD register, local // charger local dans un registre
STORE register, max // copier le contenu du registre dans max
cont :

1 - Montrez au moyen dun exemple quun rsultat incohrent est possible.


P1 : LOAD register, max // max =5
P2 : LOAD register, max
P2 : CMP register, local
// register = 5, local = 10

Hiver 2004
Systmes dExploitation

Page 2 sur 7

INF3600

P2 : BGE cont
P2 : LOAD register, local
P2 : STORE register, max //max devient = 10
P1 : CMP register, local // register = 5, local = 8
P1 : BGE cont
P1 : LOAD register, local
P1 : STORE register, max // max devient = 8

2 - Supposez que vous disposez de linstruction machine suivante : SWAP register, x


qui permet dchanger le contenu dun registre avec une donne en mmoire en une seule
opration indivisible.
Est-il possible de rcrire le code de Update-max , de manire viter des rsultats
incohrents? Si oui, donnez le bon code. Justifiez votre rponse.
Il suffit dutiliser une variable verrou .
Deb : LOAD register 0
SWAP register, verrou
CMP register 0
BE Deb
LOAD register, max
CMP register, local
BGE cont
LOAD register, local
STORE register, max
cont : STORE 1 verrou

Question 3 : Moniteurs (4 pts)


Deux villes A et B sont relies par une seule voie de chemin de fer. Les trains peuvent circuler
dans le mme sens de A vers B ou de B vers A. Mais, ils ne peuvent pas circuler dans les sens
opposs. On considre deux classes de processus : les trains allant de A vers B (Train AversB) et
les trains allant de B vers A (Train BversA). Ces processus se dcrivent comme suit :
Train AversB :
Demande daccs la voie par A ;
Circulation sur la voie de A vers B;
Sortie de la voie par B;
Train BversA :
Demande daccs la voie par B ;
Circulation sur la voie de B vers A;
Sortie de la voie par A;
Donnez en utilisant les moniteurs et ventuellement des variables de condition, les codes de
demandes daccs et de sorties, de manire ce que les processus respectent les rgles de
circulation sur la voie unique.

Hiver 2004
Systmes dExploitation

Page 3 sur 7

INF3600

Moniteur Circulation
{
int NbAB = 0, NbBA=0, nbwaitAB, nbwaitBA;
boolc autAB, autBA ;
Demande_AversB ( )
{
Si NbBA != 0 alors nbwaitAB++; wait(autAB); fsi
NbAB=NbAB+1 ;
nbwaitAB--;
si (nbwaitAB >0) alors signal(autAB); fsi
};
SortiePar_B ( )
{
NbAB=NbAB-1 ;
Si (NbAB =0 et nbwaitBA>0 ) alors signal(autBA); fsi
};
Demande_BversA()
{
Si NbAB !=0 alors nbwaitBA++; wait(autBA); fsi
NbBA=NbBA+1 ;
nbwaitBA--;
si (nbwaitBA >0) alors signal(autBA); fsi
};
SortiePar_A ( )
{
NbBA=NbBA-1 ;
Si (NbBA =0 et nbwaitAB>0) alors signal(autAB); fsi
};
}

Question 4 : Gestion de la mmoire et interblocage (9 pts)


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,
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.
Partie 1 : Interblocage (2 pts)

Hiver 2004
Systmes dExploitation

Page 4 sur 7

INF3600

Le problme majeur de cet appareil technologique est quil ny a quune seule faon de sortir des
donnes vers lextrieur. Effectivement, pour acheminer du son par les couteurs ou des donnes
via le port USB , il faut passer par une ressource daccs externe. Cette ressource, ainsi que la
mmoire principale et la mmoire secondaire sont les trois ressources qui sont partages entre les
trois processus. La dernire ressource du systme est lcran qui nest accessible que par le
processus A.
un instant donn, le systme est dans ltat suivant :
E=

[1 1 1 1]

A =

[0 0 1 0]

Alloc = 1 0 0 0
0100
0001

R =

1000
0010
1000

1- Vrifiez en utilisant lalgorithme du banquier, si ltat courant est sr.


2- Peut-on viter des situations dinterblocage ? Justifier votre rponse
1)
tat aprs une itration
E=
[1 1 1 1]
A=
C=

1000
0100
0001

R=

tat aprs deux itrations


E=
[1 1 1 1]
A=
C=

1000
0100
0001

R=

tat aprs trois itrations


E=
[1 1 1 1]
A=
C=

1000
0100
0001

R=

[0 1 1 0]
0100
0010
1000

[1 1 1 0]
0100
0010
1000

[1 1 1 1]
0100
0010
1000

Tous les processus sont marqus Ltat est sur.


2- En numrotant les ressources et en imposant de faire les demandes par ordre croissant de leurs
numros.

Hiver 2004
Systmes dExploitation

Page 5 sur 7

INF3600

Ou en allouant la fois toutes ressources ncessaires (politique de tout ou rien).

Partie 2 : Ordonnanceur. (4pts)


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
A
T
S

Temps darrive
0
2
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.
1-

Groupe A : Round Robin Q = 3


Groupe B : Priorit Q = 3 et PA= PS > PT

2-

Groupe A :

TsA = 28
TsS = 10 TsT = 17
TsM = 18.33

Groupe B :

TsA = 25
TsS = 14 TsT = 26
TsM = 21.67

Hiver 2004
Systmes dExploitation

Page 6 sur 7

INF3600

3Avec leur round robin, le groupe A possde de meilleures performances que le groupe B au
niveau des temps moyens. Cependant le groupe B a tenu compte du fait que le processus de
transfert nest quun processus de second plan et quil est important de privilgier les Processus A
et S. Les temps de sjour des processus A et S sont infrieurs avec la solution du groupe B. Il est
donc important de choisir le B.

Partie 3 : Mmoire principale (3 pts)


Cette firme cherche une solution quasi-idale pour la disposition de la mmoire principale. Elle
dsire obtenir une disposition qui donne une excellente rapidit daccs et surtout le moins de
fragmentation externe possible.
Elle vous spcifie que
16Mo sont rservs pour le systme dexploitation.
Lafficheur ncessite 500Ko de mmoire de faon stable.
Le processus de Son a besoin initialement de 500Ko mais sachant quune chanson
ncessite entre 4Mo et 10Mo, il aura besoin dun espace contigu supplmentaire (pour
viter des sauts dans la musique).
le transfert prend initialement 5Mo mais ncessite des tampons dynamiques pour faciliter
le transfert.
1- Proposez une organisation pour la mmoire principale de manire satisfaire tous ces
critres (rfrez-vous lintro pour dautres informations). Justifiez votre proposition.
2- Quel type dadressage proposeriez-vous? (relatif ou absolu). Donnez les avantages de
votre choix et expliquer les dispositifs utiliser pour assurer le bon fonctionnement du
systme.
1- Les principaux inconvnients de la mmoire partition fixe est que les partitions sont
immuables alors quun ordinateur standard peut avoir plusieurs processus de taille
diffrente, dans ce cas les partitions variables sont plus adquates. Cependant, dans le cas
prsent, il ne peut y avoir que 3 processus de tailles plus ou moins dfinie et stable. En
plus, nous avons assez de mmoire pour satisfaire la majorit des demandes en mmoire
des processus. Une solution efficace serait donc une mmoire a partition fixe sans fil
dattente avec du va-et-vient, car les processus ont toujours leur place de disponible (on
ne peut pas faire deux transferts en mme temps ou couter deux musiques en mme
temps). On donne 16Mo lOS, 500 Ko A, 10.5 Mo S et 37 Mo T. T et A pourront
donc utiliser une partie de leurs mmoires comme tampon de va-et-vient si cest
ncessaire.
2- un adressage relatif est de mise, il faut donc utiliser un registre de base, un registre limite
et un dispositif de conversion dadresse qui se charge aussi dassurer la protection entre
les trois processus et aussi avec lOS.

Hiver 2004
Systmes dExploitation

Page 7 sur 7

INF3600

Question 5 : (2 pts) Systme de fichiers


Considrez le systme de fichiers dUNIX standard. La commande mv suivante permet de
dplacer le fichier path1 vers le rpertoire path2 :
mv path1 path2
o path1 et path2 sont respectivement les chemins daccs dun fichier et dun rpertoire.
1- Supposez que path1 et path2 appartiennent un mme systme de fichiers et que vous avez les
permissions ncessaires pour effectuer un tel dplacement.
Expliquez comment implanter la commande prcdente au moyen des appels systmes link,
unlink et ventuellement dautres (donnez sous forme de commentaires les diffrentes tapes).
2- Supposez maintenant que path1 et path2 appartiennent deux systmes de fichiers diffrents.
Peut-on procder de la mme manire quen 1-. Expliquez pourquoi?
1- Rcuprer le nom de fichier du chemin daccs path1;
Concatner le nom au path2 ;
link (path1, path2);
unlink (path1);
2- non, car, dune part, les liens physiques ne sont pas permis entre fichiers grs par des
systmes de fichiers diffrents et dautre part, les liens symboliques ne sont pas appropris car la
suppression de path1 peut entraner llimination du fichier physique.

You might also like