Projet de Programmation
|
|
- Denis Malenfant
- il y a 8 ans
- Total affichages :
Transcription
1 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 POSIX b. Nicolas Sayer 9 février 1998 Version 1 1 Introduction. Désolé, ce n est pas une habitude de ma part de transgresser les règles annoncées (contrairement à ce que pense mon père), mais je me voyais assez difficilement développer ce projet sous Windows, n ayant pas de Windows chez moi. De plus je dois avouer que je ne suis pas trop fana du monde de Bill. J ai donc écris et testé le programme sous UNIX en respect des normes POSIX sur les threads. Le programme compile et fonctionne sous Linux et Solaris Description détaillée du problème. Il s agit d un salon de coiffure dans lequel on rase la barbe des gens. Un seul barbier travaille dans ce salon. Le salon est décomposé en une salle d attente possédant un nombre fixe de chaises et une table avec des bandes dessinées, ainsi qu une salle de travail où le barbier rase le client en cours. Accessoirement cette salle de travail lui sert de chambre à coucher quand il n a pas de client, car notre barbier a la méchante habitude de faire la fête toute la nuit, il rattrape donc ces heures de sommeil perdues lorsque le salon est calme. Quand un client arrive, celui-ci ouvre la porte du salon de coiffure. Si aucune place n est disponible il reste dehors (même en février). Sinon il va s asseoir dans une chaise libre. A l ouverture de la porte un carillon venitien sonne pour réveiller notre barbier, si jamais il avait piqué un somme. Quand le barbier se
2 2 3 ANALYSE. libère d un client, celui-ci n a pas le droit de dormir si il reste du monde en salle. Il ouvre la porte et crie AU PROCHAIN!. A cet instant là un concours de vitesse a lieu entre chaque client. Celui qui est le plus rapide à poser sa BD est le prochain à se faire raser 1. Lorsque le barbier a fini de raser un client, ce dernier paye 10 francs (nous sommes toujours dans les années trente). Puis il quitte le salon. Le barbier prend le prochain client, à défaut il va se coucher...et ainsi de suite. 3 Analyse. 3.1 Organisation des threads. Notre programme devra être décomposé en deux types de threads. D un côté il y aura le barbier, représenter par un thread unique bouclant sans cesse pour voir si un client est là, s occuper de lui s il est là, ou alors aller se coucher. De l autre côté il y aura un thread par client, qui fera toutes les tâches du client physique. Il essayera de rentrer dans la boutique, ira s asseoir s il le peu, se fera raser, et disparaîtra. Alors que notre programme possédera un seul barbier, il pourra y avoir autant de clients que d hommes sur la planète (ou de moins que de place en mémoire). Les threads clients s empilerons donc en attendant que de la place se libère dans la salle d attente, puis que le barbier s occupe d eux. 3.2 Que fait le barbier? Le thread symbolisant la barbier sera donc unique. Il sera démarrś au lancement du programme, avant tout client, et bouclera sur lui-même pour l éternité. Voici ce que notre barbier passera sa vie à faire : Est-ce-qu il y a quelqu un dans la salle d attente? Si oui je m occupe de son cas, sinon je vais me coucher ; Quand un client est là je le fais entrer à l abbatoire ; Je le rase ; Je lui donne congé. Evidement, quand on arrive à la fin on re-boucle. 3.3 Que fait le client? Voici les actions que réalisera le thread symbolisant chaque client. S il y a plusieurs clients, des threads identiques seront en concurrence : Je regarde dans le salon de coiffure pour voir s il y a de la place de libre. Si oui je rentre, sinon j attend ; Quand je suis à l intérieur je m assieds sur une chaise (et je prens ma BD) ; J attends que le barbier soit libre ; Je me lève de ma chaise (et libère donc une place) et je rentre dans la pièce ; 1 situation peu réelle, mais vous avez du remarquer que ce salon de coiffure des années trente n est pas commun.
3 3 Je me laisse tailler la barbe ; Quand il a fini, je paye et je rentre chez moi. En regardant la différence de taille entre la liste d actions du barbier et du client, on remarque que le client fait plus de choses. En fait le client doit gérer une ressource supplémentaire par rapport au barbier : la place libre dans la salle d attente lorsqu il se présente à l entrée du salon. 4 Les ressources. Lors de la mise au point du programme je me suis trouvé devant deux façons de gérer les ressources. Soit j optimise au maximum et j ai un sémaphore et un lock en moins 2, soit j essaye de faire propre. J ai préféré la seconde solution car elle est beaucoup plus claire. Les primitives des sémaphores et des locks sous UNIX étant implantés au niveau du noyau, la différence en temps processeur est quasi-nulle. 4.1 Les nécessités. Tout d abord il est clair qu il va falloir un sémaphore sur le nombre de places de libre dans la salle d attente. Il limitera le nombre client pouvant se trouver dans la salle simultanément. Quand un client de trop se présentera le thread se mettra en attente de la libération de la ressource. Maintenant il faut gérer le sommeil du barbier. Il nous faut un sémaphore bloquant le barbier quand aucun client n est là. Il doit donc être incrémenté à l arrivée de chaque client et initialisé à zéro. Je viens ici de m occuper du simple. Passons maintenant à la gestion du passage du client. Il faut que le thread du barbier et celui du client est un moment en commun quand le rasage a lieu. Il existe une myriade de bidouilles possibles, mais le plus simple est encore de posséder deux sémaphores : un pour l arrivée du client, le second pour son départ. Pour finir j ai rajouté la gestion du paiement. Sans grand intérêt mais histoire de tripoter les mutex de POSIX. 4.2 Description détaillé. Voici la façon dont seront utilisés les quatre sémaphores de notre barbier virtuel : places Nombre de places disponible dans la salle d attente du salon. Lors de l arrivée d un client, celui-ci réalise un wait sur ce sémaphore. Si le nombre de place libre est nulle à son arrivée, il attendra qu un client libère une chaise. Le client réalise un post quand il réussit à rentrer dans la pièce du barbier (donc qu il se lève de la chaise). 2 Le lock sur la caisse est inutile car le client paye en fin de rasage et un seul client est rasé en même temps. Le barbier de son côté ne consulte jamais le montant de ces recettes quand un client est là.
4 4 5 ORGANISATION DU PROGRAMME. salle vide Le sémaphore salle vide correspond à une valeur égale au nombre de client se trouvant dans la salle d attente. Quand cette salle d attente ne compte aucun client elle vaut 0. Le barbier réalise un wait sur ce sémaphore et se bloque (va se coucher) quand la salle est vide. piece Ce sémaphore est initialisé à 0. Tout client arrivant dans la salle d attente se met en attente de la libération de cette ressource. Il est libérée par le barbier quand celui-ci est prêt à recevoir un client dans sa pièce de travail. dehors Le but de ce sémaphore est très proche du précédant. Le client effectue un wait dessus et c est le barbier qui libérera cette ressource par un post quand il a fini de raser le client. Alors que le sémaphore précédant synchronisait le début du rasage, celui-ci synchronise la fin. Je vais présenter maintenant un tableau récapitulatif de l évolution de chacun de ces sémaphores pendant le passage d un client dans ce salon de coiffure. Je suppose que le salon est vide avant son arrivé et qu aucun autre client n arrive pendant qu il est là. Je ne décrierai pas le fonctionnement du lock, il est assez explicite. places salle vide piece dehors action état initial exec(main) barbier couché 8 (0) 0 0 b :wait(salle_vide) arrivée d un client (8) (0) 0 0 c :wait(places) le client s asseoie 7 +(0) 0 0 c :post(salle_vide) le client attend 7 0 (0) 0 c :wait(piece) accueil du client 7 0 +(0) 0 b :post(piece) le client entre c :post(places) client en rasage (0) c :wait(dehors) le barbier rase (0) b :sleep() il libère son client (0) b :post(dehors) Les sémaphores encadrés par une paire de parenthèses signifient qu un wait a été effectué sur cette ressource et qu un thread est donc bloqué, en attente de la libération de cette ressource. Le + signifie qu un post a été effectué. 5 Organisation du programme. Notre programme : le barbier virtuel possède trois groupes de variables globales : Les quatre sémaphores ; Le lock pour la caisse ; La valeur de cette caisse. Il possède en plus deux fonctions : proc barbier et proc client, respectivement les procédures du barbier et du client. Le programme principal (main) s occupe tout d abord d initialiser les sémaphores et le lock. Puis il créé le thread correspondant au barbier. Celui-ci va directement se coucher vu qu aucun client n a encore été créé. Les threads simulant le client sont créés un par un, de façon dynamique quand l utilisateur appuie sur la touche entrée. S il laisse son doigt enfoncé quelques secondes sur la touche il peut créér très rapidement un nombre important de clients. Les résultats de l application sont envoyés sur la sortie standard (stdout).
5 5 Remarques d utilisation : Sur une station rapide ce petit programme peut très rapidement faire des bétises. Sous le système d exploitation Linux la machine a recours à l appel noyau clone() pour créer un nouveau thread, ce qui a pour effet de créer un nouveau processus. Lors de mes testes je me suis trouvé (après m être endormi moi-même sur la touche entrée ) avec plus de 200 processus client qui attendaient mon pauvre barbier... 6 Code source et exemple d utilisation. 6.1 Le fichier : Makefile Ce fichier contient les directives de compilation et de linkage pour créér le fichier exécutable. OBJ = barber.o LIB = -lpthread cc = gcc barber: $(OBJ) $(cc) -o barber $(OBJ) $(LIB) barber.o: clean: rm -f $(OBJ) barber core *~ 6.2 Le fichier : barber.c Voici le code source du simulateur de barbier. Il est écrit en C normé ANSI en respectant la norme POSIX actuelle sur les threads et les sémaphores. / NOM : barber.c VERSION : 2 AUTEUR : Nicolas Sayer COMPIL : gcc ARCH : POSIX b / #include <stdio.h> #include <unistd.h> #include <pthread.h> #include <semaphore.h> / Taille de la salle d attente / #define NB PLACES 8 / Lock pour le porte monnaie / pthread mutexattr t mutex attr ; pthread mutex t money lock ;
6 6 6 CODE SOURCE ET EXEMPLE D UTILISATION. / Les quatres semaphores / sem t places ; sem t salle vide ; sem t piece ; sem t dehors ; / Caisse du barbier / int porte monnaie=0 ; void proc barbier(void ptr) ; void proc client(void ptr) ; void main(void) / Thread du barbier / pthread t barbier ; / Ptr sur thread pour les clients / pthread t ptr sur thread ; / Init des semaphores / sem init(&places, 0, NB PLACES) ; sem init(&salle vide, 0, 0) ; sem init(&piece, 0, 0) ; sem init(&dehors, 0, 0) ; / Init du lock / pthread mutex init(&money lock, &mutex attr) ; / On demarre le barbier / pthread create(&barbier, NULL, (void )&proc barbier, NULL) ; / Quand le user fait un retour de chariot, on lance un client / while(1) getchar() ; printf("main : creation client.\n") ; ptr sur thread=(void )malloc(sizeof(pthread t)) ; pthread create((void )&ptr sur thread, NULL, (void )&proc client, NULL) ; / Quand le barbier meurt, on exit / pthread join(barbier, NULL) ; void proc barbier(void ptr) int i ; printf("b : Ouverture du magazin.\n") ; while(1)
7 6.3 Exemple. 7 sem getvalue(&salle vide, &i) ; if(i==0) pthread mutex lock(&money lock) ; i=porte monnaie ; pthread mutex unlock(&money lock) ; printf("b : je vais me coucher, journee a %i francs... pour l instant.\n",i ) ; sem wait(&salle vide) ; sem post(&piece) ; printf("b : je mousse un client.\n", i) ; sleep(2) ; printf("b : fini.\n") ; sem post(&dehors) ; void proc client(void ptr) int i ; printf("c : J arrive\n") ; sem getvalue(&places, &i) ; printf("c : Il reste %i places de libre.\n", i) ; sem wait(&places) ; printf("c : Je me pose sur une chaise (et je prend une BD).\n", i) ; sem post(&salle vide) ; sem wait(&piece) ; sem post(&places) ; printf("c : Je rentre dans la piece et me fait raser.\n") ; pthread mutex lock(&money lock) ; porte monnaie=porte monnaie+10 ; pthread mutex unlock(&money lock) ; sem wait(&dehors) ; printf("c : Je rentre chez moi, apres avoir payer.\n") ; 6.3 Exemple. Voici les messages sortie à l écran lors de l execution du barbier et la création de quelques clients : [sayer@hike source]$./barber b: Ouverture du magazin. b: je vais me coucher, journee a 0 francs... pour l instant. c: Il reste 8 places de libre.
8 8 6 CODE SOURCE ET EXEMPLE D UTILISATION. b: je vais me coucher, journee a 10 francs... pour l instant. c: Il reste 8 places de libre. c: Il reste 8 places de libre. c: Il reste 7 places de libre. c: Il reste 6 places de libre. c: Il reste 5 places de libre. b: je vais me coucher, journee a 60 francs... pour l instant.
9 9 7 Conclusion. J ai du passer sûrement quelques dizaines d heures sur les threads et les sémaphores pendant cette dernière session, mais j avoue que c était bien plus pour m amuser que pour réaliser ce rapport. Il est en effet très intéressant de voir les différents choix qu on pu faire Sun, Microsoft, ou Linux pour gérer les threads. J ai ainsi pu apprécier la très grande différence en temps d exécution entre une machine mono-processeur et une machine multi-processeur. Il y aurait évidemment beaucoup d extentions possible à faire à ce programme. Il serait intéressant que les clients soient traiter dans leur ordre d arrivée, ou que le salon soit animé par plusieurs barbiers. La raison pour laquelle j ai apprécié tout particulièrement ce TP est que j ai pu l étudier et le réaliser dans mon environnement fétiche, avec mes outils préférés (gcc, gdb, L A TEX)...
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étailCours 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é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étail1 Mesure de la performance d un système temps réel : la gigue
TP TR ENSPS et MSTER 1 Travaux Pratiques Systèmes temps réel et embarqués ENSPS ISV et Master TP1 - Ordonnancement et communication inter-processus (IPC) Environnement de travail Un ordinateur dual-core
Plus en détailProblè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é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é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É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é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é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étailQuelques éléments de compilation en C et makefiles
Quelques éléments de compilation en C et makefiles Guillaume Feuillade 1 Compiler un programme C Le principe de la compilation consiste à passer d un ensemble de fichiers de code à un programme exécutable
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é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étail3IS - 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étailS ickness Impact Profile (SIP)
Nom : Prénom : Date de naissance : Service : Hôpital/Centre MPR : Examinateur : Date du jour : Étiquettes du patient S ickness Impact Profile (SIP) Il présente le même problème de droit d auteur (pour
Plus en détailDescripteur global Interaction orale générale
Descripteur global Peut produire des expressions simples isolées sur les gens et les choses. Peut se décrire, décrire ce qu il fait, ainsi que son lieu d habitation. Interaction orale générale Peut interagir
Plus en détailTutoriel Création d une source Cydia et compilation des packages sous Linux
Tutoriel Création d une source Cydia et compilation des packages sous Linux 1. Pré-requis 1. Quelques connaissances sous Linux 2. Avoir à disposition un Serveur FTP pour héberger votre source 3. Un thème
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é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é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étailNetwork musical jammin
Network musical jammin Projet PC2R - 2015 Pour ce projet, nous allons réaliser une application permettant d effectuer des jams sessions en temps-réel entre des musiciens répartis à travers le monde. Le
Plus en dé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é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étailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en dé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é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é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étailProgrammation système en C/C++
Programmation système en C/C++ Jean-Baptiste Vioix (jb.vioix@free.fr) LE2I - ENESAD http://jb.vioix.free.fr 1-41 Programmation en C/C++ sous Unix Il existe des très nombreux outils de développement sous
Plus en détail<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é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étailLes structures. Chapitre 3
Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre
Plus en détailProgrammation système I Les entrées/sorties
Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les
Plus en détailAccès au Serveur de PAIE «SPV» par INTERNET Paramétrage du poste de travail «Windows»
Accès au Serveur de PAIE «SPV» par INTERNET Paramétrage du poste de travail «Windows» 1 Introduction... 2 2 Contrôle de la version d Internet Explorer... 3 3 Contrôle de la Machine Virtuelle Java de Microsoft...
Plus en détailDE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51
DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de
Plus en détailécole maternelle porte clé serrure sonnette salle de jeux escalier ÉCOLE MATERNELLE PORTE CLÉ SERRURE SONNETTE SALLE DE JEUX ESCALIER
école ÉCOLE maternelle MATERNELLE porte PORTE clé CLÉ serrure SERRURE sonnette SONNETTE salle de jeux SALLE DE JEUX escalier ESCALIER marche MARCHE rampe RAMPE couloir COULOIR portemanteau PORTEMANTEAU
Plus en détailMon premier rpm. http://alexandre-mesle.com 7 juin 2010. 1 Avant de commencer 2 1.1 RPM... 2 1.2 URPMI... 2 1.3 RPMBUILD... 2
Mon premier rpm http://alexandre-mesle.com 7 juin 2010 Table des matières 1 Avant de commencer 2 1.1 RPM....................................................... 2 1.2 URPMI.....................................................
Plus en détailIFT2245 - Systèmes d exploitation - TP n 1-20%
IFT2245 - Systèmes d exploitation - TP n 1-20% DIRO - Université de Montréal Nicolas Rous et Dorian Gomez Disponible : 14/02/2013 - Remise : 28/03/2013 au début de la démo LISEZ TOUT LE DOCUMENT AVANT
Plus en détailTable des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction
PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés
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étailLes outils de SEO (Référencement naturel) et les Sites SharePoint Public sur Office 365
Les outils de SEO (Référencement naturel) et les Sites SharePoint Public sur Office 365 Bonjour, comme beaucoup d entre vous j ai créé mon site public sur Office 365. Je suis comme vous je pense à la recherche
Plus en détailTRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique
Communications entre Processus Communication par tubes. TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique Exemple 1: On a deux processus Père/Fils. Le père
Plus en détailLEs processus coopèrent souvent pour traiter un même problème. Ces
Chapitre 5 Communication interprocessus LEs processus coopèrent souvent pour traiter un même problème. Ces processus s exécutent en parallèle sur un même ordinateur (monoprocesseur ou multiprocesseurs)
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étailUnix/Linux I. 1 ere année DUT. Université marne la vallée
Unix/Linux I 1 ere année DUT Université marne la vallée 1 Introduction 2 Fonctions et spécifité d Unix Architecture 3 4 5 Fichier Unix Arborescence de fichiers Quelques commandes sur les fichiers Chemins
Plus en détailBONNE NOUVELLE, À PARTIR DE DEMAIN 15 AOÛT 2014, l inscription en ligne sera disponible à partir du site de l ARO.
ARO Inscription en ligne, Automne 2014 BONNE NOUVELLE, À PARTIR DE DEMAIN 15 AOÛT 2014, l inscription en ligne sera disponible à partir du site de l ARO. À partir de cette date, vous n aurez qu à vous
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailInformatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre. Partie I : Introduction
Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre Partie I : Introduction Plan de la première partie Quelques définitions Caractéristiques communes des applications temps-réel Exemples d
Plus en détailOSCAR Un outil gratuit libre d images disque
OSCAR Un outil gratuit libre d images disque Oscar qu est-ce? Oscar est un ensemble d'outils, packagé par l équipe de Jean-François Tissoires de l Académie de Lyon, sur un CDROM bootable qui permet aux
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étailGuide d installation CLX.PayMaker Office (3PC)
Guide d installation CLX.PayMaker Office (3PC) Sommaire 1. Installation et reprise des données... 2 2. Premiers pas établir une connexion au compte bancaire et recevoir des informations de compte... 4
Plus en détailUtiliser un NAS pour remplacer Dropbox via Cloud Station
Utiliser un NAS pour remplacer Dropbox via Cloud Station Avec un NAS Synology et l application Cloud Station, vous pouvez synchroniser vos données sur l ensemble de vos ordinateurs et autres périphériques
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étailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détailCours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java
Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page
Plus en détailRangement du Menu Démarrer
Rangement du Menu Démarrer Qui de nous ne trouve pas le Menu Démarrer mal rangé? Cliquez sur Démarrer / Tous les programmes et c est une liste interminable de raccourcis, de dossiers contenant un ou plusieurs
Plus en détailUTILISATION DE LA BORNE PAR LE CLIENT
Page1 UTILISATION DE LA BORNE PAR LE CLIENT Achat de carte de lavage en carte bancaire Page 3 et 4 Achat de carte de lavage en billet Page 5 et 6 Rechargement de la carte de lavage en carte bancaire Page
Plus en détailTP, première séquence d exercices.
TP, première séquence d exercices. Benoît Valiron benoit.valiron@lipn.univ-paris13.fr 7 novembre 2010 Introduction Vous écrirez les réponses aux questions courtes sur une feuille à rendre à la fin de la
Plus en détailL exclusion mutuelle distribuée
L exclusion mutuelle distribuée L algorithme de L Amport L algorithme est basé sur 2 concepts : L estampillage des messages La distribution d une file d attente sur l ensemble des sites du système distribué
Plus en détailN importe qui possédant un code MS valide peut initier la rencontre. Néanmoins, il serait préférable de laisser cette
Le produit SECURE MEETING permet notamment à un utilisateur de résoudre rapidement à distance un problème d un autre utilisateur en toute sécurité. Ce logiciel dessert les utilisateurs des plateformes
Plus en détailUtilisation des ressources informatiques de l N7 à distance
Utilisation des ressources informatiques de l N7 à distance Romain Pignard - Net7/INP-Net 27 mars 2010 Résumé Ce document non officiel explique comment utiliser les ressources informatiques de l école
Plus en détailquelquefois quelques fois
GRAMMATICAUX DE CATÉGORIES DIFFÉRENTES QUELQUEFOIS HOMOPHONES QUELQUES FOIS 1 Homophones grammaticaux de catégories différentes quelquefois quelques fois quelquefois : adverbe Il est complément de phrase
Plus en détailLinux Live USB Creator Créez un Live-USB «persistant» de votre distribution GNU/Linux préférée depuis Windows
Linux Live USB Creator Créez un Live-USB «persistant» de votre distribution GNU/Linux préférée depuis Windows Salut l étable! Vous connaissez probablement la méthode d installation et de test des distributions
Plus en détailRemise à niveau d un programme JAVA du domaine public
Jean-Baptiste VIGUIER 12 septembre 2002 DCEM 2 jb.viguier@free.fr Remise à niveau d un programme JAVA du domaine public Dossier réalisé pour le laboratoire d oncogénétique Docteur P.GORRY MCU-PH institut
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étailSHOPCAISSE NOTICE D UTILISATION. ShopCaisse est une solution d encaissement disponible sur ipad.
SHOPCAISSE NOTICE D UTILISATION ShopCaisse est une solution d encaissement disponible sur ipad. Un logiciel complet qui s'adapte parfaitement à vos besoins. Vous pourrez ainsi gérer facilement votre commerce,
Plus en détailArguments d un programme
Arguments d un programme L2 SPI, Bruno Jacob 1 Arguments Quand on appelle un programme dans un environnement UNIX ou MS- DOS, on compose une ligne de commandes de la forme : nom-du-programme argument1
Plus en détailCours 6 : Tubes anonymes et nommés
Cours 6 : Tubes anonymes et nommés Mécanisme de communications du système de fichiers I-node associé. Type de fichier: S_IFIFO. Accès au travers des primitives read et write. Les tubes sont unidirectionnels
Plus en détailTD2/TME2 : Ordonnanceur et Threads (POSIX et fair)
UE PC2R page 1/8 TD2/TME2 : Ordonnanceur et Threads (POSIX et fair) Exercice 1 (Modélisation) Chemin de Fer Cet exercice est dédié à l étude d un problème de circulation de trains : Voie! out1 in1 Voie!
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étailProjet De Stijl Plate-forme pour robots mobiles
Projet De Stijl Plate-forme pour robots mobiles Guide de prise en main de Xenomai et des cibles Version : 22 janvier 2013 S. Di Mercurio, P.-E. Hladik Table des matières 1 Glossaire.........................................
Plus en détailPoker. A rendre pour le 25 avril
Poker A rendre pour le 25 avril 0 Avant propos 0.1 Notation Les parties sans * sont obligatoires (ne rendez pas un projet qui ne contient pas toutes les fonctions sans *). Celles avec (*) sont moins faciles
Plus en détailLe Logiciel de Facturation ultra simplifié spécial Auto-Entrepreneur
Le Logiciel de Facturation ultra simplifié spécial Auto-Entrepreneur La Facturation Le Livre chronologique des Recettes Le Registre des Achats Le Suivi du Chiffre d Affaires en temps réel Site internet
Plus en détailPremiers Pas avec OneNote 2013
Premiers Pas avec OneNote 2 Présentation de OneNote 3 Ouverture du logiciel OneNote 4 Sous Windows 8 4 Sous Windows 7 4 Création de l espace de travail OneNote 5 Introduction 5 Présentation des différentes
Plus en détailGuide de démarrage rapide
Barre d état de l objectif Heure/Date Type d activité Valeur de l activité Les illustrations de la montre et de l écran peuvent être différentes du modèle réel Guide de démarrage rapide Modèles : Move
Plus en détailExtension d'un outil de trace pour système embarqué temps réel. Encadrants : Laurent Pautet, Jérôme Hugues
Brique projet - T3 2006 Marion Strauss Extension d'un outil de trace pour système embarqué temps réel Encadrants : Laurent Pautet, Jérôme Hugues 1 Table des matières TABLE DES MATIÈRES... 2 INTRODUCTION...
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é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étail1. 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étailSommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et
Licence 3 CDA 2010/2011 Client FTP Java Maxence Jaouan Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et Windows?...
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étailCours Langage C/C++ Programmation modulaire
Cours Langage C/C++ Programmation modulaire Thierry Vaira BTS IRIS Avignon tvaira@free.fr «v0.1 Rappel Programmation modulaire (1/2) Le découpage d'un programme en sous-programmes est appelée programmation
Plus en détailManuel de System Monitor
Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig Traduction française : Yves Dessertine Traduction française : Philippe Guilbert Traduction française : Robin Guitton Relecture de la documentation
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étailCours 1 : Qu est-ce que la programmation?
1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre
Plus en détailTP 1 Prise en main de l environnement Unix
Introduction aux systèmes d exploitation (IS1) TP 1 Prise en main de l environnement Unix Le but de ce premier TP est de commencer à vous familiariser avec l environnement Unix. 1 Ouverture de session
Plus en détailDans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.
I Présentation : Dans le chapitre 1, nous avons vu comment utiliser les appels-systèmes de bas niveau pour créer et accéder à des fichiers sur le disque. Nous avons notamment mis en évidence leur dépouillement
Plus en détailCours de Système : Gestion de Fichiers
Cours de Système : Gestion de Fichiers Bertrand Le cun et Emmanuel Hyon bertrand.le cun{at}u-paris10.fr et Emmanuel.Hyon{at}u-paris10.fr Université Paris Ouest Nanterre 25 octobre 2011 B.L.C. & E.H. (UPO)
Plus en détailTutoriel: Création d'un Web service en C++ avec WebContentC++Framework
Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan
Plus en détailQu'est-ce qu'un processus: Définitions
Version septembre 2013 N 187 Qu'est-ce qu'un processus: Définitions Instruction = indécomposable et indivisible Processeur =... Processus = suite temporelle d'exécutions d'instructions Processus = exécution
Plus en détailConfigurer un réseau domestique. Partager ses fichiers, ses dossiers et ses imprimantes sur tous ses PC.
Configurer un réseau domestique. Partager ses fichiers, ses dossiers et ses imprimantes sur tous ses PC. Pour être le plus complet possible, je vais supposer posséder 3 PC : PC de bureau sous Windows XP
Plus en détailLa petite poule qui voulait voir la mer
Découverte Complète la carte d identité du livre. Titre du livre Nom de l auteur Nom de l illustrateur Editeur Que voit- on sur la 1 ère page de couverture? C est l histoire q d un poisson q d une souris
Plus en détailL informatique en BCPST
L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité
Plus en détailSolutions du chapitre 4
Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (
Plus en détail1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Plus en dé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étailOuvrez un compte Hotmail pour communiquer
Chapitre 5 COMMUNIQUER EN DIRECT AVEC WINDOWS OU INSTANT MESSENGER Internet Explorer met à votre disposition plusieurs modes de communication en direct, certains alliant l audio et la vidéo : MSN Messenger
Plus en détail