Professional Documents
Culture Documents
Examen 2 SE1 Corrigã©
Examen 2 SE1 Corrigã©
2. (0.5 pt)Le degré de la multiprogrammation dans un système d’exploitation est déterminé par
L’ensemble de programme présents dans la mémoire secondaire
Les algorithmes préemptifs et non préemptifs
L’évolution positive et négatives des processus
Les processus interactifs et batch
Aucun des éléments mentionnés
Les planificateurs à long terme ont un effet à long terme sur les performances du processeur.Ils sont
responsables du degré de multiprogrammation,c'est-à-dire de la gestion de l'ensemble des processus présents
dans la file d'attente READY
1
7. (0.5 pt)Dans le problème type du diner des philosophes
Un philosophe débloque un voisin si et seulement si le voisin de gauche de se voisin n’est pas à l’état MANGE
Un philosophe débloque un voisin si et seulement si le voisin de droite de se voisin n’est pas à l’état MANGE
Un philosophe peut se débloquer lui-même si ses voisins de gauche et de droite sont à l’état FAIM
Un philosophe peut débloquer un autre philosophe qui a l’état PENSE si et seulement si les voisins de ce dernier
de gauche et de droite ne sont pas à l’état MANGE
Aucun des éléments mentionnés
9. (1.5 pt)Dans quel cas l’ordonnanceur peut adopter une stratégie préemptive pour les processus dans une file
FIFO ?
Un autre processus de type SCHED_FIFO plus prioritaire vient d’être inséré dans la file.
Le processus en exécution demande à faire une entrée-sortie
Le processus abandonne le processeur en appelant la primitive sched_yield().
2
11. Soit le schéma suivant décrivant les transitions d’un processus. Précisez à quoi correspondent les transitions
numérotées par 1, 2, 3, 4 et précisez quels sont les événements qui provoquent chacune de ces transitions.
Transition Evènement
Exercice 3 – ( 5 pts)
Deux villes A et B sont reliés par une seule voie de chemin de fer. Les trains peuvent circuler dans le même sens de A
vers B ou de B vers A. Mais, ils ne peuvent pas circuler dans les sens opposés.
On considère 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 décrivent comme suit :
Train AversB : Train BversA :
Demande d’accès à la voie par A ; Demande d’accès à la voie par B ;
Circulation sur la voie de A vers B; Circulation sur la voie de B vers A;
Sortie de la voie par B; Sortie de la voie par A;
3
1. Proposez une solution qui assure la synchronisation entre les trains AversB et les train BversA en respectant
les règles de circulation sur la voie unique, sachant qu’on autorise n trains à circuler dans le même sens, en
utilisant que des sémaphores pour limiter l’accès des trains et protéger la voie de chemin de fer
nbtrainA,nbtrainB,S,mutex : sémaphore
nbA,nbB : entier ;
nbA=0 ; nbB=0 ;
init (nbtrainA,n) ; init(nbtrainB,k) ; init(mutexA,1); init(mutexB,1); init(S,1);
Trains AversB Trains BversA
P(nbtrainA) P(nbtrainB)
P(mutexA) P(mutexB)
NbA++ NbB++
Si nbA=1 alors P(S) Si nbB=1 alors P(S)
V(mutexA) V(mutexB)
Circulation sur la voie A vers B Circulation sur la voie B vers A
P(mutexA) P(mutexB)
NbA- - NbB- -
Si nbA=0 alors V(S) Si nbB=0 alors V(S)
V(mutexA) V(mutexB)
V(nbtrainA) V(nbtrainB)
Exercice 4 - ( 2 pts)
Soient trois processus concurrents P1, P2 et P3 qui partagent les variables n et out. Pour contrôler les accès aux
variables partagées
Semaphore S1, S2 ;
init(S1,1) ; init(S2,1) ;
/*Processus P1 */ /*Processus P2 */ /*Processus P3 */
P(S1) ; P(S2) ; P(S1) ;
P(S2) ; k=k-1; n=n+1 ;
k=k+1 ; V(S2) ; V(S1) ;
n=n-1 ;
V(S2) ;
V(S1) ;
1. Cette proposition est-elle correcte ? Si « non» indiquez parmi les 4 conditions requises pour réaliser une
exclusion mutuelle correcte, celles qui ne sont pas satisfaite ? et proposez une solution dans ce cas.
(1 pt)
Non la proposition n’est pas correcte, car si P2 est en section critique et P1 a exécuté P(S1) alors P1 est
bloqué au niveau de P(S2) et empêche P3 d’entrer en section critique. Condition non vérifiée : Un processus
en dehors de sa section critique bloque un autre processus (absence de blocage)
(1 pt)
Processus P1
P(S1) ;
n=n-1 ;
V(S1) ;
P(S2) ;
k = k +1 ;
V(S2) ;