Les Ressources. Gestion des ressources. Les Ressources. Partage de ressource

Documents pareils
Cours de Systèmes d Exploitation

Chapitre 4 : Exclusion mutuelle

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Cours 2: Exclusion Mutuelle entre processus (lourds, ou légers -- threads)

L exclusion mutuelle distribuée

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

Gestion des processus

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Ordonnancement temps réel

On appelle variable condition une var qui peut être testée et

Cours Bases de données 2ème année IUT

Problèmes liés à la concurrence

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

gestion des processus La gestion des processus

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

Introduction à la programmation concurrente

LE PROBLEME DU PLUS COURT CHEMIN

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

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Introduction aux systèmes temps réel. Iulian Ober IRIT

Implémentation des SGBD

Programmation Objet - Cours II

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin Algorithmique 1

Les processus légers : threads. Système L3, /31

Les diagrammes de modélisation

Programmation C++ (débutant)/instructions for, while et do...while

DAns un système multi-utilisateurs à temps partagé, plusieurs processus

Initiation au HPC - Généralités

CORRECTION EXERCICES ALGORITHME 1

Partie 7 : Gestion de la mémoire

INTRODUCTION À LA PROGRAMMATION CONCURRENTE

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

Les 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

Bases de données avancées Concurrence d'accès et reprise

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

LOG4430 : Architecture et conception avancée

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Systèmes Répartis. Mr. Mehrez Boulares, Mr. Nour Ben Yahia

Cours A7 : Temps Réel

Feuille TD n 1 Exercices d algorithmique éléments de correction

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct...

Cette option est aussi disponible sur les clients Windows 7 sous la forme d un cache réparti entre les différentes machines.

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

INITIATION AU LANGAGE JAVA

IFT Systèmes d exploitation - TP n 1-20%

Présentation du déploiement des serveurs

<Insert Picture Here> Solaris pour la base de donnés Oracle

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Module : Virtualisation à l aide du rôle Hyper-V

Le langage C. Séance n 4

CONDITIONS GENERALES DE VENTES -REFERENCEMENT NATUREL

Cours Programmation Système

MANUEL UTILISATEUR SOPISAFE V 3.5

Recherche dans un tableau

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

mai-2008 Infogérance des serveurs conçus par SIS alp 1

Algorithmes de recherche

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

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Conception des systèmes répartis

RÉPUBLIQUE ET CANTON DE GENÈVE Echelle des traitements 2015 Valable dès le Office du personnel de l'etat Indexation de 0.

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

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Manuel d'utilisation du client VPN Édition 1

Règlement pour les fournisseurs de SuisseID

Présentation d HyperV

C f tracée ci- contre est la représentation graphique d une

Architecture des ordinateurs. Environnement Windows : sauvegarde

Chapitre 2. Les processus. 2.1 Introduction. 2.2 les différents états d un processus

Cours de Génie Logiciel

Gestion des transactions et accès concurrents dans les bases de données relationnelles

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

Analyse du temps de réponse des systèmes temps réel

Systemes d'exploitation des ordinateurs

Algorithmique avec Algobox

Support de cours système d exploitation

Systèmes et algorithmes répartis

Ordonnancement temps réel

CONDITIONS GENERALES DU SERVICE BANQUE EN LIGNE ECOBANK

Introduction aux Systèmes et aux Réseaux

Threads. Threads. USTL routier 1

REGLEMENT DU CONCOURS MACIF «PRIX MACIF DU FILM ECONOMIE SOCIALE»

La prise de conscience de la Cyber Sécurité est en hausse

Le Ro le Hyper V Troisie me Partie Haute disponibilite des machines virtuelles

TP WINDOWS 2008 SERVER - OUTILS DE SAUVEGARDE ET DE RESTAURATION

Traduction des Langages : Le Compilateur Micro Java

Hyper-V et SC Virtual Machine Manager sous Windows Server 2008 R2

Nouvelles stratégies et technologies de sauvegarde

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Quelques algorithmes simples dont l analyse n est pas si simple

APX Solution de Consolidation de Sauvegarde, restauration et Archivage

L apprentissage automatique

Windows Internet Name Service (WINS)

PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC!

Eliminer les zones d ombre et fournir une identité utilisateur sur le pare-feu dans un environnement client léger

NORTEL NETWORKS LIMITED

Concept de machine virtuelle

GLOSSAIRE DU SOUTIEN EN CAS DE RECOURS EN JUSTICE

Transcription:

Les Ressources Gestion des ressources Ressources partageables simultanément code réentrant : conçu pour être exécuté simultanément par plusieurs processus fichier ou zone mémoire en lecture seule périphériques partageable (disques) Ressources banalisées Ensemble de ressources de même type pouvant être utilisées indifféremment les unes des autres : tampons (buffers) mémoires dérouleurs de bande imprimantes (si identiques) Les Ressources Ressources réutilisables séquentiellement code non réentrant toute mémoire en lecture/écriture processeur périphériques séquentiels (imprimante, dérouleur de bande) Ce sont des ressources critiques Ressources réquisitionnables ou non Ressources virtuelles (disque, mémoire, ) Partage de ressource Exemple : Partage d une donnée en mémoire Deux tâches (A et B) s exécutent simultanément Elles doivent modifier la même donnée Chaque tâche doit donc : - lire cette donnée, - calculer sa nouvelle valeur - mémoriser la nouvelle valeur Problème : l exécution simultané des tâches A et B peut perturber les calculs 1

Partage de ressource Exclusion mutuelle : éléments de base 1. Une section critique est occupée par une seule tâche à la fois : deux processus ne peuvent être dans la même section critique 2. Aucune hypothèse doit être faite sur la vitesse relative des tâches, ni sur le nombre de tâches 3. Aucune tâche suspendue en dehors d'une section critique ne doit empêcher une autre d'y entrer (pas d'interblocage) 4. Une tâche doit attendre un temps fini devant une section critique (pas de famine) Exclusion mutuelle : verrouillage par une variable Attente active (1) Solution triviale Les processus partagent des variables pour synchroniser leurs actions Pour entrer dans une section critique, chaque processus doit consulter une variable booléenne unique (initialisée à faux) indiquant si la ressource critique est occupée Si elle vaut faux, le processus la met à vrai et entre en section critique Si le verrou est à vrai, le processus attend qu elle soit à faux Pb : exclusion mutuelle non assurée! 2

Attente active (2) Solution avec tableau de booléens solution avec un tableau de booléens qui indiquent qui veut entrer en section critique Attente active (3) Solution avec variable entière tour pour assurer l alternance Entrée_SC(Consulté i : entier) demande[i] VRAI tantque demande[3-i] faire fin; Sortie_SC(Consulté i : entier ) demande[i] FAUX Init_SC( ) demande[1] FAUX demande[2] FAUX Entrée_SC(Consulté i : entier) tantque (tour = 3-i) faire fin; Sortie_SC(Consulté i : entier ) tour 3-i Init_SC( ) tour 1 Exclusion mutuelle assurée mais risque d interblocage! Exclusion mutuelle assurée mais risque de famine! Attente active (4) Solution de Dekker-Peterson Mécanismes matériels pour l exclusion mutuelle Mono-processeur : masquage des interruptions Entrée_SC : masquage Sortie_SC : démasquage Entrée_SC(Consulté i : entier) demande[i] vrai tour 3-i tantque demande[3-i] et tour i fin; Sortie_SC(Consulté i : entier ) demande[i] FAUX Init_SC( ) demande[1] FAUX demande[2] FAUX 3

Mécanismes matériels Multiprocesseurs : Instruction Test and Set Lock fonction Test_And_Set (Modifié occupée : booléen) booléen booléen TAS TAS occupée occupée VRAI TAS Attente active en configuration multiprocesseurs avec Test and Set Lock Solution à base d attente passive Problème des solution précédentes : Gaspillage de l UC (attente active) Principe des solutions à base d attente passive : Endormir un processus lorsque la section est verrouillée Le réveiller lorsqu elle se libère utilisation des verrous Type verrou = structure ouvert : booléen; attente : liste de tâches; fin verrou; Verrous procédure verrouiller (modifié v : verrou); si v.ouvert alors v.ouvert faux sinon Ajouter la tâche dans la liste v.attente dormir finsi; fin verrouiller; procédure init_verrou (modifié v : verrou); v.ouvert vrai; v.attente vide; fin init_verrou; procédure déverrouiller (modifié v : verrou); si v.attente vide alors Sortir la première tâche de v.attente, La réveiller sinon v.ouvert vrai finsi; fin déverrouiller; Exemple : voie unique Tâche TrainGauche (modifié voie : verrou); verrouiller(voie); déverrouiller(voie); fin TrainGauche; Tâche TrainDroit (modifié voie : verrou); verrouiller(voie); déverrouiller(voie); fin TrainDroit; 4

Sémaphores Mécanisme de synchronisation entre processus. Un sémaphore S est une variable entière, manipulable par l intermédiaire de deux opérations : P (proberen) et V (verhogen) P (S) S (S 1) si S < 0, alors mettre le processus en attente ; sinon on poursuit l exécution V (S) S (S + 1) ; réveil d un processus en attente. P (S) correspond à une tentative de franchissement. S il n y a pas de jeton pour la section critique alors attendre, sinon prendre un jeton et entrer dans la section (S), puis rendre son jeton à la sortie de la section critique. Chaque dépôt de jeton V (S) autorise un passage. Il est possible de déposer des jetons à l avance Type sémaphore = structure val : entier; attente : liste de tâches; fin sémaphore; procédure init_sémaphore ( modifié s : sémaphore; consulté valeur : entier); s.val valeur s.attente vide fin init_sémaphore Sémaphores procédure P (modifié s : sémaphore) s. val s.val - 1 si s.val < 0 alors Ajouter la tâche dans la liste s.attente dormir finsi fin P procédure V (modifié s : sémaphore); s. val s.val + 1; si s.val 0 alors Sortir la première tâche de s.attente La réveiller finsi; fin V; Exemple : voie unique Difficultés liées au partage de ressources Tâche TrainGauche (modifié voie : sémaphore); P(voie); V(voie); fin TrainGauche; init_sémaphore(voie,1) Tâche TrainDroit (modifié voie : sémaphore); P(voie); V(voie); fin TrainDroit; 5

Interblocage (deadlock) Conditions : 1. Des ressources non partageables 2. Des processus qui conservent des ressources déjà obtenues alors qu ils sont en attentes d autres ressources 3. Les demandes de ressources sont bloquantes et il n y a pas de préemption (les ressources ne peuvent être réquisitionnées) 4. Il existe une chaîne circulaire de processus telle que chacun réclame les ressources possédées par le suivant Solutions : Prévention (en supprimant une des conditions) Détection Guérison Solutions au problème de l interblocage Prévention Allocation de ressources de manière «intelligente» Prévention a priori Méthode de l'allocation globale des ressources à une tâche (cond. 2) => immobilisation non productive de ressources => perte d'une bonne partie du parallélisme Méthode des classes ordonnées (cond. 4) Les ressources sont partagées en classe C0...CM et on n'alloue les ressources de la classe k que si la classe a déjà les ressources de la classe k-1. L'ordre d'allocation est le même pour toutes les tâches, on élimine ainsi la condition 4 (cycle dans les besoins et les allocations). Solutions au problème de l interblocage Algorithme du banquier Annonce des besoins (borne supérieure pour une ressource) Réévaluation du risque à chaque allocation (complètement centralisée) Fondé sur la notion d'état fiable : état à partir duquel on peut s'exécuter sans interblocage même dans l'hypothèse la plus pessimiste. Détection On peut utiliser pour détecter l'interblocage l'algorithme qui détermine si un état est fiable ou non. Guérison Il faut reprendre l'exécution dans un état fiable, deux méthodes principales : 1. détruire les tâches interbloquées l'une après l'autre jusqu'à obtenir un état fiable 2. sauvegarder périodiquement l'état des tâches quand on est dans un état fiable => points de reprise. Solutions au problème de l interblocage Que fait-on en pratique? Ni détection, ni guérison : on organise le système de façon à limiter au maximum les risques et on renvoie le programmeur à ses responsabilités. Tous les appels systèmes susceptibles de bloquer une tâche sont implémentés avec des délais d'attente au delà desquels l'appel retourne un code d'erreur. 6