Processus, threads et IPC

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Processus, threads et IPC"

Transcription

1 PhL - 29/10/ Page 1 / 5 Processus, threads et IPC Processus et signaux La commande ps Cette commande Unix permet d'afficher différents types d'informations sur les threads et les processus. De nombreuses options sont possibles sur la ligne de commande. Par exemple ps -ef affiche les colones suivantes : UID : User Id, nom du prpriétaire du processus PID : Process Id ; n du processus PPID : Parent PID, n du process parent C : % d'utilisation du CPU STIME : Start time TTY : numéro du terminal qui a lancé le process. TIME : cumulative system time temps total accumulé d'utilisation du CPU. CMD : le nom de la commande qui a lancé le process (argv[0]) ps -elf rajoute des informations sur les threads (light weight process) LWP : n du thread NLWP : nombre de threads / process. La commande time Permet d'afficher les temps d'exécution d'un processus. Par exemple time./a.out affichera : reall : le temps total, y compris les temps d'attente. C'est le temps «ressenti» par l'utilisateur. user : le temps d'utilisation accumulé des ressources CPU (x par autant de processeurs) system : le temps passé à exécuter des appels systèmes. Le temps «user» est quasi indépendant de la charge du système (sauf temps de commutation de contexte) alors que le temps «reall» dépend de la charge. fork() Un processus peut se dupliquer et donc ajouter un nouveau processus par la fonction : pid_t fork(void) qui rend -1 en cas d échec. En cas de réussite, la fonction retourne 0 dans le processus fils et le n du processus fils Process Identifier ou PID dans le père. Cette fonction transmet une partie du contexte du père au fils : les descripteurs des fichiers standards et des autres fichiers, les redirections Les deux programmes sont sensibles aux mêmes interruptions. À l issue d un fork() les deux processus s exécutent simultanément. exit() Un processus se termine lorsqu il n a plus d instructions ou lorsqu il exécute la fonction : void exit(int statut) wait() L élimination d un processus terminé de la table ne peut se faire que par son père, grâce à la fonction : int wait(int *code_de_sortie) Avec cette fonction, le père se bloque en attente de la fin d un fils. Elle rendra le n PID du premier fils mort trouvé. La valeur du code de sortie est reliée au paramètre d exit de ce fils. On peut donc utiliser l instruction wait pour connaître la valeur éventuelle de retour, fournie par exit(), d un processus. Ce mode d utilisation est analogue à celui d une fonction. wait() rend -1 en cas d erreur. Si le fils se termine sans que son père l attende, le fils passe à l état defunct. Si, au contraire, le père se termine avant le fils, ce dernier est rattaché au processus initial «init». Le processus initial passe la plupart de son temps à attendre les processus orphelins. kill() int kill(int pid, int signal) permet à un processus d envoyer un signal à un autre processus. pid est le n du processus à détruire et signal, le n du signal employé. La fonction kill correspond à des interruptions logicielles.

2 PhL - 29/10/ Page 2 / 5 Par défaut, un signal provoque la destruction du processus récepteur, à condition bien sûr, que le processus émetteur possède ce droit de destruction. Le signal de terminaison normal est 3, et celui de terminaison sans condition est 9. Cette même commande existe aussi en shell. signal (signal, ptr_fonction) Exécute la fonction pointée par ptr_fonction à la réception du signal. alarm ( tps ) Envoie le signal SIGALRM au bout de tps secondes. Programmation 1. Écrire un programme qui va créer un deuxième processus. Le père va afficher les majuscules à l'écran et le fils les minuscules. A la fin du programme, les 2 processus affichent la valeur du pid retourné par f ork(), puis attendent indéfiniment. Vérifiez avec la commande «ps» le lien de parenté entre les 2 processus. 2. Écrire un programme qui attend une chaîne de caractère entrée par l'utilisateur et l'affiche. Si l'utilisateur met plus de 5s à entrer sa chaîne, le programme affiche «Trop tard» et se termine. (utiliser alarm()). 3. Écrire un interpréteur de commande simple qui demande à l'utilisateur d'entrer un nom de programme et 1 paramètre, puis lance le programme (utilisation de execl()). L'interpréteur redemande une commande après exécution. La commande «logout 0» doit terminer votre interpréteur. 4. Même programme, mais accepter un nombre quelconque d'arguments en utilisant ftok( ) et fgets( ). 5. Écrire un programme qui génère un dépassement de pile par appel récursif. La fonction récursive affichera à l'écran l'adresse d'une variable locale à la fonction. En déduire la taille de la pile. 6. Les fonctions getrlimit/setrlimit permet de récupérer/fixer les limitations de ressources d'un processus. Par exemple le code suivant affiche la taille de la pile : struct rlimit rl; getrlimit(rlimit_stack, &rl); printf ("Taille de la pile : %d\n", (int)rl.rlim_cur ) ; Le code suivant fixe la taille de la pile à 1000 : rl.rlim_cur=1000 ; setrlimit(rlimit_stack, &rl); Vérifiez la taille que vous avez trouvé à l'exercice Écrire un programme qui affecte une valeur sur un pointeur NULL (int *p=null ; *p = 7;). Placez un handler afin d'attraper l événement généré. Essayez de corriger le problème. Vous constatez que votre programme entre dans une boucle interminable. Ceci est dû au fait que l'instruction fautive est de nouveau exécutée. Voici en assembleur l'instruction fautive : movl $7, (%rax) Il faut donc soit que %rax soit différent de NULL et pointe au bon endroit, soit sauter cette instruction et exécuter la suivante. Vous pourriez avoir l'idée de corriger ce problème dans la fonction handler (avec un malloc par exemple). Ceci ne changera rien car avant d'appeler la fonction handler Linux sauvegarde le contexte (tous les registres CPU), puis le restitue en sortant de la fonction handler. Il faut donc modifier le contexte qui sera restitué. cf. pour comprendre ce qui se passe et voir sur la plate-forme la résolution du problème.

3 PhL - 29/10/ Page 3 / 5 Les threads en C 1. Écrire un programme qui ouvre un ficher en écriture puis qui crée 2 threads, les attend et ferme le ficher. Le premier thread écrira les nombres de 0 à dans le ficher et l'autre de à Consultez le fichier ainsi créé et analysez le travail de l'ordonnanceur. Attention à compiler avec l'option -lpthread 2. Écrire un programme qui initialise une variable globale à 0 et crée 2 threads. Chacun des threads va incrémenter la variable 5 fois. Afficher la valeur de la variable à la fin de l'exécution du thread main(). 3. Recommencer l'exercice 2, mais cette fois chaque thread va incrémenter la variable 1e6 fois. Ici, il y a un problème d'accès à cette variable globale. Expliquez. 4. Refaire les exercices 1 et 4, mais laissez seulement un coeur du CPU en fonctionnement : Pour cela faire : more /proc/cpuinfo pour connaître le nombre de coeurs de votre PC sudo sh -c "echo 0 > /sys/devices/system/cpu/cpu1/online" pour désctiver le coeur n 1. more /proc/cpuinfo pour vérifier. 5. Écrire un programme permettant de mesurer le quota de temps alloué à un thread Linux entre 2 commutations de contexte. Utiliser la commande shell time pour connaître le temps réel d'exécution. Les sémaphores. Lorsque 2 processus veulent se partager une ressource unique, on met en place un système de sémaphore afin d'arbitrer l'accès à cette ressource. Un sémaphore est une variable, gérée par le système d'exploitation dont le test et l'affectation se font de manière atomique, c est à dire que le système ne peut pas être interrompu au milieu du traitement de ces 2 opérations. De plus, plusieurs processus peuvent avoir accès à cette variable. En général la prise (décrémente de 1) d'un sémaphore par un processus bloquera un autre processus qui voudrait prendre par la suite ce sémaphore ; ce dernier processus sera débloqué quand le premier rendra (incrémente de 1) le sémaphore. Voyons comment gérer les sémaphores sur un système UNIX. Dans un terminal on peut utiliser les commandes suivantes : Pour consulter les sémaphores du système : ipcs t Pour effacer un sémaphore : ipcrm s semid Voici les fonctions qui permettent la gestion des sémaphores en C. Elles viennent de la librairie IPC : Inter Process Communication. Vous pouvez avoir de plus amples renseignements en utilisant la commande man. D abord, quelques fichiers de déclaration : #include <unistd.h> #include <sys/ipc.h> #include <sys/sem.h> Il faut générer une clé unique permettant de repérer de façon univoque la ressource du système (ici un fichier) : key_t cle; int er ; cle=ftok("fichier.txt",0); if (cle==(key_t) -1) { perror ("erreur ftok\n");exit (1); } Créons un ensemble contenant 1 sémaphore avec les droits rw_rw_rw_ : int semid ; semid=semget(cle,1,ipc_creat 0666); if (semid==-1) { perror("erreur semget\n");exit(1); } Initialisons à 1 de notre sémaphore (qui est le sémaphore n 0 de l ensemble ) : union semun { int val; struct semid_ds *buf; ushort *array; } arg; arg.val = 1 ; er=semctl(semid,0,setval,arg); if (er==-1) {perror("erreur semctl\n");exit(1);} Voilà une fonction permettant de rendre le sémaphore no de l'ensemble semid : void rendre (int semid, int no) { struct sembuf op[1];

4 } Physique appliquée et Electronique PhL - 29/10/ Page 4 / 5 int er ; op[0].sem_num=no; // semaphore no op[0].sem_op=1; // libération (à mettre à 1 pour une prise) op[0].sem_flg=0; // operation bloquante er=semop (semid,op,1); if (er==-1) {perror("erreur semop rendre\n");exit(1);} Travail à effectuer : Exclusion mutuelle à l'accès d'une ressource partagée Créez une fonction void prendre (int semid, int no) qui prend le sémaphore no de l'ensemble semid, similaire à la fonction rendre. Reprendre le programme de comptage des 2 threads du chapitre précédent et arbitrer l'incrémentation de cpt. Synchronisation de processus : Créez un programme qui va créer un processus fils. Le père et le fils vont écrire simultanément, l un, les 26 minuscules et l autre, les 26 majuscules, à l écran. Ceci devra donner le résultat suivant : AaBbCcDd Le père attendra la terminaison du fils puis détruira les sémaphores par la fonction semctl( ) Pensez à vider le buffer stdout associé à votre processus par l'appel à fflush(stdlib) Les Verrous Nous venons d'utiliser le mécanisme des sémaphores pour synchroniser les threads. Ce mécanisme prévu à l'origine pour synchroniser les process est lourd à mettre en oeuvre et peu performant. Nous nous proposons ici de reprendre le TP d'écriture minuscule / majuscule mais en arbitrant l'accès par le mécanisme des «verrous d'exclusion mutuelle (mutex)». Voici brièvement les prototypes des fonctions permettant cette gestion : #include <pthread.h> D'abord déclarer un variable mutex qui n'a pas besoin d'être initialisée au préalable.: pthread_mutex_t mutex ; Les verrous d'exclusion mutuelle (mutex) sont créés par pthread_mutex_init. Il en est de différents types (rapides, récursifs, etc.), selon les attributs pointés par le paramètre mutexattr. La valeur par défaut (mutexattr=null) fera l affaire pour notre problème. L'identificateur du verrou est placé dans la variable pointée par mutex. int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr); pthread_mutex_destroy détruit le verrou. pthread_mutex_lock tente de bloquer un verrou et met le thread en attente si le verrou est déjà bloqué. pthread_mutex_unlock débloque le verrou et permet donc à un thread mis en attente de continuer son exécution. int pthread_mutex_destroy(pthread_mutex_t *mutex); int pthread_mutex_lock(pthread_mutex_t *mutex); int pthread_mutex_unlock(pthread_mutex_t *mutex); Écrivez en C un programme qui crée 2 threads. Ces derniers écrivent à l écran alternativement les 26 minuscules de l alphabet et les 26 majuscules de l alphabet. Un des threads n écrit que les minuscules et l autre que les majuscules. Le résultat à l écran doit avoir cette forme : AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz

5 La mémoire partagée Reprendre l'exercice précédent mais ce coup ci, les 2 processus écriront dans un segment de mémoire partagé. Un index à la case 0 permettra de savoir dans quelle case écrire. A la fin, le père affichera le contenu du segment de mémoire partagée. Voici quelques explications pour mettre en œuvre la mémoire partagé. Les processus ne peuvent pas partager des données simplement car ils s'exécutent dans des segments mémoires séparés. Une façon de contourner ce problème est d'utiliser les fonctionnalités du système d'exploitation. Celui-ci met à disposition un ensemble de fonctions permettant de créer une zone mémoire (mémoire partagée) accessible à tous les processus. Cette zone est repérée par un identifiant (shmid). Voici la liste des fonctions utiles pour la gestion de cette mémoire partagée : shmget int shmget(key_t key, int size, int shmflg); shmget crée un nouveau segment de mémoire partagée ou accède à un segment existant. L'entier retourné est le shmid du segment ou -1 en cas d'erreur. shmflag spécifie les priorités d'accès au segment. Exemple: shmid=shmget(cle,5*sizeof(char),ipc_creat 0666); crée un nouveau segment pouvant contenir 5 caractères, accessible en lecture/écriture par tout processus. cle est utilisé pour identifier le segment mémoire de manière unique. Il est initialisé par la fonction ftok comme dans le cas des sémaphores. int ftok(char* ressource, int flag); shmat void *shmat(int shmid, void *shmaddr, int shmflg); shmat attache le segment de mémoire partagée, associé à shmid, au segment de données du processus appelant. L'adresse à laquelle le segment est attaché est retournée par shmat. Par défaut, le segment est attaché en lecture/écriture. Exemple : char *tab ; tab = shmat (shmid, NULL, 0) ; Par la suite on utilise tab comme un tableau : tab[1]='a'; shmctl int shmctl(int shmid, int cmd, struct shmid_ds *buf); Permet de réaliser des opérations de contrôle sur un segment de mémoire partagée. Le type d'opération est spécifié par l'argument cmd. Par exemple, shmctl(shmid,ipc_rmid,0) détruit le segment associé à shmid. PhL - 29/10/ Page 5 / 5 Les Tubes 1. Écrire 2 programmes que nous nommerons ProgA et ProgB. ProgA lit une chaîne de caractères au clavier et la transmet à ProgB qui la transforme en majuscule. ProgB la renvoie à ProgA. ProgA affiche ensuite le résultat. La transmission se fait à l'aide de tubes nommés. Les deux processus s arrêtent lorsque l utilisateur saisit la chaîne «quit» au clavier. 2. Il existe sur les systèmes UNIX une calculatrice en mode ligne : bc. Par d faut, le programme bc lit une chaîne de caractères représentant une opération à effectuer sur l'entrée standard (stdin) et affiche sur la sortie standard le résultat (stdout). Exemple : /home/toto> bc quit /home/toto> Écrire un programme permettant de saisir une opération au clavier et transmettant celle-ci à un processus correspondant au programme bc qui renverra le résultat au premier processus. La communication entre les deux processus sera réalisée avec des tubes, et votre programme se charge du lancement du processus bc. Le processus père communiquera avec bc via l entrée et la sortie standard de ce processus. Ces dernières auront été redirigées vers des tubes avant que le processus fils ne soit recouvert via l appel système execl() (exécution de la fonction dup2).

Projet du cours d ARCHITECTURE Gestion distribué d un parking

Projet du cours d ARCHITECTURE Gestion distribué d un parking Projet du cours d ARCHITECTURE Gestion distribué d un parking 3 GI, INSA de Lyon Janvier 2004 1 Objectifs du projet Ce projet a pour but d apprendre à manipuler une application multitâche où les différentes

Plus en détail

Formation Unix/Linux (3) Le Shell: gestion des processus, redirection d entrée/sortie

Formation Unix/Linux (3) Le Shell: gestion des processus, redirection d entrée/sortie Formation Unix/Linux (3) Le Shell: gestion des processus, redirection d entrée/sortie Olivier BOEBION Mars 2004 1 Définition Un programme se compose d un ou plusieurs fichiers composés d instructions.

Plus en détail

Au moment de rendre votre travail, créer une archive au format *.zip (nom binôme 1 nom binôme 2.zip) contenant :

Au moment de rendre votre travail, créer une archive au format *.zip (nom binôme 1 nom binôme 2.zip) contenant : Travaux pratiques informatique Module Système d exploitation Année 2006-2007 TP N 3 : Mémoire Partagée Mathieu.Barcikowski@univ-savoie.fr Pierre.Hyvernat@univ-savoie.fr Cyril.Vachet@univ-savoie.fr 1. Objectifs

Plus en détail

Sujet Projets 2 nd Semestre

Sujet Projets 2 nd Semestre Sujet Projets 2 nd Semestre Seuls les appels systèmes vus en cours sont autorisés. L usage d autres fonctions doit impérativement être validé par l enseignant. La date d ouverture pour l assignation de

Plus en détail

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique. École Polytechnique de Montréal Département de Génie Informatique et Génie Logiciel Cours INF2610 Contrôle périodique Automne 2013 Date : 11 octobre 2013 de 18h à 20h Professeur : Boucheneb Hanifa Documentation

Plus en détail

GESTION DES PROCESSUS

GESTION DES PROCESSUS CHAPITRE 2 : GESTION DES PROCESSUS Objectifs spécifiques Connaître la notion de processus, Connaître les caractéristiques d un processus ainsi que son contexte Connaître la notion d interruptions et de

Plus en détail

TD3. Le problème de l'exclusion mutuelle et les mutexes. LP RGI Prog. système

TD3. Le problème de l'exclusion mutuelle et les mutexes. LP RGI Prog. système LP RGI Prog. système TD3 Le problème de l'exclusion mutuelle et les mutexes I U T d ' A m i e n s, d é p a r t e m e n t I n f o r m a t i q u e a n n é e u n i v e r s i t a i r e 2 0 1 4 / 2 0 1 5 L

Plus en détail

1 Hello world. 2 Sorties en C. DUT Informatique M3101 Système S3 2015 / 2016. Travaux Pratiques n o 0 : Rappels de programmation C

1 Hello world. 2 Sorties en C. DUT Informatique M3101 Système S3 2015 / 2016. Travaux Pratiques n o 0 : Rappels de programmation C DUT Informatique 2015 / 2016 Travaux Pratiques n o 0 : Rappels de programmation C Nom(s) : Groupe : Date : Objectifs : renouer avec les notions, la manipulation et l écriture de programmes C, en particulier

Plus en détail

Traducteur mot à mot

Traducteur mot à mot Traducteur mot à mot CORRECTION Ce document, ainsi que le programme C et un exemple de programme trad-fr-us, peut être trouvé en ligne à l'addresse suivante : http ://www.lifl.fr/hauspie/hauspie/teaching.

Plus en détail

Plan du cours. 12. Gestion des processus. 12.1 Notions théoriques 12.2 Lancement d'une commande 12.3 Identifier et controler un processus

Plan du cours. 12. Gestion des processus. 12.1 Notions théoriques 12.2 Lancement d'une commande 12.3 Identifier et controler un processus Plan du cours 12.1 Notions théoriques 12.2 Lancement d'une commande 12.3 Identifier et controler un processus PS, KILL 12.4 Exercices Olivier HUBERT LGEP/CNRS 1 Plan du cours 12.1 Notions théoriques 12.1.1

Plus en détail

Département de génie informatique et génie logiciel

Département de génie informatique et génie logiciel INF2610 Chapitre 2 : Processus Département de génie informatique et génie logiciel Hiver 2014 Chapitre 2 - Processus Qu est ce qu un processus? États d un processus Hiérarchie des processus Processus UNIX-Linux

Plus en détail

Unix - e2i5 - Mémoire partagée

Unix - e2i5 - Mémoire partagée Unix - e2i5 - Mémoire partagée Laurent Bobelin Polytech 2012 L.Bobelin (MESCAL) 2012 1 / 13 1 Rappels Processus IPC 2 Mémoire partagée Dénition Implémentation System V POSIX 3 Recommandations L.Bobelin

Plus en détail

Processus non indépendants : accès concurrents aux ressources

Processus non indépendants : accès concurrents aux ressources Agenda Synchronisation et communication entre processus Schémas classiques de synchronisation 1 Introduction Système multiprocessus L'ordonnancement "entrelace" les exécutions P1 P2 P3 F Processus non

Plus en détail

Vous pouvez vous aider du programme suivant :

Vous pouvez vous aider du programme suivant : TP MULTITÂCHE DÉCOUVERTE DES MUTEX ET DES SEMAPHORES Exercice 1 Exclusion mutuelle : Mutex Ecrire un programme qui permet à 5 threads d'écrire un message complet à l'écran (par exemple "Message du thread

Plus en détail

Cours Programmation Système

Cours Programmation Système Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février

Plus en détail

Année 2012-2013 Licence 2 TD 6. Synchronisation et Sémaphores

Année 2012-2013 Licence 2 TD 6. Synchronisation et Sémaphores Institut Galilée Systèmes d exploitation et Réseaux Année 2012-2013 Licence 2 TD 6 Synchronisation et Sémaphores 1 Synchronisation : le coiffeur Une illustration classique du problème de la synchronisation

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

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing 3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps

Plus en détail

Processus. Les processus, à quoi ça sert? Une définition d'un processus. La vie intime des processus. Allocation du processeur

Processus. Les processus, à quoi ça sert? Une définition d'un processus. La vie intime des processus. Allocation du processeur 1 sur 9 Processus Les processus, à quoi ça sert? Une définition d'un processus La vie intime des processus Quelques caractéristiques des processus Le contexte et la commutation de contexte Les processus

Plus en détail

UNIX COMMUNICATION INTERNE ENTRE PROCESSUS. C. Crochepeyre Cnam - Diapason Unix: communications internes 1

UNIX COMMUNICATION INTERNE ENTRE PROCESSUS. C. Crochepeyre Cnam - Diapason Unix: communications internes 1 UNIX COMMUNICATION INTERNE ENTRE PROCESSUS C. Crochepeyre Cnam - Diapason Unix: communications internes 1 1. GÉNÉRALITÉS Communications internes: entre processus sur une même machine: exec() fichiers moyens

Plus en détail

DUT Informatique Module Système S4 C Département Informatique 2009 / 2010. Travaux Pratiques n o 5 : Sockets Stream

DUT Informatique Module Système S4 C Département Informatique 2009 / 2010. Travaux Pratiques n o 5 : Sockets Stream iut ORSAY DUT Informatique Département Informatique 2009 / 2010 Travaux Pratiques n o 5 : Sockets Stream Nom(s) : Groupe : Date : Objectifs : manipuler les primitives relatives à la communication par sockets

Plus en détail

Processus et gestion de processus

Processus et gestion de processus Processus et gestion de processus et gestion de processus Processus Définition Modélisation Descripteur État Création Destruction Allocation de ressources UNIX Processus UNIX - Modèle Création Terminaison

Plus en détail

École Polytechnique de Montréal. Département de Génie Informatique. Cours INF3600 : Systèmes d exploitation. Contrôle périodique Automne 2001

École Polytechnique de Montréal. Département de Génie Informatique. Cours INF3600 : Systèmes d exploitation. Contrôle périodique Automne 2001 École Polytechnique de Montréal Département de Génie Informatique Cours INF3600 : Systèmes d exploitation Contrôle périodique Automne 2001 Date : 1 er novembre 2001 de 18h à 20h Professeurs : Kerly Titus,

Plus en détail

2 Complément de notes de cours : génération de clés par ftok

2 Complément de notes de cours : génération de clés par ftok O r s a y Travaux Pratiques n o 4 : Segments de Mémoire Partagée DUT Informatique 2010 / 2011 Nom(s) : Groupe : Date : Objectifs : savoir mettre au point des applications multiprocessus dont les mécanismes

Plus en détail

La synchronisation des processus. Partie 2a

La synchronisation des processus. Partie 2a La synchronisation des processus Partie 2a 1 La synchronisation Un système d'exploitation dispose de ressources (imprimantes, disques,mémoire, fichiers, base de données,...), que les processus peuvent

Plus en détail

3IS - Système d'exploitation linux - Threads

3IS - Système d'exploitation linux - Threads 3IS - Système d'exploitation linux - Threads 2010 David Picard Contributions de : Arnaud Revel, Mickaël Maillard picard@ensea.fr Qu'est-ce qu'un thread? ÉCOLE NATIONALE SUPÉRIEURE DE L'ÉLECTRONIQUE ET

Plus en détail

Synchronisation des Processus et les sémaphores

Synchronisation des Processus et les sémaphores Synchronisation des Processus et les sémaphores Achraf Othman Support du cours : www.achrafothman.net 1 PLAN Spécification du problème Section Critique (SC) Exclusion Mutuelle Principe Propriétés Réalisation

Plus en détail

Dr. M.W. Youssef Systèmes d exploitation Avancées 1ING ISI - 2009

Dr. M.W. Youssef Systèmes d exploitation Avancées 1ING ISI - 2009 Institut Supérieur d Informatique Chapitre 02 Synchronisation des processus Dr. Mohamed-Wassim YOUSSEF 2009 [www.wassimyoussef.info] Systèmes d exploitation avancées 1 ING ISI 1 ére année Ingénieur en

Plus en détail

3IS - Système d'exploitation linux - Programmation système

3IS - Système d'exploitation linux - Programmation système 3IS - Système d'exploitation linux - Programmation système 2010 David Picard Contributions de : Arnaud Revel, Mickaël Maillard picard@ensea.fr Environnement Les programmes peuvent être exécutés dans des

Plus en détail

Gestion des processus

Gestion des processus 1/27 Gestion des processus didier@lrde.epita.fr http://www.lrde.epita.fr/ didier 2/27 Table des matières 1 2 Ordonnancement des processus 3 sur les processus 4 entre processus 5 4/27 Programme vs. Processus

Plus en détail

1.Introduction à la gestion des processus et aux tubes de communication

1.Introduction à la gestion des processus et aux tubes de communication Travaux pratique d'informatique Temps Réel,, TP 1 1 1.Introduction à la gestion des processus et aux tubes de communication 1.1.Objectifs La séance vise à familiariser l'étudiant avec les concepts de processus

Plus en détail

Systèmes d'exploitation. Pierre Antoine Champin IUT A de Lyon Séance 4

Systèmes d'exploitation. Pierre Antoine Champin IUT A de Lyon Séance 4 Systèmes d'exploitation Pierre Antoine Champin IUT A de Lyon Séance 4 Plan de la séance 1. Concurrence 2. Problématique liée à la concurrence section critique mécanisme d'exclusion mutuelle 3. Solutions

Plus en détail

Les logins et mots de passe sont les mêmes que l année dernière.

Les logins et mots de passe sont les mêmes que l année dernière. Travaux pratiques 01 2015 2016 1 Poste de travail 1.1 Connection Les logins et mots de passe sont les mêmes que l année dernière. 1.2 Le terminal Pour ouvrir un terminal, allez dans le menu en bas à gauche

Plus en détail

Questions à choix multiples Page 1 de 11

Questions à choix multiples Page 1 de 11 INF3172 Principes des systèmes d'exploitation Examen intra hiver 2015 Question #1 Quel est l'objectif d'un système d'exploitation? a) Protéger les composants de l'ordinateur b) Fournir une abstraction

Plus en détail

Chap. V : Les interruptions

Chap. V : Les interruptions UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Nous étudions dans ce chapitre les interruptions matérielles (ou externes), c est-à-dire déclenchées par le matériel (hardware)

Plus en détail

Année 2008-2009. Les threads Java. Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.

Année 2008-2009. Les threads Java. Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed. Année 2008-2009 Les threads Java Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.fr 1 Présentation du problème Revenons quelques instants à nos animaux.

Plus en détail

1 Création de processus : primitive fork()

1 Création de processus : primitive fork() O r s a y Travaux Pratiques n o 2 : Synchronisation DUT Informatique 2010 / 2011 Nom(s) : Groupe : Date : Objectifs : rappels sur la création de processus par la primitive fork() et synchronisation de

Plus en détail

Introduction aux systèmes d exploitation

Introduction aux systèmes d exploitation Introduction aux systèmes d exploitation Le système d exploitation est un ensemble de logiciels qui pilotent la partie matérielle d un ordinateur. Les principales ressources gérées par un système d exploitation

Plus en détail

Programmation système : sémaphores

Programmation système : sémaphores Programmation système : sémaphores Un sémaphore permet de protéger une variable (ou un type de donnée abstrait) et constitue la méthode utilisée couramment pour restreindre l'accès à des ressources partagées

Plus en détail

Systèmes d exploitation Gestion des processus

Systèmes d exploitation Gestion des processus Systèmes d exploitation Gestion des processus Didier Verna didier@lrde.epita.fr 5 décembre 2000 Table des matières Table des matières Généralités... 3 États d un processus... 4 Bloc de contrôle d un processus

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

POSIX threads (programmation concurrente) Les threads. Les fils d exécution : threads ou processus légers. Introduction

POSIX threads (programmation concurrente) Les threads. Les fils d exécution : threads ou processus légers. Introduction POSIX threads (programmation concurrente) François Broquedis, Grégory Mounié, Matthieu Ospici, Vivien Quéma d après les œuvres de Jacques Mossière et Yves Denneulin Introduction Moniteur Exclusion mutuelle

Plus en détail

JAVA - Compléments du cours 9

JAVA - Compléments du cours 9 JAVA - Compléments du cours 9 Nicolas Baudru Année 2008-2009 Exercice 1 (Création de threads) En Java, il existe deux méthodes pour créer des threads. La première étend la classe Thread : class MonThread

Plus en détail

Chap. X : Ordonnancement

Chap. X : Ordonnancement UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Le compilateur sépare les différents objets apparaissant dans un programme dans des zones mémoires (code, données, librairies,

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

Communication par Signal - premiers pas

Communication par Signal - premiers pas Communication par Signal - premiers pas Quelques remarques sur la gestion des signaux UNIX ================================================== Un premier problème se pose lorsque plusieurs exemplaires d

Plus en détail

Systèmes d Exploitation Gestion des processus

Systèmes d Exploitation Gestion des processus Systèmes d Exploitation Gestion des processus Didier Verna didier@lrde.epita.fr http://www.lrde.epita.fr/ didier Version 2@1.6 6 décembre 2004 Table des matières Table des matières Généralités... 3 États

Plus en détail

DUT Informatique Module Système S4 C Département Informatique 2009 / 2010. Travaux Pratiques n o 2 : Communication

DUT Informatique Module Système S4 C Département Informatique 2009 / 2010. Travaux Pratiques n o 2 : Communication iut ORSAY DUT Informatique Département Informatique 2009 / 2010 Travaux Pratiques n o 2 : Communication Nom(s) : Groupe : Date : Objectifs : rappels sur la création de processus par la primitive fork()

Plus en détail

Introduction aux Systèmes et aux Réseaux

Introduction aux Systèmes et aux Réseaux Introduction aux Systèmes et aux Réseaux Cours 5 Processus D après un cours de Julien Forget (univ Lille1) Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI -

Plus en détail

Côté labo : Initiation aux scripts PowerShell

Côté labo : Initiation aux scripts PowerShell Côté labo : Initiation aux scripts PowerShell Description du thème Propriétés Intitulé long Formation concernée Matière Présentation Notions Description Initiation à la rédaction de scripts dans le langage

Plus en détail

Gestion des Processus

Gestion des Processus Introduction Une tâche est effectuée par un processus 70 Le lancement d'une nouvelle tâche engendre la création d'un processus Commande tapée par l'utilisateur Tâche lancée par un processus déjà existant

Plus en détail

TP : commande awk. D'après le cours en ligne de Isabelle Vollant http://www.shellunix.com/awk.html

TP : commande awk. D'après le cours en ligne de Isabelle Vollant http://www.shellunix.com/awk.html TP : commande awk D'après le cours en ligne de Isabelle Vollant http://www.shellunix.com/awk.html Nous reprenons dans ce TP une grande partie du cours de Isabelle Vollant en simplifiant quelques informations.

Plus en détail

Communications et synchronisations. Système L3, 2014-2015 1/21

Communications et synchronisations. Système L3, 2014-2015 1/21 Communications et synchronisations Système L3, 2014-2015 1/21 Le problème des philosophes (Dijkstra 1965) Cinq philosophes sont assis autour d une table ronde Chaque philosophe a devant lui un plat de

Plus en détail

M2-GamaGora. Programmation Multi-Thread - partie 1. J.C. Iehl. November 13, 2008

M2-GamaGora. Programmation Multi-Thread - partie 1. J.C. Iehl. November 13, 2008 Programmation Multi-Thread - partie 1 November 13, 2008 pourquoi ça ne marche pas? et alors? introduction aux threads threads : pourquoi ça ne marche pas? et alors? un nouveau point d entrée (une fonction

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 SEMAPHORES SOUS UNIX

LES SEMAPHORES SOUS UNIX Chapitre 12 LES SEMAPHORES SOUS UNIX 1. PRINCIPE DES SEMAPHORES SOUS UNIX Pour créer un sémaphore, l'utilisateur doit lui associer une clé. le système lui renvoie un identificateur de sémaphore auquel

Plus en détail

CONSERVATOIRE NATIONAL DES ARTS ET METIERS

CONSERVATOIRE NATIONAL DES ARTS ET METIERS CONSERVATOIRE NATIONAL DES ARTS ET METIERS Durée : 2 heures METHODES DE PROGRAMMATION SYSTEMES UE NSY103 - NANCY/METZ INTERVENANT : E. DESVIGNE CORRECTION DE LA SESSION DE RATTRAPAGE 13/09/2011 Année 2010

Plus en détail

Architecture des ordinateurs TP 3

Architecture des ordinateurs TP 3 Architecture des ordinateurs ESIPE - IR1 TP 3 Objectif de cette séance L objectif de cette séance est d apprendre à utiliser la pile et à écrire des fonctions en assembleur En particulier, nous verrons

Plus en détail

Communication entre processus avec des tuyaux Fils Java. Partie A La communication entre processus avec tuyaux

Communication entre processus avec des tuyaux Fils Java. Partie A La communication entre processus avec tuyaux Systèmes d exploitation CSI3531 Labo 2 Communication entre processus avec des tuyaux Fils Java Partie A La communication entre processus avec tuyaux Objectif : Explorer le IPC avec les tuyaux UNIX/Linux

Plus en détail

Travaux Dirigés n o 4 : Threads

Travaux Dirigés n o 4 : Threads DUT Informatique 2015 / 2016 Travaux Dirigés n o 4 : Threads Objectifs : apprendre à créer, travailler avec et arrêter des threads (ou processus légers). Savoir reconnaître les données partagées entre

Plus en détail

Série d exercices. o Cas 2 : gcc o nomexecutable c nomsource.c. o Cas 3 : gcc o nomexecutable W -Wall nomsource.c

Série d exercices. o Cas 2 : gcc o nomexecutable c nomsource.c. o Cas 3 : gcc o nomexecutable W -Wall nomsource.c Langage Impératif 1 TP 1 du 11 octobre 2010 Série d exercices Rappels rapides : - Un programme C s écrit toujours dans un fichier d extension.c (en minuscule!! sinon ce serait compilé comme du C++). Ce

Plus en détail

Cours Système 2 Année I.U.T. Informatique

Cours Système 2 Année I.U.T. Informatique Chapitre 5. Les Processus Cours Système 2 Année I.U.T. Informatique 5.1 Notion de processus On appelle processus l exécution d un programme à un moment donné. Un processus va donc naître, vivre et mourir.

Plus en détail

ECOLE POLYTECHNIQUE DE MONTREAL DEPARTEMENT DE GENIE ELECTRIQUE ET DE GENIE INFORMATIQUE Section informatique. Cours 3.307P: INFORMATIQUE EXAMEN FINAL

ECOLE POLYTECHNIQUE DE MONTREAL DEPARTEMENT DE GENIE ELECTRIQUE ET DE GENIE INFORMATIQUE Section informatique. Cours 3.307P: INFORMATIQUE EXAMEN FINAL ECOLE POLYTECHNIQUE DE MONTREAL DEPARTEMENT DE GENIE ELECTRIQUE ET DE GENIE INFORMATIQUE Section informatique Cours 3.307P: INFORMATIQUE EXAMEN FINAL DATE : Dimanche 8 décembre 1996 HEURE: DE 13h30 A 16h00

Plus en détail

Fiche FOCUS. Les téléprocédures

Fiche FOCUS. Les téléprocédures Fiche FOCUS Les téléprocédures Changer d'adresse électronique ou de mot de passe (identifiants des espaces sans certificat) Dernière mise à jour : avril 2015 Table des matières 1. Présentation...3 1.1.Objet

Plus en détail

2 ème partie : Programmation concurrente multi-thread

2 ème partie : Programmation concurrente multi-thread 2 ème partie : Programmation concurrente multi-thread TC-INFO-ASR4 Françoise Baude Université de Nice Sophia-Antipolis UFR Sciences Département Informatique baude@unice.fr web du cours : www-mips.unice.fr/~baude

Plus en détail

Cours A7 : Temps Réel

Cours A7 : Temps Réel Cours A7 : Temps Réel Pierre.Paradinas / @ / cnam.fr Cnam/Cedric Systèmes Enfouis et Embarqués (SEE) Motivations Du jour : Partage des ressources, L exclusion mutuelle, Synchronisation. Comprendre les

Plus en détail

Linux Principes et Programmation

Linux Principes et Programmation Linux Principes et Programmation 4. Synchronisation entre processus Interblocage CNAM NSY103 2009/2010 Yann GAUTHERON Extraits : http://fr.wikipedia.org/, LINUX Programmation système et réseau (Joëlle

Plus en détail

Programmation Objet - Cours II

Programmation Objet - Cours II Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à

Plus en détail

Synchronisation et communication entre processus

Synchronisation et communication entre processus Synchronisation et communication entre processus Schémas classiques de synchronisation 1 INTRODUCTION Système multiprocessus L'ordonnancement "entrelace" les exécutions P1 P2 P3 Processus non indépendants

Plus en détail

Mémoire partagée. Frédéric Guinand. IUT Informatique Université du Havre.

Mémoire partagée. Frédéric Guinand. IUT Informatique Université du Havre. frederic.guinand@univ-lehavre.fr IUT Informatique Université du Havre Espace d adressage d un processus lors de sa création, un processus arrive avec un espace mémoire qui lui est propre lorsque ce processus

Plus en détail

Introduction aux systèmes d exploitation TP 2 Manipulation de processus

Introduction aux systèmes d exploitation TP 2 Manipulation de processus Introduction aux systèmes d exploitation TP 2 Manipulation de processus On appelle processus un objet dynamique correspondant à l exécution d un programme ou d une commande Unix. Cet objet recense en particulier

Plus en détail

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TP2 Les sémaphores

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TP2 Les sémaphores INTRODUCTION AUX SYSTEMES D EXPLOITATION TP2 Les sémaphores Les sémaphores - 0.1 - S O M M A I R E 1. IDENTIFICATION EXTERNE DES OBJETS IPC... 1 1.1. PRESENTATION... 1 1.2. EXERCICE N 1 LA FONCTION FTOK...

Plus en détail

Cours 6 : Tubes anonymes et nommés

Cours 6 : Tubes anonymes et nommés Cours 6 : Tubes anonymes et nommés Mécanisme de communications du système de fichiers I-node associé. Type de fichier: S_IFIFO. Accès au travers des primitives read et write. Les tubes sont unidirectionnels

Plus en détail

Moniteurs, Java, Threads et Processus

Moniteurs, Java, Threads et Processus Moniteurs, Java, Threads et Processus 1 Une vue orientée-objet de la mémoire partagée On peut voir un sémaphore comme un objet partagé accessible par deux méthodes : wait et signal. L idée du concept de

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

Chapitre 3 : Pointeurs et références

Chapitre 3 : Pointeurs et références p. 1/18 Chapitre 3 : Pointeurs et références Notion de pointeur L adresse d une variable est une valeur. On peut donc la stocker dans une variable. Un pointeur est une variable qui contient l adresse d

Plus en détail

TP 2 JAVA. public class test1{ public static void main(string arg[]){ code du programme }// main }// class

TP 2 JAVA. public class test1{ public static void main(string arg[]){ code du programme }// main }// class TP 2 JAVA La structure d'un programme Java Un programme Java n'utilisant pas de classe définie par l'utilisateur ni de fonctions autres que la fonction principale main pourra avoir la structure suivante

Plus en détail

Programmation système

Programmation système Programmation système Christine Solnon Table des matières 1 Les processus 2 1.1 Etats d un processus................................... 2 1.2 Descripteur d un processus (PCB)...........................

Plus en détail

Programmation système en C/C++

Programmation système en C/C++ Programmation système en C/C++ Jean-Baptiste Vioix (jb.vioix@free.fr) LE2I - ENESAD http://jb.vioix.free.fr 1-41 Programmation en C/C++ sous Unix Il existe des très nombreux outils de développement sous

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

Systèmes d exploitation II Chapitre 2 : Gestion des processus. www.achrafothman.net

Systèmes d exploitation II Chapitre 2 : Gestion des processus. www.achrafothman.net Systèmes d exploitation II Chapitre 2 : Gestion des processus www.achrafothman.net 1 Processus Concept de Processus Ordonnancement de Processus Opérations sur les Processus Processus Coopératifs Communication

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

Ajout d items spécifiques

Ajout d items spécifiques 1 Ajout d items spécifiques Item : SNMP (Borne Wi-Fi & Switch.) Introduction sur le SNMP. SNMP est relativement simple une fois qu on a compris. Voyons comment se compose un ensemble d éléments communiquant

Plus en détail

Fonctionnement du Site Web Dynamique:

Fonctionnement du Site Web Dynamique: Fonctionnement du Site Web Dynamique: Site Web Dynamique: Un site Web dynamique est en faite un site Web dont les pages qu'il contient peuvent être générées dynamiquement, c'est à dire à la demande de

Plus en détail

Série n 1 / Solutions

Série n 1 / Solutions Série n 1 / Solutions Exercice n 1 - les deux processus partagent une variable booléenne interesse qui sera vraie si le processus est en section critique ou demande à y rentrer, et fausse sinon, /* contexte

Plus en détail

Les threads. Chapitre 4. 4.1 Introduction. 4.1.1 Avantages

Les threads. Chapitre 4. 4.1 Introduction. 4.1.1 Avantages Chapitre 4 Les threads 4.1 Introduction Le modèle de processus décrit au chapitre précédent est un programme qui s exécute selon un chemin unique avec un seul compteur ordinal. On dit qu il a un flot de

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

Comment utiliser sa messagerie laposte.net

Comment utiliser sa messagerie laposte.net Fiche Logiciel Internet Niveau FL02009 09/09 Comment utiliser sa rie laposte.net 1) s'identifier, ouvrir une session Avant de commencer, munissez-vous de votre identifiant (votre adresse de courrier électronique)

Plus en détail

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

TP réseaux 4 : Installation et configuration d'un serveur Web Apache TP réseaux 4 : Installation et configuration d'un serveur Web Apache Objectifs Installer, configurer, lancer et administrer le serveur Web Apache sous Linux Données de base machine fonctionnant sous Linux

Plus en détail

ACCOV 2001-2002. Système avec des processus concurrents

ACCOV 2001-2002. Système avec des processus concurrents projet ACCOV 2001-2002 ACCOV 2001-2002. Système avec des processus concurrents procedure Main is type TabDoc is array(1..6) of Document; -- contrôle l'attribution d'un nom unique package ProcId is procedure

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

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

Chapitre 5. Communication interprocessus. 5.1 Introduction

Chapitre 5. Communication interprocessus. 5.1 Introduction Communication interprocessus 5.1 Introduction Dans une activité parallèle (ou pseudo parallèle), un ensemble de processus séquentiels s exécutent en parallèle. Cette exécution résulte deux types de relations

Plus en détail

Noyau RTLinux. Noyau RTLinux

Noyau RTLinux. Noyau RTLinux Noyau RTLinux Noyau RTLinux 1 Principes de programmation RTLinux est implémenté sur la base du Minimal Real-time System Profile (POSIX 1003.13 draft 9) ou «système d'exploitation temps réel minimal», et

Plus en détail

Synchro et Threads Java TM

Synchro et Threads Java TM Synchro et Threads Java TM NICOD JEAN-MARC Master 2 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2008 NICOD JEAN-MARC Synchro et Threads avec Java TM 1 / 32 Sommaire

Plus en détail

Programmation parallèle

Programmation parallèle Programmation parallèle IUT Lyon 1 Module programmation répartie Principe de la programmation parallèle Consiste à faire exécuter par des processus différents des parties de code d un même programme Par

Plus en détail

Architecture Client/Serveur. andreu@lirmm.fr 1

Architecture Client/Serveur. andreu@lirmm.fr 1 Architecture Client/Serveur andreu@lirmm.fr 1 Qu'est-ce qu'un serveur? un «logiciel serveur» offre un service sur le réseau, le «serveur» est la machine sur laquelle s'exécute le logiciel serveur, le serveur

Plus en détail

synchronisation et communication entre processus Synchronisation et communication entre processus

synchronisation et communication entre processus Synchronisation et communication entre processus 1 Synchronisation et communication entre processus Accès à des ressources communes 2 Exemple: compte bancaire dont montant en A sur disque programme pour ajouter 100: lire(n,a) N := N+100 écrire(n,a) 2

Plus en détail

Programmer avec Xcas : version 0.8.6 et 0.9

Programmer avec Xcas : version 0.8.6 et 0.9 Programmer avec Xcas : version 0.8.6 et 0.9 I. L environnement de travail de Xcas Xcas permet d écrire des programmes, comme n importe quel langage de programmation. C est un langage fonctionnel. L argument

Plus en détail

Les processus légers : threads

Les processus légers : threads Les processus légers : threads Polytech Paris-Sud Cycle ingénieur de la filière étudiant Louis Mandel Université Paris-Sud 11 Louis.Mandel@lri.fr année 2012/2013 Les threads Les threads sont des processus

Plus en détail