Vous êtes sur la page 1sur 10
oe Ah fete apeteme Re eset 3 doe eq L2Systémes Exploitation] > sto eaten ¢ TD3 processus, |" oh dt ¢ dip Exercice I ae et a =r tn ee Ging travaux A,B, C,D et sont soumis d'un calulteur dais 2 oe, kis quasi simultanément Ces travaux ne font pas dentrée-sortie. Leurs durées respectives sont de 100, 60, 20, 40 et 80 milisecondes. Dans chacun des cas ci-dessous, tracer le diagramme d’occupation du provesseur, 4-30 61% b+ @ a ae déterminez les temps de réponse de chacun des travaux, ainsi que le temps de réponse moyen : =r. +270 ) Ordonnancement FIFO (first in, first out) Me es ae ee }b) Ordonnancement SJF (shortest job first) aho- = we ©) Ordonnancement avec priorité (oi P= I est la priorté maximale), avec: |" P(A)=3, PCB) = 5, P(C)= 2, P(D)= 1, P(E) = 4 » 4) Méthode du tourniquet avec un quantum de 20 ms. a Exercice I 0 ‘On considére les process suivants aver leur dure et leur pririté: © A: T(A 40ms, , P(A) 2 — bp eto rte be tee © B:T(B)=60ms. PB 1 ; ' To oe Gere Gee Getto + C:T(C)=30ms. ,PC)=2 ¢ = z, © D:T(D)=50ms.,PD=3 >T7 | bys Me 24 Le E: T(E) 60ms.,PE)=2 = Ly © FTE) 40ms. , PE 1 G — T(G)= 90ms. , P(G)= 34 xe ‘racer le dngremme occupation du procoseur dans las dus Srdonnasterhent suivant la méthode du tourniquet avec priorité (sans ajustement dynamique), avec un quantum de 30ms. et en supposant que la priorté la plus levée est 3 (et que les processus se sont présentés dans Vordre alphabétique). Déterminez les temps de réponse de chacun des travaux, ainsi que le temps de réponse moyen. Exereiee IIL ‘On considére les processus suivants avec leur durée et leur priorté : ALTA 10m. PAS Af yg pattems fy BPs 1 Se © B:T(B)=S0ms. PBT Peace = C:T©=60ms.,PC=1 4 feet D: TD} 40ms. , P(D)=2 cays FyuaUane ‘Tracer le diagramme &’oecupation du pro¥eSeir dans le caf d'un ordonnancement suivant la méthode du toumiquet (avec un quantum de 20ms.) avec priorité (on suppose que la priorté Ia plus élevée est 1) et \Cavee ajustement dynamique : aprés 20ms. occupation du processeur la priorité du processus augmente de I, on suppose de plus que lorsque deux processus ont la méme priorté, on prend le premier dans ordre alphabétique. Déterminez les temps de réponse de chacun des travaux, ainsi que le temps de réponse moyen, Exercice IV de He 2 Qa is eee gs ae et Genet ate wee ot © AS TA) 200ms,, POA) TIAMES Se ’ Hab oy © B:T@)=170ms., P28 Pee i itt . 3 S| a8 rt . ms. ,POD)= 4 5 2} Tracer le dagranimedoceupatol du proceseur das le as d'un ordoinancement dfvant la ide ,. 2 js du tourniquet (avec un quantum de 40ms.) avec priorité (on suppose que la priorité la plus élevée est i 450 sso" I)etavee ajustement dynamique : aprés 40ms. d'occupation du processeur la priorité du processus, 44» dé augmente de 1, on suppose de plus que lorsque deux processus ont la méme priorité, on prendle $0 premier dans Fordre alphabétique. Déterminez les temps de réponse de chacun des travaux, ainsi que ‘> 4% letemps de réponse moyen, bqge hteF ALi , Rou rey HineLude < act t Hinclude % Ant main(veid) ni sat valeur + valeur = fork) + Printe(cvalevr retournee par fork :¥a\a"; valeur) + Prince (rue suis le processus numero Sd\n",geepid()) + Petuen 0 7 i Ag -1 “Tapez le sous emacs, compilcz le et exécutez le plusieurs fois. Représentez le déroulement de 'une des exécutions par un schéma 1b) Modifez le programme en rajoutant la igne suivante apres le fork() it(vateur== 0) sleep(I); > ondec? RO 27 Ge ge of Be audirs protean sec Compilez et exéeutez plusicurs fos, expliquez ce qu'il se passe, que fait Ia fonction sleep ? dl cd-v ¢» ©) Dans le programme du a}, rajoutez dan le prin un getppid( aps le gtpid() pour connate ident «iu pire du processus en cours (n’oublie pas derajouter également un mot du genre « mon pére est» et un Yed pour le format de sortie) €) Idem dans e programme dub), expliquez ce qu'il se passe Exereice IIT (On considére le programme suivant Hinelude eatadio.h> Hinelude Hinelude conistau> nt main void) fi peaaey ine ee (1.247 prinetU*proces feisey B= fork [Atay peinté (processus $6 trepere numero 2\n",getpid()) feiisey fe te eb) lus Sd txepere numero 1\n",getpictl) 7 yaLige/ — peinte(je suis le processus fils, mon PID : Ad." pine 1D de non pers : td\n",getpiat] ,gotppid()) 7 pease else (1.507 " peine£(tje suis le processus pere, mon PID: td,” feito) "pro de non fils: ed\n" getpid(), ©) PALA3e/ peinee processus 84 izepere numero 3\n"/getpia()) + (etizsy eetuen 0 1 4) Tapez le, compilez le et exécutez le plusiours fois, Notez le résultat d'une exécution, ou de plusieurs si vous avez observé des différences. Expliquez le déroulement. +b) Remplacer les lignes 1.6 et .7 par print€(‘Je suis le processus fils, mon PID: td)” "eID de mon pere : td\n",getpid(], getpesa()) + sleep(1)7 , ‘Compiler et exécuter plusieurs fois. Notez le résultat d'une exécution, ou de plusieurs si vous avez observé des différences. Expliquez le déroulement. ) Remplacer les lignes 1.6 et .7 comme dans b) et 1.9 et 1.10 par prints(*je suis le processus pere, non PI: 4d." PID de mon fils : sd\n"egetpid(), ©) 7 wait (NOEL) 7 ) ‘Compiler et exécuter plusieurs fois. Notez le résultat d'une exécution, ou de plusieurs si vous avez observé des differences. Expliquez le déroulement, que fat la fonction wait ? Exereice IV (On consideére le programme suivant Hinclude Hinclode 2etdio.n> Hacludecays/wait.h> Ant maint ‘ int ts print? ("proceseus ta cepere numero 1\n*,garpia())7 eefork + peint# ("processus td i repere numero 2\n",gatpid())s ff [t ==0) PEintE("}e suis le processus fils; mon PID: 8d, PED de won pere: td\o", getpidd), getppid(y): else { printé(*je suis le processus peres mon PID: 3d, PID de mon Fils: $d\n wait (NULL); , + getpiag thy print £ ("processus td : repere numero 3\n", getpidt)); teeork(): PEint# ("processus $d : repere nomero 4\n",getpid())7 if (f= 0) Printfi"je suis le processus fils; mon PID: td, PID de mon pere : Sd\n",getpid(),getppid()): else ( peints("Je aus le processus per wade (wULE) : printf "processus $d 1 repere nunero 5\n",aetpidt)) return 07 i ‘Tapez le, compilez le et exécutez le plusieurs fois, Notez le résultat d'une exécution, ou de plusieurs si vous avez observé des différences. Expliquez le déroulement. Dessinez un arbre avec les numéros de processus correspondant & 1a higrarchie parents / enfants de l'une des exécutions effectuées. hon PID: @d, PID de mon Fils: Sd\n", getpid(), Ls Exereice V a). Ecrire deux programmes simples en langage C: ‘+ le premier qui affiche dans une boucle les nombres de 0 8 30 en "slendormant" pour I seconde aprés chaque nombre (utiliser 'appel systéme steep(1)) ‘* le deuxiéme qui affiche dans une boucle les lettres de A & Z en "s'endormant" pour 1 seconde aprés chaque lettre ‘Compiler et tester les deux programmes. +). En utilisant les appels systéme fork, exeeve modifier le premier programme afin que : #iréé au début un processus fils + le processus pére affiche les nombres de 0 & 30 (avee attente d'une seconde apres chaque nombre), attend la terminaison du fils puis se termine ‘+ le processus fils affiche les lettres de A & Z 30 (aver attente dune seconde aprés chaque lettre) et se termine Compiler et tester Ie programme obtenu. Expliquer pourquoi les affichages & Técran des deux processus se font altemativement. \N.B: La fonction exeeve permet de remplacer le programme du processus courant par un autre programme exécutable dont fe chemin daccés se trouve dans le premier paramétre. Dans notre exemple, le 2c et le 3e paramétre de cette fonction doivent étre égaux & NULL. Si I'exécutable que vous devez passer en paramétre est sous le méme répertoire que votre source, vous aurez : execve("nom exécutable", NULL, NULL)

Vous aimerez peut-être aussi