3
P1 P3 P4 M1 RSD : Algorithmique des systèmes et applications réparties Contrôle continu 1 - Durée : 1 heure 30 min Partie I : Horloges logiques (8 pts) Soit le chronogramme suivant (le petit carré représente en événement local au processus) : 1. Numérotez les événements sur le chronogramme (1 pt). 2. Datez chacun des événements en utilisant la méthode de l’horloge de Lamport (1 pt). 3. Donnez l’ordre total global défini par la datation via la méthode de l’horloge de Lamport (1 pt). 4. Datez chacun des événements en utilisant la méthode de l’horloge de Mattern. (1 pt) 5. Selon Mattern, quelle est la relation entre e12 et e25 ? (1 pt) 6. Selon Mattern, quelle est la relation entre e23 et e33 ? (1 pt) 7. Datez la coupure à l’aide de l’horloge de Mattern. (1 pt) 8. La coupure est elle cohérente ? (1 pt) Partie II : Généralité sur les systèmes distribués (6 pts) P2

· Web viewPour communiquer une chaîne de caractères entre un client et un serveur en utilisant les sockets TCP, le client peut utiliser la méthode println de PrintWriter et le

Embed Size (px)

Citation preview

Page 1: · Web viewPour communiquer une chaîne de caractères entre un client et un serveur en utilisant les sockets TCP, le client peut utiliser la méthode println de PrintWriter et le

P1

P3

P4

M1 RSD : Algorithmique des systèmes et applications réparties

Contrôle continu 1 - Durée : 1 heure 30 min

Partie I : Horloges logiques (8 pts)

Soit le chronogramme suivant (le petit carré représente en événement local au processus) :

1.Numérotez les événements sur le chronogramme (1 pt).

2.Datez chacun des événements en utilisant la méthode de l’horloge de Lamport (1 pt).

3.Donnez l’ordre total global défini par la datation via la méthode de l’horloge de Lamport (1 pt).

4.Datez chacun des événements en utilisant la méthode de l’horloge de Mattern. (1 pt)

5.Selon Mattern, quelle est la relation entre e12 et e25 ? (1 pt)

6.Selon Mattern, quelle est la relation entre e23 et e33 ? (1 pt)

7.Datez la coupure à l’aide de l’horloge de Mattern. (1 pt)

8.La coupure est elle cohérente ? (1 pt)

Partie II : Généralité sur les systèmes distribués (6 pts)

1. Citez (sans détailler) 4 modèles d’exécution pour le client/serveur. (1 pt)

2. Complétez la phrase suivante : Je peux construire un détecteur de pannes

parfait dans un modèle synchrone si ………………... (1 pt)

P2

Page 2: · Web viewPour communiquer une chaîne de caractères entre un client et un serveur en utilisant les sockets TCP, le client peut utiliser la méthode println de PrintWriter et le

3. Quel est le type de la faute suivante : un message est placé dans le

tampon de réception d’un processus mais le processus ne le reçoit pas. (1

pt)

4. Quelle est la relation entre le langage IDL et CORBA ? (1 pt)

5. Donnez un exemple d’application qui est sensible à la gigue. (1 pt)

6. Donnez un exemple dans lequel un système distribué passe d’une

exactitude faible à une exactitude finalement forte. (1 pt)Partie III : Sockets TCP (6 pts)

1. Pour communiquer une chaîne de caractères entre un client et un serveur en utilisant les sockets TCP, le client peut utiliser la méthode println de PrintWriter et le serveur peut utiliser la méthode readLine() de BufferedReader. Donnez deux manières différentes pour réaliser le même traitement (en utilisant d’autres flots ou d’autres méthodes) (2 pts)

2. Que fait la méthode mystere de la classe java suivante ? (1 pt).

import java.io.*; public class A{ public static void mystere (InputStream in, OutputStream out) throws IOException {

byte buf[] = new byte[1024]; int n; while((n=in.read(buf))!=-1) out.write(buf,0,n); in.close(); out.close();

}}

3. Soit les deux classes java suivantes ://// Serveur.javaimport java.io.*;import java.net.*;public class Serveur{ public static void main(String []args) throws IOException { Socket sock = new ServerSocket(9001).accept(); A.mystere(sock.getInputStream(),new FileOutputStream("./src/test2")); sock.close(); } }

/////////// Client.javaimport java.io.*; import java.net.*;public class Client{ public static void main(String []args) throws IOException { Socket sock = new Socket(InetAddress.getLocalHost(),9001); A.mystere(new FileInputStream("./src/test1"),sock.getOutputStream()); sock.close(); } }

a. Que fait le client ? (0,5 pt).

Page 3: · Web viewPour communiquer une chaîne de caractères entre un client et un serveur en utilisant les sockets TCP, le client peut utiliser la méthode println de PrintWriter et le

b. Que fait le serveur ? (0,5 pt).

c. Que fait cette application en exécutant les deux classes dans localhost ? (1pt)

d. En utilisant deux machines différentes (une machine coté client et une autre machine coté serveur), quel sera l’objectif de cette application ? (1pt)