Huitième partie. Processus communicants CSP/Ada. Processus communicants Communication synchrone CSP/CCS/π-calcul Rendez-vous étendu Ada

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Huitième partie. Processus communicants CSP/Ada. Processus communicants Communication synchrone CSP/CCS/π-calcul Rendez-vous étendu Ada"

Transcription

1 Huitième partie Processus communicants CSP/Ada Systèmes concurrents 2 / 44

2 Synchronisation Désignation, alternatives Architecture d'une application parallèle Plan 1 Processus communicants Synchronisation Désignation, alternatives Architecture d'une application parallèle 2 Producteurs/consommateurs Lecteurs/rédacteurs 3 Systèmes concurrents CSP/Ada 3 / 44

3 Processus communicants Synchronisation Désignation, alternatives Architecture d'une application parallèle Synchronisation obtenue via des primitives de communication bloquantes : envoi (bloquant) de messages / réception bloquante de messages Communicating Sequential Processes (CSP) / Calculus of Communicating Systems (CCS) / π-calcul Ada Les principes détaillés des échanges et leur utilisation pour développer des applications sont vus dans le module intergiciels. On ne s'intéresse ici qu'à la synchronisation. Systèmes concurrents CSP/Ada 4 / 44

4 Quelle synchronisation? Synchronisation Désignation, alternatives Architecture d'une application parallèle Réception Réception bloquante : attendre un message Émission Émission non bloquante ou asynchrone Émission bloquante ou synchrone : bloque jusqu'à la réception du message = rendez-vous élémentaire entre l'activité émettrice et l'activité destinataire Rendez-vous étendu : bloquant jusqu'à réception + réaction + réponse appel de procédure Émission asynchrone buers (messages émis non reçus) Synchrone 1 case maximum Systèmes concurrents CSP/Ada 5 / 44

5 Synchronisation Désignation, alternatives Architecture d'une application parallèle Désignation du destinataire et de l'émetteur Nommage Direct : désignation de l'activité émettrice/destinataire SEND message TO processname WAIT message FROM processname Indirect : désignation d'une boîte à lettres ou d'un canal de communication SEND message TO channel WAIT message FROM channel Systèmes concurrents CSP/Ada 6 / 44

6 Alternative Synchronisation Désignation, alternatives Architecture d'une application parallèle Alternative en émission ou en réception = choix parmi un ensemble de communications possibles : WAIT msg FROM channel1 OR channel2 (SEND msg1 TO pid1) OR (SEND msg2 TO pid2) (WAIT msg1 FROM channel1) OR (SEND msg2 TO channel2) Si aucun choix n'est faisable attendre Si un seul des choix est faisable le faire Si plusieurs choix sont faisables sélection non-déterministe (arbitraire) Systèmes concurrents CSP/Ada 7 / 44

7 Multiplicité Synchronisation Désignation, alternatives Architecture d'une application parallèle 1 1 Désignation de l'activité : 1 émetteur / 1 récepteur désignés n 1 Canal réservé en lecture (consommation) : envoi par n'importe quelle activité ; réception par une seule, propriétaire du canal n m Canal avec envoi par n'importe qui, réception par n'importe qui : pas de duplication : un seul destinataire consomme le message duplication à tous les destinataires : m fois n 1 Complexe et coûteux à mettre en uvre, nécessite une synchronisation globale entre tous les récepteurs Systèmes concurrents CSP/Ada 8 / 44

8 Divers Processus communicants Synchronisation Désignation, alternatives Architecture d'une application parallèle Asynchrone perte de messages? (buer plein par exemple) Construction d'une émission bloquante (rendez-vous) en cas d'émission non bloquante : (SENT m TO ch; WAIT _ FROM ack) (WAIT m FROM ch; SENT _ TO ack) Construction d'une émission non bloquante à partir d'émission bloquante : introduire une boîte intermédiaire qui accepte immédiatement tout message et le stocke dans une le. Systèmes concurrents CSP/Ada 9 / 44

9 Architecture Synchronisation Désignation, alternatives Architecture d'une application parallèle La résolution des problèmes de synchronisation classiques (producteurs/consommateurs... ) ne se fait plus en synchronisant directement les processus via des données partagées, mais indirectement via une activité de synchronisation. lecteur demander l'accès en lecture demander l'accès en écriture rédacteur lecteur gestionnaire LR lecteur rendre l'accès en lecture rédacteur Systèmes concurrents CSP/Ada 10 / 44

10 Intérêt Processus communicants Synchronisation Désignation, alternatives Architecture d'une application parallèle + découplage entre les activités clientes : l'interface partagée est celle de l'activité de synchronisation + réalisation centralisée et répartie + transfert explicite d'information : traçage + pas de données partagées pas de protection nécessaire + contrôle n des interactions + schéma naturel côté client : question/réponse = appel de fonction multiples recopies (mais optimisations possibles) parallélisation du service : au cas par cas Systèmes concurrents CSP/Ada 11 / 44

11 Producteurs/consommateurs Lecteurs/rédacteurs Plan 1 Processus communicants Synchronisation Désignation, alternatives Architecture d'une application parallèle 2 Producteurs/consommateurs Lecteurs/rédacteurs 3 Systèmes concurrents CSP/Ada 12 / 44

12 Producteurs/consommateurs Lecteurs/rédacteurs CSP Communicating Sequential Processes Syntaxe Émission bloquante Désignation de canaux de communications Existence statique des canaux (pas de création dynamique) Alternative en réception seulement ou mixte (variantes) envoi d'un message sur le canal c : c!msg (msg est une valeur) réception d'un message depuis le canal c : c?msg (msg est une variable) alternative en réception : c 1?m 1 c 2?m 2 alternative en émission : c 1!m 1 c 2!m 2 alternative mixte : c 1!m 1 c 2?m 2 réception gardée : guard c?m Systèmes concurrents CSP/Ada 13 / 44

13 Producteurs/consommateurs Lecteurs/rédacteurs Architecture simpliste Prod Cons1 Prod Prod/cons cons!m Prod prod!m Cons2 un canal pour les demandes de dépôt (sens producteur tampon) un canal pour les transmissions des valeurs déposées (sens tampon consommateur) Systèmes concurrents CSP/Ada 14 / 44

14 Producteurs/consommateurs Lecteurs/rédacteurs Producteurs/consommateurs Producteur Processus producteur boucle... msg :=... prod!msg... finboucle Consommateur Processus consommateur boucle... cons?msg utiliser msg... finboucle Systèmes concurrents CSP/Ada 15 / 44

15 Producteurs/consommateurs Lecteurs/rédacteurs Producteurs/consommateurs Activité de synchronisation Processus prodcons var int nbocc = 0; message m; file<messages> tampon ; boucle nbocc < N prod?m; nbocc++; tampon.ranger(m) ; nbocc > 0 m := tampon.extraire ; cons!m; nbocc--; finboucle Nécessite l'alternative mixte (plus complexe que l'alternative en réception) Nécessite la réception multiple (plusieurs activités attendent sur le canal cons) Systèmes concurrents CSP/Ada 16 / 44

16 Producteurs/consommateurs Lecteurs/rédacteurs Architecture eective Prod Prod Prod prod!m Prod/cons cons!demande(cons1) Cons1 cons1!rép(m) Cons2 Un canal pour les demandes de dépôt Un canal pour les demandes de retrait Un canal par activité demandant le retrait (pour la réponse à celle-ci) Systèmes concurrents CSP/Ada 17 / 44

17 Producteurs/consommateurs Lecteurs/rédacteurs Producteurs/consommateurs Producteur Processus producteur boucle... msg :=... prod!msg... finboucle Consommateur Processus consommateur1 Canal moi boucle... cons!demande(moi); moi?rép(msg); utiliser msg finboucle Systèmes concurrents CSP/Ada 18 / 44

18 Producteurs/consommateurs Lecteurs/rédacteurs Producteurs/consommateurs Processus de synchronisation Processus pc var int nbocc = 0; message m; canal c; boucle nbocc < N prod?dépôt(m); nbocc++; ranger m nbocc > 0 cons?demande(c); m :=...; c!rép(m); nbocc--; finboucle Nécessite des variables canal, passables en paramètre. Systèmes concurrents CSP/Ada 19 / 44

19 Producteurs/consommateurs Lecteurs/rédacteurs Lecteurs/rédacteurs lecteur demander l'accès en lecture demander l'accès en écriture rédacteur lecteur gestionnaire LR lecteur rendre l'accès en lecture rédacteur Un canal pour chaque type de requête Émission bloquante n'accepter un message (une requête) uniquement si l'état l'autorise Systèmes concurrents CSP/Ada 20 / 44

20 Producteurs/consommateurs Lecteurs/rédacteurs Lecteurs/rédacteurs Utilisateur Processus utilisateur boucle DL!_; // demander lecture... TL!_; // terminer lecture... DE!_; // demander écriture... TE!_; // terminer écriture finboucle Systèmes concurrents CSP/Ada 21 / 44

21 Producteurs/consommateurs Lecteurs/rédacteurs Lecteurs/rédacteurs Processus de synchronisation Processus SynchroLR var int nblec = 0; boolean ecr = false; boucle nblec = 0 ecr DE?_; ecr := true; ecr DL?_; nblec++; TE?_; ecr := false; TL?_; nblec--; finboucle Systèmes concurrents CSP/Ada 22 / 44

22 Plan 1 Processus communicants Synchronisation Désignation, alternatives Architecture d'une application parallèle 2 Producteurs/consommateurs Lecteurs/rédacteurs 3 Systèmes concurrents CSP/Ada 23 / 44

23 Modèle Ada Intérêt Modèle adapté à la répartition, contrairement aux sémaphores ou aux moniteurs, intrinsèquement centralisés. Similaire au modèle client-serveur. Contrôle plus n du moment où les interactions ont lieu. Vocabulaire : tâche = activité Systèmes concurrents CSP/Ada 24 / 44

24 Une tâche possède des points d'entrée de rendez-vous. Une tâche peut : demander un rendez-vous avec une autre tâche désignée explicitement ; attendre un rendez-vous sur un (ou plusieurs) point(s) d'entrée. Un rendez-vous est dissymétrique : tâche appelante ou cliente vs tâche appelée ou serveur. Échanges de données : lors du début du rdv, de l'appelant vers l'appelé ; lors de la n du rdv, de l'appelé vers l'appelant. Systèmes concurrents CSP/Ada 25 / 44

25 Rendez-vous client en premier T1 appelante T2 appelée demande de rdv b lo param d'entrée acceptation du rdv q u ée excéution du corps du rdv param de retour fin du rdv Systèmes concurrents CSP/Ada 26 / 44

26 Rendez-vous serveur en premier T1 appelante T2 appelée acceptation du rdv demande de rdv bloquée param d'entrée b lo q u ée excéution du corps du rdv param de retour fin du rdv Systèmes concurrents CSP/Ada 27 / 44

27 Si un client demande un rendez-vous alors que le serveur n'est pas prêt à l'accepter, le client se bloque en attente de l'acceptation. Si un serveur indique qu'il est prêt à accepter un rendez-vous et qu'il n'y a pas de demandeur, il se bloque. En outre, l'appelant est bloqué pendant l'exécution du corps du rendez-vous. Important : il est impossible d'accepter/refuser un rendez-vous selon la valeur des paramètres. Systèmes concurrents CSP/Ada 28 / 44

28 Déclaration d'une tâche Déclaration task <nom> is { entry <point d'entrée> (<param formels>); }+ end task X is entry A; entry B (msg : in T); entry C (x : out T); entry D (a : in T1; b : out T2); end X Systèmes concurrents CSP/Ada 29 / 44

29 Appel de rendez-vous Appel de rdv <nom tâche>.<point d'entrée> (<param effectifs>); Similaire à un appel de procédure. X.A; X.D(x,y); Systèmes concurrents CSP/Ada 30 / 44

30 Acceptation d'un rendez-vous Acceptation accept <point d'entrée> (<param formels>) [ do { <instructions> }+ end <point d'entrée> ] accept D (a : in Natural; b : out Natural) do if a > 6 then b := a / 4; else b := a + 2; end if; end D; Systèmes concurrents CSP/Ada 31 / 44

31 Acceptation parmi un ensemble Alternative gardée select when C1 => accept E1 do... end E1; or when C2 => accept E2 do... end E2; or... end select; Systèmes concurrents CSP/Ada 32 / 44

32 Producteurs/consommateurs Déclaration du serveur task ProdCons is entry Deposer (msg: in T); entry Retirer (msg: out T); end ProdCons; Client : utilisation begin -- engendrer le message m1 ProdCons.Deposer (m1); ProdCons.Retirer (m2); -- utiliser m2 end Systèmes concurrents CSP/Ada 33 / 44

33 task body ProdCons is Libre : integer := N; begin loop select when Libre > 0 => accept Deposer (msg : in T) do deposer_dans_tampon(msg); end Deposer; Libre := Libre - 1; or when Libre < N => accept Retirer (msg : out T) do msg := retirer_du_tampon(); end Retirer; Libre := Libre + 1; end select; end loop; end ProdCons; Systèmes concurrents CSP/Ada 34 / 44

34 Producteurs/consommateurs un exemple d'exécution task body Prod is begin m := ProdCons.Deposer (m); end Prod; (client attend) para entrée para sortie task body ProdCons is begin accept Deposer (msg : in T) do (serveur attend) deposer_dans_tampon(msg); end Deposer; nbocc := nbocc + 1; accept Retirer (msg : out T) do retirer_du_tampon(msg); end Retirer; nbocc := nbocc - 1; end ProdCons; paramètres d'entrée paramètres de sortie task body Conso is begin ProdCons.Retirer (m); (client attend) utiliser(m); end Conso; Systèmes concurrents CSP/Ada 35 / 44

35 Remarques Les accept ne peuvent gurer que dans le corps des tâches. accept sans corps synchronisation pure. Une le d'attente (FIFO) est associée à chaque entrée. rdv'count (attribut des entrées) donne le nombre de clients en attente sur une entrée donnée. La gestion et la prise en compte des appels dièrent par rapport aux moniteurs : la prise en compte d'un appel au service est déterminée par le serveur ; plusieurs appels à un même service peuvent déclencher des traitements diérents ; le serveur peut être bloqué, tandis que des clients attendent. Systèmes concurrents CSP/Ada 36 / 44

36 Allocateur de ressources Un système comporte des ressources critiques c'est-à-dire non partageables et non préemptibles, comme les pages mémoire. L'allocateur de ressources est un service qui permet à un processus d'acquérir par une seule action plusieurs ressources. On ne s'intéresse qu'à la synchronisation et on ne s'occupe pas de la gestion eective des identiants de ressources. Déclaration du serveur task Allocateur is entry demander (nbdemandé: in natural; id : out array of RessourceId); entry rendre (nbrendu: in natural; id : in array of RessourceId); end Allocateur; Systèmes concurrents CSP/Ada 37 / 44

37 task body Allocateur is nbdispo : integer := N; begin loop select accept Demander (nbdemandé : in natural) do while nbdemandé > nbdispo loop accept Rendre (nbrendu : in natural) do nbdispo := nbdispo + nbrendu; end Rendre; end loop; nbdispo := nbdispo - nbdemandé; end Demander; or accept Rendre (nbrendu : in natural) do nbdispo := nbdispo + nbrendu; end Rendre; end select; end loop; Systèmes end concurrents Allocateur; CSP/Ada 38 / 44 Processus communicants

38 Construire un automate ni à états : identier les états du système un état est caractérisé par les rendez-vous acceptables un rendez-vous accepté change (éventuellement) l'état Producteurs/consommateurs à 2 cases Déposer Déposer Vide NiVideNiPlein Plein Retirer Retirer Systèmes concurrents CSP/Ada 39 / 44

39 task body ProdCons is type Etat is (Vide, NiVideNiPlein, Plein); etat : Etat := Vide; begin loop if etat = Vide then select accept Deposer (msg : in T) do deposer_dans_tampon(msg); end Deposer; etat := NiVideNiPlein; end select; elsif etat = NiVideNiPlein then select accept Deposer (msg : in T) do deposer_dans_tampon(msg); end Deposer; etat := Plein; or accept Retirer (msg : out T) do msg := retirer_du_tampon(); end Retirer; etat := Vide; end select;

40 elsif etat = Plein then select accept Retirer (msg : out T) do msg := retirer_du_tampon(); end Retirer; etat := NiVideNiPlein; end select; end if; end loop; end ProdCons; Systèmes concurrents CSP/Ada 41 / 44

41 Automate paramétré Représenter un ensemble d'états comme un unique état paramétré. Les valeurs du paramètre diérenciant les états de l'ensemble peuvent être utilisées pour étiqueter les transitions. Producteurs/consommateurs à N cases Déposer NiVideNiPlein Déposer avec NbOcc = N 1 Vide UneCase N 1 Plein Retirer avec NbOcc = 1 Retirer Retirer avec NbOcc /= 1 Déposer avec NbOcc /= N 1 Systèmes concurrents CSP/Ada 42 / 44

42 Lecteurs/rédacteurs Lecteurs/rédacteurs DL Libre DE DL TL 1 lect TE 1 réd 2 lect TL DL = demander lecture DE = demander écriture TL = terminer lecture TE = terminer écriture Systèmes concurrents CSP/Ada 43 / 44

43 Lecteurs/rédacteurs prio rédacteurs Lecteurs/rédacteurs prio rédacteurs DL si DE count = 0 Libre DE lect(s) TL TE 1 réd DL si DE count = 0 TL Systèmes concurrents CSP/Ada 44 / 44

Plan. Synchronisation des processus

Plan. Synchronisation des processus Plan Synchronisation des processus N. Hameurlain Spécification du problème par un exemple; Synchro à l aide d événements; Synchro à l aide des sémaphores; Synchro par les données : la boîte aux lettres;

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

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

EXAMEN DU 19 SEPTEMBRE 2000

EXAMEN DU 19 SEPTEMBRE 2000 SYSTÈMES ET RÉSEAUX INFORMATIQUES COURS B4 : HTO(19339) et ICPJ(21937) CYCLE PROBATOIRE INFORMATIQUE (Conception et développement informatique) EXAMEN DU 19 SEPTEMBRE 2000 partie portant sur l'enseignement

Plus en détail

Claude Kaiser Paradigmes de la concurrence SRI_B PASSAGE DE TÉMOIN

Claude Kaiser Paradigmes de la concurrence SRI_B PASSAGE DE TÉMOIN PASSAGE DE TÉMOIN coopération par division du travail entre les processus 4) Rendez-vous à 2, symétrique, avec ou non une écriture ou un envoi de message (avec acquittement) Rendez-vous multiple : m processus

Plus en détail

Applications Concurrentes : Conception, Outils de Validation

Applications Concurrentes : Conception, Outils de Validation Applications Concurrentes : Conception, Outils de Validation ACCOV_B Chapitre 4 CONCURRENCE AVEC DES TÂCHES ADA invocation à distance tâche serveur CNAM - département infmatique 4. 1 option réseaux, systèmes

Plus en détail

Samia Bouzefrane. Maître de Conférences CEDRIC CNAM. samia.bouzefrane@cnam.fr http://cedric.cnam.fr/~bouzefra

Samia Bouzefrane. Maître de Conférences CEDRIC CNAM. samia.bouzefrane@cnam.fr http://cedric.cnam.fr/~bouzefra La La communication et et la la synchronisation inter-tâches Samia Bouzefrane Maître de Conférences CEDRIC CNAM samia.bouzefrane@cnam.fr http://cedric.cnam.fr/~bouzefra 1 Sommaire Introduction aux problèmes

Plus en détail

5 Moniteurs. Slide 1. Caractéristique majeure d un programme avec moniteurs = Composé de deux sortes de modules/processus: Slide 2

5 Moniteurs. Slide 1. Caractéristique majeure d un programme avec moniteurs = Composé de deux sortes de modules/processus: Slide 2 5 Moniteurs Motivation = les sémaphores peuvent être utilisés pour résoudre à peu près n importe quel problème d exclusion mutuelle ou synchronisation... mais, les sémaphores possèdent certains désavantages:

Plus en détail

Contrôle de concurrence par sémaphores. NFP137 Cours 12 1

Contrôle de concurrence par sémaphores. NFP137 Cours 12 1 Contrôle de concurrence par sémaphores NFP137 Cours 12 1 Rappel du concept de sémaphore Définition (Dijkstra-1965) Un sémaphore S est un objet partagé constitué de - un entier E initialisé à une valeur

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

Séance 5 Programmation concurrente et variables partagées. Comprendre le concept de programmation concurrente: Variables partagées et Tâche.

Séance 5 Programmation concurrente et variables partagées. Comprendre le concept de programmation concurrente: Variables partagées et Tâche. Séance 5 Programmation concurrente et variables partagées Objectifs : Comprendre le concept de programmation concurrente: Variables partagées et Tâche. Variables partagées La communication normale entre

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

Cours 3: Coopération entre processus: Synchronisation + Communication

Cours 3: Coopération entre processus: Synchronisation + Communication Cours 3: Coopération entre processus: Synchronisation + Communication Coopération entre processus & Synchronisation + Communication 1. Introduction 2. Rendez-vous de N entités 3. Producteur(s) / Consommateur(s)

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

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

Modélisation des systèmes avec NuSMV. LACL, Université Paris-Est Créteil

Modélisation des systèmes avec NuSMV. LACL, Université Paris-Est Créteil Modélisation des systèmes avec NuSMV Cătălin Dima LACL, Université Paris-Est Créteil Éléments clés à prendre en compte en modélisation Existence des processus/modules/fonctions indépendent(e)s : Processus

Plus en détail

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE Une application se construit par étapes 1) CAHIER DES CHARGES + ANALYSE FONCTIONNELLE = organisation fonctionnelle (QUE FAIRE) 2) ANALYSE OPERATIONNELLE

Plus en détail

Le langage UML : Les diagrammes de séquence. Lydie du Bousquet Lydie.du-bousquet@imag.fr

Le langage UML : Les diagrammes de séquence. Lydie du Bousquet Lydie.du-bousquet@imag.fr Le langage UML : Les diagrammes de séquence Lydie du Bousquet Lydie.du-bousquet@imag.fr 1 Modélisation des interactions Les objets d un système ont un comportement Ils interagissent entre eux Dynamique

Plus en détail

Synchronisation des processus. Didier Verna. didier@lrde.epita.fr http://www.lrde.epita.fr/ didier. Systèmes d Exploitation. Didier Verna EPITA

Synchronisation des processus. Didier Verna. didier@lrde.epita.fr http://www.lrde.epita.fr/ didier. Systèmes d Exploitation. Didier Verna EPITA 1/16 Synchronisation des processus didier@lrde.epita.fr http://www.lrde.epita.fr/ didier 2/16 Table des matières 1 2 Synchronisation matérielle 3 Synchronisation logicielle 4 classiques 4/16 Nécessité

Plus en détail

Le problème des lecteurs et rédacteurs : La communication par envoi de messages. définition. Les processus lecteurs et rédacteurs

Le problème des lecteurs et rédacteurs : La communication par envoi de messages. définition. Les processus lecteurs et rédacteurs Le problème des lecteurs et rédacteurs définition Ce problème généralise celui de l exclusion mutuelle. On distingue deux types de processus : Les lecteurs (readers) qui lisent uniquement l information

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

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

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

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

Principe général : rendez-vous. Synchronisation. Mécanismes de synchronisation. Synchronisation par événements

Principe général : rendez-vous. Synchronisation. Mécanismes de synchronisation. Synchronisation par événements Principe général : rendez-vous Synchronisation Une tâche doit pouvoir : activer une autre tâche ; se bloquer (attendre) ou éventuellement bloquer une autre tâche ; débloquer une ou même plusieurs tâches.

Plus en détail

Synchronisation entre processus

Synchronisation entre processus Synchronisation entre processus Dominique Bouillet et Michel Simatic module CSC4508/M2 Avril 2012 Synchronisation entre processus Plan du document 1 Introduction....................................................................

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

Sémaphores. Plan. But. Introduction Définition Modèle intuitif Remarques

Sémaphores. Plan. But. Introduction Définition Modèle intuitif Remarques Plan Troisième partie Sémaphores 1 Spécification Introduction 2 Utilisation des sémaphores Schémas de base Schéma producteurs/consommateurs Contrôle fin de l accès concurrent aux ressources partagées 3

Plus en détail

CH4 : Programmation Concurrente

CH4 : Programmation Concurrente CH4 : Programmation Concurrente La concurrence dans les L.P et le parallélisme au niveau Matériel sont deux concepts indépendants : Les opérations Matérielles se produisent en parallèle si elles se superposent

Plus en détail

ARCHITECTURES MATÉRIELLES SYSTÈMES INFORMATIQUES

ARCHITECTURES MATÉRIELLES SYSTÈMES INFORMATIQUES CENTRALISÉE RÉPARTIE mémoire locale mémoire locale mémoire locale mémoire locale mémoire locale mémoire locale processeur processeur processeur processeur processeur processeur instructions messages MÉMOIRE

Plus en détail

Cours 3: Coopération entre processus: Synchronisation + Communication

Cours 3: Coopération entre processus: Synchronisation + Communication Cours 3: Coopération entre processus: Synchronisation + Communication Coopération entre processus & Synchronisation + Communication 1. Introduction 2. Rendez-vous de N entités 3. Producteur(s) / Consommateur(s)

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

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

Figure 1. Structure répartie

Figure 1. Structure répartie Chapitre I: Applications Réparties et Middleware 1. Définition d une application répartie Une application répartie est constituée d un ensemble de processus (d objets, d agents, d acteurs) s exécutant

Plus en détail

Université Paris Diderot Master 1 II. Théorie et pratique de la concurrence

Université Paris Diderot Master 1 II. Théorie et pratique de la concurrence Université Paris Diderot Master 1 II Théorie et pratique de la concurrence Partiel du 30 avril 2009 Durée : 1h30. Tous les documents sont autorisés. Le barème est indicatif. Question 1 : Soit le programme

Plus en détail

Initiation au HPC - Programmation concurrente

Initiation au HPC - Programmation concurrente Initiation au HPC - Programmation concurrente Éric Ramat et Julien Dehos Université du Littoral Côte d Opale M2 Informatique 12 octobre 2015 Éric Ramat et Julien Dehos Initiation au HPC - Programmation

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

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

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

Plus en détail

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

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

Claude Kaiser Machine virtuelle et environnement utilisateur SRI_B CHAPITRE 1

Claude Kaiser Machine virtuelle et environnement utilisateur SRI_B CHAPITRE 1 CHAPITRE 1 FOURNIR À L'UTILISATEUR UNE MACHINE VIRTUELLE ET UN ENVIRONNEMENT D'EXÉCUTION DE PROGRAMMES Plan ENVIRONNEMENT DE TRAVAIL ADAPTÉ AU BESOIN DE L'UTILISATEUR Fonctions de l'environnement d'exécution

Plus en détail

Description du démonstrateur. Table des matières

Description du démonstrateur. Table des matières Projet BPMS Sagex-18305 Interopérabilité de systèmes d information d entreprise Description du démonstrateur Table des matières 1 Objectif 2 2 Principes de fonctionnement 5 3 Scénarios détaillés 6 3.1

Plus en détail

Gé n é r icit é e n AD A. Pa q u e t a g e g é n é r iq u e ( 1 /2 )

Gé n é r icit é e n AD A. Pa q u e t a g e g é n é r iq u e ( 1 /2 ) Gé n é r icit é e n AD A La notion de sous-programme permet la réutilisation de code Les paquetages et la POO permettent de réutiliser du code de façon robuste en masquant une partie de celui-ci par excapsulation

Plus en détail

Deuxième partie. Protocoles d exclusion mutuelle. Plan. Interférences et isolation. Isolation Protocoles d exclusion mutuelle

Deuxième partie. Protocoles d exclusion mutuelle. Plan. Interférences et isolation. Isolation Protocoles d exclusion mutuelle Plan Deuxième partie 1 2 Primitives de gestion des activités 2 / 26 4 / 26 Interférences et isolation Contenu de cette partie di cultés résultant d accès concurrents à un objet partagé mise en œuvre de

Plus en détail

Chapitre 4. Le langage PROMELA. (PROcess Meta LAnguage)

Chapitre 4. Le langage PROMELA. (PROcess Meta LAnguage) Chapitre 4 Le langage PROMELA (PROcess Meta LAnguage) PROcess MEta Language [Holzmann] Spécification et vérification de protocoles Abstraction de l'implémentation (niveau conceptuel) Modèle de validation

Plus en détail

Cours de Génie Logiciel

Cours de Génie Logiciel Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes

Plus en détail

Systèmes concurrents

Systèmes concurrents Systèmes concurrents Philippe Quéinnec 14 septembre 2012 Systèmes concurrents 1 / 25 Deuxième partie L'exclusion mutuelle Systèmes concurrents 2 / 25 Isolation L'exclusion mutuelle Plan 1 Interférences

Plus en détail

Modélisation conceptuelle des Systèmes Distribués

Modélisation conceptuelle des Systèmes Distribués Modélisation conceptuelle des Systèmes Distribués Eric Cariou Master Technologies de l'internet 1 ère année Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Systèmes

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

Question 1.1. Modélisation d une machine simple

Question 1.1. Modélisation d une machine simple D'apres TD ENSEEIHT Question 1. Modélisation d une machine à café Corrigé du Travaux Dirigés n 2 Ingénierie des protocoles LOTOS Question 1.1. Modélisation d une machine simple La modélisation de la machine

Plus en détail

Paradigme de programmation Impératif

Paradigme de programmation Impératif Paradigme de programmation Impératif La programmation impérative est caractérisée par, la programmation avec un état et des commandes qui modifient l état : Programmation impérative Procédurale = Programmation

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

Systèmes et applications distribués Intergiciels et applications communicantes

Systèmes et applications distribués Intergiciels et applications communicantes Systèmes et applications distribués Intergiciels et applications communicantes Philippe Quéinnec Télécommunication et Réseaux 2e année ENSEEIHT 24 février 2014 Inspiré de cours de G. Padiou, Ph. Mauran

Plus en détail

Exécution des applications réparties

Exécution des applications réparties Exécution des applications réparties Programmation des Applications Réparties Olivier Flauzac URCA Master STIC-Informatique première année Olivier Flauzac (URCA) PAR : Exécution des applications réparties

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

Un chat en C# Extrait de Wikipédia

Un chat en C# Extrait de Wikipédia Un chat en C# Un chat utilise un mécanisme de communication entre deux applications distantes. Il existe plusieurs solutions pour faire communiquer deux applications ; nous allons, ici, utiliser le protocole

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

Message asynchrone (sans attente)

Message asynchrone (sans attente) 1. COMMUNICATION PAR MESSAGE Message synchrone (rendez-vous simple) l'émetteur attend que le récepteur ait lu le message le récepteur qui attend un message est bloqué jusqu'à son arrivée avantages émetteur

Plus en détail

Modèle spagetthi et solution EAI

Modèle spagetthi et solution EAI EAI Définition L'EAI est une notion ancienne mais toujours d'actualité. En effet, le besoin de faire communiquer des applications développées à des moments différents, dans des technologies différentes

Plus en détail

Les moniteurs : un outil de synchronisation. Exemple 1 : lecture écriture. Exercice 1 : Allocateur de ressources. Exemple 2 : rendez-vous

Les moniteurs : un outil de synchronisation. Exemple 1 : lecture écriture. Exercice 1 : Allocateur de ressources. Exemple 2 : rendez-vous Les moniteurs : un outil de synchronisation Déition : variables d état + procédures utilisant ces variables Procédures en exclusion mutuelle Condition : variable spéciale C.attendre: blocage du processus

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

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

Initiation aux bases de données et à la programmation événementielle

Initiation aux bases de données et à la programmation événementielle Initiation aux bases de données et à la programmation événementielle Cours N 6 : VBA sous ACCESS Souheib BAARIR. Page web : http://pagesperso-systeme.lip6.fr/souheib.baarir/bdvba/support.htm E-mail : souheib.baarir@u-paris10.fr

Plus en détail

Langage de nouvelle génération pour la modélisation et la vérification formelle de systèmes parallèles asynchrones

Langage de nouvelle génération pour la modélisation et la vérification formelle de systèmes parallèles asynchrones Langage de nouvelle génération pour la modélisation et la vérification formelle de systèmes parallèles asynchrones Frédéric Lang LIG et Inria/CONVECS CADP (Construction and Analysis of Distributed Processes)

Plus en détail

PROCESSUS ET RESSOURCES

PROCESSUS ET RESSOURCES Chapitre 5 PROCESSUS ET RESSOURCES 1. GENERALITES Un processus à exécuter a besoin de ressources : procédures et données, mémoire, processeur (UC, et d'autres éventuellement), périphériques, fichiers,...

Plus en détail

Chapitre 2. Classes et objets

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

Plus en détail

Le modèle client-serveur

Le modèle client-serveur Le modèle client-serveur Olivier Aubert 1/24 Sources http://www.info.uqam.ca/~obaid/inf4481/a01/plan.htm 2/24 Historique architecture centralisée terminaux passifs (un seul OS, systèmes propriétaires)

Plus en détail

Communication par passage de messages

Communication par passage de messages Communication par passage de messages Notion de canal de communication par mémoire partagée 29/05/2007 Messages en mémoire partagée 1 Canaux en mémoire partagée Envoi et réception de messages à travers

Plus en détail

Modèle Client-Serveur Partage du serveur entre clients

Modèle Client-Serveur Partage du serveur entre clients Modèle Client-Serveur Partage du serveur entre clients Un serveur peut servir plusieurs clients Vu d un client particulier client requête réponse serveur Vu du serveur Gestion des requêtes (priorité) Exécution

Plus en détail

Le but de ce chapitre est de présenter quelques méthodes et outils qui ont été proposés pour résoudre le problème de la programmation concurrente.

Le but de ce chapitre est de présenter quelques méthodes et outils qui ont été proposés pour résoudre le problème de la programmation concurrente. 7 CHAPITRE II : METHODES ET OUTILS DE SYNCHRONISATION Le but de ce chapitre est de présenter quelques méthodes et outils qui ont été proposés pour résoudre le problème de la programmation concurrente.

Plus en détail

Ada et les rendez-vous

Ada et les rendez-vous Rendez-vous en Ada Alain Sandoz Hiver 2005-2006 1 Ada et les rendez-vous Concept de rendez-vous CSP (Communicating Sequential Processes, Hoare 1978): deux commandes: P! e envoi de la valeur de l'expression

Plus en détail

EP 1 931 091 A1 (19) (11) EP 1 931 091 A1 (12) DEMANDE DE BREVET EUROPEEN. (43) Date de publication: 11.06.2008 Bulletin 2008/24

EP 1 931 091 A1 (19) (11) EP 1 931 091 A1 (12) DEMANDE DE BREVET EUROPEEN. (43) Date de publication: 11.06.2008 Bulletin 2008/24 (19) (12) DEMANDE DE BREVET EUROPEEN (11) EP 1 931 091 A1 (43) Date de publication: 11.06.2008 Bulletin 2008/24 (51) Int Cl.: H04L 12/58 (2006.01) (21) Numéro de dépôt: 07291423.7 (22) Date de dépôt: 29.11.2007

Plus en détail

Utilisation des B.A.L (File de messages) Unix

Utilisation des B.A.L (File de messages) Unix Utilisation des B.A.L (File de messages) Unix 1. Introduction L'utilisation des boites aux lettres (B.A.L) pour la synchronisation avec échange de messages, suppose défini un ensemble de constantes et

Plus en détail

Synchronisation et communication entre processus

Synchronisation et communication entre processus Synchronisation et communication entre processus Interblocage et coalition Joëlle Delacroix AMSI1999/2000 1 INTRODUCTION Système multiprocessus L'ordonnancement "entrelace" les exécutions P1 P2 P3 Processus

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

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

EX4C Systèmes d exploitation. Séance 6 Synchronisation

EX4C Systèmes d exploitation. Séance 6 Synchronisation EX4C Systèmes d exploitation Séance 6 Synchronisation Sébastien Combéfis vendredi 21 novembre 2014 Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution Pas d

Plus en détail

Cours 1 : Un micro-noyau en OCaml 21 février 2015. 1 Interface et structures de données pour les appels système

Cours 1 : Un micro-noyau en OCaml 21 février 2015. 1 Interface et structures de données pour les appels système Systèmes et Réseaux ENS L3 Info. Année 2014-2015 Cours 1 : Un micro-noyau en OCaml 21 février 2015 L objectif est de programmer un micro-noyau simplifié d un système d exploitation. 1 Son rôle est d ordonnancer

Plus en détail

Systèmes d'informations

Systèmes d'informations Systèmes d'informations C'est un ensemble d'outils pour stocker / gérer / diffuser des informations / des données Le stockage : Bases de données + SGDBR La gestion : Saisie, Mise à jour, Contrôle La diffusion

Plus en détail

ELE-542 Systèmes ordinés en temps réels. Cours # 10 Contrôle d accès et synchronisation

ELE-542 Systèmes ordinés en temps réels. Cours # 10 Contrôle d accès et synchronisation ELE-542 Systèmes ordinés en temps réels Cours # 10 Contrôle d accès et synchronisation Jean-Marc Beaulieu et Bruno De Kelper Site internet: http://www.ele.etsmtl.ca/academique/ele542/ Systèmes ordinés

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

Programmation VBA. Identificateurs. Types de base. Déclaration d une variable. Commentaires. Activer l onglet Développeur (Excel)

Programmation VBA. Identificateurs. Types de base. Déclaration d une variable. Commentaires. Activer l onglet Développeur (Excel) Activer l onglet Développeur (Excel) Programmation VBA Michel Reid Cliquez sur le bouton Office (coin supérieur gauche) Cliquez sur le bouton Options Excel Dans la section Standard, cochez la case Afficher

Plus en détail

%DUELHU)UpGpULF*, /RXUG5RGROSKH*, (',7,21&2//$%25$7,9( 5$33257

%DUELHU)UpGpULF*, /RXUG5RGROSKH*, (',7,21&2//$%25$7,9( 5$33257 %DUELHU)UpGpULF*, /RXUG5RGROSKH*, (',7,21&2//$%25$7,9( 5$33257 6200$,5( 1. Cahier des charges...3 a. Création...3 b. Ouverture...3 c. Modification...3 d. Fermeture...3 e. Schéma de l'interface...4 2. Spécifications...5

Plus en détail

Parallélisme1. Problèmes du parallélisme et Outils permettant de les résoudre. M. Ould Braham. Master1 (DMI/FST Limoges) 1

Parallélisme1. Problèmes du parallélisme et Outils permettant de les résoudre. M. Ould Braham. Master1 (DMI/FST Limoges) 1 Parallélisme1 Problèmes du parallélisme et Outils permettant de les résoudre M. Ould Braham Master1 (DMI/FST Limoges) 1 Contenu du cours (9h, 6 Séances) Problèmes du parallélisme Modèles de fonctionnement

Plus en détail

Cours PL/SQL. Cours PL/SQL. E.Coquery. emmanuel.coquery@liris.cnrs.fr

Cours PL/SQL. Cours PL/SQL. E.Coquery. emmanuel.coquery@liris.cnrs.fr Cours PL/SQL E.Coquery emmanuel.coquery@liris.cnrs.fr Programmation au sein du SGBD Pourquoi? Les contraintes prédéfinies ne sont pas toujours suffisantes. Exemple : tout nouveau prix pour un CD doit avoir

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

Un intergiciel adaptable à l'énergie pour les réseaux mobiles ad hoc

Un intergiciel adaptable à l'énergie pour les réseaux mobiles ad hoc Un intergiciel adaptable à l'énergie pour les réseaux mobiles ad hoc Guilhem Paroux, Isabelle Demeure ENST France Télécom R&D Contexte Réseau mobile ad hoc (MANET) Pas d'infrastructure préexistante 20

Plus en détail

Courrier Electronique. MESSAGERIE X400 Messagerie SMTP

Courrier Electronique. MESSAGERIE X400 Messagerie SMTP MESSAGERIE X400 Messagerie SMTP 343 Différents types : Messagerie centralisée Toutes les boites à lettres sont sur le même serveur de messagerie Exemples : Mail Unix Messagerie G.E. à Amsterdam Messageries

Plus en détail

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application

Plus en détail

Abstraction: introduction. Abstraction et liaison dans les langages de programmation. Abstraction: principe. Abstraction: terminologie. N.

Abstraction: introduction. Abstraction et liaison dans les langages de programmation. Abstraction: principe. Abstraction: terminologie. N. Abstraction et liaison dans les langages de programmation LIN2: Paradigmes de programmation N. Hameurlain Abstraction: introduction L'importance de l abstraction découle de sa capacité de cacher les détails

Plus en détail

Synthèse PL SQL ORACLE. Declaration des variables, des constants, des exceptions et des curseurs.

Synthèse PL SQL ORACLE. Declaration des variables, des constants, des exceptions et des curseurs. Synthèse PL SQL ORACLE Bloc PL-SQL DECLARE Declaration des types, des variables, des constantes, des exceptions et des curseurs. BEGIN [nom du bloc] EXCEPTION Traitement des erreurs END [nom du bloc] Declaration

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 4 : PL/SQL : ou comment faire plus avec ORACLE 2ème partie Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Exceptions Rappels bloc PL/SQL Definition

Plus en détail

LotosNT : modélisation et vérification

LotosNT : modélisation et vérification LotosNT : modélisation et vérification Construction Formelle de Logiciels Christian Attiogbé, Meriem Ouederni Janvier 2012 Christian Attiogbé, Meriem Ouederni (Janvier 2012) LotosNT : modélisation et vérification

Plus en détail

PROCEDURE (v: Véhicule) Coût* (nbpass: INTEGER; dist: REAL): REAL, NEW, ABSTRACT;

PROCEDURE (v: Véhicule) Coût* (nbpass: INTEGER; dist: REAL): REAL, NEW, ABSTRACT; MODULE TransportsAbstrait; TYPE Véhicule = POINTER TO ABSTRACT RECORD prix: REAL; nbpassmax: INTEGER ChoseTransportée =POINTER TO ABSTRACT RECORD poids: REAL; ident: ARRAY 81 OF CHAR PROCEDURE (v: Véhicule)

Plus en détail

Algorithmique des Systèmes Répartis Protocoles de Communications

Algorithmique des Systèmes Répartis Protocoles de Communications Algorithmique des Systèmes Répartis Protocoles de Communications Master Informatique Dominique Méry Université de Lorraine 1 er avril 2014 1 / 70 Plan Communications entre processus Observation et modélisation

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

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12 Table des matières Les Triggers... 2 Syntaxe... 2 Explications... 2 Les évènements déclencheurs des triggers... 3 Les modes de comportements des triggers... 4 Les pseudo tables... 5 Exemple... 6 Les procédures

Plus en détail

MODULE TransportsAbstrait; TYPE Véhicule* = POINTER TO ABSTRACT RECORD prix*: REAL; nbpassmax*: INTEGER END;

MODULE TransportsAbstrait; TYPE Véhicule* = POINTER TO ABSTRACT RECORD prix*: REAL; nbpassmax*: INTEGER END; MODULE TransportsAbstrait; Véhicule = POINTER TO ABSTRACT RECORD prix: REAL; nbpassmax: INTEGER ChoseTransportée =POINTER TO ABSTRACT RECORD poids: REAL; ident: ARRAY 81 OF CHAR PROCEDURE (v: Véhicule)

Plus en détail

Résumé du chapitre 3 Synchronisation entre processus : de producteur/consommateur aux sémaphores

Résumé du chapitre 3 Synchronisation entre processus : de producteur/consommateur aux sémaphores Résumé du chapitre 3 Synchronisation entre processus : de producteur/consommateur aux sémaphores Jacques Mossière 22 septembre 2008 1 Introduction Nous étudions dans ce chapitre la réalisation des processus

Plus en détail