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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

Transcription

1 3IS - Système d'exploitation linux - Threads 2010 David Picard Contributions de : Arnaud Revel, Mickaël Maillard

2 Qu'est-ce qu'un thread? ÉCOLE NATIONALE SUPÉRIEURE DE L'ÉLECTRONIQUE ET DE SES APPLICATIONS

3 Quel intérêt? Contexte multi-processeurs Programmation événementielle (interfaces graphiques, par exemple) Plus léger Moins de charge pour créer, ordonnancer et détruire un thread

4 Propriétés Invisibles en dehors du processus créateur Communication plus facile entre threads Plusieurs threads peuvent exécuter le même code Parallélisation des routines

5 Scénarios possibles ÉCOLE NATIONALE SUPÉRIEURE DE L'ÉLECTRONIQUE ET DE SES APPLICATIONS

6 Différentes implantations La programmation en threads est régie par la norme Posix Il existe cependant plusieurs implantations différentes Threads en espace utilisateur : GNU Pth Implantation mixte : SunOS/proposition Linux rejetée Threads en mode noyau : Linux

7 Threads en user space ÉCOLE NATIONALE SUPÉRIEURE DE L'ÉLECTRONIQUE ET DE SES APPLICATIONS

8 Threads en user space Le noyau n'a pas connaissance de l'existance des threads Une bibliothèque en user space se charge de gérer les threads La communication entre threads ne passe pas par le noyau L'ordonnancement des threads, assuré par la bibliothèque, est spécifique à un processus Le noyau continue d'ordonnancer les processus indépendamment des threads

9 Implantation mixte ÉCOLE NATIONALE SUPÉRIEURE DE L'ÉLECTRONIQUE ET DE SES APPLICATIONS

10 Propriétés La création et l'ordonnancement sont faits en espace utilisateur Le programmeur peut définir directement ou indirectement le nombre de threads noyaux Le noyau créé autant de processus légers (LWP LightWeight Process) que de threads noyaux Chaque LPW peut gérer plusieurs threads utilisateurs

11 Avantages et inconvéniants Avantages On limite les appels systèmes On peut choisir l'algorithme do'rdonnancement des threads Rend les programmes portables sur d'autres systèmes disposant d'une API de threads en user space Inconvéniants Les appels systèmes étant bloquant, tous les threads sont bloqués Le noyau peut assigner un processus à un processeur, mais tous les threads de ce processus seront assignés à ce processeur

12 Threads en espace noyau ÉCOLE NATIONALE SUPÉRIEURE DE L'ÉLECTRONIQUE ET DE SES APPLICATIONS

13 Propriétés des threads noyaux Gestion assurée par le noyau Pas d'api spéciale Le noyau doit maintenir un contexte d'information sur les threads et les processus La commutation entre threads se fait par le noyau L'ordonnancement est fonction des threads

14 Avantages et inconvéniants Avantages Le noyau peut assigner plusieurs threads d'un même processus sur différents processeurs Les appels système ne bloquent pas les autres threads Inconvéniants La commutation entre threads nécéssite un passage en mode noyau, donc une perte de performances

15 Linux Sous linux, les threads sont gérés comme des processus à part entière dans le noyau

16 Exemple #include <pthread.h> /* Compilation avec -lpthread */ void *routine_thread(void *data) { int id; int status = 0; id = *((int *)data); fprintf(stdout, "Bonjour, je suis la thread %i\n", id); pthread_exit(&status); } int main(int ac, char **av) { pthread_t tid1; pthread_t tid2; int id1 = 1; int id2 = 2; int *status = NULL; pthread_create((pthread_t *)&tid1, NULL, routine_thread, (void *)&id1); pthread_create((pthread_t *)&tid2, NULL, routine_thread, (void *)&id2); } pthread_join(tid2, (void **)&status); fprintf(stdout, "La thread %i est terminee avec le status %i\n", id2, *status); pthread_join(tid1, (void **)&status); fprintf(stdout, "La thread %i est terminee avec le status %i\n", id1, *status); return 0;

17 Exclusion mutuelle Les threads peuvent se partager les mêmes ressources au sein du processus Il est donc nécessaire d'entrer en section critique avant d'utiliser une ressource partagée Les threads fournissent des primitives d'exclusion mutuelle : les mutex Les fonctions associées sont : pthread_mutex_init : initialise la mutex pthread_mutex_lock : essaye de prendre le mutex. S il est deja pris par un autre thread, alors l appel reste bloquant jusqu à sa liberation pthread_mutex_trylock : essaye de prendre le mutex. S il est déjà pris par un autre thread, alors l appel ne bloque pas pthread_mutex_unlock : libère un mutex qui a été précédemment pris pthread_mutex_destroy : détruit un mutex

18 Exemple #include <pthread.h> <stdlib.h> <string.h> typedef struct _employee { pthread_mutex_t lock; char *firstname; char *lastname; struct _employee *manager; int idnumber; } EMPLOYEE; extern int IDnumber; extern pthread_mutex_t IDlock; EMPLOYEE * EmployeeNew (char *first, char *last) { EMPLOYEE *ep; if (!(ep = (EMPLOYEE *) malloc (sizeof (*ep)))) return (NULL); } ep->firstname = strdup (first); ep->lastname = strdup (last); pthread_mutex_lock (&IDlock); ep->idnumber = IDnumber++; pthread_mutex_unlock (&IDlock); ep->manager = NULL; return (ep);

19 Variables conditions Utilisées pour bloquer un thread jusqu'à ce qu'une condition soit réalisée Un mutex est associé à cette condition Il est pris par le thread qui trouve la condition réalisée

20 #include <pthread.h> typedef struct _node { struct _node *next; } NODE; static NODE list; static pthread_mutex_t list_lk; static pthread_cond_t list_cv; static NODE end_message; #define BUFSIZE 512 void * consumer (void *arg) { for (;;) { NODE *elemp; pthread_mutex_lock (&list_lk); while (empty_list ()) pthread_cond_wait (&list_cv, &list_lk); elemp = (NODE *)dequeue (); pthread_mutex_unlock (&list_lk); if (process (elemp) == 0) break; } return (0); } Exemple void * producer (void *arg) { int fd = (int) arg; int n; char buf[bufsize]; /* Recoit un message d'un socket */ while ((n = recv (fd, buf, BUFSIZE, 0))!= -1) { NODE *listp; if (n == 0) listp = &end_message; else if (!(listp = (NODE *)build_list (buf, n))) continue; pthread_mutex_lock (&list_lk); enqueue (listp); pthread_cond_signal (&list_cv); pthread_mutex_unlock (&list_lk); if (n == 0) break; } close (fd); return (0); }

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

Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre. Partie 7 : Exemple d application temps réelle en Ada et en C/Posix

Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre. Partie 7 : Exemple d application temps réelle en Ada et en C/Posix Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre Partie 7 : Exemple d application temps réelle en Ada et en C/Posix Plan du cours Présentation d un problème Solution en Ada Solution en

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

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

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

Cours 9 - PTHREADS. Partie 1. Processus léger ou "Thread" Luciana Arantes Dec. 2005. = un processus lourd. processus léger (thread) données

Cours 9 - PTHREADS. Partie 1. Processus léger ou Thread Luciana Arantes Dec. 2005. = un processus lourd. processus léger (thread) données Cours 9 - PTHREADS Partie 1 Luciana Arantes Dec. 2005 Processus léger ou "Thread"! Partage les zones de code, de données, de tas + des zones du PCB (Process Control Block) : données " liste des fichiers

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

Introduction à la programmation concurrente

Introduction à la programmation concurrente à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud Mai 2012 Yann Thoma (HES-SO / HEIG-VD

Plus en détail

Compléments sur les PThreads. Jean-Louis PAZAT IRISA / INSA

Compléments sur les PThreads. Jean-Louis PAZAT IRISA / INSA 1 Compléments sur les PThreads Jean-Louis PAZAT IRISA / INSA Exemple de threads utilisateur: Threads Posix Interface portable de programmation (API) Fonctionnalités création/destruction de Threads Synchronisation

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

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

Programmation Multithread

Programmation Multithread Programmation Multithread Partie 3 Professeur : Bruno De Kelper Département Génie Électrique Synchronisation Les Threads partagent les ressources Besoin de synchroniser pour: - Garder la cohérence des

Plus en détail

Les threads : introduction. Bertrand Dupouy. Les threads Plan. Les threads. Présentation. Ordonnancement Synchronisation.

Les threads : introduction. Bertrand Dupouy. Les threads Plan. Les threads. Présentation. Ordonnancement Synchronisation. Plan Présentation : introduction Bertrand Dupouy Historique Définitions Implantations Apports Problèmes Ordonnancement Synchronisation Verrous Variables conditionnelles Sémaphores Threads Java ENST Dép.

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

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

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

Systèmes d Exploitation temps réel. Programmation des STR. Gabriel FREY 2013 freyg.it@gmail.com

Systèmes d Exploitation temps réel. Programmation des STR. Gabriel FREY 2013 freyg.it@gmail.com Systèmes d Exploitation temps réel 1 2 Plan de l intervention 1. Introduction aux Systèmes Temps Réel 2. Programmation concurrente Synchronisation et communication Besoin en facultés temporelles 3. Ordonnancement

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

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

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

Exemple de système temps-réel: Real-time Linux

Exemple de système temps-réel: Real-time Linux Exemple de système temps-réel: Real-time Linux ENSPS 3A option ISAV ENSPS 3A option GLSR MATSER ISTI parcours AR FIP 2A J. GANGLOFF 1 Plan du cours Introduction : Comparatif des systèmes temps-réel Les

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

Communications et synchronisations

Communications et synchronisations Communications et synchronisations 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 Le problème des philosophes (Dijkstra

Plus en détail

Chapitre 12. Les threads

Chapitre 12. Les threads Chapitre 12 : Les threads 327 Chapitre 12 Les threads Chapitre 12 : Les threads 328 1. Processus - Chaque application (emacs, word, etc.) exécutée sur un ordinateur lui est associée un processus représentant

Plus en détail

Travaux Pratiques 5 Annulation de threads Les fourmis contre-attaquent!

Travaux Pratiques 5 Annulation de threads Les fourmis contre-attaquent! Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique Travaux Pratiques 5 Annulation de threads Les fourmis contre-attaquent! Pierre Delisle Info0604 2015/2016 L'objectif du

Plus en détail

Plan. Concurrence, l exclusion mutuelle. Exemple : le spool d impression. Les race conditions : exemples Exclusion mutuelle par attente active

Plan. Concurrence, l exclusion mutuelle. Exemple : le spool d impression. Les race conditions : exemples Exclusion mutuelle par attente active Plan Concurrence, l exclusion mutuelle Luigi Santocanale Laboratoire d Informatique Fondamentale, Centre de Mathématiques et Informatique, 39, rue Joliot-Curie - F-13453 Marseille 13 décembre 2005 1 Les

Plus en détail

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

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

Plus en détail

Les threads POSIX. Chapitre 16. 16.0.1 Description. 16.0.2 fork et exec

Les threads POSIX. Chapitre 16. 16.0.1 Description. 16.0.2 fork et exec Chapitre 16 Les threads POSIX La programmation par thread (actvité) est naturelle pour gérer des phénomènes asyncrones. Les entrées utilisateur dans les interfaces graphiques (souris, clavier) sont plus

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

Le «thread local storage» et son utilisation

Le «thread local storage» et son utilisation Résumé Les allocations mémoire sont généralement plus coûteuses que d ordinaire en environnement multi-thread. En effet, la majorité des algorithmes d allocation en usage dans les systèmes d exploitation

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

É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

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

Principes de la programmation impérative

Principes de la programmation impérative Séquence d instructions Variables et types Types élaborés Procédures, arguments Gestion de la mémoire Langage compilé, interprété Principes de la programmation impérative Séquence d instructions Variables

Plus en détail

Exercices de programmation concurrente (PCO) semestre printemps 2014-2015. Exclusion mutuelle, synchronisation, coordination

Exercices de programmation concurrente (PCO) semestre printemps 2014-2015. Exclusion mutuelle, synchronisation, coordination Prof. Yann Thoma Exercices de programmation concurrente (PCO) semestre printemps 2014-2015 Exclusion mutuelle, synchronisation, coordination Question 1: Exclusion mutuelle Soit les deux tâches T 0 et T

Plus en détail

Projet de Programmation

Projet de Programmation Projet de Programmation Système : Sémaphores et synchronisation de threads. Le problème du barbier : conception d une application multithreadée, synchronisée avec des sémaphores et des locks à la norme

Plus en détail

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

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

Plus en détail

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

Cours Langage C. Passage de paramètres à la fonction main Pointeur de fonction Allocation dynamique

Cours Langage C. Passage de paramètres à la fonction main Pointeur de fonction Allocation dynamique Cours Langage C Passage de paramètres à la fonction main Pointeur de fonction Allocation dynamique I Passage de paramètres à la fonction main Tout exécutable C doit comporter une fonction main dont le

Plus en détail

Chapitre 1 Introduction

Chapitre 1 Introduction Chapitre 1 Introduction Jean Privat Université du Québec à Montréal INF7330 Construction de logiciels Diplôme d études supérieures spécialisées en systèmes embarqués Automne 2012 Jean Privat (UQAM) 01

Plus en détail

Informatique Embarquée M2 / 2014. Quelle heure est-il?

Informatique Embarquée M2 / 2014. Quelle heure est-il? Informatique Embarquée M2 / 2014 Quelle heure est-il? 2014 FA-P7-Info Emb. 1 Différents Temps Temps «horloge murale» Avance sans arrêt, quelque soit l'activité des processus, processeurs Temps CPU N'augmente

Plus en détail

TP Systèmes d'exploitation - Linux : Les threads

TP Systèmes d'exploitation - Linux : Les threads TP Systèmes d'exploitation - Linux : Les threads 1 Description D'après http://mtodorovic.developpez.com/linux/programmation-avancee/?page=page₄ Thread = processus léger Un thread peut en créer d'autres,

Plus en détail

Cours 2. Processus et ordonancement

Cours 2. Processus et ordonancement Cours 2 Processus et ordonancement PolyTECH - Système Thomas Lavergne Université Paris-Sud Définition 0A 2F D3 4F BA 78 21 FF A3 DA 99 00 45 D3 F2 BA Programme = séquence d'instructions Processeur = Automate

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

4 Sémaphores. 4.1 Syntaxe et sémantique. sem s1; /* sem s1 = 0; */ sem s2 = 1; sem forks[5] = ([5] 1); P(s): < await(s > 0) s = s - 1; >

4 Sémaphores. 4.1 Syntaxe et sémantique. sem s1; /* sem s1 = 0; */ sem s2 = 1; sem forks[5] = ([5] 1); P(s): < await(s > 0) s = s - 1; > 4 Sémaphores Motivation = une approche avec busy waiting n est pas intéressante dans un programme avec fils d exécution multiples, puisque le nombre de processus est généralement plus grand que le nombre

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

Multi-threading. Mécanismes de Synchronisation

Multi-threading. Mécanismes de Synchronisation Multi-threading Mécanismes de Synchronisation 1 Exclusion Mutuelle - Mutex Producteurs / Consommateur - Sémaphores 2 Accès en Exclusion Mutuelle Exemple d'une liste d'objects partagée: Gérée en LIFO (Last

Plus en détail

Concurrence. Laurent Pautet Bertrand Dupouy Laurent.Pautet@enst.fr Version 3.0

Concurrence. Laurent Pautet Bertrand Dupouy Laurent.Pautet@enst.fr Version 3.0 Concurrence Laurent Pautet Bertrand Dupouy Laurent.Pautet@enst.fr Version 3.0 Plan Introduction Processus légers Bibliothèque POSIX Langage Java UEs de spécialités approfondissant ces mécanismes: INF341:

Plus en détail

Noyau d'un système d'exploitation INF2610 Chapitre 7 : Gestion de la mémoire (annexe 2)

Noyau d'un système d'exploitation INF2610 Chapitre 7 : Gestion de la mémoire (annexe 2) INF2610 Chapitre 7 : Gestion de la mémoire (annexe 2) Département de génie informatique et génie logiciel Hiver 2014 Exemple 1 : Espace virtuel d un processus Où seront stockées les données des variables

Plus en détail

Rapport de TP sur le mini-serveur HTTP. Maxime Chambreuil - Sébastien Le Digabel

Rapport de TP sur le mini-serveur HTTP. Maxime Chambreuil - Sébastien Le Digabel Rapport de TP sur le mini-serveur HTTP Maxime Chambreuil - Sébastien Le Digabel 16 janvier 2003 Table des matières 1 Détails sur nos travaux 2 1.1 But du TP............................. 2 1.2 La fonction

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

Processus, threads et IPC

Processus, threads et IPC PhL - 29/10/2015 - 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

Plus en détail

Introduction à la programmation concurrente

Introduction à la programmation concurrente Introduction à la programmation concurrente Exclusion mutuelle par attente active Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud

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

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

Langage C et programmation système

Langage C et programmation système Langage C et programmation système DUT Informatique Villetaneuse Module : Système d'exploitation christophe.cerin@iutv.univ-paris13.fr Variables d environnement Votre problème : vous développez une application

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 Cours SYE Prof. Daniel Rossier Version 2.3 (2009-2010) 1 Plan Processus Changement de contexte Threads IPC (Inter-Process Communication) Algorithmes d'ordonnancement

Plus en détail

TP 8 : Arbres binaires de recherche

TP 8 : Arbres binaires de recherche TP 8 : Arbres binaires de recherche Semaine du 17 Mars 2008 Exercice 1 Dénir une structure struct noeud_s permettant de coder un n ud d'un arbre binaire contenant une valeur entière. Ajouter des typedef

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

PRESENTATION DE JAVA. Qu est-ce que java? Les caractéristiques du langage java Les outils Les API Références. Software Associates International

PRESENTATION DE JAVA. Qu est-ce que java? Les caractéristiques du langage java Les outils Les API Références. Software Associates International PRESENTATION DE JAVA Qu est-ce que java? Les caractéristiques du langage java Les outils Les API Références 1 Qu est-ce que java? Un langage de programmation orienté objets Une architecture de Virtual

Plus en détail

Exemple de serveur en C. Problème du serveur séquentiel. Schéma Client-Serveur en C PROGRAMMATION RÉSEAU. Arnaud Sangnier

Exemple de serveur en C. Problème du serveur séquentiel. Schéma Client-Serveur en C PROGRAMMATION RÉSEAU. Arnaud Sangnier PROGRAMMATION RÉSEAU Arnaud Sangnier sangnier@irif.fr La concurrence en C de serveur en C struct sockaddr_in address_sock; address_sock.sin_family=af_inet; address_sock.sin_port=htons(4242); address_sock.sin_addr.s_addr=htonl(inaddr_any);

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

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

Programmation multitâches LinuxThreads. Labo-Unix - http ://www.labo-unix.net

Programmation multitâches LinuxThreads. Labo-Unix - http ://www.labo-unix.net Programmation multitâches LinuxThreads Labo-Unix - http ://www.labo-unix.net 2001-2002 1 TABLE DES MATIÈRES TABLE DES MATIÈRES Table des matières 1 Un peu de théorie... 3 1.1 Qu est-ce qu un thread?...................................

Plus en détail

Introduction à la programmation concurrente

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

Plus en détail

Sujet d examen 1. Pratique du C. Novembre 2009

Sujet d examen 1. Pratique du C. Novembre 2009 Durée 1 h 30 Documents autorisés Sujet d examen 1 Pratique du C Novembre 2009 Introduction Écrivez lisiblement et n hésitez pas à commenter votre code en langage C. Vous ne pouvez utiliser que les fonctions

Plus en détail

INTRODUCTION À LA PROGRAMMATION CONCURRENTE

INTRODUCTION À LA PROGRAMMATION CONCURRENTE INTRODUCTION À LA PROGRAMMATION CONCURRENTE POLYCOPIÉ DU COURS PCO1 Prof. Claude Evéquoz Prof. Yann Thoma HEIG-VD 2009 Table des matières Table des matières 2 1 Introduction à la programmation concurrente

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

Modèle d exécution Exemple : le Motorola 68000

Modèle d exécution Exemple : le Motorola 68000 Mémoire et Processeur Mécanismes d exécution Du séquentiel au parallèle Modèle d exécution Exemple : le Motorola 68000 Registres de donnée Registres d adresse Registre d état Registre d état Compteur ordinal

Plus en détail

Veuillez répondre à cette partie sur une feuille séparée. Il s agit de vérifier le bon fonctionnement d'une chaîne de production industrielle.

Veuillez répondre à cette partie sur une feuille séparée. Il s agit de vérifier le bon fonctionnement d'une chaîne de production industrielle. Année 2007-2008 INF342 - COU Contrôle de Connaissances 29 juin 2010 3h00 - Sans document Barème indicatif Veuillez répondre à cette partie sur une feuille séparée I. Ordonnancement (5 points) Il s agit

Plus en détail

SYSTÈMES D EXPLOITATION 1 ère année. M. FONDA ENSI de Bourges

SYSTÈMES D EXPLOITATION 1 ère année. M. FONDA ENSI de Bourges SYSTÈMES D EXPLOITATION 1 ère année M. FONDA ENSI de Bourges 1 Cas 1 : Une tâche A est en attente de l information provenant d une tâche B Cas 2 : A positionne une valeur en vue de son exploitation ultérieure,

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

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

CORRIGÉ Contrôle Systèmes d exploitation, Réseaux

CORRIGÉ Contrôle Systèmes d exploitation, Réseaux Institut Galilée Systèmes d exploitation, Réseaux Année 2011-2012 Licence 2 CORRIGÉ Contrôle Systèmes d exploitation, Réseaux Mercredi 9 Mars 2012 9h - 12h Aucun document n est autorisé Exercice 1 : Ordonnancement

Plus en détail

Ordonnancement. 1- Notions liées à l'ordonnancement de processus. 1.1- Qu'est-ce que l'ordonnancement de processus?

Ordonnancement. 1- Notions liées à l'ordonnancement de processus. 1.1- Qu'est-ce que l'ordonnancement de processus? Ordonnancement 1- Notions liées à l'ordonnancement de processus 1.1- Qu'est-ce que l'ordonnancement de processus? La figure 1 schématise le fonctionnement d'une machine multiprocessus. Plusieurs processus

Plus en détail

1 Entête des fonctions

1 Entête des fonctions Le lecteur rédacteur est un problème de synchronisation qui suppose que l on peut accéder aux données partagées de 2 manières : en lecture, c est a dire sans possibilité de modification; en écriture. Il

Plus en détail

La programmation Impérative par le Langage C

La programmation Impérative par le Langage C La programmation Impérative par le Langage C 1. Introduction 1.1 Qu est-ce que la programmation impérative? Un programme est constitué de plusieurs lignes d instructions. Chaque instruction permet d effectuer

Plus en détail

Informatique et réseaux des systèmes embarqués 07/09/2013

Informatique et réseaux des systèmes embarqués 07/09/2013 7.3) Donnée partagées et exclusion mutuelle Lorsqu un nouveau processus est créé par un fork, toutes les données (variables globales, variables locales, mémoire allouée dynamiquement), sont dupliquées

Plus en détail

Systèmes d'exploitation

Systèmes d'exploitation Systèmes d'exploitation Rôle d'un système : virtualisation Virtualisation du processeur Virtualisation de la mémoire Virtualisation du disque Virtualisation interface utilisateur Virtualisation du réseau

Plus en détail

Framework à but pédagogique sous Linux

Framework à but pédagogique sous Linux Travail de diplôme Framework à but pédagogique sous Linux Plan de la présentation Introduction Environnements Techniques développées Implémentation Résultat Conclusion 1 Introduction Framework Outil de

Plus en détail

Communication et et synchronisation en en Ada, en en C/Posix et et en en Java 1.5

Communication et et synchronisation en en Ada, en en C/Posix et et en en Java 1.5 Communication et et synchronisation en en Ada, en en C/Posix et et en en Java 1.5 Samia Bouzefrane Maître de Conférences CEDRIC CNAM samia.bouzefrane@cnam.fr http://cedric.cnam.fr/~bouzefra 1 Sommaire

Plus en détail

Les Threads. Benmoussa Yahia Université M hamed Bougara de Boumerdès

Les Threads. Benmoussa Yahia Université M hamed Bougara de Boumerdès Les Threads Benmoussa Yahia Université M hamed Bougara de Boumerdès yahia.benmoussa@gmail.com http://syscours.kilu.de Objectifs Définir la notion de Thread Modèles de programmation par processus et par

Plus en détail

Programmation Impérative 2006-2007

Programmation Impérative 2006-2007 Programmation Impérative 2006-2007 Licence Physique-Applications, Phisique-Chimie Université Jean Monnet Ruggero G. PENSA ruggero.pensa@univ-st-etienne.fr Définition de nouveaux types En pseudo-langage

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

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

Corrigé de l examen de systèmes opératoires Module Synchronisation des processus

Corrigé de l examen de systèmes opératoires Module Synchronisation des processus Corrigé de l examen de systèmes opératoires Module Synchronisation des processus 2ième Année Informatique et Mathématiques Appliquées 17 Novembre 1999 1 Les sémaphores 1. Donner la définition d un sémaphore

Plus en détail

Examen 30 mai 2013. Vol de tâche. Système ENS L3 Info. Année 2012-2013

Examen 30 mai 2013. Vol de tâche. Système ENS L3 Info. Année 2012-2013 Système ENS L3 Info. Année 2012-2013 Examen 30 mai 2013 L énoncé est composé de 5 pages. Cette épreuve est prévue pour une durée de 2h. Les notes de cours et de TDs sont autorisées. Vol de tâche Le but

Plus en détail

CCI - Initiation à Java. E.Coquery emmanuel.coquery@liris.cnrs.fr

CCI - Initiation à Java. E.Coquery emmanuel.coquery@liris.cnrs.fr CCI - Initiation à Java E.Coquery emmanuel.coquery@liris.cnrs.fr Présentation du langage Outline 1 Présentation du langage 2 Types de données primitifs 3 Objets Présentation du langage Un langage orienté

Plus en détail

Soutenance de PFE. Evolution de l'outil EZTrace. Charles Aulagnon Inria Bordeaux (SED) Maître de stage : François Rué mars septembre 2011

Soutenance de PFE. Evolution de l'outil EZTrace. Charles Aulagnon Inria Bordeaux (SED) Maître de stage : François Rué mars septembre 2011 Soutenance de PFE Evolution de l'outil EZTrace Charles Aulagnon Inria Bordeaux (SED) Maître de stage : François Rué mars septembre 2011 ENSEIRB-MATMECA Tuteur : Corentin Travers Sommaire 1. EZTrace Contexte

Plus en détail

Les threads Les threads : introduction

Les threads Les threads : introduction Les threads : introduction 195 Plan Présentation Historique Définitions Implantations Apports Problèmes Ordonnancement Synchronisation Verrous Variables conditionnelles Sémaphores Threads Java 196 Plan

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

Programmation Multi-Threading en Java

Programmation Multi-Threading en Java Programmation Multi-Threading en Java Christophe Gravier, Frédérique Laforest, Julien Subercaze Télécom Saint-Étienne Université Jean Monnet {prénom.nom}@univ-st-etienne.fr FI2_INFO4 2012 2013 1 / 35 Plan

Plus en détail

Examen de SELC/INF104

Examen de SELC/INF104 Examen de SELC/INF104 1h30 Sans document Nous avons laissé de la place sur l énoncé pour vos réponses. Vous pouvez donc rendre l énoncé complété. Attention, mettez votre nom sur toutes les feuilles rendues.

Plus en détail

Programmation Parallèle et Distribuée. PERACHE Marc

Programmation Parallèle et Distribuée. PERACHE Marc Programmation Parallèle et Distribuée PERACHE Marc marc.perache@cea.fr Le fonctionnement du cours Le cours Présentation des bibliothèques de threads. API POSIX. Les entrailles des bibliothèques. Les TD:

Plus en détail

Un ordonnanceur stupide

Un ordonnanceur stupide Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire

Plus en détail

GPA665 Structures de données et algorithmes

GPA665 Structures de données et algorithmes École de technologie supérieure Département de génie de la production automatisée GPA665 Structures de données et algorithmes Solutions du cahier d exercices Série d exercices no. 3 : Les listes élémentaires

Plus en détail

Java : Programmation Impérative

Java : Programmation Impérative 1 Java : Programmation Impérative Résumé du cours précédent (I11) Paradigme impératif Algorithmique simple Découpage fonctionnel Qu est-ce qu un programme informatique? / un langage de programmation? /

Plus en détail

TP Temps Réel. Polytech Paris - Mars 2012

TP Temps Réel. Polytech Paris - Mars 2012 TP Temps Réel Jérôme Pouiller Polytech Paris - Mars 2012 Table des matières 1 Avant de commencer 1 1.1 Documentation.................................................... 1 1.1.1

Plus en détail

Threads et atomiques avec C11

Threads et atomiques avec C11 Threads et atomiques avec C11 Jens Gustedt INRIA ICube, Université de Strasbourg 2015 Jens Gustedt (INRIA) Threads et atomiques avec C11 2015 1 / 41 Outline 1 Introduction 2 Threads 3 Atomic 4 L exclusion

Plus en détail

Systèmes répartis : les Remote Procedure Calls p.1/25

Systèmes répartis : les Remote Procedure Calls p.1/25 Systèmes répartis : les Remote Procedure Calls Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Systèmes répartis : les Remote Procedure Calls p.1/25 Les Remote Procedure Calls

Plus en détail