0% ont trouvé ce document utile (0 vote)
51 vues6 pages

Correction D'examen SE 2017 2018 Saison 1

Le document contient des informations sur différents sujets liés aux systèmes d'exploitation, notamment la gestion de la mémoire, les processus, l'ordonnancement des processus. Il présente plusieurs algorithmes et techniques avec leurs avantages et inconvénients.

Transféré par

hajartanani00
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
51 vues6 pages

Correction D'examen SE 2017 2018 Saison 1

Le document contient des informations sur différents sujets liés aux systèmes d'exploitation, notamment la gestion de la mémoire, les processus, l'ordonnancement des processus. Il présente plusieurs algorithmes et techniques avec leurs avantages et inconvénients.

Transféré par

hajartanani00
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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

Vous aimerez peut-être aussi