Vous êtes sur la page 1sur 4

Exercice 1 : Ordonnancement avec FJS et sémaphores (10 points )

On considère un système disposant d'un seul processeur devant satisfaire les requêtes de trois processus Pi,
P2 et P 3 • Ce processeur obéit un ordonnancement du plus prioritaire d'abord, préemptif et sans quantum où plus
le numéro de la priorité est grand, plus la priorité est importante. Lors de leur cycle de vie, les trois processus
effectuent, par moment, des opérations d'entrée/sortie (E'JS) sur des disques D 1 et D2 de sorte que les processus de
rang impaire attaquent le disque D2 et ceux de rang paire attaquent le disque D1. En outre, ils peuvent rencontrer
des sémaphores S1 et S2 • Ce derniers sont initialisés comme suit : S1 +- 1 et S2 +- O.
Les scénarii pour trois processus Pi, P2 et Pa (U = 1 unité de temps) sont donnés un niveau du tableau ci-
après. On suppose que les opérations Pet V s'exécutent en temps nul et que les processus effectuent les opérations
d'entrée/sortie sur disque D1 et D2 obéissent à une politique Round Robbin avec un quantum de temps q = 2 .

P1 (Priorité = 1, Arrivée à t-0) P2 (Priorité = 3, Arrivée à t=3) Pa (Priorité = 2, Arrivée à t=2) 1


3U de calcul CPU lU de calcul CPU lU de calcul CPU
5U deFJS 5U deFJS 5U deFJS
P(S2) V(S2) P(S1)
lU deFJS 8U deFJS 2U deFJS
lU de calcul CPU lU de calcul CPU lU de calcul CPU
V(S1) 2U deFJS V(S1)
lU de calcul CPU 2U de calcul CPU 4U de calcul CPU
fin fin fin
1. Proposez un schéma illustrant le problème posé.
E
Réponse Question 1 - Exerclce 4 :

E PU
R
~Jut~
u>4

;ig
Te

2 R ésentez minutieusement le déroulement de l'exécution des trois processus et les changements d'états
· . epr nant sur le Cbronogramme 2 d~nné ci-après. A cet effet, il faut clairement montrer les temps
mterve
d' · ée des processus, les différents changements d' etat,
, l' exécution. des pnmitives
. . . p et V.et ams1
. . que
ive l~;eurs successives des sémaphores ainsi que les temps de sortie des processus. En dédurre, le temps
de sortie (T,(Pï)) de chaque processus.

2
~--
processus P1
- .-
,,;,. l
-~-
~.. _.,_...,,
Blonué Sémaohore // 1 ''-'-'""'' ........ J
Blooué JUS I '""'""' /
1--=
Jv
E/S I J
~"'~ /
I 23 24 25 26 27 28
Prêt A
16 17( 18 [lg..- l-'"20 21 22 29
Il 1'('1N~
iilu
Temps(U) 01 02 1 rtr oy os 06 07 08 09 10 11 12 [If
1 /
/ il!
.J'
~ .
----- / ') ProœssusP2 -
Blooué Sémaohore , './ 1 / ·· _..--- __.--i-
Blonué E/S
E/S
'
/ '•
~:;:,~
/ ~'- -~·-•' ~\l.;l\., •"-"'-'-"' ""'I
/
~ ,,.~) ;,).\."'\; :,.~\'0 l o'.--
~.l.\.'
1
~""'°' ' "\ ~'-"
Prêt
Elu "/ -=-~
1/ /
/ / 1
·1 ,
7
il
/ 1 __,.....
-I ~,._~.,.
29
Temps (lJ) 01 02 r(3 ,_04 [_.9Y 06 07 08 \ 09 l o/ J':l· JI 13 14 15 16 f\ p 18 1.-Ul-- --Z O 21 ] 22 23 24 25 26 27 28
-- ( /""')"T
--
Processus P3
1
-~
Blooué Sémaohore
Blooué E/S 1
---
~~'--"' .,,~ .~',l:'\ !:\""~"'
E/S " ,...
Prêt
Elu
1
12
..
Temps(U) 01 02 03 1 04 05 06 07 0~ <ï\ , /13/ 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
l r... • 11:""/
Ts(P2) = o(,~
Ts(Pl) = -1(:;
L1 Ts(P3) = /i5 _
~ m m • 2, Les p r o < e ~ l e même disoositlLE/S
Exercice 2: Étude et Mise en oeuvre des processus UNIX (10 points)

l /,., *
2
* @author Dr Mandicou BA
3
* @version 27/04/2021

!
4 **I
1
*Dans cet exercoce, on supporte que les inclusions necessaire sont presentes •/
7 11 Programme J
8 11
Question : Dites combien de lignes bang seront affiches et dessinez l'arbre
genealogique de processus crees?
9
10 Void kaolack () { i
11 fork () ; p,
12 printf("bang!\n"); - .-------f"""-r----;,-=;-t
13 fork () ;
14 fork ();
15 }
16 int main() {

18
17 kaolack ();
printf("bang!\n"
f31
,
19 exit (0); l
20 }
21
22 //Programme 2
23 //Question : Dites, combien de lignes bang seront affiches et dessinez l • arbre
ge~ea(Qgique de p~o:e-essus crees? ·r ""~~~~~-rl ,\\ffl~-~-~-~~~-~.~~~~~~~-=1!1111"ll!!l!J!RiiJ.
(4
is int main () {
2.6 int i ;
P1
27
28
29
30
wbil: ~:~i~ [j=:J
}
I/
31 /•v1
32
printf("bang !\n")
exit(O); / / I
1
33 }
34
3S
36 // Programme 3
~7
J / / Question : D ites
· combi'en de lignes bang seront affiches et dessinez l'arbre
genealogique de processus crees? · · · •· ,.. ·
38 int main() {
39 if ( fork () && fork O) Pi
40 printf("bang !\n");
41 printf("bang!\n");
42 e Xi t ( Ü) ;
43 } Pol
44
45
46
47

4
48 Il Programme 4
49 /* Question : avec schemas, discutez les differents affichages possibles du
programme ci-dessous. On suppose que le cas ou waitpid () retourne pour une
raison autre que la terminaison d'un processus n'arrive jamais (WIFEXJTED(
status) est toujours vrai). */
50
51 int main() {
sef" pid_t pid, pid2;
int status;

55
7r1r (( pid = fork ())) {
i_f (( pid2 = fork () ) ) {
56
waitpid(pid2, &status, 0);
57
if (WIF'EXITED(status)) {
58
p_rintf ("A o/cd\n", WEXITSTATUS( status));
59 }
60 else {
61 p ri nt f ( "B \ n" ) ;
62 / exit (42);
63 } .
64 } else {

\ 1·
\ 65 "' .1execl (" /bin/echo", "echo" , "D" , NUI.i.,) ;
printf ("C\n");

68 }

Vous aimerez peut-être aussi