You are on page 1of 4

1 ère année Second Cycle

Epreuve : Système d’Exploitation 1


Corrigé type

Exercice 1 – (10.5 pts)


1. (0.5 pt)Les modules objets relogeables :
 Contiennent des copies des bibliothèque systèmes et utilisateurs.
 Peuvent être considérés comme des modules translatable.
 Contiennent des informations sur l’architecture matérielle.
 Doivent être chargé à une adresse de mémoire fixe.
 Aucun des éléments mentionnés

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

3. (0.5 pt)L’inhibition des interruptions dans un système


 Autorise l’exécution indivisible des instructions
 Associe à chaque interruption un certain degré d’urgence
 Attribue un code spécifique à l’interruption
 Se réduit au passage à l’instruction suivante
 Aucun des éléments mentionnés

4. (0.5 pt)Quel est le rôle de la primitive kill ?


 Utilisé pour envoyer des signaux pendants
 Accorder un gestionnaire par défauts au processus
 Suspend le processus appelant jusqu’à la mort de n’importe lequel de ses fils
 Utilisé pour modifier l’action par défaut d’un processus
 Aucun des éléments mentionnés
Envoyer un signal a un autre processus en précisant son pid et le type du signal a envoyé

5. (0.5 pt)Un fichier core


 Contenant des informations sur le multithreading
 Stocke les informations d’un processus defunct
 L’image d’un processus qui a détecté par lui-même une erreur
 Contient le contexte d’un processus ayant fait une division par zéro
 Aucun des éléments mentionnés

6. (0.5 pt)La solution logicielle de Dekker


 Les processus annulent leur demandes d’entrée en section critique et testent la présence de l’autre
 Les processus annulent leur demandes d’entrée en section critique et testent le tour de l’autre
 Peut causer un problème de famine en cas ou un processus exécutant sa section critique est détruit
 L’absence d’un processus empêche l’accès du processus désirant rentrer dans sa section critique
 Aucun des éléments mentionnés

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

8. (0.5 pt)Un processus parallèle


 Peut faire référence a un processus léger de contrôle
 Peut exploiter l’avantage du parallélisme dans un système monoprocesseur
 Un passage en mode noyau pour un changement de contexte est nécessaire dans le cas ou il est créer au niveau
du système d’exploitation
 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().

10. (3 pts)Donnez l’arborescence (détaillée) générée par :


if (fork()||(fork()&&fork())||fork()) {fork() ;}

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

1 (0.5 pt) Election Le processus obtient l’affectation du processeur.


(choisit,
selectionné)
2(0.5 pt) Interruption Le processus est interrompu (suite à la fin d’un quantum ou l’arrivée d’un processus plus
prioritaire ou manque de ressource)
3(0.5 pt) Attente Le processus est bloqué en attente d’une opération d’E/S ou d’une ressource
(bloqué)
4(0.5 pt) Fin attente Le processus a terminé son attente (fin de l’opération d’E/S) ou l’occurrence de
(réveillé, l’événement (signal exemple), ou attribution d’une ressource
reprise)

Exercice 2 - (2.5 Pts)


#include<stdio.h>
1. (0.5 pt)Quelle est la sortie (output) de ce programme pour le cas d’un
Processus père et le cas d’un processus fils ? #include<signal.h>
Processus père : val = 15 #include<wait.h>
Processus fils : val =7 int val = 10;
void handler(int sig)
2. (0.5 pt)Quelle serait la sortie (output) de ce programme pour le processus{ val += 5;
père et fils si on élimine waitpid(pid,NULL,0) }
Processus père : val = 10 int main()
Processus fils : val =7
{ pid_t pid;
3. (0.5 pt)Que manque t-il au programme ? signal(SIGCHLD, handler);
#include<stdlib.h> if ((pid = fork()) == 0)
#include<sunistd.h> { val -= 3;
4. (1 pt)Que se passe t-il si on remplace handler par SIG_IGN au niveau exit(0); }
du système ? waitpid(pid, NULL, 0);
Lorsque le signal SIGCHLD est ignoré, le noyau force le processus à printf("val = %d\n", val);
consulter les informations concernant ces fils zombies de manière à exit(0); }
ce que leur prise en compte soit réalisée et que les blocs de contrôle
associés soient détruits

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

You might also like