Correction d’Examen Système d’Exploitation II
2017/2018 Saison Normal
Question de compréhension :
1.
Modèle Avantage Inconvénient
Comptage Déplacer les zones occupées dans Occuper le CPU pour faire le
un côté et celles libre dans l’autre calcule
Allocation Trouver le meilleur emplacement Fragmentation interne ou externe
selon la technique et la taille limité
Pagination Donne plus d’espace Latence de disque est un portante
par rapport RAM
2.
La fonction fork() permet de créer un processus et dupliquer le code source à partir de
l’appelle de la fonction et retourner un entier ( > 0 : dans le père et l’entier représente pid
de fils , = 0 : dans le fils , < 0 : erreur de création ) , Les attributs sont : PID : identifiant du
processus , PPID : identifiant du père , UID : le propriétaire , GID : le groupe , PWD : le
répertoire du travail .
3.
Le pipe est un moyen qui permet d’envoyer un message par contre les signaux permet de
provoquer une action prédéfinie .
4.
PCTE
Sans réquisiton
FIFO
Non dépandant
PCTER
Algo d'rdonnancement
Classique Avec réquisition
Tourniquet
Dépandant Temps moyenne
RMA
Temps réel
DMA
1|Page Abdessalam BAKRA
Gestion de la mémoire :
1.
a) FIFO :
3 b) 4 5 6 11 23 29 54 65 78
Déplacement(FIFO) = 412
b) PCTR : c) SCAN :
3 4 5 6 11 23 29 54 65 78
Déplacement(PCTR) = Déplacement(SCAN) = 77
d) LOOK :
3 4 5 6 11 23 29 54 65 78
Déplacement(LOOK) = 248
2.
dep(PCTR) = dep(SACN) < dep(LOOK) < dep(FIFO) , donc les meilleurs technique adapté pour
ce cas d’utilisation PCTR et SCAN
2|Page Abdessalam BAKRA
3.
a) FIFO :
23 23 23 23 3 3 3 3
2 2 2 2 4 4 4 Coût(FIFO) = 6
1 1 1 1 1 12
b) OPT :
23 23 23 23 23 23 23 23
2 2 2 3 4 4 4 Coût(OPT) = 6
1 1 1 1 1 12
c) LRU :
23 23 23 23 23 23 1 1
2 2 2 3 3 3 12 Coût(LRU) = 7
1 1 1 4 4 4
4.
C(FIFO) = C(OPT) < C(LRU) , donc les meilleurs technique FIFO et OPT et puisque que OPT elle
a besoin plus de calcule, donc FIFO c’est le meilleur technique adapté pour ce cas
d’utilisation
Gestion des processus :
1.
#include <stdio.h>
#include <sys/time.h>
void attributs(){
char pwd[100] ;
printf("PID : %d \n",getpid());
printf("PPID : %d \n",getpid());
getcwd(pwd,100) ;
printf("PWD : %s \n",pwd);
}
void main(){
int p1,p2,p3,p4,p5, p[2] ;
char msg[5] ;
printf("Je suis P \n");
attributs() ;
3|Page Abdessalam BAKRA
if(p1 = fork() == 0 ){
printf("Je suis P1 \n");
attributs() ;
exit() ;
}
int pid1 , statut1 ;
pid1 = wait(&statut1) ;
if(p2 = fork() == 0 ){
printf("Je suis P2 \n");
attributs() ;
if(p3 = fork() == 0 ){
printf("Je suis P3 \n");
attributs() ;
if(p4 = fork() == 0 ){
printf("Je suis P4 \n");
attributs() ;
pipe(p) ;
printf("J'ai crée un pipe et j'écrire dans lui ... \n");
write(p[1],"salut",5);
printf("fin d'écriture \n");
exit() ;
}
int pid4 , statut4 ;
pid4 = wait(&statut4) ;
if(p5 = fork() == 0){
printf("Je suis P5 \n") ;
attributs() ;
}
int pid5 , statut5 ;
pid5 = wait(&statut5) ;
}
int pid3 , statut3 ;
pid3 = wait(&statut3) ;
}
int pid2 , statut2 ;
pid2 = wait(&statut2) ;
printf("Je suis P et je suis lire a partir de pipe \n");
read(p[0],msg,5) ;
printf("Le msg est %s\n",msg);
}
2.
4|Page Abdessalam BAKRA
La valeur de statut normalement ≈ 2500 mais grâce à la fonction wait(), la valeur égale 0
parce que la fonction wait() éviter l’état zombie .
3.
P ne recevra aucun message, parce que les processus qui ont le droit d’utiliser une pipe c’est
le processus créateur de pipe et ces descendants.
Ordonnancement des processus :
1.
a) FIFO :
CPU1 T1 T4 T3 T4 T3
CPU2 T2 T1
E/S T1 T2 T4 T1 T3 T4 T3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
Temps moyen (FIFO) = [(15-0)+(9-1)+(23-1)+(20-2)] / 4 = 15,75
b) Tourniquet :
CPU1
T1 T4 T4 T3 T3 T4 T3
CPU2
T2 T1 T2 T1 T1
E/S T1 T2 T4 T1 T3 T4 T3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
Temps moyen (Tourniquet) = [(16-0)+(10-1)+(24-1)+(21-2)] / 4 = 16,75
c) PCTER :
CPU1 T1 T1 T2 T1 T1 T3 T4 T3
CPU2 T2 T4 T4 T3
E/S T1 T2 T4 T1 T3 T4 T3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
Temps moyen (PCTER) = [(15-0)+(9-1)+(23-1)+(20-2)] / 4 = 15,75
2.
5|Page Abdessalam BAKRA
Tm(FIFO) = Tm(PCTER) < C(Tourniquet) , donc les meilleurs technique FIFO et PCTER et
puisque que FIFO pénalise les processus qui arrivent ultérieurement , donc PCTER c’est le
meilleur technique adapté pour ce cas d’utilisation.
3.
Période(T2) < Période(T1) < Période(T3)
Délai(T2) < Délai(T1) < Délai(T3)
Donc RMA et DMA ont la même assignation :
T1
T2
T3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
ppcm(5,10,15) = 30
6|Page Abdessalam BAKRA