Pourquoi des communications non bloquantes? Deadlock! (embrasse mortelle) communicator

Dimension: px
Commencer à balayer dès la page:

Download "Pourquoi des communications non bloquantes? Deadlock! (embrasse mortelle) communicator"

Transcription

1 Pourquoi des communications non bloquantes? Illustration : mettez la main gauche dans le dos et passez une enveloppe avec la main droite à votre voisin de droite...deadlock! comment pourrait-on résoudre ce pb? C est le cas du ping pong vu précédemment... En cas de non tamponnage MPI_Send est un rendez vous. Donc si je programme comme suit: if (je suis le processus 0) {MPI_Send (.., 1,..) ; MPI_Recv(..., 1,..); else { MPI_Send(..., 0,...); MPI_Recv(..., 0,...): je me retrouve avec 2 processus bloqués indéfiniment : ils ne peuvent réaliser le rendez-vous car aucun n a pu faire le Recv! Par contre s ill y a tamponnage, le code fonctionne... Hugues Leroy Cours de DEA CH 3.4 / 1 Hugues Leroy Cours de DEA CH 3.4 / 2 Deadlock! (embrasse mortelle) communicator 0 Tentative de résolution : inscrire le numéro du destinataire sur l enveloppe, la poser au milieu, puis prendre celle qui nous est destinée. Hugues Leroy Cours de DEA CH 3.4 / 3 Hugues Leroy Cours de DEA CH 3.4 / 4

2 Communications non bloquantes La communication se fait maintenant comme suit : Initialiser la communication non bloquante (on poste une demande) Aller faire autre un autre travail ( peut-être ce travail fera-t-il aussi d autres communications?) Attendre la fin de la communication non bloquante. En fait si je sais qu à un certain moment dans le futur proche que j aurais besoin d une donnée transmise par un autre processus, je peux anticiper en disant au système de communication de noter l information que je lui fournis dans ma demande (dans ce cas une réception non bloquante). Si un message du type spécifié (tag) et de l émetteur spécifié arrive, alors le système pourra le ranger directement dans le tampon que je lui ai indiqué. Lorsque j aurais besoin de la donnée, alors je ferais un Wait(). Si elle est arrivée, alors je serais bien parvenu à faire un recouvrement calcul/communication. Hugues Leroy Cours de DEA CH 3.4 / 5 Hugues Leroy Cours de DEA CH 3.4 / 6 Envoi non bloquant in 3 4 communicator out 0 L émetteur poste une demande d envoi. Il devra tester l état de la requête avant de ré-utiliser le tampon. Hugues Leroy Cours de DEA CH 3.4 / 7 Hugues Leroy Cours de DEA CH 3.4 / 8

3 Réception non bloquante in 3 4 communicator out 0 Le récepteur poste une demande de réception. Il ira tester ensuite si quelque chose est arrivé Hugues Leroy Cours de DEA CH 3.4 / 9 Hugues Leroy Cours de DEA CH 3.4 / 10 Handles datatype : idem comm. bloquantes ( MPI_Datatype ou INTEGER ) communicateur :... ( MPI_Comm ou INTEGER ) valeur permettant de tester l état de la communication ( request handle ) : MPI_Request ou INTEGER Le runtime de la bibliothèque MPI me fournira un handle (un descripteur) pour chaque communication non bloquante. Et ce handle me permettra de tester l état de la communication associée. Hugues Leroy Cours de DEA CH 3.4 / 11 Hugues Leroy Cours de DEA CH 3.4 / 12

4 Envois non bloquants synchrones C: int MPI_Issend (void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)... int MPI_Wait (MPI_Request *request, MPI_Status *status) Fortran: MPI_ISSEND (buf, count, datatype, dest, tag,comm, handle, ierror)... MPI_WAIT (handle, status, ierror) Hugues Leroy Cours de DEA CH 3.4 / 13 Hugues Leroy Cours de DEA CH 3.4 / 14 Réception non bloquante C : int MPI_Irecv (void *buf, int count, MPI_Datatype datatype, int src, int tag,mpi_comm comm, MPI_Request *handle) int MPI_Wait (MPI_Request *handle, MPI_Status *status) Fortran : MPI_IRECV (buf, count, datatype, src, tag,comm, handle, ierror) MPI_WAIT (handle, status, ierror) Hugues Leroy Cours de DEA CH 3.4 / 15 Hugues Leroy Cours de DEA CH 3.4 / 16

5 bloquant ou non bloquant? Les envois et les réceptions peuvent être bloquants ou non bloquants. On peut combiner envoi bloquant et réception non bloquante (et vice-versa) Les envois non bloquants peuvent utiliser n importe quel mode : synchrone, tamponné, standard ou ready Le mode synchrone affecte uniquement la terminaison de l opération. Attention, les communications non bloquantes consomment des ressources mémoire : l émetteur doit conserver un descripteur pour la requête, le récepteur doit aussi pouvoir tester l enveloppe. Les envois Bsend bloquants demandent aussi plus de mémoire et impliquent des tamponnages intermédiaires, alors que les comm. non bloquantes demandent au programmeur d utiliser plus de fonctions MPI... Attention aux hot spots (ex: un seul processus devant recevoir une floppée de messages ) Hugues Leroy Cours de DEA CH 3.4 / 17 Hugues Leroy Cours de DEA CH 3.4 / 18 Communications non bloquantes mode Envoi standard Envoi synchrone Envoi tamponné (Buffered) Ready send Réception MPI MPI_Isend MPI_Issend MPI_Ibsend MPI_Irsend MPI_Irecv Ce sont les mêmes modes que pour les comm. bloquantes : on a juste un grand I avant le nom de la fonction. Send devient Isend, Recv -> Irecv,... et un paramètre de plus (le handle de type MPI_Request) Hugues Leroy Cours de DEA CH 3.4 / 19 Hugues Leroy Cours de DEA CH 3.4 / 20

6 Terminaison on peut attendre la fin de l opération ou tester son état : C: int MPI_Wait (MPI_Request *handle, MPI_Status *status) int MPI_Test (MPI_Request *handle, int *flag, MPI_Status *status) flag vaudra vrai si la communication testée est terminée Fortran: MPI_WAIT (handle, status, ierror) MPI_TEST (handle, flag, status, ierror) Hugues Leroy Cours de DEA CH 3.4 / 21 Hugues Leroy Cours de DEA CH 3.4 / 22 Exercice 3 : communications sur un anneau Un ensemble de processus est sur un anneau virtuel : Chaque processus conserve (dans un entier) son rang dans MPI_COMM_WORLD. Chaque processus passe cet entier à son voisin de droite. Puis reçoit un entier de son voisin de gauche. Il continue à passer cette information jusqu à ce qu il reçoive de nouveau son rang. Chaque processus calcule la somme des rangs (somme de tout ce qui passe) On utilisera des communications bloquantes. Modifier le programme pour utiliser des communications non bloquantes Cet exercice doit être développé comme il est dit dans l énoncé! Vous pourrez simplement vérifier que votre résultat est correct en le comparant avec la formule adhoc : n*(n+1)/2 Dans la suite de ce cours, nous ferons le même exercice en utilisant une topologie virtuelle, ou une opération de réduction. Hugues Leroy Cours de DEA CH 3.4 / 23 Hugues Leroy Cours de DEA CH 3.4 / 24

7 Communications multiples Avec un seul appel de fonction MPI, on peut tester l état ou attendre la fin d une ou de plusieurs communications. int MPI_Testall(int count, MPI_Request array_of_requests[], int *flag, MPI_Status *array_of_statuses ) int MPI_Testsome (...) int MPI_Testany (...) int MPI_Waitall(...) int MPI_Waitany(...) int MPI_Waitsome(...) Pour le manuel d utilisation des diverses fonctions, on peut aussi commander sous Unix (ou Linux) : man -M /home/mpi/man MPI_Waitany... consultez le manuel! par ex: commande mpiman -netscape pour mpich Hugues Leroy Cours de DEA CH 3.4 / 25 Hugues Leroy Cours de DEA CH 3.4 / 26 Communications multiples Wait Test au moins un Waitany Testany retourne un seul tous Waitall Testall au moins un retourne tous ceux qui ont fini Waitsome Testsome Hugues Leroy Cours de DEA CH 3.4 / 27 Hugues Leroy Cours de DEA CH 3.4 / 28

8 Exemple : multiples producteurs / un seul consommateur typedef struct{ char data[maxsize]; int datasize; MPI_Request req; Buffer; Buffer buffer[]; MPI_Status status; Pn-1... MPI_Comm_rank(comm, &rank); MPI_Comm_size(comm,&size); if (rank!= size-1) { /* producteur */ buffer=(buffer *) malloc (sizeof(buffer)); while ( 1 ) { /* boucle inficie */ produire (buffer->data,&buffer->datasize); MPI_Send ( buffer->data,buffer->datasize,mpi_char,size-1,tag,comm); else { /* rank == size-1 : le consommateur */ buffer=(buffer *) malloc (sizeof(buffer)*(size-1)); for (i=0;i<size-1;i++) MPI_Irecv ( buffer[i].data,maxsize, MPI_CHAR, i, tag, comm, &(buffer[i].req)); for (i=0; ; i=(i+1)%(size-1) ) { /* PREMIERE POSSIBILITE */ MPI_Wait ( &(buffer[i].req), &status); MPI_Get_count ( &status, MPI_CHAR, &(buffer[i].datasize)); consommer ( buffer[i].data, buffer[i]->datasize); MPI_Irecv (buffer[i].data, MAXSIZE, MPI_CHAR, i, tag, comm, &(buffer[i].req)); P0 P1 P2 Pn-2 Un consommateur : le processus de numéro n-1, et n-1 producteurs (de 0 à n-2). L exploration séquentielle de la boucle (marquée par la main) montre que tant que le processus i n a pas tranmis son message, alors on reste bloqué sur le Wait. Donc si un processus produit 2 fois plus que les autres, on ne pourra pas le traiter en priorité. Dès qu on a traité sa demande, alors on repart dans la boucle sur i, et on ne reviendra à lui que lorsqu on aura traité (attendu) toutes les autres demandes. Une alternative est de faire un MPI_Test sur la requête du processus courant (i). MPI_test rend vrai ou faux suivant que la communication en question est finie ou pas. Hugues Leroy Cours de DEA CH 3.4 / 29 Hugues Leroy Cours de DEA CH 3.4 / 30 /* DEUXIEME POSSIBILITE ( version plus élégante ), la 1ère version ne traitant pas de façon équitable tous les producteurs car il y a une séquentialisation dans le traitement */ i=0; while (1) { for (flag=0;! flag; i=(i+1)%(size-1) ) MPI_Test (&(buffer[i].req), &flag, &status); MPI_Get_count ( &status, MPI_CHAR, &(buffer[i].datasize)); consommer ( buffer[i].data, buffer[i]->datasize); MPI_Irecv (buffer[i].data, MAXSIZE, MPI_CHAR, i, tag, comm, &(buffer[i].req)); Ici on a un meilleur traitement des demandes, et on ne consomme plus comme précédemment au rythme du plus lent des producteurs. remarquez comment la boucle sur MPI_Test permet de sélectionner une requête! (on sort lorsque flag vaut vrai) Hugues Leroy Cours de DEA CH 3.4 / 31 Hugues Leroy Cours de DEA CH 3.4 / 32

9 Remarques Le processus inexistant est noté MPI_PROC_NULL une communication vers ce processus retourne tout de suite. Un message reçu de ce processus sera de longueur 0 et aura l étiquette MPI_ANY_TAG Intérêt : (cf Jacobi sur domaine 2D maillé) on pourra utiliser le même appel MPI pour les communications d échange des bords, les processus étant ou non sur les bords de la grille La requête inexistante est MPI_REQUEST_NULL On a la garantie que toutes les communications vers le processus MPI_PROC_NULL terminent. Idem pour les Recv. On verra que cette propriété va nous permettre de rendre le code source plus lisible lorsqu on utilisera les topologies virtuelles. On n aura plus les fastidieux tests du genre: si je suis un processus sur le bord gauche alors je reçois et envoie à droite, sinon si je suis un processus sur le bord droit alors je reçoit et envoie à gauche, sinon (je suis un processus au milieu) je reçoit/envoie à gauche et je reçoit/envoie à droite. Hugues Leroy Cours de DEA CH 3.4 / 33 Hugues Leroy Cours de DEA CH 3.4 / 34 Fonctions avancées int MPI_Probe ( int source, int tag, MPI_Comm comm, MPI_Status *status) permet de choisir une enveloppe avant d en lire le contenu l appel non bloquant est MPI_Iprobe (int source, int tag, int *flag, MPI_Comm comm, MPI_Status *status). flag prendra la valeur vrai ou faux suivant l état de la communication testée. Communications persistantes (non bloquantes, donc il faut tester ou attendre la fin avant de réutiliser les tampons) int MPI_Send_init ( void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request) int MPI_Start ( MPI_Request *request) ou int MPI_Startall ( int count, MPI_Request array_of_requests[] ) int MPI_Request_free ( MPI_Request *request) supprimer une requête ( attention! si le message est déjà parti ou a été reçu..?!??..) int MPI_Cancel ( MPI_Request *request ) int MPI_Test_cancelled ( MPI_Status *status, int *flag ) Hugues Leroy Cours de DEA CH 3.4 / 35 Hugues Leroy Cours de DEA CH 3.4 / 36

10 Intérêt des communications persistantes Dans un programme il arrive qu il y ait une boucle sur un envoi et une réception de message, où seules les données échangées varient, mais ni leurs adresses en mémoire, ni leur nombre, ni leurs types (regardez par exemple le programme ping pong). On va donc créer un schéma de communication une fois pour toutes, et dans la boucle on activera la requête. À la fin de la boucle, on pourra libérer la requête. Ce schéma va permettre de masquer la latence de communication et de réduire les surcoûts induits par les appels aux fonctions de communications dans la boucle. On n aura plus non plus la recopie des paramètres. boucle {... ; a=... ; MPI_Send ( &a, 1, MPI_INT,...); peut devenir : MPI_Send_init (&a, 1, MPI_INT,...,&req); boucle {...; a=...; MPI_Start( &req);... MPI_Request_free(&req); mode standard synchrone tamponné réception MPI MPI_Send_init MPI_Ssend_init MPI_Bsend_init MPI_Recv_init Hugues Leroy Cours de DEA CH 3.4 / 37 Hugues Leroy Cours de DEA CH 3.4 / 38 Remarquons les équivalences : MPI_Irecv(...,&req) avec MPI_Recv_init (...&req); MPI_Start(&req); MPI_Wait (&req) avec MPI_Wait(&req); MPI_Request_free(&req); Exercice 4 Bien mesurer les latences et débits obtenus. Après cet exercice vous pourrez savoir quelles sont les primitives de communications les plus efficaces : Send/Recv, Sendrecv, Sendrecv_replace, Send_init/Start, etc... Remarque: nous n aurons pas les mêmes indications suivant les architectures matérielles et les implémentations de MPI utilisées. Reprendre le ping pong et remplacer les envois/réceptions pour en faire des communications persistantes. Hugues Leroy Cours de DEA CH 3.4 / 39 Hugues Leroy Cours de DEA CH 3.4 / 40

11 Utilisation de MPI_Probe int MPI_Probe (int source, int tag, MPI_Comm comm, MPI_Status *status ) #define MCW MPI_COMM_WORLD double eleven[500]; double data[500]; MPI_Init(&argc,&argv); MPI_Comm_rank(MCW,&rank); if ( rank == 1 ) { for (i=0; i<50;i++) {eleven[i]=11.0; MPI_Send(eleven,50,MPI_DOUBLE,0,1001,MCW); else { MPI_Recv(data,500,MPI_DOUBLE,MPI_ANY_SOURCE,MPI_ANY_TAG,MCW, &status); MPI_Get_count(&status,MPI_DOUBLE,&count); printf( Process %d received %d doubles\n,rank,count); Qui y a-t-il de mal fait dans ce code? le récepteur ne sait pas combien d éléments il va recevoir => gaspillage de mémoire (500 au lieu de 50) ne connait pas le TAG (pourrait être utilisé comme un signal) ne connait pas l émetteur (pas important ici, mais on pourrait avoir un traitement différent suivant l émetteur du message) Solution : utiliser MPI_Probe et l allocation dynamique de mémoire Hugues Leroy Cours de DEA CH 3.4 / 41 Hugues Leroy Cours de DEA CH 3.4 / 42 double eleven[500]; double *data; MPI_Init(&argc,&argv); MPI_Comm_rank(MCW,&rank); if ( rank == 1 ) { for (i=0; i<50;i++) {eleven[i]=11.0; MPI_Send(eleven,50,MPI_DOUBLE,0,1001,MCW); else { MPI_Probe(1,MPI_ANY_TAG,MCW,&status); MPI_Get_count(&status,MPI_DOUBLE,&count); MPI_Type_size(MPI_DOUBLE,&n); data=(double *) calloc (count,n); MPI_Recv(data, count, MPI_DOUBLE, 1, MPI_ANY_TAG, MCW, &status); Hugues Leroy Cours de DEA CH 3.4 / 43

Introduction à la Programmation Parallèle: MPI

Introduction à la Programmation Parallèle: MPI Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4

Plus en détail

Systèmes parallèles et distribués

Systèmes parallèles et distribués Systèmes parallèles et distribués Grégory Mounié 2013-12 Grégory Mounié Systèmes parallèles et distribués 2013-12 1 / 58 Outline 1 Introduction 2 Performances 3 Problèmes du calcul parallèle 4 Intergiciels

Plus en détail

Runtime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I

Runtime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I Runtime Gestion de la réactivité des communications réseau François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I 1 Le calcul hautes performances La tendance actuelle

Plus en détail

Plan de la formation. Calcul parallèle avec MPI. Pourquoi paralléliser? Parallélisation. Présentation, environnement MPI. Communications point à point

Plan de la formation. Calcul parallèle avec MPI. Pourquoi paralléliser? Parallélisation. Présentation, environnement MPI. Communications point à point Plan de la formation Calcul parallèle avec MPI Guy Moebs Parallélisation Présentation, environnement MPI Communications point à point Laboratoire de Mathématiques Jean Leray, CNRS, Université de Nantes,

Plus en détail

MPI-1 2ème partie : Programmation «non bloquante» et communications de groupe

MPI-1 2ème partie : Programmation «non bloquante» et communications de groupe 3A-SI Programmation parallèle MPI-1 2ème partie : Programmation «non bloquante» et communications de groupe Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle MPI-1 2ème partie

Plus en détail

Introduction to Parallel Programming with MPI

Introduction to Parallel Programming with MPI Introduction to Parallel Programming with MPI Master Modélisation et Simulation - ENSTA cours A1-2 Pierre Kestener pierre.kestener@cea.fr CEA-Saclay, DSM, France Maison de la Simulation MDLS, September,

Plus en détail

Cours de Systèmes d Exploitation

Cours de Systèmes d Exploitation Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Programmation parallèle et distribuée

Programmation parallèle et distribuée ppd/mpassing p. 1/43 Programmation parallèle et distribuée Communications par messages Philippe MARQUET Philippe.Marquet@lifl.fr Laboratoire d informatique fondamentale de Lille Université des sciences

Plus en détail

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran)  Processus = suite d'actions = suite d'états obtenus = trace Processus 1) Contexte 2) Modèles de Notion de Points de vue Modèle fourni par le SX Opérations sur les 3) Gestion des Représentation des Opérations 4) Ordonnancement des Niveaux d ordonnancement Ordonnancement

Plus en détail

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN

Plus en détail

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

Les processus légers : threads. Système L3, 2014-2015 1/31

Les processus légers : threads. Système L3, 2014-2015 1/31 Les processus légers : threads Système L3, 2014-2015 1/31 Les threads Les threads sont des processus légers exécutés à l intérieur d un processus L exécution des threads est concurrente Il existe toujours

Plus en détail

IRL : Simulation distribuée pour les systèmes embarqués

IRL : Simulation distribuée pour les systèmes embarqués IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Programmation système de commandes en C

Programmation système de commandes en C Programmation système de commandes en C Cours de Programmation système Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012 2013 Tuyêt Trâm DANG NGOC Programmation système de commandes

Plus en détail

Les structures. Chapitre 3

Les structures. Chapitre 3 Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre

Plus en détail

Les communications collectives. Caractéristiques. Communications dans un groupe de processus. Dans un communicateur donné.

Les communications collectives. Caractéristiques. Communications dans un groupe de processus. Dans un communicateur donné. Les communications collectives Communications dans un groupe de processus. Dans un communicateur donné. Trois sortes : Synchronisation globale MI_Barrier() Transferts de données : diffusion/collecte globale/sélective

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

OS Réseaux et Programmation Système - C5

OS Réseaux et Programmation Système - C5 OS Réseaux et Programmation Système - C5 Rabie Ben Atitallah rabie.benatitallah@univ-valenciennes.fr RPC - XDR Rappel RPC: Remote Procedure Call Besoin d un environnement de haut niveau pour le développement

Plus en détail

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers. I Présentation : Dans le chapitre 1, nous avons vu comment utiliser les appels-systèmes de bas niveau pour créer et accéder à des fichiers sur le disque. Nous avons notamment mis en évidence leur dépouillement

Plus en détail

Projet Active Object

Projet Active Object Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques

Plus en détail

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7 Cahier des charges driver WIFI pour chipset Ralink RT2571W sur hardware ARM7 RevA 13/03/2006 Création du document Sylvain Huet RevB 16/03/2006 Fusion des fonctions ARP et IP. SH Modification des milestones

Plus en détail

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources SNT4U16 - Initiation à la programmation Licence SVT 2 ème année 2014-2015 TD - Dynamique de POP III - Fichiers sources contacts : mathias.gauduchon@univ-amu.fr, melika.baklouti@univ-amu.fr, xavier.giraud@univ-amu.fr,

Plus en détail

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

Programme Compte bancaire (code)

Programme Compte bancaire (code) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; Programme Compte bancaire (code) namespace compte_bancaire /// Classe Program public

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

Introduction à la programmation concurrente

Introduction à la programmation concurrente Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011 Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

INFO-F-404 : Techniques avancées de systèmes d exploitation

INFO-F-404 : Techniques avancées de systèmes d exploitation Nikita Veshchikov e-mail : nikita.veshchikov@ulb.ac.be téléphone : 02/650.58.56 bureau : 2N8.213 URL : http://student.ulb.ac.be/~nveshchi/ INFO-F-404 : Techniques avancées de systèmes d exploitation Table

Plus en détail

Le prototype de la fonction main()

Le prototype de la fonction main() Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme

Plus en détail

Les arbres binaires de recherche

Les arbres binaires de recherche Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s

Plus en détail

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014 numériques et Institut d Astrophysique et de Géophysique (Bât. B5c) Bureau 0/13 email:.@ulg.ac.be Tél.: 04-3669771 29 septembre 2014 Plan du cours 2014-2015 Cours théoriques 16-09-2014 numériques pour

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année 2003-2004 Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES Maude Manouvrier La reproduction de ce document par

Plus en détail

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Cours de Programmation Impérative: Zones de mémoires et pointeurs Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien

Plus en détail

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module François SCHNEIDER Lycée Victor-Hugo BESANÇON. STS SE FreeRTOS Programmation réseau WIFI Programmation réseau Socket Tcp FlyPort smart Wi-Fi 802.11 module Prérequis : langage C, connaissance réseau : Ip,

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

Langage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289

Langage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Langage C Patrick Corde Patrick.Corde@idris.fr 22 juin 2015 Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Table des matières I 1 Présentation du langage C Historique Intérêts

Plus en détail

Chapitre 4 : Exclusion mutuelle

Chapitre 4 : Exclusion mutuelle Chapitre 4 : Exclusion mutuelle Pierre Gançarski Juillet 2004 Ce support de cours comporte un certain nombre d erreurs : je décline toute responsabilité quant à leurs conséquences sur le déroulement des

Plus en détail

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; };

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; }; #include #include struct cell int clef; struct cell suiv; ; / longueur. pc->suiv est l abréviation de (pc).suiv. pour cette fonction comme pour les suivantes, on donne, lorsqu il existe

Plus en détail

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30 Plan du Travail Chapitre 1: Internet et le Web : Définitions et historique Chapitre 2: Principes d Internet Chapitre 3 : Principaux services d Internet Chapitre 4 : Introduction au langage HTML 2014/2015

Plus en détail

DNS Server RPC Interface buffer overflow. Céline COLLUMEAU Nicolas BODIN

DNS Server RPC Interface buffer overflow. Céline COLLUMEAU Nicolas BODIN Mémoire DNS Server RPC Interface buffer overflow Céline COLLUMEAU Nicolas BODIN 3 janvier 2009 Table des matières 1 Introduction 2 2 Présentation de la faille 3 3 Exemple d exploitation 5 4 Solutions 10

Plus en détail

Threads. Threads. USTL http://www.lifl.fr/ routier 1

Threads. Threads. USTL http://www.lifl.fr/ routier 1 Threads USTL http://www.lifl.fr/ routier 1 Rappels - Définitions un Process est un programme qui tourne et dispose de ses propres ressources mémoire. OS multi-tâche plusieurs process en concurrence un

Plus en détail

Chapitre 1 : La gestion dynamique de la mémoire

Chapitre 1 : La gestion dynamique de la mémoire Chapitre 1 : La gestion dynamique de la mémoire En langage C un programme comporte trois types de données : Statiques; Automatiques ; Dynamiques. Les données statiques occupent un emplacement parfaitement

Plus en détail

Problèmes liés à la concurrence

Problèmes liés à la concurrence ENS Cachan Problématique Difficile de gérer la concurrence : Pas toujours facile d avoir des fonctions réentrantes. Risque de race condition : ex : x :=x+1 x :=x+1 On voudrait des blocs d instructions

Plus en détail

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs Brefs rappels sur la pile et le tas (Stack / Heap) et les pointeurs (exemples en C) v1.11 - Olivier Carles 1 Pile et Tas Mémoire allouée de manière statique Mémoire Allouée Dynamiquement variables locales

Plus en détail

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris : Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens

Plus en détail

Plateforme «Inscription en ligne»

Plateforme «Inscription en ligne» Plateforme «Inscription en ligne» Modules Formations d intégration Formations Inter collectivités Réunion de présentation collectivités 2013 Déroulé de la présentation Accéder à la plateforme Accéder à

Plus en détail

TP : Gestion d une image au format PGM

TP : Gestion d une image au format PGM TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Présentation du PL/SQL

Présentation du PL/SQL I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996] Mesure de performances [Architecture des ordinateurs, Hennessy & Patterson, 1996] Croissance des performances des microprocesseurs Avant le milieu des années 80, le gain dépendait de la technologie. Après,

Plus en détail

L exclusion mutuelle distribuée

L exclusion mutuelle distribuée L exclusion mutuelle distribuée L algorithme de L Amport L algorithme est basé sur 2 concepts : L estampillage des messages La distribution d une file d attente sur l ensemble des sites du système distribué

Plus en détail

DHCP et NAT. Cyril Rabat cyril.rabat@univ-reims.fr. Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 2012-2013

DHCP et NAT. Cyril Rabat cyril.rabat@univ-reims.fr. Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 2012-2013 DHCP et NAT Cyril Rabat cyril.rabat@univ-reims.fr Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 22-23 Cours n 9 Présentation des protocoles BOOTP et DHCP Présentation du NAT Version

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

Arguments d un programme

Arguments d un programme Arguments d un programme L2 SPI, Bruno Jacob 1 Arguments Quand on appelle un programme dans un environnement UNIX ou MS- DOS, on compose une ligne de commandes de la forme : nom-du-programme argument1

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données EARTH et Threaded-C: Éléments clés du manuel de références de Threaded-C Bref historique de EARTH et Threaded-C Ancêtres de l architecture EARTH: Slide 1 Machine à flux de données statique de J.B. Dennis

Plus en détail

COMPARAISONDESLANGAGESC, C++, JAVA ET

COMPARAISONDESLANGAGESC, C++, JAVA ET REPUBLIQUE DU BENIN *******@******* MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE(MESRS) *******@******* UNIVERSITE D ABOMEY CALAVI(UAC) *******@******* ECOLE POLYTECHNIQUE D ABPOMEY

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

Parallélisme et Répartition

Parallélisme et Répartition Parallélisme et Répartition Master Info Françoise Baude Université de Nice Sophia-Antipolis UFR Sciences Département Informatique baude@unice.fr web du cours : deptinfo.unice.fr/~baude Septembre 2009 Chapitre

Plus en détail

Corrigé des TD 1 à 5

Corrigé des TD 1 à 5 Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un

Plus en détail

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM Copyright TECH 2012 Technext - 8, avenue Saint Jean - 06400 CANNES Société - TECHNEXT France - Tel : (+ 33) 6 09 87 62 92 - Fax :

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

1. Structure d'un programme FORTRAN 95

1. Structure d'un programme FORTRAN 95 FORTRAN se caractérise par la nécessité de compiler les scripts, c'est à dire transformer du texte en binaire.(transforme un fichier de texte en.f95 en un executable (non lisible par un éditeur) en.exe.)

Plus en détail

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée

Plus en détail

Les fichiers. Chapitre 4

Les fichiers. Chapitre 4 Chapitre 4 Les fichiers Jusqu à maintenant tous les programmes que nous avons conçus travaillaient sur des données qui étaient perdues après chaque session de travail. On peut cependant, c est bien naturel,

Plus en détail

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation Cycle Ingénierie 2e année SIGL Dernière mise à jour : 19/10/2006 Christophe Porteneuve Threads Principes Cycle de vie Création java.lang.thread

Plus en détail

TD3: tableaux avancées, première classe et chaînes

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

Plus en détail

Réseau longue distance et application distribuée dans les grilles de calcul : étude et propositions pour une interaction efficace

Réseau longue distance et application distribuée dans les grilles de calcul : étude et propositions pour une interaction efficace 1 Réseau longue distance et application distribuée dans les grilles de calcul : étude et propositions pour une interaction efficace Réseau longue distance et application distribuée dans les grilles de

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

CORBA haute performance

CORBA haute performance CORBA haute performance «CORBA à 730Mb/s!» Alexandre DENIS PARIS/IRISA, Rennes Alexandre.Denis@irisa.fr Plan Motivations : concept de grille de calcul CORBA : concepts fondamentaux Vers un ORB haute performance

Plus en détail

PROJET 1 : BASE DE DONNÉES REPARTIES

PROJET 1 : BASE DE DONNÉES REPARTIES PROJET 1 : BASE DE DONNÉES REPARTIES GESTION D UNE BANQUE Elèves : David Bréchet Frédéric Jacot Charles Secrétan DONNÉES DU PROJET SSC - Bases de Données II Laboratoire de Bases de Données BD réparties

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr 4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr Le problème Insuffisance des solutions de base (verrous) Les solutions de plus haut niveau Les Sémaphores Les Moniteurs

Plus en détail

GESTION DES FICHIERS C/UNIX

GESTION DES FICHIERS C/UNIX Licence IG Page 1 sur 6 GESTION DES FICHIERS C/UNIX Introduction Deux modes d appel - Par la bibliothèque standard C (appel de haut niveau) - Par appels système (bas niveau) Nécessite les includes suivant

Plus en détail

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée) Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée) Propriétés Description Intitulé long Formation concernée Matière Présentation Développement d un logiciel de messagerie

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

INITIATION AU LANGAGE JAVA

INITIATION AU LANGAGE JAVA INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal

Plus en détail

Communications performantes par passage de message entre machines virtuelles co-hébergées

Communications performantes par passage de message entre machines virtuelles co-hébergées Communications performantes par passage de message entre machines virtuelles co-hébergées François Diakhaté1,2 1 CEA/DAM Île de France 2 INRIA Bordeaux Sud Ouest, équipe RUNTIME Renpar 2009 1 Plan Introduction

Plus en détail

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

INITIATION A LA PROGRAMMATION

INITIATION A LA PROGRAMMATION 2004-2005 Université Paris Dauphine IUP Génie Mathématique et Informatique INITIATION A LA PROGRAMMATION PROCEDURALE, A L'ALGORITHMIQUE ET AUX STRUCTURES DE DONNEES PAR LE LANGAGE C Maude Manouvrier La

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration Julien MATHEVET Alexandre BOISSY GSID 4 Rapport Load Balancing et migration Printemps 2001 SOMMAIRE INTRODUCTION... 3 SYNTHESE CONCERNANT LE LOAD BALANCING ET LA MIGRATION... 4 POURQUOI FAIRE DU LOAD BALANCING?...

Plus en détail