Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,
|
|
- Gaspard Grenier
- il y a 8 ans
- Total affichages :
Transcription
1 Copyright 2010 tv Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front Cover Texts, and with no Back Cover. You can obtain a copy of the GNU General Public License : write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA USA 1
2 Programmation Système Sémaphores Win32 Sommaire API Win Rappels...3 Exclusion mutuelle...3 Mutex...3 Section Critique...3 Sémaphore...3 Mutex...4 Section Critique...7 Sémaphores
3 Programmation Système API Win32 API Win32 L'API Win32 de Micro$oft propose différents moyens pour coordonner l'exécution de plusieurs threads. Les fonctions décrites dans ce document fournissent un mécanisme utilisé pour que les threads synchronisent leur accès à des ressources. Les mécanismes fournis sont : les exclusions mutuelles les sections critiques les sémaphores Rappels Exclusion mutuelle Une ressource est en exclusion mutuelle si seul un processus peut utiliser la ressource à un instant donné. Mutex C'est un sémaphore binaire qui permet l'une exclusion mutuelle (mutex). Il est toujours initialisé avec la valeur 1. Section Critique C'est une partie de code telle que 2 processus ne peuvent s'y trouver au même instant. Sémaphore 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 dans un environnement de programmation concurrente. Le sémaphore a été inventé par Edsger Dijkstra. 3 Sémaphores Win32
4 tpsyswindows Semaphores correction.odt 19/01/2011 rev.59 Mutex Le mutex est de type HANDLE, comme tout objet ressource dans l'api Win32. Les fonctions utilisables sont : Création du mutex : CreateMutex() Opération V(), libération ou déverrouillage du mutex : ReleaseMutex() Opération P(), prise ou verrouillage du mutex : WaitForSingleOb ject() Processus créateur (mutex1.c) : ce processus crée le mutex et l'utilise #include <windows.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <time.h> void P(HANDLE hmutex) WaitForSingleObject(hMutex, INFINITE); void V(HANDLE hmutex) ReleaseMutex(hMutex); void travail(int i) int simulationtravail = (int)((double)rand() * (i+100) / (RAND_MAX+1.0)); printf("la tache%d travaille pendant %.2f s...\n", i, (float) (simulationtravail/1000.0)); Sleep(simulationTravail); printf("la tache%d a fini son travail...\n", i); 4
5 Programmation Système Mutex int main(void) HANDLE hmutex; srand(time(null)); //pour la simulation hmutex = CreateMutex( NULL, // descripteur de sécurité par défaut FALSE, // mutex not owned TEXT("NameOfMutexObject")); // nom de l'objet if (hmutex == NULL) printf( "CreateMutex failed (%d).\n", GetLastError()); ExitProcess(1); P(hMutex); printf("le processus1 débloque le processus2...\n"); travail(1); printf("attente pour bloquer l'autre processus Appuyez sur une touche pour débloquer le processus 2\n"); getchar(); V(hMutex); CloseHandle(hMutex); printf("fin...\n"); return 0; Processus utilisateur (mutex2.c) : ce processus ouvre le mutex et l'utilise #include <windows.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <time.h> void P(HANDLE hmutex) WaitForSingleObject(hMutex, INFINITE); void V(HANDLE hmutex) ReleaseMutex(hMutex); 5 Sémaphores Win32
6 tpsyswindows Semaphores correction.odt 19/01/2011 rev.59 void travail(int i) int simulationtravail = (int)((double)rand() * (i+1000) / (RAND_MAX+1.0)); printf("la tache%d travaille pendant %.2f s...\n", i, (float) (simulationtravail/1000.0)); Sleep(simulationTravail); printf("la tache%d a fini son travail...\n", i); int main(void) HANDLE hmutex; srand(time(null)); //pour la simulation hmutex = OpenMutex( MUTEX_ALL_ACCESS, // Accès complet FALSE, // handle not inheritable TEXT("NameOfMutexObject")); // nom de l'objet if (hmutex == NULL) printf( "CreateMutex failed (%d).\n", GetLastError() ); ExitProcess(1); printf("le processus2 attend le processus1...\n"); P(hMutex); travail(2); V(hMutex); CloseHandle(hMutex); printf("fin...\n"); return 0; 6
7 Programmation Système Mutex Ce qui donne l'exécution suivante : Section Critique L'objet section critique fournit une synchronisation similaire au mutex sauf que ces objets doivent être utilisées par les threads d'un même processus. Ce mécanisme est plus performant que les mutex et il est plus simple à utiliser. Remarques : Si vous ne rendez pas la main à la fin de la section critique, cela bloquera le système. De même, il faut que les sections critiques soient les plus courtes possibles. Le processus est responsable de l'allocation de la mémoire utilisée par la section critique. Typiquement, il suffit de déclarer une variable de type CRITICAL_SECTION, de l'initialiser grâce à la fonction InitializeCriticalSection() ou InitializeCriticalSectionAndSpinCount(). 7 Sémaphores Win32
8 tpsyswindows Semaphores correction.odt 19/01/2011 rev.59 Les fonctions utilisables sont : Le thread utilise la fonction EnterCriticalSection() ou TryEnterCriticalSection() avant d'entrer dans la section critique. Le thread utilise la fonction LeaveCriticalSection() pour rendre le processeur à la fin de la section critique. Chaque thread du processus peut utiliser la fonction DeleteCriticalSection() pour libérer les ressources système qui ont été allouées quand la section critique a été initialisé. Après son appel, aucune fonction de synchronisation ne peut plus être appelée. Exemple avec 2 threads : critical_section.c #include <windows.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <time.h> CRITICAL_SECTION cs; // shared structure void travail(int i) int simulationtravail = (int)((double)rand() * (i+1000) / (RAND_MAX+1.0)); printf("la tache%d travaille pendant %.2f s...\n", i, (float) (simulationtravail/1000.0)); Sleep(simulationTravail); printf("la tache%d a fini son travail...\n", i); DWORD WINAPI ThreadProc1(LPVOID lpparam) int n; int *pdata; pdata = (int*)lpparam; n = *pdata; EnterCriticalSection(&cs); printf("la tache%d est entrée dans une section critique...\n", n); travail(n); printf("la tache%d va sortir d'une section critique...\n", n); LeaveCriticalSection(&cs); return 0; 8
9 Programmation Système Section Critique DWORD WINAPI ThreadProc2(LPVOID lpparam) int n; int *pdata; pdata = (int*)lpparam; n = *pdata; EnterCriticalSection(&cs); printf("la tache%d est entrée dans une section critique...\n", n); travail(n); printf("la tache%d va sortir d'une section critique...\n", n); LeaveCriticalSection(&cs); return 0; int main(void) DWORD dwthreadid1, dwthreadid2; HANDLE hthread1, hthread2; int n1 = 1, n2 = 2; InitializeCriticalSection(&cs); srand(time(null)); //pour la simulation // Création du thread (autre que le primaire) hthread1 = CreateThread(NULL, // default security attributes 0, // use default stack size ThreadProc1, // thread function &n1, // argument to thread function 0, // use default creation flags &dwthreadid1); // returns the thread identifier if (hthread1 == NULL) printf( "CreateThread failed (%d).\n", GetLastError()); ExitProcess(1); 9 Sémaphores Win32
10 tpsyswindows Semaphores correction.odt 19/01/2011 rev.59 // Création du thread (autre que le primaire) hthread2 = CreateThread(NULL, // default security attributes 0, // use default stack size ThreadProc2, // thread function &n2, // argument to thread function 0, // use default creation flags &dwthreadid2); // returns the thread identifier if (hthread2 == NULL) printf( "CreateThread failed (%d).\n", GetLastError()); ExitProcess(1); // Attente fin des threads WaitForSingleObject(hThread1, INFINITE); WaitForSingleObject(hThread2, INFINITE); CloseHandle(hThread1); CloseHandle(hThread2); DeleteCriticalSection(&cs); printf("fin...\n"); return 0; Ce qui donne l'exécution suivante : 10
11 Programmation Système Sémaphores Sémaphores Sous Windows, un sémaphore est un compteur qui peut prendre des valeurs entre 0 et une valeur maximale définie lors de la création du sémaphore. Le sémaphore est de type HANDLE. Les fonctions utilisables sont : La fonction CreateSemaphore() crée l'objet sémaphore. HANDLE CreateSemaphore( LPSECURITY_ATTRIBUTES lpsemaphoreattributes, // pointer to security attributes LONG linitialcount, // initial count LONG lmaximumcount, // maximum count LPCTSTR lpname // pointer to semaphore object name ); La fonction Op ensemaphore() ouvre un objet sémaphore déjà créé par un autre thread ou processus. Opération V() : la fonction ReleaseSemaphore() libère un jeton. Opération P() : la fonction WaitForSingleOb ject () permet de prendre un sémaphore. Exemple 1 x Producteur et 1 x Consommateur : producteur1.c #include <windows.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <time.h> /* taille de la file */ #define L 5 /* la file */ int f[l]; int in = 0, out = 0; /* Les semaphores */ HANDLE nbrequetes; // init 0 HANDLE nbcasesvides; // init L 11 Sémaphores Win32
12 tpsyswindows Semaphores correction.odt 19/01/2011 rev.59 void P(HANDLE s) WaitForSingleObject(s, INFINITE); void V(HANDLE s) ReleaseSemaphore(s, 1, NULL); int construirerequete(int n) int simulationtravail = (int)((double)rand() * (n+1000) / (RAND_MAX+1.0)); int requete = 1 + (int)((double)rand() * (n+100) / (RAND_MAX+1.0)); //printf("la tache%d construit une requete en %.3f s...\n", n, (float)(simulationtravail/1000.0)); Sleep(simulationTravail); return requete; void deposerrequete(int n, int requete) printf("la tache%d producteur depose la requete %d dans la file a la position %d...\n", n, requete, in); f[in] = requete; in = (in + 1) % L; int retirerrequete(int n) int requete; printf("la tache%d consommateur retire une requete de la file a la position %d...\n", n, out); requete = f[out]; f[out] = 0; /* élement vide */ out = (out + 1) % L; return requete; void traiterrequete(int n, int requete) int simulationtravail = (int)((double)rand() * (n+1000) / (RAND_MAX+1.0)); //printf("la tache%d traite la requete en %.2f s...\n", n, (float) (simulationtravail/1000.0)); Sleep(simulationTravail*2); // on retarde un peu le consommateur! requete = 0; // inutilement inutile! 12
13 Programmation Système Sémaphores DWORD WINAPI producteur(lpvoid nt) int n = *(int *)nt; // numéro de tache int requete; int i; // on produit pendant un certain temps... for(i=0;i<(l*3);i++) requete = construirerequete(n); //printf("la tache%d producteur attend une place libre...\n", n); P(nbCasesVides); deposerrequete(n, requete); V(nbRequetes); //printf("la tache%d producteur signale qu'une requete est disponible dans la file...\n", n); return 0; DWORD WINAPI consommateur(lpvoid nt) int n = *(int *)nt; // numéro de tache int requete; int i; //on consomme pendant un certain temps... for(i=0;i<(l*2);i++) //printf("la tache%d consommateur attend une requete disponible dans la file...\n", n); P(nbRequetes); requete = retirerrequete(n); V(nbCasesVides); printf("la tache%d consommateur va traiter la requete %d et libere la position...\n", n, requete); traiterrequete(n, requete); return 0; 13 Sémaphores Win32
14 tpsyswindows Semaphores correction.odt 19/01/2011 rev.59 int main(void) /* les threads */ DWORD dwthreadid1, dwthreadid2; HANDLE hthread1, hthread2; int t1 = 1, t2 = 2; // numéros des taches /* init des semaphores */ nbrequetes= CreateSemaphore(NULL, 0, L, (LPCTSTR )"SemaphoreNbRequetes"); nbcasesvides = CreateSemaphore(NULL, L, L, (LPCTSTR )"SemaphoreNbCasesVides"); // si dans un autre processus alors ouverture d'un sémaphore déjà créé //nbrequetes= OpenSemaphore(SEMAPHORE_ALL_ACCESS, FALSE, (LPCTSTR )"SemaphoreNbRequetes"); //nbcasesvides = OpenSemaphore(SEMAPHORE_ALL_ACCESS, FALSE, (LPCTSTR )"SemaphoreNbCasesVides"); srand(time(null)); //pour la simulation /* demarre les threads */ hthread1 = CreateThread(NULL, // default security attributes 0, // use default stack size consommateur, // thread function &t1, // argument to thread function 0, // use default creation flags &dwthreadid1); // returns the thread identifier hthread2 = CreateThread(NULL, // default security attributes 0, // use default stack size producteur, // thread function &t2, // argument to thread function 0, // use default creation flags &dwthreadid2); // returns the thread identifier /* attends la fin des threads */ WaitForSingleObject(hThread1, INFINITE); WaitForSingleObject(hThread2, INFINITE); CloseHandle(hThread1); CloseHandle(hThread2); CloseHandle(nbRequetes); CloseHandle(nbCasesVides); printf("fin...\n"); return 0; 14
15 Programmation Système Sémaphores Ce qui donne l'exécution suivante : 15 Sémaphores Win32
Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...
Système d'exploitation Sommaire Introduction...3 Objectif...3 Manipulations...3 Gestion des utilisateurs et des groupes...4 Introduction...4 Les fichiers de base...4 Quelques commandes d'administration...5
Plus en détailPermission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,
Langage HTML Copyright 2010 tv Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any
Plus en détailIntroduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5
Système d'exploitation Sommaire Introduction...3 Objectif...3 Manipulations...3 La Sauvegarde...4 Les différents types...4 Planification...4 Les outils...5 Quelques commandes...5 La commande tar...5 La
Plus en détailLe prototype de la fonction main()
Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme
Plus en dé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é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é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é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étailTestez votre installation. Créer un répertoire vide
http://www.gnu.org/software/dejagnu/ Exposé sur DejaGNU Sommaire Présentation 1 Comment l obtenir.. 1 Comment obtenir la documentation 1 Comment çà marche 1 Remarque 5 Présentation DejaGnu est un système
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é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étailGuide pratique de CSPM, l'outil de suivi des performances du système Version française du Complete System Performance Monitor HOWTO
Guide pratique de CSPM, l'outil de suivi des performances du système Version française du Complete System Performance Monitor HOWTO Chris Lorenz Adaptation française:
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étailBrefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs
Brefs rappels sur la pile et le tas (Stack / Heap) et les pointeurs (exemples en C) v1.11 - Olivier Carles 1 Pile et Tas Mémoire allouée de manière statique Mémoire Allouée Dynamiquement variables locales
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étailProgrammation système de commandes en C
Programmation système de commandes en C Cours de Programmation système Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012 2013 Tuyêt Trâm DANG NGOC Programmation système de commandes
Plus en dé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étailCentre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :
Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de
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étailLes systèmes pare-feu (firewall)
Copyright (c) 2003 tv Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published
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étailet Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion
et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion Copyright 2009 Alt-N Technologies. 3 allée de la Crabette Sommaire Résumé... 3 MDaemon
Plus en détailAvant-propos. VERSION 20021216 Compilation du document à l aide de PDFLATEX Philippe Charlier. 1 Version actuelle : SPIP 1.5 2 http ://www.uzine.
Avant-propos SPIP 1 est le système de publication développé par le minirézo pour la gestion du site uzine 2. Nous le livrons à chacun, sous licence libre (GPL). Vous pouvez donc l utiliser librement pour
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é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étailNTP (Network Time Protocol)
NTP (Network Time Protocol) Nous utilisons l'environnement du Lab Guide de Novell, pour nous familiariser avec SLES-10, roulant sous un serveur VMware Server 1.0.6. A: sles101-nsm (SLES10.1/OES2.0) B:
Plus en détailParis Airports - Web API Airports Path finding
Paris Airports - Web API Airports Path finding Hackathon A660 Version Version Date writer Comment 1.0 19/05/2015 Olivier MONGIN Document creation Rédacteur : Olivier.MONGIN@adp.fr Date : 19/05/2015 Approbateur
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é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étailDéploiement OOo en environnement Windows Terminal Server
Déploiement OOo en environnement Windows Terminal Server Version 1.00 du 10.12.2004 Réalisé avec : OOo 1.1.3 Plate-forme / Os : Microsoft Windows Distribué par le projet fr.openoffice.org Sommaire 1 Introduction...3
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étailDOCUMENTATION - FRANCAIS... 2
DOCUMENTATION MODULE SHOPDECORATION MODULE PRESTASHOP CREE PAR PRESTACREA INDEX : DOCUMENTATION - FRANCAIS... 2 INSTALLATION... 2 Installation automatique... 2 Installation manuelle... 2 Résolution des
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é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é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é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é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é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étailSUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2
SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2 Version 1.0.5 Mentions légales Mentions légales Ce document est susceptible de modification à tout moment sans
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é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étailCours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
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étailDOCUMENTATION - FRANCAIS... 2
DOCUMENTATION MODULE CATEGORIESTOPMENU MODULE CREE PAR PRESTACREA INDEX : DOCUMENTATION - FRANCAIS... 2 INSTALLATION... 2 CONFIGURATION... 2 LICENCE ET COPYRIGHT... 3 SUPPORT TECHNIQUE ET MISES A JOUR...
Plus en détailVTP. LAN Switching and Wireless Chapitre 4
VTP LAN Switching and Wireless Chapitre 4 ITE I Chapter 6 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 1 Pourquoi VTP? Le défi de la gestion VLAN La complexité de gestion des VLANs et des
Plus en détailCommunication Interprocessus
Communication Interprocessus Introduction Segments de données et fichiers communs Les signaux Les tubes de communication d UNIX Tubes anonymes Tubes nommés Les tubes de communication de Windows Tubes anonymes
Plus en détailLe modèle de sécurité windows
Le modèle de sécurité windows Cours Windows 2008-2009 Franck Rupin - Laurent Gydé 1 Le modèle de sécurité windows 1 Généralités 2 Les composants du système de sécurité 3 La protection des objets 4 Audit
Plus en détailListes de validation dans OpenOffice Calc
Listes de validation dans OpenOffice Calc Révision [n 0.2] 05/08/04 Réalisé avec : OOo 1.1.1 Plate-forme / Os : Toutes Distribué par le projet Fr.OpenOffice.org Table des Matières 1 But de ce how-to...3
Plus en détailCours de C. Petits secrets du C & programmation avancée. Sébastien Paumier
Cours de C Petits secrets du C & programmation avancée Sébastien Paumier paumier@univ-mlv.fr Illustrations provenant du site http://tux.crystalxp.net/ 1 Affectations étendues a+=expression a=a+expression
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étailArchivage Messagerie Evolution pour usage HTML en utilisant Hypermail
Finalités Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail Réalisé par sa modestie Arnaud de VILLEDON de NAIDE, le 9 mars 2013 Document sous licence GPL. Vous avez le droit d'en faire
Plus en détailSeance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.
Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece
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étailOPTENET DCAgent 2.01. Manuel d'utilisateur
OPTENET DCAgent 2.01 Manuel d'utilisateur SOMMAIRE 1. INTRODUCTION...1 2. INSTALLATION...2 3. ÉTABLISSEMENT DES PERMISSIONS...4 Pour de plus amples informations, reportez-vous aux annexes «Conditions requises
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étailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailComment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux
Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux Distribué par Le Projet Documentation d'openoffice.org Table of Contents 1) Préambule...3 2) Télécharger
Plus en détailIntroduction aux Machines Virtuelles avec VMKit
Introduction aux Machines Virtuelles avec Ingénieur :, Responsables : Gaël Thomas, Gilles Müller EQUIPE REGAL LIP6 INRIA (Paris/France) un substrat de machine virtuelle : a substrate for Managed Runtime
Plus en détailMELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE :
MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE : Housing system est un service gratuit, qui vous propose de vous mettre en relation avec
Plus en détailProgrammation Système (en C sous linux) Rémy Malgouyres LIMOS UMR 6158, IUT département info Université Clermont 1, B.P.
Programmation Système (en C sous linux) Rémy Malgouyres LIMOS UMR 6158, IUT département info Université Clermont 1, B.P. 86 63172 AUBI Une version PDF de ce document est téléchargeable sur mon site web,
Plus en détailI00 Éléments d architecture
I00 I Exemples d ordinateur Pour les informaticiens, différentes machines de la vie courante sont des ordinateurs : par exemple les ordinateurs portables, les ordinateurs fixes, mais aussi les supercalculateurs,
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étailPhone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION
Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION Salesforce NOTICE The information contained in this document is believed to be accurate in all respects
Plus en détailRaccordement des machines Windows 7 à SCRIBE
SCOL-TELESERVICES Rectorat de Bordeaux Direction Informatique Tour Paul Victor de Sèze 3 Terrasse du Front du Médoc 33000 BORDEAUX Document de travail => de nombreux paramètres sont susceptibles de changer
Plus en détailMaîtriser le menu contextuel dans un OfficeBean
Maîtriser le menu contextuel dans un OfficeBean Diffusé Par Le Projet Documentation d'openoffice.org Version 1.0 Aurélie Schröder Université de Genève Division informatique AurelieSch@netcourrier.com Table
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étailClasse ClInfoCGI. Fonctions membres principales. Gestion des erreurs
Utilisation des classes de PourCGI par Michel Michaud, version 2002-11-23 Les fichiers PourCGI.h et PourCGI.cpp rendent disponibles deux classes et une fonction libre qui permettent de faire facilement
Plus en détailQuel serveur pour vous?
Quel serveur pour vous? Ces questions vous semblent-elles familières? Protection des données J ai peur de perdre mes données si mon PC crashe. J ai besoin de protéger des données sensibles J ai besoin
Plus en détailManuel d'exploitation de l'application Vitamin version 1.0
Manuel d'exploitation de l'application Vitamin version 1.0 Ce document a pour but de décrire les procédures d'exploitation de l application Vitamin Manuel d'exploitation de l'application vitamin, version
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étailGuide de récupération de Windows Server 2003 R2 pour serveurs Sun x64
Guide de récupération de Windows Server 2003 R2 pour serveurs Sun x64 Sommaire Introduction 1 Procédure de réinstallation 1 Documentation associée 5 Vos commentaires nous sont utiles 5 Introduction Ce
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é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é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é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étailOS Réseaux et Programmation Système - C5
OS Réseaux et Programmation Système - C5 Rabie Ben Atitallah rabie.benatitallah@univ-valenciennes.fr RPC - XDR Rappel RPC: Remote Procedure Call Besoin d un environnement de haut niveau pour le développement
Plus en détailPrénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)
Plus en détailQuelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
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étailDOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0
DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0 INDEX : DOCUMENTATION - FRANCAIS... 2 1. INSTALLATION... 2 2. CONFIGURATION... 2 3. LICENCE ET COPYRIGHT... 3 4. MISES
Plus en détailWeb Application Firewalls (WAF)
Web Application Firewalls (WAF) Forum CERT-IST Paris le 9 Juin 2009 Sébastien GIORIA (sebastien.gioria@owasp.org) French Chapter Leader Copyright 2009 - The OWASP Foundation Permission is granted to copy,
Plus en détailOutils pour la pratique
Cinquième partie Outils pour la pratique 121 CHAPITRE 1 Les bases des séances de TP Avant de lire cettre section, il est suggéré de relire vos notes de cours se rapportant au système d exploitation Unix.
Plus en détailMISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année
2003-2004 Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES Maude Manouvrier La reproduction de ce document par
Plus en détailUtiliser un proxy sous linux
Utiliser un proxy sous linux Par LoiselJP Le 22/05/2013 Objectif Les systèmes d exploitation sont de plus en plus gourmand en ressource, notemment en consommation réseau. C est d autant plus vrai que Linux
Plus en détailTous les logiciels cités dans ce document sont des marques déposées de leurs propriétaires respectifs
* / VHUYHX 3UR[ :LQ*DWH,QVWDOODWLRQ &RQILJXUDWLR + GH,-, HUYLFH, :LQ*DWH &RQILJXUDWLRQ. GH. DSSOLFDWLRQ. FOLHQWHV FKULVWRSKHFDURQ#HGXFDJULIU! "# $&%' ( ) Tous les logiciels cités dans ce document sont
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 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é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é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étailDerrière toi Une machine virtuelle!
Derrière toi Une machine virtuelle! Yann-Gaël Guéhéneuc guehene@emn.fr École des Mines de Nantes, France Object Technology International Inc., Canada D où ça vient? Calculatrice Machine de Turing 1936
Plus en détailBASES DE DONNEES TP POSTGRESQL
2003-2004 Université Paris Dauphine IUP Génie Mathématique et Informatique IUP 2 ème année et Formation Continue BASES DE DONNEES TP POSTGRESQL Maude Manouvrier La reproduction de ce document par tout
Plus en détailCours de C. Allocation dynamique. Sébastien Paumier
Cours de C Allocation dynamique Sébastien Paumier paumier@univ-mlv.fr Illustrations provenant du site http://tux.crystalxp.net/ 1 Les pointeurs pointeur=adresse mémoire+type type* nom; nom pointe sur une
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étailAlgorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence
Licence Algorithmique & Langage C Paternité - Pas d'utilisation Commerciale Partage des Conditions Initiales à l'identique 2.0 France Vous êtes libres : * de reproduire, distribuer et communiquer cette
Plus en détailPour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
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é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étail