Programmation Système : les IPC

Documents pareils
Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

Introduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,

Guide pratique de CSPM, l'outil de suivi des performances du système Version française du Complete System Performance Monitor HOWTO

Guide de configuration de SQL Server pour BusinessObjects Planning

Manuel d'utilisation de Palm BlueBoard 2.0

Comment Utiliser les Versions, les Modification, les Comparaisons, Dans les Documents

Comment sauvegarder ses documents

Exécutif temps réel Pierre-Yves Duval (cppm)

Comment faire des étiquettes

Chapitre 1 : Introduction aux bases de données

Projet Active Object

Comment Créer une Base de Données Ab Initio

Introduction à la programmation concurrente

Cours de Systèmes d Exploitation

Testez votre installation. Créer un répertoire vide

Réparer un disque dur passé en RAW

Fedora 14. Images live de Fedora. Comment utiliser l'image live de Fedora. Paul W. Frields Nelson Strother Nathan Thomas

Insérer des images dans Base

TITRE : Règlement sur l'informatique et la téléinformatique

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

Les systèmes pare-feu (firewall)

Manuel d'exploitation de l'application Vitamin version 1.0

Initiation au HPC - Généralités

DOCUMENTATION - FRANCAIS... 2

DOCUMENTATION - FRANCAIS... 2

Annexe 5. Kaspersky Security For SharePoint Servers. Consulting Team

Déploiement OOo en environnement Windows Terminal Server

Avantages de l'archivage des s

1 Mesure de la performance d un système temps réel : la gigue

Sauvegarde et restauration d'un système d'exploitation Clonezilla

Module SMS pour Microsoft Outlook MD et Outlook MD Express. Guide d'aide. Guide d'aide du module SMS de Rogers Page 1 sur 40 Tous droits réservés

PARAGON SYSTEM BACKUP 2010

Procédure Création : 04/05/2009 ARCHIVAGE DE LA MESSAGERIE

Comment Définir une Plage de données Pour Utiliser Fonctions de Filtres et de Tris

Samsung Auto Backup Guide de démarrage rapide

modélisation solide et dessin technique

Manuel de l'application SMS

Comment créer un diagramme de Gantt avec OpenOffice.org

Conditions Générales de Vente et d'utilisation

Introduction à la Programmation Parallèle: MPI

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

Conditions Particulières de Maintenance. Table des matières. Ref : CPM-1.2 du 08/06/2011

StorageTek Tape Analytics

Utiliser un proxy sous linux

Comment consolider des données

LA SAUVEGARDE DES DONNEES SUR LES ORDINATEURS PERSONNELS

Étape 3 : Afin d'approfondir vos connaissances sur le bit d'archivage, vous apprendrez l'effet d'une modification d'un fichier sur celui-ci.

Diffusion AFRISTAT. Quels droits accorder aux utilisateurs? - sur les données - sur les documents numériques

01V96i Editor Manuel d'installation

Règles et paramètres d'exploitation de Caparmor 2 au 11/12/2009. Pôle de Calcul Intensif pour la mer, 11 Decembre 2009

OpenOffice.org Calc Ouvrir un classeur

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

DirXML License Auditing Tool version Guide de l'utilisateur

Serveur de sauvegarde à moindre coût

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Proposition d'installation du PackEPS sur Scribe

Applicable sur le site à compter du 1 Février 2015

Charte de bon Usage des Ressources Informatiques, de la Messagerie et de l Internet

Comment faire un Mailing A partir d une feuille Calc

Les diagrammes de modélisation

VADE MECUM COURRIERS ELECTRONIQUES. Comprendre, s'organiser et gérer durablement la communication électronique

Asset Management Software Client Module. Manuel d utilisation

SYSTÈME DE GESTION DE FICHIERS

Référentiel C2i niveau 1 Version 2 :

Edutab. gestion centralisée de tablettes Android

Réparer un disque dur passé en RAW

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Guide Google Cloud Print

Installation d'un TSE (Terminal Serveur Edition)

Manuel d'utilisation d'apimail V3

Fiche Technique. Cisco Security Agent

Gestion des documents associés

Forge. Présentation ( )

Chapitre 4 : Les mémoires

Projet : PcAnywhere et Le contrôle à distance.

Ordonnancement temps réel

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Guide de l'utilisateur. Linksys AE1000 Adaptateur USB sans fil - N hautes performances

Enregistrer votre dispositif

Symantec Protection Suite Enterprise Edition Protection éprouvée pour les terminaux, la messagerie et les environnements Web

Exercices INF5171 : série #3 (Automne 2012)

Liste des Paramètres 2FC4...-1ST 2FC4...-1PB 2FC4...-1PN 2FC4...-1SC 2FC4...-1CB

L'univers simple des appareils intelligents

Guide de l'administrateur Citrix Personal vdisk 5.6.5

Samsung Drive Manager FAQ

Introduction aux environnements de virtualisation d'oracle Solaris 11.1

Les GPO 2012 server R2 (appliqués à Terminal Serveur Edition)

Séquence de découverte de SparkAngels Logiciel d entraide numérique

Mise à jour, sauvegarde et restauration de logiciels

Clé Flash USB2.0 Acer

Guide d installation

Accès externe aux ressources du serveur pédagogique

Thunderbird en version Portable

ACCECIA Avenue André Malraux, ZI de Cana BRIVE LA GAILLARDE Tél : +33 (0) Fax +33 (0)

Guide de démarrage du système modulaire Sun Blade 6000

Transcription:

Programmation Système : les IPC Copyright 2011 tv <tvaira@free.fr> 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 02111 1307 USA Les IPC (Inter-Process Communication ou communication inter processus) regroupent un ensemble de mécanismes permettant à des processus concurrents (ou distants) de communiquer. P2 P1 <tv>lt La Salle Avignon BTS IRIS</tv> Cours IPC v1.0 1/18

La communication inter-processus Multi-tâches : Les processus ne sont pas isolés dans l'ordinateur puisqu'ils concourent tous à l'exploitation de travaux de l'utilisateur et puisqu'ils sont en compétition pour le partage de ressources qui sont limitées. Ceci implique un besoin des processus de communiquer. Multi-programmation : L'idée (paralléliser des traitements) est de substituer un seul programme purement séquentiel en plusieurs pièces (processus ou tâches) pouvant logiquement se dérouler simultanément et en partageant des données. Ceci implique un besoin des processus de communiquer. <tv>lt La Salle Avignon BTS IRIS</tv> Cours IPC v1.0 2/18

Exclusion mutuelle Les ressources d'un système peuvent être réparties en deux catégories : les ressources partageables, pouvant être utilisées simultanément par plusieurs processus (parfois limités en nombre), les ressources non partageables, ne pouvant être utilisées que par un seul processus à un moment donné. Les ressources non partageables peuvent l'être pour deux raisons : il est matériellement impossible de partager la ressource le partage de la ressource entraînerait des risques d'interférence (imprimante, zone mémoire, etc...) Le problème à résoudre consiste à s'assurer que les ressources non partageables ne sont attribuées qu'à un seul processus à la fois. <tv>lt La Salle Avignon BTS IRIS</tv> Cours IPC v1.0 3/18

Section critique Une section critique est une portion de code dans laquelle il doit être garanti qu'il n'y aura jamais plus d'un processus ou thread simultanément. Il est nécessaire d'utiliser des sections critiques lorsqu'il y a accès à des ressources partagées par plusieurs processus ou thread. Une section critique peut être protégée par un mutex (mutual exclusion), un sémaphore ou d'autres primitives de programmation concurrente. <tv>lt La Salle Avignon BTS IRIS</tv> Cours IPC v1.0 4/18

Synchronisation et Interblocage Synchronisation : la vitesse relative de deux processus est imprévisible. Elle dépend de la fréquence des interruptions, de la durée du travail, de la fréquence d'attribution des processeurs aux processus. Les processus se déroulent donc de façon asynchrone et doivent ainsi synchroniser leurs activités à certains moment du traitement. C'est le rôle du système d'exploitation de fournir un mécanisme pour cela. Inter blocage (deadlock) : lorsque plusieurs processus demandent à obtenir des ressources en même temps, une situation d'inter blocage peut se produire si les ressources requises par les uns sont occupées par les autres et vice versa. Prévenir les effets de l'inter blocage est une fonction indispensable du système d'exploitation. <tv>lt La Salle Avignon BTS IRIS</tv> Cours IPC v1.0 5/18

Les communications inter-processus (IPC) Les communications inter processus (Inter-Process Communication ou IPC) regroupent un ensemble de mécanismes permettant à des processus concurrents (ou distants) de communiquer. Ces mécanismes peuvent être classés en trois catégories : les outils permettant aux processus de s'échanger des données ; les outils permettant de synchroniser les processus, notamment pour gérer le principe de section critique ; les outils offrant directement les caractéristiques des deux premiers (échanger des données et synchroniser des processus). <tv>lt La Salle Avignon BTS IRIS</tv> Cours IPC v1.0 6/18

Échange de données Les fichiers peuvent être utilisés pour échanger des informations entre deux, ou plusieurs processus. La mémoire (principale) d'un système peut aussi être utilisée pour des échanges de données. Suivant le type de processus, les outils utilisés ne sont pas les mêmes : Dans le cas des processus «classiques», l'espace mémoire du processus n'est pas partagé. On utilise alors des mécanismes de mémoire partagée, comme les segments de mémoire partagée pour Unix. Dans le cas des processus légers (threads) l'espace mémoire est partagé, la mémoire peut donc être utilisée directement. Quelle que soit la méthode utilisée pour partager les données, ce type de communication pose le problème des sections critiques. <tv>lt La Salle Avignon BTS IRIS</tv> Cours IPC v1.0 7/18

Synchronisation Les mécanismes de synchronisation sont utilisés pour résoudre les problèmes de sections critiques et plus généralement pour bloquer et débloquer des processus suivant certaines conditions : Les verrous permettent de bloquer tout ou une partie d'un fichier. Les sémaphores (et les mutex) sont un mécanisme plus général, ils ne sont pas associés à un type particulier de ressource et permettent de limiter l'accès concurrent à une section critique à un certain nombre de processus. Les signaux (ou les évènements) permettent de communiquer entre processus : réveiller, arrêter ou avertir un processus d'un événement. L'utilisation des mécanismes de synchronisation est difficile et peut entraîner des problèmes d'interblocage (tous les processus seront alors bloqués). <tv>lt La Salle Avignon BTS IRIS</tv> Cours IPC v1.0 8/18

Échange de données et synchronisation Ces outils regroupent les possibilités des deux autres et sont plus simples d'utilisation. L'idée est de communiquer en utilisant le principe des files (notion de boite aux lettres), les processus voulant envoyer des informations (notion de messages) les placent dans la file ; ceux voulant les recevoir les récupèrent dans cette même file. Les opérations d'écriture et de lecture dans la file sont bloquantes et permettent donc la synchronisation. Ce principe est utilisé par : les files d'attente de message (message queue) sous Unix, les sockets Unix ou Internet, les tubes (nommés ou non), et la transmission de messages (Message Passing). Remarques : CORBA, DCOM, SOAP et MPI sont des exemples de systèmes de passage de messages. <tv>lt La Salle Avignon BTS IRIS</tv> Cours IPC v1.0 9/18

IPC System V (1) Les IPC Système V recouvrent 3 mécanismes de communication entre processus (Inter Processus Communication) : Les files de messages, dans lesquelles un processus peut glisser des données ou en extraire. Les messages étant typés, il est possible de les lire dans un ordre différent de celui d'insertion, bien que par défaut la lecture se fasse suivant le principe de la file d'attente. Les segments de mémoire partagée, qui sont accessibles simultanément par deux processus ou plus, avec éventuellement des restrictions telles que la lecture seule. Les sémaphores, qui permettent de synchroniser l'accès à des ressources partagées. <tv>lt La Salle Avignon BTS IRIS</tv> Cours IPC v1.0 10/18

IPC System V (2) Les IPC permettent de faire communiquer deux processus d'une manière asynchrone, à l'inverse des tubes. C'est à dire qu'au moyen des IPC, un processus pourra avoir accès à une information alors que le processus qui a généré l'information est terminé depuis longtemps. La sauvegarde des informations est assurée par le système mais celui-ci ne garantit ces informations que s'il ne subit pas d'arrêt (car il n'y a pas de sauvegarde sur disque dans ce cas). Dans tous les cas, ces outils de communication peuvent être partagés entre des processus n'ayant pas immédiatement d'ancêtre commun. <tv>lt La Salle Avignon BTS IRIS</tv> Cours IPC v1.0 11/18

IPC System V (3) La mise en oeuvre des IPC présente des points communs : les primitives de création et d'ouverture d'un objet se présentent sous la forme xxxget(). Elles attendent une clef comme l'un des paramètres et renvoient un identificateur. La clef est une donnée de type key_t qui doit être connue de tous les processus utilisant l'ipc. les primitives de contrôle de l'objet se présentent sous la forme xxxctl(). Elles permettent généralement d'obtenir les caractéristiques de l'objet, modifier ses caractéristiques ou détruire l'objet. Tout objet, géré par le noyau, est identifié par : une identificateur interne correspondant à l'entrée dans une table système et contenant les caractéristiques de l'objet, un identificateur externe, appelé la clé, utilisé par les processus utilisateurs pour manipuler l'objet. <tv>lt La Salle Avignon BTS IRIS</tv> Cours IPC v1.0 12/18

IPC System V (4) Il existe deux types d'ipc : System V et POSIX. Les IPC System V sont une ancienne API (orientée UNIX). Les IPC POSIX fournissent une interface bien mieux conçue (portable et "thread safe") que celles de System V. D'un autre coté, les IPC POSIX sont moins largement disponibles (particulièrement sur d'anciens systèmes) que ceux de System V. Plus de détails : man mq_overview, man sem_overview, man shm_overview <tv>lt La Salle Avignon BTS IRIS</tv> Cours IPC v1.0 13/18

Segment de mémoire partagée Les processus peuvent avoir besoin de partager de l'information. Le système Unix fournit à cet effet un ensemble de routines permettant de créer et de gérer un segment de mémoire partagée. Un segment de mémoire partagée est identifié de manière externe par un nom qui permet à tout processus possédant les droits, d'accéder à ce segment. Lors de la création ou de l'accès à un segment mémoire, un numéro interne est fourni par le système. Parmi les mécanismes de communication entre processus, l'utilisation de segments de mémoire partagée est la technique la plus rapide, car il n'y a pas de copie des données transmises. Ce procédé de communication est donc parfaitement adapté au partage de gros volumes de données entre processus distincts. <tv>lt La Salle Avignon BTS IRIS</tv> Cours IPC v1.0 14/18

Sémaphores Si deux processus écrivent et lisent "en même temps" dans une même zone de mémoire partagée, il ne sera pas possible de savoir ce qui est réellement pris en compte. D'où l'obligation d'utiliser des sémaphores pour ne donner l'accès à cette zone qu'à un processus à la fois. tp-sys-ipc.pdf 45 mn <tv>lt La Salle Avignon BTS IRIS</tv> Cours IPC v1.0 15/18

Files de messages (1) Les files de messages sont des listes chaînées gérées par le noyau dans lesquelles un processus peut déposer des données (messages) ou en extraire. Elle correspond au concept de boîte aux lettres. Un message est une structure comportant un nombre entier (le type du message) et une suite d'octets de longueur arbitraire, représentant les données proprement dites. Les messages étant typés, il est possible de les lire dans un ordre différent de celui d insertion. Le processus récepteur peut choisir de se mettre en attente soit sur le premier message disponible, soit sur le premier message d'un type donné. <tv>lt La Salle Avignon BTS IRIS</tv> Cours IPC v1.0 16/18

Files de messages (2) Un processus peut émettre des messages même si aucun processus n'est prêt à les recevoir. Les messages déposés sont conservés après la mort du processus émetteur, jusqu'à leur consommation ou la destruction de la file. Les messages ne contiennent pas à priori le numéro du processus émetteur ni celui du destinataire. C'est au processus utilisateur de décider de l'interprétation de chaque message. Une propriété essentielle de la file de messages est que le message forme un tout. On le dépose ou on l'extrait en une seule opération. <tv>lt La Salle Avignon BTS IRIS</tv> Cours IPC v1.0 17/18

Files de messages (3) Les avantages principaux de la file de message (par rapport aux tubes et aux tubes nommés) sont : un processus peut émettre des messages même si aucun processus n'est prêt à les recevoir les messages déposés sont conservés, même après la mort de l'émetteur, jusqu'à leur consommation ou la destruction de la file. Le principal inconvénient de ce mécanisme est la limite de la taille des messages ainsi que celle de la file. tp-sys-ipc.pdf 30 mn <tv>lt La Salle Avignon BTS IRIS</tv> Cours IPC v1.0 18/18