Les Messages MPI. Les Types de base MPI - C

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

Download "Les Messages MPI. Les Types de base MPI - C"

Transcription

1 Les Messages MPI Un message MPI contient un certain nombre de données typées : d un type de base (entiers, réels simple ou double précision,...) ou d un type construit. Les types contruits le sont à partir de types de base (cf 3.6) Les types de données MPI pour le langage C sont différents de ceux existants pour Fortran. Les types MPI permettent d être indépendant des diverses représentations machine hétérogènéité possible pour les applications Pourquoi utiliser dans les messages des types MPI au lieu des types reconnus par le langage? Hé bien à cause du support de l hétérogénéité : un type entier n est pas forcément implémenté suivant le même format machine dans 2 architectures différentes. Sur les architecture Intel, rappelez-vous que les digits poids forts et poids faibles ne sont pas dans le même sens que sur une machine Sun par ex. (big endian, little endian,...) Donc si je met un int dans le message et que j envoie ce message, il a de fortes chances de ne pas donner la même valeur à l autre bout... d où la nécessité d utiliser un format de représentation indépendant des formats machine. En programmation réseau on peut utiliser des fonctions comme htonl(), ntohl() ou ntohs() voire même utiliser le codage XDR. Ici on utilisera les types de données MPI. htons(), Hugues Leroy Cours de DEA CH 3.3 / 1 Hugues Leroy Cours de DEA CH 3.3 / 2 Les Types de base MPI - C Type MPI MPI_CHAR MPI_SHORT MPI_INT MPI_LONG MPI_UNSIGNED_CHAR MPI_UNSIGNED_SHORT MPI_UNSIGNED MPI_UNSIGNED_LONG MPI_FLOAT MPI_DOUBLE MPI_LONG_DOUBLE MPI_BYTE MPI_PACKED C signed char signed short int signed int signed long int unsigned char unsigned short int unsigned int unsigned long int float double long double unsigned char spécial Attention : l appellation type est incorrecte, c est un abus de langage pour éviter de dire à chaque fois type de donnée. Ce n est pas un type au sens des langages et on ne pourra -par exemple- pas déclarer un objet de type MPI_INT. En fait ce sont des constantes prédéfinies, mais on a l habitude de dire type... On ne les utilise que dans les primitives de communication. Hugues Leroy Cours de DEA CH 3.3 / 3 Hugues Leroy Cours de DEA CH 3.3 / 4

2 Types de base MPI - Fortran MPI Fortran MPI_INTEGER INTEGER MPI_REAL REAL MPI_DOUBLE_PRECISION DOUBLE PRECISION MPI_COMPLEX COMPLEX MPI_LOGICAL LOGICAL MPI_CHARACTER CHARACTER(1) MPI_BYTE MPI_PACKED On a moins de choix qu en C. Hugues Leroy Cours de DEA CH 3.3 / 5 Hugues Leroy Cours de DEA CH 3.3 / 6 Communications point à point 1 3 source communicator dest une communication point à point a lieu entre deux processus, un émetteur et un destinataire ( dans le même communicateur ). Le destinataire est identifié par son rang dans le communicateur. il existe plusieurs modes de transfert, chacun faisant appel à un protocole différent QUOI!? on ne dit pas seulement <<le message X va de A vers B>>?? OUI car MPI offre un plus grand contrôle sur la transmission. Hugues Leroy Cours de DEA CH 3.3 / 7 Hugues Leroy Cours de DEA CH 3.3 / 8

3 Les modes de communication Mode Notes Fonction MPI Envoi synchrone retourne lorsqu une demande de réception est faite MPI_Ssend Envoi tamponné retourne (sauf en cas d erreurs) même si le récepteur n a pas encore reçu le message MPI_Bsend soit synchrone, soit tamponné. Ne faire aucune Envoi standard supposition sur l implémentation effective. MPI_Send Ready send retourne (sauf en cas d erreurs) même si le récepteur n a pas encore reçu le message MPI_Rsend Réception MPI_Recv retourne lorsque le message demandé est arrivé L envoi standard peut être (ou non) implémenté avec tamponnage. Si c est le cas l envoi se termine avant qu une réception soit faite, sinon on bloque jusqu à ce qu une demande de réception pour ce message soit faite. Si le système de communication (l implémentation de la bibliothèque MPI) assure du tamponnage, alors MPI_Send rend la main dès qu on a recopié dans un tampon du système le message à transmettre. Sinon, s il n a pas de tamponnage, alors on restera bloqué jusqu à ce que le destinataire fasse le MPI_Recv correspondant. Donc quand il n y a pas de tamponnage, MPI_Send est équivalent à MPI_Ssend. MPI_Rsend suppose que le destinataire a déjà fait un Recv(). On aura une erreur (du genre MPI_Abort exécuté par le runtime MPI) si ce n est pas le cas... Hugues Leroy Cours de DEA CH 3.3 / 9 Hugues Leroy Cours de DEA CH 3.3 / 10 Envoi (bloquant) d un message /* DEUXIEME POSSIBILITE ( version plus élégante ), le 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; C: while (1) { for int (flag=0; MPI_Send! flag; i=(i+1)%(size-1) (void *buf, int ) MPI_Test(&(buffer[i].req), count, MPI_Datatype &flag, datatype, &status); MPI_Get_count ( &status, MPI_CHAR, &(buffer[i].datasize)); int dest, int tag, MPI_Comm comm) consommer ( buffer[i].data, buffer[i]->datasize); ou MPI_Ssend, MPI_Irecv MPI_Bsend, (buffer[i].data, MAXSIZE, MPI_Rsend MPI_CHAR, i, tag, comm, &(buffer[i].req)); } } Fortran: remarquez MPI_SEND comment la (BUF, boucle COUNT, sur MPI_Test DATATYPE, permet DEST, de sélectionner TAG, une requête! (on sort lorsque flag vaut vrai) COMM, IERROR) <type> BUF(*) INTEGER COUNT, DATATYPE, DEST, TAG INTEGER COMM, IERROR ou MPI_SSEND, BSEND, RSEND On envoie count données de type datatype contenues dans la variable buf au processus dest dans le communicateur comm. On colle l étiquette tag sur le message (voir plus loin pour les tags) Suivant qu il y a ou non tamponnage par l implémentation MPI, l appellation bloquant pour MPI_Send est trompeuse... On peut juste dire : bloquant jusqu à ce qu on puisse réutiliser la variable (le 1er paramètre buf) pour autre chose. Cette réutilisation pouvant se faire dès que ce tampon aura été recopié dans un autre tampon de la bibliothèque (cas du tamponnage), ou jusqu à ce que le processus destinataire ait reçu le message... ex: envoi de la valeur de l entier n au processus 10 : int n; #define TAG_INIT 222 MPI_Send(&n, 1, MPI_INT, 10, TAG_INIT, MPI_COMM_WORLD); Hugues Leroy Cours de DEA CH 3.3 / 11 Hugues Leroy Cours de DEA CH 3.3 / 12

4 Réception (bloquante) d un message C: int MPI_Recv (void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status) Fortran: MPI_RECV (BUF, COUNT, DATATYPE, SOURCE, TAG, COMM, STATUS, IERROR) <type> BUF(*) INTEGER COUNT, DATATYPE, SOURCE, TAG, COMM, STATUS(MPI_STATUS_SIZE), IERROR Ici pas d ambigüité : on reste bien bloqué jusqu à ce que buf (1er paramètre de Recv) contienne le message attendu du processus source et avec l étiquette tag exemple de réception correspondant au Send vu avant - en supposant que c était le processus 0 qui avait fait l envoi - int x; MPI_Status st; MPI_Recv( &x, 1, MPI_INT, 0, TAG_INIT, MPI_COMM_WORLD, &st); st contiendra les informations : qui a envoyé le message et quel tag a ce message (dans notre cas 0 et 222 ) MPI_Status est un tableau en Fortran, pour C c est une structure. Remarque : count = sizeof(buf) (nb max d éléments dans le tampon) et non pas le nb d éléments que je veux recevoir Hugues Leroy Cours de DEA CH 3.3 / 13 Hugues Leroy Cours de DEA CH 3.3 / 14 Communications synchrones bloquantes (rendez-vous) l émetteur précise le mode synchrone (Ssend) les deux processus émetteur et récepteur se synchronisent les deux processus attendent la fin de la transaction Hugues Leroy Cours de DEA CH 3.3 / 15 Hugues Leroy Cours de DEA CH 3.3 / 16

5 Envois Ready bloquants Une demande de réception correspondante doit avoir été postée, sinon comportement indéterminé. Si cette condition est respectée, on peut attendre un gain de performance (évite des tamponnages intermédiaires) temps Processus 0 Processus 1 irecv ( src=0, tag=0 ) ssend ( dest=1, tag=5 ) recv ( src=0, tag=5 ) rsend ( dest=1, tag=0 )... Ici j ai temporellement la certitude (car c est moi qui a programmé cette application...) qu au moment où le processus 0 fait le Rsend, le processus 1 a bien fait une demande de réception car elle a été faite avant la synchronisation Ssend/ Recv. Donc je sais qu après cette synchronisation, il y a un tampon pour recevoir le message à émettre. Hugues Leroy Cours de DEA CH 3.3 / 17 Hugues Leroy Cours de DEA CH 3.3 / 18 Envois tamponnés bloquants On ne doit pas faire d hypothèses sur le nombre de tampons gérés par le système. En attacher un avec la primitive MPI_Buffer_attach (buffer, size) On le détache avec la primitive MPI_Buffer_detach (buffer, size) Cette dernière opération bloque jusqu à ce que tous les messages transmis en utilisant ce tampon soient tous reçus. Mais attention : un seul tampon attaché par processus detach!= free et attach!= malloc Hugues Leroy Cours de DEA CH 3.3 / 19 Hugues Leroy Cours de DEA CH 3.3 / 20

6 un exemple d utilisation : char * buf; int size; buf=(char *) malloc ( BUFSIZE ); MPI_Buffer_attach ( buf, BUFSIZE ); MPI_Bsend();...;MPI_Bsend();... MPI_Buffer_detach ( &buf, &size );... MPI_Buffer_attach ( buf, size );... MPI_Buffer_detach ( &buf, &size ); free ( buf ); Remarque : MPI_Finalize() fait les Buffer_detach si on en a oublié... la taille totale du tampon doit être celle de tous les Bsend + un overhead (2*MPI_BSEND_OVERHEAD) Hugues Leroy Cours de DEA CH 3.3 / 21 Hugues Leroy Cours de DEA CH 3.3 / 22 Jokers Le récepteur peut demander à recevoir un message émis par n importe quel émetteur, et / ou ayant n importe quelle étiquette (tag). source indifférente : spécifier MPI_ANY_SOURCE tag indifférent : spécifier MPI_ANY_TAG Le paramètre de retour status contiendra les indications sur l émetteur et le tag du message reçu. On peut demander à recevoir un message de n importe qui. On saura qui nous l a envoyé, en explorant dans la structure de type MPI_Status passée au Recv le champ MPI_SOURCE. (voir plus loin) On peut aussi demander à recevoir des messages ayant n importe quelle étiquette. Toutefois, attention aux effets indésirables des Jokers (voir plus loin) Hugues Leroy Cours de DEA CH 3.3 / 23 Hugues Leroy Cours de DEA CH 3.3 / 24

7 Règles à respecter pour qu une communication se termine bien l émetteur doit spécifier une destination valide (un processus de rang existant) le récepteur doit aussi spécifier un processus valide le communicateur doit être le même les étiquettes (tags) de message doivent correspondre (*) et attention aux jokers (wildcard). Voici par exemple un code au comportement indéterminé : il peut y avoir blocage (deadlock) ou pas... (*) en C utilisez les directives #define au lieu de constantes entières, idem pour Fortran si toutefois le compilateur est capable d appeler le préprocesseur cpp (dans ce cas il suffit en général de suffixer le nom de fichier source par.f au lieu de.f). Et utilisez des tags différents dans les diverses parties de vos algorithmes. Si on définit des constantes par #define dans plusieurs modules (fichiers) ne pas oublier de les mettre plutôt dans un fichier qui sera importé par un #include mydefs.h (par ex.) Supposons que 3 processus P0, P1, et P2 s envoient des messages comme c est indiqué dans le transparent suivant Hugues Leroy Cours de DEA CH 3.3 / 25 Hugues Leroy Cours de DEA CH 3.3 / 26 Processus 0 Processus 1 Processus 2 Nous verrons dans la suite comment les contextes de communication (communicateurs) peuvent apporter une solution lorsqu on désire mettre à disposition d autres utilisateurs un solveur parallèle utilisant des routines MPI... recv ( any ) recv ( 1 ) send ( 2 ) recv ( any ) send ( 0 ) recv ( 2 ) send ( 1 ) send ( 0 ) send ( 1 ) recv ( 0 ) temps les types de données envoyées et reçues doivent être spécifiés de la même façon (d où d éventuels problèmes entre modules écrits dans des langages différents) le tampon de réception doit être bien dimensionné (attention aux débordements éventuels) On supposera que les tags de tous les messages sont les mêmes et on notera send(i) pour Send ( au processus Pi) et recv(any) pour Recv( MPI_ANY_SOURCE) S il n y a pas de surprise dans le déroulement temporel tout se passe bien. Si maintenant la machine où est le processus P2 est chargée par d autres utilisateurs, il se peut que le send(0) du processus P1 soit fait temporellement avant le send(0) du procesus P2. (P2 a du mal a obtenir un temps de parole sur la machine chargée) A la lecture des demandes send et recv qui restent on voit bien alors dans ce cas que P0 restera bloqué sur sa demande recv(1) car P1 a déjà vu son Send(0) traité par le recv( any) Et voilà un cas où le comportement du programme parallèle n est pas le même tout le temps... Hugues Leroy Cours de DEA CH 3.3 / 27 Hugues Leroy Cours de DEA CH 3.3 / 28

8 L enveloppe d un message Adresse de l émetteur Référence: Données Adresse du destinataire Hugues Leroy Cours de DEA CH 3.3 / 29 Hugues Leroy Cours de DEA CH 3.3 / 30 Informations sur l enveloppe Des informations sur l enveloppe sont retournées par la fonction MPI_RECV dans le paramètre status Cette variable (structure C, tableau Fortran) contient les infos suivantes : Émetteur: status.mpi_source ou status(mpi_source) Étiquette du message (Tag): status.mpi_tag ou status(mpi_tag) Pour obtenir le nombre effectif d éléments reçus, on applique la fonction MPI_Get_count ou MPI_GET_COUNT sur le status Hugues Leroy Cours de DEA CH 3.3 / 31 Hugues Leroy Cours de DEA CH 3.3 / 32

9 Nombre d éléments reçus C: int MPI_Get_count (MPI_Status status, MPI_Datatype datatype, int *count) Fortran: MPI_GET_COUNT (STATUS, DATATYPE, COUNT, IERROR) INTEGER STATUS(MPI_STATUS_SIZE), DATATYPE, COUNT, IERROR On se sert de MPI_Get_count dans le cas où on a mis un joker (MPI_ANY_SOURCE et/ou MPI_ANY_TAG) dans les champs correspondants de la demande de réception. Consulter l exemple du producteur/consommateur plus loin dans le cours. Hugues Leroy Cours de DEA CH 3.3 / 33 Hugues Leroy Cours de DEA CH 3.3 / 34 Ordre des messages 1 L ordre est préservé : les messages émis par le même émetteur pour le même destinataire ne se doublent pas, même s ils peuvent emprunter des routes différentes. Pas de garantie sur l ordre si les émetteurs sont différents. Pour les envois asynchrones, cette proposition est aussi valide. 3 communicator Sur le schéma, les messages émis par P0 vers P2 ne se doublent pas. L ordre est garanti : P2 reçoit dans l ordre d émission par P0 Par contre si P5 envoie aussi dans les mêmes périodes des messages vers P0, alors rien ne dit que P2 les recevra avant, après, pendant...qu il reçoit ceux de P0. Illustration simple : lancez plusieurs fois le programme Hello World de l exercice 1 sur le même nombre de processeurs, et observez les sorties. NOTE : Le printf est intercepté par un processus daemon qui les imprimera sur l écran de la machine associée au processus maitre (celle où on a tapé mpirun...). donc ils doivent tous transiter par le réseau avant d arriver sur la bonne machine. Leur ordre d arrivée est donc lié à la charge réseau et à la charge des diverses machines utilisées... Hugues Leroy Cours de DEA CH 3.3 / 35 Hugues Leroy Cours de DEA CH 3.3 / 36

10 Mesure du temps C: Fortran: double MPI_Wtime(void); DOUBLE PRECISION MPI_WTIME() ATTENTION cette fonction retourne une mesure de temps en secondes (depuis un point arbitraire, par exemple le dernier appel) Pour mesurer le temps passé dans une partie du programme, appeler deux fois cette fonction (une fois au début de la partie surveillée, et une fois à la fin). Faire la différence entre les deux valeurs obtenues. On mesure le temps pour pouvoir avoir une idée des speedup obtenus. Hugues Leroy Cours de DEA CH 3.3 / 37 Hugues Leroy Cours de DEA CH 3.3 / 38 Exercice 2 : le ping pong Écrire un programme où le processus 0 doit envoyer un message (1000 réels) vers le processus 1. Faire une version ping pong où le processus 1 renvoie le message reçu au processus 0. Rajouter les appels aux fonctions de timing pour mesurer le temps pris pour transmettre le message. Pour différentes tailles de messages (0,10,100,1000,10000,100000), répéter les mesures. En déduite la latence ainsi que le débit ( bande passante ). Modifiez votre programme pour qu il imprime le temps total de son exécution. Déterminer la latence et la bande passante pour un réseau de machines est essentiel pour définir la granularité de l application. Plus la latence est élevée, et moins il faudra communiquer et il faudra essayer de grouper les communications pour envoyer de gros messages en une seule fois plutôt que beaucoup de petits messages... Attention aussi à la taille max des tampons TCP. On peut essayer de déterminer cette taille par programme, et aussi la modifier. Ex pour Unix: setsockopt (Port, SOL_SOCKET, SO_SNDBUF, (char *)&ComputedSndSockBufSize, sizeof(computedsndsockbufsize)); SunOS (Solaris) sets the maximum buffer size for both UDP and TCP to 256 Kbytes Hugues Leroy Cours de DEA CH 3.3 / 39 Hugues Leroy Cours de DEA CH 3.3 / 40

11 Autres communications point à point MPI_Sendrecv ( void *sendbuf, int sendcount, MPI_Datatype sendtype, int dest, int sendtag, void *recbuf, int recvcount, MPI_Datatype recvtype, int source, int recvtag, MPI_Comm comm,mpi_status *status) même tampon utilisé pour l envoi et la réception : Paramètres pour le Send d abord, et ensuite ceux du Recv A titre d exercice modifiez le programme du ping pong pour y mettre des Sendrecv, puis des Sendrecv_replace, pour tester si les latences ou débits sont les mêmes. MPI_Sendrecv_replace ( void *buf, int count, MPI_Datatype datatype, int dest, int sendtag, int source, int recvtag, MPI_Comm comm, MPI_Status *status ) Hugues Leroy Cours de DEA CH 3.3 / 41 Hugues Leroy Cours de DEA CH 3.3 / 42 Tests de l implémentation MPICH écrire un programme qui détermine la taille maximum des buffers fournis pour MPI_Send. C est à dire écrire un programme qui trouve quelle est la longueur maximum d un message envoyé par MPI_Send sans que ce MPI_Send ne se bloque en attente du MPI_Recv() correspondant. Rappelons que MPICH fournit des tampons pour les envois standards, ce qui n est pas le cas de toutes les implémentations de MPI. On utilisera MPI_Wtime(), MPI_Send(), MPI_Recv() et MPI_Allreduce() (à faire après le chapitre 3.5) Hugues Leroy Cours de DEA CH 3.3 / 43 Hugues Leroy Cours de DEA CH 3.3 / 44

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

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

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Rappels d architecture

Rappels d architecture Assembleur Rappels d architecture Un ordinateur se compose principalement d un processeur, de mémoire. On y attache ensuite des périphériques, mais ils sont optionnels. données : disque dur, etc entrée

Plus en détail

Rappels Entrées -Sorties

Rappels Entrées -Sorties Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk

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

Grid Computing. Mihaela JUGANARU-MATHIEU mathieu@emse.fr 2014-2015. École Nationale Supérieure des Mines de St Etienne

Grid Computing. Mihaela JUGANARU-MATHIEU mathieu@emse.fr 2014-2015. École Nationale Supérieure des Mines de St Etienne Mihaela JUGANARU-MATHIEU mathieu@emse.fr École Nationale Supérieure des Mines de St Etienne 2014-2015 Bibliographie (livres et revues) : Frédéric Magoulès, Jie Pan, Kiat-An, Tan Abhinit Kumar Introduction

Plus en détail

Chap III : Les tableaux

Chap III : Les tableaux Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction

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

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

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

PROJET ALGORITHMIQUE ET PROGRAMMATION II

PROJET ALGORITHMIQUE ET PROGRAMMATION II PROJET 1 ALGORITHMIQUE ET PROGRAMMATION II CONTENU DU RAPPORT A RENDRE : o Fiche signalétique du binôme o Listing des différents fichiers sources o CD sources o Il sera tenu compte de la présentation du

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

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

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

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

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

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

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

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

Structurer ses données : les tableaux. Introduction à la programmation

Structurer ses données : les tableaux. Introduction à la programmation Structurer ses données : les tableaux Introduction à la programmation Plan du document Introduction Introduire la notion de type Types primitifs Types composés Tableaux de type primitif Page 2 Notion de

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

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

UE C avancé cours 1: introduction et révisions

UE C avancé cours 1: introduction et révisions Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple

Plus en détail

Manuel de l utilisateur. GLN Database

Manuel de l utilisateur. GLN Database Manuel de l utilisateur GLN Database Février 2011 GS1 The global language of business Contenu Introduction...2 1. Par où commencer?...3 2. Se connecter...3 3. Ecran principal: Le menu GLN Database...4

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

Programmation impérative

Programmation impérative Programmation impérative Cours 4 : Manipulation des fichiers en C Catalin Dima Organisation des fichiers Qqs caractéristiques des fichiers : Nom (+ extension). Chemin d accès absolu = suite des noms des

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

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

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

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

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

CONFIGURATION FIREWALL

CONFIGURATION FIREWALL Diffusion : Libre Expert en Réseaux & Télécoms Restreinte Interne CONFIGURATION FIREWALL Version : 2.0 Date : 29/08/2009 RESIX - 8, rue germain Soufflot - Immeuble le sésame - 78180 Montigny le Bretonneux

Plus en détail

Exécutif temps réel Pierre-Yves Duval (cppm)

Exécutif temps réel Pierre-Yves Duval (cppm) Exécutif temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 Plan Exécutif Tâches Evénements et synchronisation Partage de ressources Communications

Plus en détail

Conception des systèmes répartis

Conception des systèmes répartis Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan

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

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

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

Plus en détail

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free.

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free. 2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES 2.2 Architecture fonctionnelle d un système communicant Page:1/11 http://robert.cireddu.free.fr/sin LES DÉFENSES Objectifs du COURS : Ce cours traitera essentiellement

Plus en détail

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un

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

Travaux Pratiques Introduction aux réseaux IP

Travaux Pratiques Introduction aux réseaux IP Université de Savoie Initiation aux réseaux IP Travaux Pratiques Introduction aux réseaux IP Sylvain MONTAGNY sylvain.montagny@univ-savoie.fr Bâtiment chablais, bureau 13 04 79 75 86 86 TP1 : Analyse la

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

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

Initiation. àl algorithmique et à la programmation. en C

Initiation. àl algorithmique et à la programmation. en C Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,

Plus en détail

ALGORITHMIQUE ET PROGRAMMATION En C

ALGORITHMIQUE ET PROGRAMMATION En C Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2

Plus en détail

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN http://www.oklabs.net

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN http://www.oklabs.net Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN http://www.oklabs.net : Champ Encodé SKWRITTEN() : Champ Variable défini Précédemment & définissant l état des champs à suivre ECT

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

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

Couche application. La couche application est la plus élevée du modèle de référence.

Couche application. La couche application est la plus élevée du modèle de référence. Couche application La couche application est la plus élevée du modèle de référence. Elle est la source et la destination finale de toutes les données à transporter. Couche application La couche application

Plus en détail

Network musical jammin

Network musical jammin Network musical jammin Projet PC2R - 2015 Pour ce projet, nous allons réaliser une application permettant d effectuer des jams sessions en temps-réel entre des musiciens répartis à travers le monde. Le

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

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

Voix sur IP Étude d approfondissement Réseaux

Voix sur IP Étude d approfondissement Réseaux Voix sur IP Étude d approfondissement Réseaux Julien Vey Gil Noirot Introduction Ce dont nous allons parler L architecture VoIP Les protocoles Les limites de la VoIP Ce dont nous n allons pas parler Le

Plus en détail

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Contenu de ce cours : 1. Stockage de données. Supports, fonctionnement d un disque, technologie RAID 2. Organisation

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Sub CalculAnnuite() Const TITRE As String = Calcul d'annuité de remboursement d'un emprunt TD1 : traduction en Visual BASIC des exemples du cours sur les structures de contrôle de l'exécution page 1 'TRADUCTION EN VBA DES EXEMPLES ALGORITHMIQUES SUR LES STRUCTURES 'DE CONTROLE DE L'EXECUTION

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

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

1 Description générale de VISFIELD

1 Description générale de VISFIELD Guide d utilisation du logiciel VISFIELD Yann FRAIGNEAU LIMSI-CNRS, Bâtiment 508, BP 133 F-91403 Orsay cedex, France 11 décembre 2012 1 Description générale de VISFIELD VISFIELD est un programme écrit

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

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables

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

Programmation Orientée Objet Java

Programmation Orientée Objet Java Programmation Orientée Objet Java Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 12 novembre 2014 Bertrand Estellon (DII AMU) Programmation Orientée Objet Java 12 novembre

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

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

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

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique et programmation : les bases (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

Introduction à l algorithmique et à la programmation M1102 CM n 3

Introduction à l algorithmique et à la programmation M1102 CM n 3 Introduction à l algorithmique et à la programmation M1102 CM n 3 DUT Informatique 1 re année Eric REMY eric.remy@univ-amu.fr IUT d Aix-Marseille, site d Arles Version du 2 octobre 2013 E. Remy (IUT d

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

1. Base de données SQLite

1. Base de données SQLite Dans ce TP, nous allons voir comment créer et utiliser une base de données SQL locale pour stocker les informations. La semaine prochaine, ça sera avec un WebService. On repart de l application AvosAvis

Plus en détail

Algorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/??

Algorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/?? Algorithmique I Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr Télécom 2006/07 Algorithmique I 20-09-06 p.1/?? Organisation en Algorithmique 2 séances par semaine pendant 8 semaines. Enseignement

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C++ 1. 16.mars.10 Cours 4 11.mai.10 Cours C++ 2

30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C++ 1. 16.mars.10 Cours 4 11.mai.10 Cours C++ 2 2ème partie de cours: 23.fév.10 Cours 1 20.avr.10 TEST 24.fév.10 TP1 21.avr.10 miniprojet 26.fév.10 TP réserve 23.avr.10 miniprojet 2.mars.10 Cours 2 27.avr.10 Présentation miniprojet 3.mars.10 TP2 28.avr.10

Plus en détail

Messagerie asynchrone et Services Web

Messagerie asynchrone et Services Web Article Messagerie asynchrone et Services Web 1 / 10 Messagerie asynchrone et Services Web SOAP, WSDL SONT DES STANDARDS EMERGEANT DES SERVICES WEB, LES IMPLEMENTATIONS DE CEUX-CI SONT ENCORE EN COURS

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

Structure d un programme

Structure d un programme Architecture des ordinateurs Cours 6 Structure d un programme 3 décembre 2012 Archi 1/30 Programme en Assembleur Archi 2/30 Sections de données programme en assembleur = fichier texte (extension.asm) organisé

Plus en détail

Programmation en Java IUT GEII (MC-II1) 1

Programmation en Java IUT GEII (MC-II1) 1 Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Le langage C. Introduction, guide de reference

Le langage C. Introduction, guide de reference Le langage C Introduction, guide de reference Ce document est une présentation du langage de programmation C, de sa syntaxe et de ses spécificités. Il est destiné essentiellement à servir de mémo-guide

Plus en détail