• Aucun résultat trouvé

Licence 2 — Info42 Examen du Mercredi 10 Mai 2017

N/A
N/A
Protected

Academic year: 2022

Partager "Licence 2 — Info42 Examen du Mercredi 10 Mai 2017"

Copied!
2
0
0

Texte intégral

(1)

Licence 2 — Info42

Examen du Mercredi 10 Mai 2017 Dur´ee 2h • Documents autoris´es Le bar`eme est donn´e `a titre indicatif

Si un exercice vous conduit `a faire des hypoth`eses, indiquez-les clairement sur votre copie.

edigez et justifiez pr´ecis´ement les r´eponses aux questions.

Exercice 1 - 6 pts

Les r´eponses aux questions de cet exercice sont limit´ees `a 1/2 page de texte par question (hors sch´emas et/ou extraits de code).

1. Quels sont les m´ecanismes permettant de r´ealiser l’exclusion mutuelle ? En citer 3 et donner les constructions du langage Java qui les r´ealisent.

2. Comment r´ealiser la synchronisation de processus avec des s´emaphores ? 3. Quelles sont les relations, entre processus, socket, port et adresse IP ?

Exercice 2 - 6 pts

On consid`ere une m´emoire de 7 000 ´el´ements (blocs) dont 5 000 de m´emoire physique (RAM) et 2 000 de m´emoire virtuelle. La m´emoire est g´er´ee par page de 500 ´el´ements. Les pages de la m´emoire sont initialement utilis´ees (donn´ees dans l’ordre chronologique) par les processus P1 3 pages, P3 1 page, P2 4 pages. Le reste de la m´emoire est libre. Les processus font des demandes d’acc`es m´emoire (Acc), des allocations (All) et des lib´erations (Lib). Les demandes d’acc`es sont donn´ees en fonction de l’adresse de base de la premi`ere page du processus. Si un processus fait une demande d’acc`es en dehors de ses pages, ou si il n’y a plus de m´emoire, le noyau retourne une erreur et lib`ere les pages m´emoires occup´ees par le processus.

1. Faire un sch´ema de l’organisation de la m´emoire globale, num´eroter les pages.

2. Les processus effectuent les op´erations dans l’ordre chronologique. Suivre l’ex´ecution de l’´etat de la m´emoire sachant que la strat´egie de d´echargement des pages est en FIFO. Donnez le nombre de d´efaut de page et pr´eciser les correspondances d’adresses (page, offset). Les demandes sont les suivantes : P1 All 1500, P2 All 500, P3 Acc 250, P1 Acc 6100, P2 Acc 250, P1 Acc 210, P3 Acc 800, P1 All 500, P1 Acc 650, P1 Lib totalit´e des pages.

Exercice 3 - 8 pts

On d´eveloppe une application r´eseau pour collecter des donn´ees de capteurs avec une architecture

`

a 3 niveaux : 1) les capteurs, 2) les machines de collecte de donn´ees, 3) un serveur qui centralise des mesures moyennes. Pour simplifier, on suppose que les donn´ees sont stock´ees dans un tableau d’entiers sur les machines de collecte. `A chaque capteur est attribu´e un ´el´ement du tableau. Le capteur met `a jour les donn´ees `a intervalle r´egulier et ´ecrase la pr´ec´edente mesure. Le tableau poss`ede 2000 ´el´ements.

On ne se pr´eoccupe pas de la communication entre les capteurs et les machines de collecte.

1. Sur une machine de collecte, deux threads (S1 et S2) issus de la mˆeme classe, effectuent la somme des ´el´ements du tableau en prenant en charge chacun une moiti´e du tableau. Un troisi`eme thread M est inform´e d`es que les deux threads (S1 et S2) ont termin´e. M calcule alors la moyenne, attends 2 minutes et informe S1 et S1 qu’ils peuvent recommencer.

1

(2)

(a) On suppose que le tableau de mesures est pass´e en param`etre au constructeur de thread.

Existe-t-il des probl`emes de concurrence par rapport `a cette ressource ? Si oui comment les r´esoudre ?

(b) ´Ecrire le code Java du constructeur pour les threads S1 et S2.

(c) ´Ecrire le code Java de la m´ethode run()pour les threads S1 et S2.

(d) Comment les threads S1 et S2 informent le thread M qu’ils ont termin´e leur calcul ? Donnez les lignes `a ajouter `a la m´ethoderun().

(e) Comment le thread M r´ecup`ere les r´esultats de S1 et S2 ? (f) ´Ecrire la m´ethoderun() du thread M.

2. Apr`es avoir calcul´e la moyenne, le thread M cr´ee ensuite un objet mesure pour l’envoyer au serveur qui centralise les donn´ees provenant de plusieurs machines.

(a) ´Ecrire la classe mesure sachant qu’une mesure contient une date, un num´ero d’identification du serveur (id) et une valeur.

(b) Quel type de socket doit utiliser le thread M pour se connecter au serveur central sachant que ce dernier doit pouvoir traiter plusieurs envois simultan´es de plusieurs clients ?

(c) ´Ecrire le code Java pour envoyer une mesure au serveur central.

3. Sachant que le serveur central doit garder pour chaque serveur de collecte (une centaine environ) l’historique des mesures et que les recherches se font en fonction du num´ero d’identification du serveur de collecte, quel type de structure de donn´ees utiliser ? Existe-t-il des probl`emes de concurrence lorsque le serveur central re¸coit plusieurs mesures et doit les ins´erer dans la structure ? Comment les r´esoudre ? Illustrez avec des extraits de code Java.

2

Références

Documents relatifs

Le but de cet exercice est de d´ ecrire les repr´ esentations irr´ eductibles du groupe di´ edral D n d’ordre 2n, lorsque n ≥ 3

Pour illustrer les diff´ erences, les exercices 1 et 2 mettent en sc` ene un math´ ematicien, Maurice, qui confond les deux : il interpr` ete le langage quotidien comme si il

Les boˆıtiers sont connect´ es sur un r´ eseau IP et envoient ` a un serveur, lorsque la cam´ era d´ etecte un changement, un objet Java contenant la date (date + heure,

Un programme qui a obtenu un jeton peut utiliser le r´ eseau pendant la dur´ ee d´ etermin´ ee par le jeton (il peut cr´ eer des sockets serveur ou client pendant cette dur´ ee)..

(b) Les threads disposent d’une r´ ef´ erence ` a un objet de la classe DB et recherchent respectivement le nombre d’occurrences des mots Python et Scala au moyen de la m´

Après avoir rappelé ce qu'était une délégation, installez un serveur dns sur serveur4 pour cette zone et, sur serveur2, déléguez la zone. Vous testerez votre

• ajouter une entrée inverse pour votre serveur (clic droit sur la zone inverse/nouveau pointeur).. • ajouter une entrée en une seule action une entrée directe et inverse

Pour la suite de ce TD, vous aurez besoin d'un ordinateur windows serveur (nommé passerelle) avec deux cartes réseau: l'une sur le sous-réseau 192.168.2.0/24 reliées au