Linux Principes et Programmation
|
|
- Thérèse Meunier
- il y a 8 ans
- Total affichages :
Transcription
1 Linux Principes et Programmation 4. Synchronisation entre processus Interblocage CNAM NSY /2010 Yann GAUTHERON Extraits : LINUX Programmation système et réseau (Joëlle DELACROIX)
2 Les schémas de synchronisation L'exclusion mutuelle Le schéma de l'allocation de ressources Le schéma lecteur-rédacteur Le schéma producteurs-consommateurs Sémaphores Sous Linux Mutex Sous linux Interblocage Différentes politiques
3 Notions de base Système multiprocessus communicants = accès concurrent aux ressources (mémoire, outils de communication...) Une ressource = toute entité dont a besoin un processus pour l'exécuter Matérielle (processeur, périphérique...) Logicielle (fichier) État de ressource Libre ou occupée Nombre de points d'accès Ressource critique = ne peut être utilisée que par un seul processus à la fois Utilisation de ressource Allocation Utilisation Restitution
4 L'exclusion mutuelle Exemple simple : 1. Réservation() { 2. if (nbplace > 0) { 3. // Réserver une place 4. nbplace = nbplace 1; 5. } 6. } Le programme Réservation() peut s'exécuter de manière concurrente Sans précaution, la variable nbplace peut atteindre une valeur inférieure à 0 P1 exécute le test de la ligne 2, trouve 1>0, puis est préempté par P2. P2 démarre, exécute la ligne 2, trouve également 1>0, décrémente nbplace puis se termine. P1 reprend ligne 3, décrémente nbplace puis se termine. nbplace=-1!
5 L'exclusion mutuelle
6 L'exclusion mutuelle
7 L'exclusion mutuelle Ressource critique La variable nbplace doit être accédée par un seul processus à la fois nbplace est donc une ressource critique Ainsi P2 trouverait la valeur à 0 et ne décrémenterait pas la variable! Section critique Propriété d'exclusion mutuelle Garantie que la ressource n'est utilisée qu'une 1 fois simultanément Propriété d'attente bornée Propriété du bon déroulement
8 L'exclusion mutuelle
9 L'exclusion mutuelle Réalisation «matérielle» d'une section critique Par masquage/démasquage 1. Réservation() { 2. disable_interrupt; // prélude de section critique 3. if (nbplace > 0) { 4. // Réserver une place 5. nbplace = nbplace 1; 6. } 7. enable_interrupt; // postlude de section critique 8. } Cette solution empêche l'exécution de tous les processus (même ceux qui ne veulent pas nbplace) Cette méthode de masquage et démasquage est réservée à l'os pour les parties sensibles (et non au mode utilisateur)
10 L'exclusion mutuelle Réalisation «matérielle» d'une section critique Test and set : instruction matérielle atomique 1. #define VRAI 1 2. #define FAUX 0 3. while TS(cadenas); // prélude de section critique 4. // section critique 5. cadenas = FAUX // postlude de section critique 6. int function TS(int *verrou) { 7. disable_interrupt; 8. int test = *verrou; 9. *verrou = VRAI; 10. return test; 11. enable_interrupt; 12.} Cette solution ne garantit pas l'équité d'accès à la section critique
11 L'exclusion mutuelle Réalisation «matérielle» d'une section critique Swap : seconde instruction atomique qui inverse les valeurs de 2 variables 1. #define VRAI 1 2. #define FAUX 0 3. cle = VRAI; // prélude de section critique 4. while (cle == VRAI) 5. swap(verrou,cle); 4. // section critique 5. verrou = FAUX // postlude de section critique
12 L'exclusion mutuelle Réalisation entièrement logicielle d'une section critique
13 L'exclusion mutuelle Réalisation entièrement logicielle d'une section critique Algorithme de Peterson Exclusion entre deux processus i et j, structure de i : 1. while { // prélude 2. drapeau[i]=vrai; tour=j; 3. while (drapeau[j] && tour==i) 4. // section critique 5. drapeau[i]=faux // postlude 6. } Exclusion mutuelle : un seul entrera en SC Attente bornée : impossible d'entrer deux fois de suite en SC Bon déroulement : même si arrivée simultanée, l'un peut toujours passer en SC
14 L'exclusion mutuelle L'outil Sémaphore
15 L'exclusion mutuelle L'outil Sémaphore Outil système File d'attente L + compteur K (niveau) «Distributeur de jetons» contenant val jetons initialement Obtention d'un jeton donne le droit d'accès à la SC, sinon mise en attente 3 opérations atomiques : P(sem)uis-je?, V(sem)as-y!, Init(sem,val) Initialisation du Sémaphore : 1. function Init(semaphore sem, int val) { 2. disable_interrupt; 3. sem.k = val; 4. sem.l = NULL; 5. enable_interrupt; 6. }
16 L'exclusion mutuelle L'outil Sémaphore Attribution de jeton (Puis-je?) 1. function P(semaphore sem) { 2. disable_interrupt; 3. sem.k = sem.k - 1; 4. if (sem.k < 0) { 5. L.suivant = processus_courant; 6. processus_courant.state= bloque; 7. reordonnancement = vrai; 8. } 9. enable_interrupt; 10. }
17 L'exclusion mutuelle L'outil Sémaphore Rendre un jeton, et peut-être réveiller un autre processus (Vas-y!) 1. function V(semaphore sem) { 2. disable_interrupt; 3. sem.k = sem.k + 1; 4. if (sem.k <= 0) { // 1 process dans la file 5. processus_reveille= L.tete; 6. processus_reveille.state = prêt; 7. reordonnancement = vrai; 8. } 9. enable_interrupt; 10. }
18 L'exclusion mutuelle L'outil Sémaphore Signification du compteur K K >= 0 : K = nombre d'opérations P() encore passantes K < 0 : K = nombre de processus dans la file d'attente L Exemple d'utilisation : 1. Init(Mutex, 1); 2. Reservation { 3. P(Mutex); // prélude 4. if (nbplace > 0) // section critique 5. nbplace = nbplace - 1; 6. V(Mutex); // postlude 7. }
19 L'exclusion mutuelle L'outil Sémaphore
20 L'exclusion mutuelle L'outil Sémaphore
21 Schéma d'allocation de ressources Exemple : Sémaphores utilisés pour représenter et compter des exemplaires de ressources Schéma lecteurs-rédacteurs Exemple : Fichiers accédés simultanément en lecture et en écriture. Les lecteurs sont les processus qui lisent, les rédacteurs sont ceux qui y écrivent. Deux objectifs : protéger les zones d'accès concurrents, toujours conserver un état stable (ne pas lire ce qui est en cours d'écriture), il faut donc : Soit une seule écriture en cours ; Soit une ou plusieurs lectures en cours. Il peut surgir des problèmes de coalition Sous Linux, les outils sont : int flock(int fd, int operation); int lockf(int fd, int operation, off_t taille);
22 Schéma producteurs-consommateurs Principe : Un processus crée des messages, et les dépose dans une file composée de 0 à n cases, puis revient à la case 0. Un processus lit les n cases puis revient à la case 0. Règles : Ne pas produire si tampon plein Ne pas consommer si tampon vide Ne pas produire et consommer dans une même case en même temps Solution : Symboliser deux ressources «case vide» et «case pleine» : Producteur : consomme case vide, produit case pleine Consommateur : consomme case pleine, produit case vide Traiter le problème comme une allocation de ressources Sous Linux : Illustré par les MSQ, et les Tubes
23 Sémaphores sous Linux IPC : Un ensemble de sémaphore est identifié par une clé P, V et ATT (Attente qu'une valeur soit nulle) s'effectuent atomiquement sur un tableau de sémaphores. L'ensemble des opérations est réalisé avant que le processus puisse poursuivre son exécution. 1. struct semaphore { 2. atomic_t count; // compteur du sémaphore 3. int sleepers; // nombre de processus endormis 4. wait_queue_head_t wait; // file de ces processus 5. }
24 Sémaphores sous Linux Création et recherche int semget(key_t cle, int nsems, int semflg) Semflg : constantes IPC_EXCL, IPC_CREAT, 0 Opérations : int semop(int semid, struct sembuf *sops, unsigned nsops) 1. struct sembuf { 2. unsigned short sem_num; // numero 3. short sem_op; // opération à réaliser 4. short sem_flg; // options 5. }
25 Sémaphores sous Linux Contrôle : int semctl(int semid, int semnum, int cmd, union semun arg) semctl(semid, 0, SETVAL, 3); initialisation à la valeur 3 du sémaphore 0 dans l'ensemble désigné par l'identifiant semid. Destruction : semctl(intsemid, 0, IPC_RMID, 0);
26 #include <stdio.h> #include <pthread.h> #include <sys/ipc.h> #include <sys/sem.h> int i, nb_place; int semid; struct sembuf operation; void reservation(){ operation.sem_num = 0; operation.sem_op = -1; operation.sem_flg = 0; semop(semid, &operation, 1); /* opération P */ nb_place= nb_place-1; /* section critique */ operation.sem_num = 0; operation.sem_op = 1; operation.sem_flg = 0; semop(semid, &operation, 1); /* opération V */ } main(){ pthread_t num_thread[3]; semid = semget(12, 1, IPC_CREAT IPC_EXCL 0600);// création semctl(semid, 0, SETVAL, 1);// Init à valeur 1 for(i=0; i<3; i++) pthread_create(&num_thread[i],null,(void *(*)())reservation,null); pthread_join(num_thread, NULL); semctl(semid, 0, IPC_RMID, 0); }
27 Mutex Outil de synchronisation de type pthread_mutex_t servant de verrou Protection de zones de codes ou de données particulières Deux états : disponible ou verrouillé Accessible uniquement par un thread à la fois Initialisation : int pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER; Verrouillage : int pthread_mutex_lock(pthread_mutex_t *mut); int pthread_mutex_trylock(pthread_mutex_t *mut); Libération : int pthread_mutex_unlock(pthread_mutex_t *mut); Destruction : int pthread_mutex_destroy(pthread_mutex_t *mut);
28 Interblocage
29 Interblocage Ensemble de n processus attendant chacun une ressource déjà possédée par un autre processus de l'ensemble : Aucun processus ne peut poursuivre son exécution Attente infinie
30 Coalition n processus monopolisant les ressources au détriment de p autres : Famine Attente finie mais indéfinie
31 Interblocage Exemple : Client : Attente de l'ouverture en lecture du tube 1 1. tub1 = open ("tube1", O_WRONLY); // écriture 2. tub2 = open ("tube2", O_RDONLY); // lecture Serveur : Attente de l'ouverture en lecture du tube 2 1. tub2 = open ("tube2", O_WRONLY); // écriture 2. tub1 = open ("tube1", O_RDONLY); // lecture
32 Interblocage 4 conditions simultanées nécessaires : Exclusion mutuelle Au moins 1 ressource en situation non partageable Occupation & Attente Un processus au moins attend une ressource bloquée ailleurs Pas de réquisition Impossibilité de préemption Attente circulaire Cycle d'attente, ces processus sont en interblocage
33 Attente circulaire
34 Politiques de traitement de l'interblocage Guérison Le permettre mais le corriger Prévention ou évitement Ne pas le permettre Autruche Ignorer le problème
35 Politique de guérison Le système maintient un graphe représentant l'allocation des ressources et les attentes des processus Régulièrement, le système parcourt le graphe à la recherche de cycles Si un cycle est découvert, celui-ci est cassé en avortant les processus en interblocage appartenant au cycle Cette politique est coûteuse
36 Politique de prévention Rendre impossible au moins l'une des conditions nécessaires : Exclusion mutuelle : difficile Occupation et attente : demander les ressources en une seule fois Pas de réquisition : difficile Attente circulaire : ordre total sur l'ordre de demandes de ressources
37 Politique de prévention Occupation et attente : demander les ressources en une seule fois Mauvaise utilisation des ressources
38 Politique de prévention Attente circulaire : ordre total sur l'ordre de demandes de ressources Unité de bandes avant le disque et avant l'imprimante
39 Politique d'évitement Examen dynamique de l'état des ressources pour éviter l'attente circulaire A chaque demande d'allocation, le système détermine si accepter conservera le système sain Allocation peut être refusée Vision pessimiste
40 Politique d'évitement Cas 1 12 exemplaires de ressources au total Le nombre de ressources disponibles est égal à 3. La séquence d exécution < P2, P1, P3 > est saine: satisfaction de P2, ressources disponibles = 1; restitution des ressources par P2, ressources disponibles = 5; satisfaction de P1, ressources disponibles = 0; restitution des ressources par P1, ressources disponibles = 10; satisfaction de P3, ressources disponibles = 3; restitution des ressources par P3, ressources disponibles = 12.
41 Politique d'évitement Cas 2 12 exemplaires de ressources au total Le nombre de ressources disponibles est égal à 2 L'état devient malsain et aucune séquence d'exécution incluant les trois processus ne peut être construite. Ici, seul P2 peut être satisfait : satisfaction de P2, ressources disponibles = 0; restitution des ressources par P2, ressources disponibles = 4. Maintenant, ni P3, ni P1 ne peuvent être satisfaits.
42 Politique de l'autruche Prétendre que les interblocages ne se produisent jamais et ne rien prévoir Un interblocage peut se produire et n'est pas détecté Détérioration des performances jusqu'à arrêt complet du système Redémarrage manuel du système
43 Politique de l'autruche Justification de ce choix Fréquence de l'interblocage
44 Le noyau Linux Le noyau dispose de 3 méthodes pour s'assurer de la cohérence de ses structures : Le noyau est non préemptible Le noyau peut masquer les interruptions Le noyau dispose de sémaphores Interblocage : Le noyau impose un ordre total sur les demandes d'allocations de ressources : Requêtes émises selon l'ordre croissant des adresses en mémoire centrale
INTRODUCTION 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é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é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é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é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é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é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é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é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é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é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é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é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é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étailNIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE
NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE Une application se construit par étapes 1) CAHIER DES CHARGES + ANALYSE FONCTIONNELLE = organisation fonctionnelle (QUE FAIRE) 2) ANALYSE OPERATIONNELLE
Plus en dé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é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étailProgrammation système
Programmation système Christine Solnon Table des matières 1 Les processus 2 1.1 Etats d un processus................................... 2 1.2 Descripteur d un processus (PCB)...........................
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é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étailSYSTÈME DE GESTION DE FICHIERS
SYSTÈME DE GESTION DE FICHIERS - DISQUE 1 Les couches logiciels réponse requête Requêtes E/S Système E/S Pilote E/S Interruptions utilisateur traitement S.E. commandes S.E. S.E. matériel Contrôleur E/S
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étailSYSTÈME DE GESTION DE FICHIERS SGF - DISQUE
SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE C.Crochepeyre MPS_SGF 2000-20001 Diapason 1 Les couches logiciels réponse SGF requête matériel matériel Requêtes E/S Système E/S Pilote E/S Interruptions Contrôleur
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étailConception des systèmes répartis
Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan
Plus en dé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é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é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é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é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é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é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étailgestion des processus La gestion des processus
1 La Pseudo parallélisme 2 Plusieurs programmes en mémoire Le processeur exécute les instructions tantôt pour l'un tantôt pour l'autre P1 P2 programme de supervision Vu de l'utilisateur => programmes en
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é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étailChapitre 4 : Outils de communication centralisés entre processus
Chapitre 1 : Introduction Chapitre 2 : Processus Chapitre 3 : Ordonnancement Chapitre 4 : Outils de communication centralisés entre processus Chapitre 5 : Allocation mémoire Chapitre 6 : Mémoire virtuelle
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é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étailPartie 7 : Gestion de la mémoire
INF3600+INF2610 Automne 2006 Partie 7 : Gestion de la mémoire Exercice 1 : Considérez un système disposant de 16 MO de mémoire physique réservée aux processus utilisateur. La mémoire est composée de cases
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é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é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é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étailCours de Génie Logiciel
Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes
Plus en dé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é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é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é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é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é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étailSymantec Backup Exec 12.5 for Windows Servers. Guide d'installation rapide
Symantec Backup Exec 12.5 for Windows Servers Guide d'installation rapide 13897290 Installation de Backup Exec Ce document traite des sujets suivants: Configuration requise Conditions préalables à l'installation
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étailLe système de gestion des fichiers, les entrées/sorties.
Le système de gestion des fichiers, les entrées/sorties. Luigi Santocanale Laboratoire d Informatique Fondamentale, Centre de Mathématiques et Informatique, 39, rue Joliot-Curie - F-13453 Marseille 19
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é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é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é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étailProgrammation C++ (débutant)/instructions for, while et do...while
Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de
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étailSystèmes Répartis. Mr. Mehrez Boulares, Mr. Nour Ben Yahia 2013-2014
Systèmes Répartis Mr. Mehrez Boulares, Mr. Nour Ben Yahia 2013-2014 Introduction aux systèmes répartis 2 Les ordinateurs ont subi des changements incroyables depuis leur mise en opération vers 1945: plus
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étailMéthodes de programmation systèmes UE n NSY103. Notes de cours. Nombre d'heures : 55h (~18 + 1 cours de 3 heures)
Méthodes de programmation systèmes UE n NSY103 Notes de cours Code de l UE : NSY103 Titre de la formation : Méthodes de programmation systèmes Ouvert : Ouvert Type de diplôme : Unité de valeur CNAM. Nombre
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é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étailGESTION DES FICHIERS C/UNIX
Licence IG Page 1 sur 6 GESTION DES FICHIERS C/UNIX Introduction Deux modes d appel - Par la bibliothèque standard C (appel de haut niveau) - Par appels système (bas niveau) Nécessite les includes suivant
Plus en détailConditions Particulières de Maintenance. Table des matières. Ref : CPM-1.2 du 08/06/2011
Conditions Particulières de Maintenance Ref : Table des matières 1 CONDITIONS PARTICULIÈRES APPLICABLES AUX CONTRATS DE MAINTENANCE...2 1.1 Préambule...2 1.2 Obligations d'atreal et services rendus...2
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é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étailCommandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT
Commandes Linux Gestion des fichiers et des répertoires Lister les fichiers Lister les fichiers cachés Lister les répertoires d un répertoire Lister les fichiers par date Les droits Types de fichier Supprimer
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étailCH.3 SYSTÈMES D'EXPLOITATION
CH.3 SYSTÈMES D'EXPLOITATION 3.1 Un historique 3.2 Une vue générale 3.3 Les principaux aspects Info S4 ch3 1 3.1 Un historique Quatre générations. Préhistoire 1944 1950 ENIAC (1944) militaire : 20000 tubes,
Plus en détailDidacticiel de mise à jour Web
Didacticiel de mise à jour Web Copyright 1995-2012 Esri All rights reserved. Table of Contents Didacticiel : Création d'une application de mise à jour Web.................. 0 Copyright 1995-2012 Esri.
Plus en détailLivre blanc Mesure des performances sous Windows Embedded Standard 7
Livre blanc Mesure des performances sous Windows Embedded Standard 7 Table des matières Résumé... 1 Introduction... 1 Utilisation de la boîte à outils Windows Performance Analysis... 2 Fonctionnement...
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étailProgrammation impérative
Programmation impérative Cours 4 : Manipulation des fichiers en C Catalin Dima Organisation des fichiers Qqs caractéristiques des fichiers : Nom (+ extension). Chemin d accès absolu = suite des noms des
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é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é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é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é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étailConcept de machine virtuelle
Concept de machine virtuelle Chap. 5: Machine virtuelle Alain Sandoz Semestre été 2007 1 Introduction: Java Virtual Machine Machine Virtuelle Java: qu est-ce que c est? c est la spécification d une machine
Plus en détailENSP Strasbourg (Edition 2009-2010) Les Systèmes Temps Réels - Ch. DOIGNON. Chapitre 3. Mise en œuvre : signaux, gestion du temps et multi-activités
Chapitre 3 Mise en œuvre : signaux, gestion du temps et multi-activités 77 GENERALITES SUR LES SIGNAUX Un signal est une information de contrôle (requête) transmise à un processus par un autre processus
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é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étailLe Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr
Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables
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étailDirXML License Auditing Tool version 1.1 - Guide de l'utilisateur
DirXML License Auditing Tool version 1.1 - Guide de l'utilisateur Présentation Installation DirXML License Auditing Tool (DLAT) vous permet de déterminer le nombre de licences DirXML utilisées dans une
Plus en détailGuide d'utilisation du Serveur USB
Guide d'utilisation du Serveur USB Copyright 20-1 - Informations de copyright Copyright 2010. Tous droits réservés. Avis de non responsabilité Incorporated ne peut être tenu responsable des erreurs techniques
Plus en détailConvention Beobank Online et Beobank Mobile
Convention Beobank Online et Beobank Mobile Lisez attentivement cette Convention ("la Convention"). Lisez en tout cas la Section 1 - Conditions générales Beobank Online et Beobank Mobile. Ces conditions
Plus en détailLes structures de données. Rajae El Ouazzani
Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l
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étailGestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr
Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr 1- Structure d un disque 2- Ordonnancement des requêtes 3- Gestion du disque - formatage - bloc d amorçage - récupération
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É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étailDésinfection de Downadup
Désinfection de Downadup Historique des versions de documentations N de version Eléments modifiés Date Rédacteur 1.0 Version Initial 15/03/2010 BOURGINE Christopher 1 BitDefender propose un outil de désinfection
Plus en détailLes avantages de la virtualisation sont multiples. On peut citer:
1 Les mécanismes de virtualisation ont été introduits il y a fort longtemps dans les années 60 par IBM avec leur système CP/CMS. La motivation première de la virtualisation est la possibilité d'isoler
Plus en détail