EX4C Systèmes d exploitation. Séance 6 Synchronisation
|
|
- Mathilde Clémence Giroux
- il y a 8 ans
- Total affichages :
Transcription
1 EX4C Systèmes d exploitation Séance 6 Synchronisation Sébastien Combéfis vendredi 21 novembre 2014
2 Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution Pas d Utilisation Commerciale Pas de Modification 4.0 International.
3 Objectifs Décrire et comprendre la synchronisation de processus Comprendre le problème de la section critique Solution software : Algorithme de Peterson Solutions hardware : Test and Set, Compare and Swap Solutions apportées par l OS Sémaphore et moniteur Exemples de problème de synchronisation 3
4 Partage de données Deux processus peuvent partager des données Par exemple avec une zone de mémoire partagée Un processus peut être retiré du CPU à tout moment Des conditions de course peuvent se produire Lorsque plusieurs processus manipulent des données partagées 4
5 Condition de course Le producteur ajoute un élément au buffer s il reste de la place w h i l e ( t r u e ) w h i l e ( c o u n t e r == BUFFER_SIZE) b u f f e r [ i n ] = next_produced ; i n = ( i n + 1) % BUFFER_SIZE ; c o u n t e r ++; Le consommateur retire un élément du buffer s il y en a w h i l e ( t r u e ) w h i l e ( c o u n t e r == 0) next_consumed = b u f f e r [ out ] ; out = ( out + 1) % BUFFER_SIZE ; c o u n t e r ; 5
6 Traduction en langage machine La variable counter est partagée entre les processus Supposons que la valeur de counter soit 5 counter modifiée de manière concurrente par les deux processus counter++ R 1 := counter R 1 := R counter := R 1 counter-- R 2 := counter R 2 := R 2 1 counter := R 2 6
7 Entrelacement des instructions Instructions entrelacées lors d une exécution concurrente T 0 producteur R 1 := counter R 1 = 5 T 1 producteur R 1 := R R 1 = 6 T 2 consommateur R 2 := counter R 2 = 5 T 3 consommateur R 2 := R 2 1 R 2 = 4 T 4 producteur counter := R 1 counter = 6 T 5 consommateur counter := R 2 counter = 4 Il faut interdire la modification concurrente de counter La solution est de synchroniser les processus 7
8 Opération atomique Une opération atomique ne peut être interrompue Elle doit être exécutée dans son entièreté Les opérations counter++ et counter-- doivent être exécutées de manière atomique 8
9 Le problème de la section critique Soit un système avec n processus en compétition P 1,..., P n Chaque processus possède une section critique Le processus accès aux ressources partagées dans cette section Lorsqu un processus rentre dans sa section critique, aucun autre ne peut rentrer dans la sienne Un processus doit obtenir l autorisation 9
10 Structure des processus Section d entrée : demande pour entrer en section critique Section de sortie : fin de l utilisation des ressources partagées do section d entrée // section critique section de sortie // section restante w h i l e ( t r u e ) ; 10
11 Conditions d une solution Trois conditions doivent être satisfaites pour solutionner le problème de la section critique 1 Exclusion mutuelle Si un processus est dans sa section critique, aucun autre processus ne peut être dans la sienne 2 Progression Si aucun processus n est en section critique et certains veulent rentrer dans la leur, la sélection de qui va pouvoir y rentrer ne peut être postposée indéfiniment 3 Attente limitée Entre la demande pour rentrer dans sa section critique et l autorisation, seul un nombre limité d autres processus pourront rentrer dans la leur 11
12 Première partie Solutions software
13 Solution 1 : Attente active I Une variable partagée initialisée à zéro int turn = 0; do w h i l e ( t u r n!= i ) // section critique t u r n = j ; // section restante w h i l e ( t r u e ) ; 13
14 Solution 1 : Attente active II Attente active Les processus passent leur temps à vérifier la valeur de turn Les processus ne peuvent rien faire de productif en attendant Inconvénients Les processus doivent s alterner de manière stricte Un processus qui plante bloque le suivant Ne satisfait pas à la condition de progression 14
15 Solution 2 Deux variables partagées initialisées à false bool flag [2]; flag [0] = flag [1] = false ; do w h i l e ( f l a g [ j ] ) f l a g [ i ] = t r u e ; // section critique f l a g [ i ] = f a l s e ; // section restante w h i l e ( t r u e ) ; Ne satisfait pas à la condition d exclusion mutuelle 15
16 Solution 3 On indique a priori l intention de rentrer en section critique Risque d interblocage : condition de progression pas satisfaite do f l a g [ i ] = t r u e ; w h i l e ( f l a g [ j ] ) // section critique f l a g [ i ] = f a l s e ; // section restante w h i l e ( t r u e ) ; 16
17 Solution 4 Risque de «courtoisie mutuelle» do f l a g [ i ] = t r u e ; w h i l e ( f l a g [ j ] ) f l a g [ i ] = f a l s e ; // attente f l a g [ i ] = t r u e ; // section critique f l a g [ i ] = f a l s e ; // section restante w h i l e ( t r u e ) ; 17
18 Algorithm de Peterson Chaque processus reçoit son tour dans sa section critique do f l a g [ i ] = t r u e ; t u r n = j ; w h i l e ( f l a g [ j ] && t u r n == j ) // section critique f l a g [ i ] = f a l s e ; // section restante w h i l e ( t r u e ) ; 18
19 Deuxième partie Solutions hardware
20 Désactivation des interruptions Désactivation des interruptions Approche prise par les kernel non-préemptif Le processeur est limité dans sa capacité d entrelacement Problème avec le multiprocessing Le temps que le message de désactivation passe prend du temps 20
21 Test and set I Lire et modifier une valeur de manière atomique test_and_set exécutée de manière atomique Simule une instruction hardware disponible b o o l t e s t _ a n d _ s e t ( b o o l e a n t a r g e t ) b o o l r v = t a r g e t ; t a r g e t = t r u e ; r e t u r n r v ; 21
22 Test and set II Protection des sections critiques à l aide de verrous Une variable partagée initialisée à false bool lock = false ; do w h i l e ( t e s t _ a n d _ s e t (& l o c k ) ) // section critique l o c k = f a l s e ; // section restante w h i l e ( t r u e ) ; 22
23 Compare and swap I Comparer deux valeurs et les échanger de manière atomique compare_and_swap exécutée de manière atomique Simule une instruction hardware disponible b o o l compare_and_swap ( i n t v a l, i n t exp, i n t newval ) i n t temp = v a l ; i f ( v a l == exp ) v a l = newval ; r e t u r n temp ; 23
24 Compare and swap II Protection des sections critiques à l aide de verrous Une variable partagée initialisée à 0 int lock = 0; do w h i l e ( compare_and_swap (& l o c k, 0, 1)!= 0) // section critique l o c k = 0 ; // section restante w h i l e ( t r u e ) ; 24
25 Troisième partie Solutions OS
26 Mutex lock Mutex Lock (MUTual EXclusion) Problème d attente active Deux opérations possibles Acquisition du verrou : acquire Libération du verrou : release Exécution atomique des deux fonctions a c q u i r e ( ) w h i l e (! a v a i l a b l e ) a v a i l a b l e = f a l s e ; r e l e a s e ( ) a v a i l a b l e = t r u e ; 26
27 Sémaphore Variable entière utilisée pour la signalisation Un processus se bloque en l attente d un signal Plusieurs processus en attente se mettent dans une file Deux opérations atomiques possibles Se mettre en attente d un signal : wait Produire un signal : signal w a i t ( S ) w h i l e ( S <= 0) S ; s i g n a l ( S ) S++; 27
28 Synchronisation de processus Utilisation d un sémaphore pour synchroniser deux processus Si les instructions S 2 de P 2 ne doivent pas être exécutées avant les instructions S 1 de P 1 S 1 ; s i g n a l ( synch ) ; w a i t ( synch ) ; S 2 ; 28
29 Élimination de l attente active Après un wait, le processus doit être bloqué File d attente associée au sémaphore w a i t ( semaphore S ) S >v a l u e ; i f ( S >v a l u e < 0) add ( S >l i s t, P ) ; b l o c k ( ) ; s i g n a l ( semaphore S ) S >v a l u e ++; i f ( S >v a l u e <= 0) P = remove ( S > l i s t ) ; wakeup (P ) ; 29
30 Interblocage Deux processus bloqués, chacun en l attente de l autre P 0 w a i t ( S ) ; w a i t (Q) ;... s i g n a l ( S ) ; s i g n a l (Q) ; P 1 w a i t (Q) ; w a i t ( S ) ;... s i g n a l (Q) ; s i g n a l ( S ) ; 30
31 Moniteur Un moniteur est une structure de données plus haut niveau Un seul processus à la fois peut être actif dans le moniteur monitor nom // v a r i a b l e s p a r t a g é e s... // f o n c t i o n s function P1 (... )... function P2 (... ) function i n i t (... )... 31
32 Condition Type spécial de variable appelée condition Deux opérations possibles sur une condition x Se mettre en attente sur la condition : x.wait() Libère un processus en attente : x.signal() 32
33 Quatrième partie Exemples de problèmes
34 Bounded-buffer problem Variables partagées i n t n ; semaphore mutex = 1, empty = n, f u l l = 0 ; Producteur et consommateur do // produce item w a i t ( empty ) ; w a i t ( mutex ) ; // add item s i g n a l ( mutex ) ; s i g n a l ( f u l l ) ; w h i l e ( t r u e ) ; do w a i t ( f u l l ) ; w a i t ( mutex ) ; // remove item s i g n a l ( mutex ) ; s i g n a l ( empty ) ; // consume item w h i l e ( t r u e ) ; 34
35 Readers-Writers problem I Une base de données partagée entre des readers et des writers Le reader ne fait que lire des données Le writer peut lire et écrire des données Deux variations 1 Un reader ne peut pas attendre, sauf si un writer est occupé 2 Lorsqu un writer est prêt, il aura très vite l accès 35
36 Readers-Writers problem II Variables partagées semaphore rw_mutex = 1, mutex = 1 ; i n t read_count = 0 ; Writer et reader do w a i t ( rw_mutex ) ; // w r i t i n g s i g n a l ( rw_mutex ) ; w h i l e ( t r u e ) ; do w a i t ( mutex ) ; read_count++; i f ( read_count == 1) w a i t ( rw_mutex ) ; s i g n a l ( mutex ) ; // r e a d i n g w a i t ( mutex ) ; read_count ; i f ( read_count == 0) s i g n a l ( rw_mutex ) ; s i g n a l ( mutex ) ; w h i l e ( t r u e ) ; 36
37 Dining philosopher do w a i t ( c h o p s t i c k [ i ] ) ; w a i t ( c h o p s t i c k [ ( i + 1) % N ] ) ; // e a t s i g n a l ( c h o p s t i c k [ i ] ) ; s i g n a l ( c h o p s t i c k [ ( i + 1) % N ] ) ; // t h i n k w h i l e ( t r u e ) ; 37
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étail4. 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étailOn appelle variable condition une var qui peut être testée et
Un concept plus général: g Variables condition On appelle variable condition une var qui peut être testée et endort le thread qui la teste si la condition est fausse le réveille quand la condition devient
Plus en détailIntroduction à 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étailCours 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étailExclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011
Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique
Plus en détailCours 2: Exclusion Mutuelle entre processus (lourds, ou légers -- threads)
Cours 2: Exclusion Mutuelle entre processus (lourds, ou légers -- threads) Concurrence entre processus & Problème d Exclusion Mutuelle 1. Introduction 2. Solutions avec attente active, dites Sans Arbitrage
Plus en détailLes 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étailINTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores
INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN
Plus en détail4. Outils pour la synchronisation F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr
4. Outils pour la synchronisation F. Boyer, Laboratoire Sardes 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étailSynchro et Threads Java TM
Synchro et Threads Java TM NICOD JEAN-MARC Master 2 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2008 NICOD JEAN-MARC Synchro et Threads avec Java TM 1 / 32 Sommaire
Plus en détailChapitre 4 : Exclusion mutuelle
Chapitre 4 : Exclusion mutuelle Pierre Gançarski Juillet 2004 Ce support de cours comporte un certain nombre d erreurs : je décline toute responsabilité quant à leurs conséquences sur le déroulement des
Plus en détailSystèmes d exploitation Gestion de processus
Systèmes d exploitation Gestion de processus SITE : http://www.sir.blois.univ-tours.fr/ mirian/ Systèmes d exploitation - Mírian Halfeld-Ferrari p. 1/5 Les processus, à quoi ça sert? À faire plusieurs
Plus en détailJ2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation
J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation Cycle Ingénierie 2e année SIGL Dernière mise à jour : 19/10/2006 Christophe Porteneuve Threads Principes Cycle de vie Création java.lang.thread
Plus en détailINTRODUCTION À 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étailInfo0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java
Info0604 Programmation multi-threadée Cours 5 Programmation multi-threadée en Java Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 18 février 2015 Plan
Plus en détailCours Bases de données 2ème année IUT
Cours Bases de données 2ème année IUT Cours 12 : Concurrence d accès Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Accès concurrents Définitions Verrous Collisions Niveaux de cohérence Blocage
Plus en détailTemps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011
Temps Réel Jérôme Pouiller Septembre 2011 Ordonnancement avec contraintes de précédance Problèmatique des accès concurents Problème liés aux partage de ressources Solutions utres
Plus en détailTemps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011
Temps Réel Jérôme Pouiller Septembre 2011 Sommaire Problèmatique Le monotâche Le multitâches L ordonnanement Le partage de ressources Problèmatiques des OS temps réels J. Pouiller
Plus en détailModélisation des interfaces matériel/logiciel
Modélisation des interfaces matériel/logiciel Présenté par Frédéric Pétrot Patrice Gerin Alexandre Chureau Hao Shen Aimen Bouchhima Ahmed Jerraya 1/28 TIMA Laboratory SLS Group 46 Avenue Félix VIALLET
Plus en détailLes transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions
1/46 2/46 Pourquoi? Anne-Cécile Caron Master MAGE - SGBD 1er trimestre 2014-2015 Le concept de transaction va permettre de définir des processus garantissant que l état de la base est toujours cohérent
Plus en détailChapitre 2. Les processus. 2.1 Introduction. 2.2 les différents états d un processus
Chapitre 2 Les processus 2.1 Introduction Le processus est un concept clé dans un système d exploitation. Un processus est un programme en cours d exécution. C est-à-dire, un programme à l état actif.
Plus en détailIntroduction aux systèmes temps réel. Iulian Ober IRIT ober@iut-blagnac.fr
Introduction aux systèmes temps réel Iulian Ober IRIT ober@iut-blagnac.fr Sommaire Généralités Caractéristiques récurrentes des STR Types de problèmes soulevées Programmation des STR Prog. concurrente
Plus en détailExercices INF5171 : série #3 (Automne 2012)
Exercices INF5171 : série #3 (Automne 2012) 1. Un moniteur pour gérer des ressources Le moniteur MPD 1 présente une première version d'un moniteur, exprimé en pseudo-mpd, pour gérer des ressources le nombre
Plus en détailLOG4430 : Architecture et conception avancée
LOG4430 : Architecture et conception avancée Abdou Maiga Patrons pour la conception d applications distribuées Département de génie informatique et de génie logiciel École Polytechnique de Montréal Guéhéneuc,
Plus en détailIntroduction : les processus. Introduction : les threads. Plan
IN328 Programmation distribuée avec Java et J2EE 2 - Threads en Java Introduction : les processus Un processus est un ensemble d instructions à exécuter, un espace mémoire réservé et éventuellement d autres
Plus en détailPRINCIPLES OF OPERATING SYSTEMS L. BENTABET, Bishop s University, Winter 2007 Notes par Philippe Giabbanelli
PRINCIPLES OF OPERATING SYSTEMS L. BENTABET, Bishop s University, Winter 2007 Notes par Philippe Giabbanelli I. Definitions and history 1) What is a Computer System? It is a set of users, system and applications,
Plus en détailRéplication des données
Réplication des données Christelle Pierkot FMIN 306 : Gestion de données distribuées Année 2009-2010 Echange d information distribuée Grâce à un serveur central Une seule copie cohérente Accès à distance
Plus en détailProjet gestion d'objets dupliqués
Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués
Plus en détailInitiation au HPC - Généralités
Initiation au HPC - Généralités Éric Ramat et Julien Dehos Université du Littoral Côte d Opale M2 Informatique 2 septembre 2015 Éric Ramat et Julien Dehos Initiation au HPC - Généralités 1/49 Plan du cours
Plus en détailBases de données et sites WEB Licence d informatique LI345
Bases de données et sites WEB Licence d informatique LI345 Anne Doucet Anne.Doucet@lip6.fr http://www-bd.lip6.fr/ens/li345-2013/index.php/lescours 1 Contenu Transactions en pratique Modèle relationnel-objet
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 Automne 2013 Date : 11 octobre 2013 de 18h à 20h Professeur : Boucheneb Hanifa Documentation
Plus en détailProcessus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace
Processus 1) Contexte 2) Modèles de Notion de Points de vue Modèle fourni par le SX Opérations sur les 3) Gestion des Représentation des Opérations 4) Ordonnancement des Niveaux d ordonnancement Ordonnancement
Plus en détailIV- Comment fonctionne un ordinateur?
1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions
Plus en détailLe langage C. Séance n 4
Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de
Plus en détail<Insert Picture Here> Solaris pour la base de donnés Oracle
Solaris pour la base de donnés Oracle Alain Chéreau Oracle Solution Center Agenda Compilateurs Mémoire pour la SGA Parallélisme RAC Flash Cache Compilateurs
Plus en détailUn 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étailIntegrated Modular Avionic
Integrated Modular Avionic Laurent Pautet Laurent.Pautet@enst.fr Version 1.1 Laurent Pautet 1 Systèmes avioniques Ensemble de fonctions permettant à un aéronef civil ou militaire d exécuter sa mission
Plus en détailM2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013
Rendu Temps Réel - OpenGL 4 et compute shaders December 18, 2013 résumé des épisodes précédents... création des objets opengl, organisation des données, configuration du pipeline, draw,... opengl 4.3 :
Plus en détailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailOrdonnancement temps réel
Ordonnancement temps réel Laurent.Pautet@enst.fr Version 1.5 Problématique de l ordonnancement temps réel En fonctionnement normal, respecter les contraintes temporelles spécifiées par toutes les tâches
Plus en détailImplémentation des SGBD
Implémentation des SGBD Structure générale des applications Application utilisateur accédant à des données d'une base Les programmes sous-jacents contiennent du code SQL Exécution : pendant l'exécution
Plus en détailOrdinateurs, Structure et Applications
Ordinateurs, Structure et Applications Cours 10, Les interruptions Etienne Tremblay Université Laval, Hiver 2012 Cours 10, p.1 Les interruptions du 8086 Une interruption interrompt l exécution séquentielle
Plus en détailGestion des transactions et accès concurrents dans les bases de données relationnelles
Gestion des transactions et accès concurrents dans les bases de données relationnelles Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Fev.
Plus en détailREALISATION d'un. ORDONNANCEUR à ECHEANCES
REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6
Plus en détailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailIntroduction aux Systèmes et aux Réseaux
Introduction aux Systèmes et aux Réseaux Cours 5 Processus D après un cours de Julien Forget (univ Lille1) Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI -
Plus en détailThreads. Threads. USTL http://www.lifl.fr/ routier 1
Threads USTL http://www.lifl.fr/ routier 1 Rappels - Définitions un Process est un programme qui tourne et dispose de ses propres ressources mémoire. OS multi-tâche plusieurs process en concurrence un
Plus en détailCEG4566/CSI4541 Conception de systèmes temps réel
CEG4566/CSI4541 Conception de systèmes temps réel Chapitre 6 Vivacité, sécurité (Safety), fiabilité et tolérance aux fautes dans les systèmes en temps réel 6.1 Introduction générale aux notions de sécurité
Plus en détailSGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)
SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients
Plus en détailProgrammation d Applications Concurrentes et Distribuées (INF431)
Programmation d Applications Concurrentes et Distribuées (INF431) Julien Cervelle Albert Cohen Eric Goubault Francesco Zappa Nardelli François Pottier Samuel Mimram Benjamin Werner 1er janvier 2015 2 Table
Plus en détailÉléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailNoyau de concurrence par moniteur pour Java ou C# pour une autre sémantique plus fiable et plus performante
Noyau de concurrence par moniteur pour Java ou C# pour une autre sémantique plus fiable et plus performante Claude Kaiser, Jean-François Pradat-Peyre CEDRIC - CNAM Paris 292, rue St Martin, 75003 Paris
Plus en détailExécutif temps réel Pierre-Yves Duval (cppm)
Exécutif temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 Plan Exécutif Tâches Evénements et synchronisation Partage de ressources Communications
Plus en détailEtude d Algorithmes Parallèles de Data Mining
REPUBLIQUE TUNISIENNE MINISTERE DE L ENSEIGNEMENT SUPERIEUR, DE LA TECHNOLOGIE ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITE DE TUNIS ELMANAR FACULTE DES SCIENCES DE TUNIS DEPARTEMENT DES SCIENCES DE L INFORMATIQUE
Plus en détailCours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
Plus en détailGestion des processus
65 La Gestion des Processus 1 Définitions, exemples 2. Politiques d'allocation du processeur 3. Synchronisation des processus 66 Programme : Un programme est une suite figée d'instructions, un ensemble
Plus en détailMétriques de performance pour les algorithmes et programmes parallèles
Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and
Plus en détailCours de Base de Données Cours n.12
Cours de Base de Données Cours n.12 Gestion des transactions : contrôle de concurrence Elisabetta De Maria - http://www.i3s.unice.fr/ edemaria/ UFR Sciences et Laboratoire I3S, CNRS 2013-2014 Université
Plus en détailTP3 : Manipulation et implantation de systèmes de fichiers 1
École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande
Plus en détailINF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1
INF6500 : Structures des ordinateurs Sylvain Martel - INF6500 1 Cours 4 : Multiprocesseurs Sylvain Martel - INF6500 2 Multiprocesseurs Type SISD SIMD MIMD Communication Shared memory Message-passing Groupe
Plus en détailNotion de thread (1/2)
Notion de thread (1/2) La machine virtuelle java (JVM) permet d'exécuter plusieurs traitements en parallèle (en pratique, ils s'exécutent par tranche et en alternance sur le processeur). Ces traitements
Plus en détailARDUINO DOSSIER RESSOURCE POUR LA CLASSE
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée
Plus en détailSimulation centrée individus
Simulation centrée individus Théorie des jeux Bruno BEAUFILS Université de Lille Année 4/5 Ce document est mis à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les
Plus en détailBases de données avancées Concurrence d'accès et reprise
Bases de données avancées Concurrence d'accès et reprise Dan VODISLAV Université de Cergy-Pontoise Master Informatique M1 Cours BDA Plan La notion de transaction Les problèmes de la concurrence Problèmes
Plus en détailDAns un système multi-utilisateurs à temps partagé, plusieurs processus
Chapitre 8 Ordonnancement des processus Dns un système multi-utilisateurs à temps partagé, plusieurs processus peuvent être présents en mémoire centrale en attente d exécution. Si plusieurs processus sont
Plus en détailEX4C Systèmes d exploitation. Séance 14 Structure des stockages de masse
EX4C Systèmes d exploitation Séance 14 Structure des stockages de masse Sébastien Combéfis mardi 3 mars 2015 Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution
Plus en détailEntraînement à l épreuve de QCM 40 mn
Entraînement à l épreuve de QCM 40 mn 1. Le nombre qui suit le nombre 4 en base 5 est : a) 10 b) 5 c) 0 d) A 2. Langages : quelle affirmation est fausse? a) Un programme écrit dans un langage dit "compilé"
Plus en détailModule BDR Master d Informatique (SAR)
Module BDR Master d Informatique (SAR) Cours 9- Transactions réparties Anne Doucet Anne.Doucet@lip6.fr Transactions réparties Gestion de transactions Transactions dans un système réparti Protocoles de
Plus en détailWindows Internet Name Service (WINS)
Windows Internet Name Service (WINS) WINDOWS INTERNET NAME SERVICE (WINS)...2 1.) Introduction au Service de nom Internet Windows (WINS)...2 1.1) Les Noms NetBIOS...2 1.2) Le processus de résolution WINS...2
Plus en détail4 Exemples de problèmes MapReduce incrémentaux
4 Exemples de problèmes MapReduce incrémentaux 1 / 32 Calcul des plus courtes distances à un noeud d un graphe Calcul des plus courts chemins entre toutes les paires de noeuds d un graphe Algorithme PageRank
Plus en détailACTIVITÉ DE PROGRAMMATION
ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,
Plus en détailCahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7
Cahier des charges driver WIFI pour chipset Ralink RT2571W sur hardware ARM7 RevA 13/03/2006 Création du document Sylvain Huet RevB 16/03/2006 Fusion des fonctions ARP et IP. SH Modification des milestones
Plus en détailIntroduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr
Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université
Plus en détailChapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping
Chapitre V : La gestion de la mémoire Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Introduction Plusieurs dizaines de processus doivent se partager
Plus en détailFigure 3.1- Lancement du Gambit
3.1. Introduction Le logiciel Gambit est un mailleur 2D/3D; pré-processeur qui permet de mailler des domaines de géométrie d un problème de CFD (Computational Fluid Dynamics).Il génère des fichiers*.msh
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détailIntroduction à l informatique en BCPST
Introduction à l informatique en BCPST Alexandre Benoit BCPST L informatique en BCPST «L enseignement de l informatique en classes préparatoires de la filière BCPST a pour objectif d introduire puis de
Plus en détailIntroduction à 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étailWORKSHOP OBIEE 11g (version 11.1.1.5) PRE-REQUIS:
WORKSHOP OBIEE 11g (version 11.1.1.5) Durée du workshop: 2 jours Profil des participants du workshop: Profil fonctionnel ou technique Notions de modélisation multidimensionnelle et du décisionnel NB :
Plus en détailManuel d installation serveurs
NU-MIS-10-12 Manuel d installation serveurs www.neocoretech.com Présentation Le déploiement de l infrastructure NDV2 se fait à partir d un fichier.iso sur le premier serveur qui sera configuré en Master
Plus en détailCARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1
CARPE (Documentation Informatique) 1 CARPE Version 2.00 Août 2013 Documentation Informatique S E T R A Programme CARPE - Manuel informatique de l'utilisateur CARPE (Documentation Informatique) 2 Table
Plus en détailLicence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
Plus en détailTD2 Programmation concurrentielle
TD2 Programmation concurrentielle Développement Logiciel (L2-S4) Lundi 10 février 2014 Exercice 1 (Au bar...) Trois clients se trouvent au bar. Il est tard, ils sont fatigués, et ils s endorment sur le
Plus en détailPerformances de la programmation multi-thread
UFR Sciences et techniques de Franche-Comté Projet semestriel 2ème année de Master Informatique Performances de la programmation multi-thread Auteur(s) : Beuque Eric Moutenet Cyril Tuteur(s) : Philippe
Plus en détailCONFIGURATION DE L AUTOMATE SIEMENS
CONFIGURATION DE L AUTOMATE SIEMENS Créer un projet Dans le bureau de Windows, double-cliquer sur l icône «SIMATIC Manager» : Cliquer ensuite sur l icône «nouveau» : Choisir un nom de projet et valider
Plus en détailLe Network File System de Sun (NFS)
1 sur 5 Le Network File System de Sun (NFS) Le Network File System de Sun (NFS) Architecture Protocoles Mounting Automounting vs Static mounting Directory et accès aux fichiers Problèmes Implémentation
Plus en détailMicrosoft Live Messenger
Module Tchat Microsoft Live Messenger Durée : 2h (1 séance) Ce document est édité sous licence Creative Commons DERNIERE MISE A JOUR : 21 septembre 2011 1 SOMMAIRE 1. Présentation du logiciel...3 2. Le
Plus en détailManuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2
éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........
Plus en détailManipulation 4 : Application de «Change».
Manipulation 4 : Application de «Change». Première partie : Cette manipulation a pour but d utiliser un service Web afin d obtenir les taux de change appliqués entre les différentes monnaies référencées
Plus en détailConventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
Plus en détailLogiciel Libre Cours 3 Fondements: Génie Logiciel
Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/
Plus en détail03/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étailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détailStructurer ses données : les tableaux. Introduction à la programmation
Structurer ses données : les tableaux Introduction à la programmation Plan du document Introduction Introduire la notion de type Types primitifs Types composés Tableaux de type primitif Page 2 Notion de
Plus en détailCours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Plus en détailINITIATION AU LANGAGE JAVA
INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal
Plus en détailCours Informatique Master STEP
Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions
Plus en détail