Module Systèmes d’exploitation

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Module Systèmes d’exploitation
Module Systèmes d’exploitation
Module Systèmes d’exploitation
Module Systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Le matériel des ordinateurs Revue Pt II (Tanenbaum 1.4)
GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum & 5.3.4)
GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)
GEF 435 Principes des systèmes dexploitation Les systèmes dexploitation en général (Tanenbaum 1.1 et 1.3)
GEF 243B Programmation informatique appliquée
Chapitre annexe. Récursivité
Julie Dugdale Génie Logiciel 2 Julie Dugdale
Fonctions & procédures
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
Critère d’ordonnancement en temps réel Partie II
Critère d’ordonnancement en temps réel Partie III
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Ordonnancement partie I (Tanenbaum 2.5)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitations
Systèmes en temps réel Services de Communication.
Tolérance aux défaillances de logiciel
GEF 243B Programmation informatique appliquée Boucles §
GEF 435 Principes des systèmes d’exploitation
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Considération de temps.
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) II (Tanenbaum 2.3)
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) III (Tanenbaum 2.3)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
GEF 243B Programmation informatique appliquée Expressions et opérateurs §
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Génie logiciel et Vérification et validation.
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §
GEF 243B Programmation informatique appliquée
GEF 435 Principes des systèmes d’exploitation
Chapitre 3 Interblocages
Diagramme d’activité.
1 Théorie des Graphes Cycle Eulérien. 2 Rappels de définitions On dit qu'une chaîne est un chemin passant par toutes les arêtes du graphe. On dit qu'un.
Atomicité Transactions Atomiques Recouvrement à Base de Journal
1.2 COMPOSANTES DES VECTEURS
MICROSOFT POWER POINT Fais « Enter » Par Danièle Lippé.
Interblocage = impasse (Deadlock)
8.1 URDL22005 Systèmes dexploitation Interblocages Modèle Système Caractérisation dinterblocage Méthodes pour Gérer les Interblocages Prévention des Interblocages.
Module 51 Module 5 - Synchronisation de Processus (ou threads, ou fils ou tâches) Module 5 - Synchronisation de Processus (ou threads, ou fils ou tâches)
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
Module 6 - Interblocage = impasse (Deadlock)
Chapitre 6 (Silberchatz)
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
3 () CHAPITRE Les créances Le crédit est un excellent moyen daugmenter son chiffre daffaires, et il est très difficile pour une entreprise de léviter complètement.
Chapitre 3 Interblocages 3.1. Ressources
Ordonnancement de tâches
Questions des 4 carrés Prêts ? B A Regardez bien ce diagramme
Systèmes de gestion de bases de données NFP 107 Les techniques du contrôle de concurrence Philippe Rigaux
Gestion de processus Corrigé TD 1 EFREI I
Programmation linéaire en nombres entiers
Interactions entre Processus
GF-11: Tri Interne Efficace et Tri Externe
A) Avec l’ordonnancement Rate Monotonic les priorités des processus suivent l’ordre inverse des périodes : P1 est prioritaire sur P2, lui-même prioritaire.
Principe de mise en position, isostatisme et côtes fabriquées
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
Systèmes d’exploitation
Interblocage = impasse (Deadlock)
Algorithmique Boucles et Itérations
Transcription de la présentation:

Module Systèmes d’exploitation BTS Génie Informatqiue École Normale Supérieure Tétouan Département Informatique Module Systèmes d’exploitation Chapitre 8 Interblocage : Évitement et prévention Partie III 2008-2009 Enseigant : AAMMOU Souhaib

Module Systèmes d'exploitation BTS Génie Informatqiue Revue Comment est-ce que l’on détecte des interblocages avec des instances multiples de ressources? Quelles sont les quatre conditions des interblocages? Answer: Four data structures: Resources in existence Available Resource Matrix of resources allocated to processes Matrix of resources requested by processes Now we look to see if our available resources can satisfy the request of one of the processes. If so, mark it as “run” and add its allocated resources to those available. Repeat until all processes are marked or we cannot continue. Any process not marked as “run” are deadlocked Four conditions for deadlock: Mutual exclusion condition (resources either free or allocated to a process) Hold and wait condition (processes may obtain more than one resource simultaneously) No preemption condition (resources may not be taken away from a process) Circular wait condition (at least two processes are waiting on events that only another process in the cycle can cause) Enseigant : AAMMOU Souhaib

Module Systèmes d'exploitation BTS Génie Informatqiue Synopsis Évitement des interblocages Prévention des interblocages Ask them what these mean again: Avoidance is the stop deadlocks through a very careful allocation of resources Prevention is a way to avoid deadlocks by breaking one of the four conditions for deadlock. Enseigant : AAMMOU Souhaib

Évitement des interblocages Module Systèmes d'exploitation BTS Génie Informatqiue Évitement des interblocages Jusqu’à date nous avons vue deux solutions aux problème des interblocages: On ignore ou on les détectes et on reprend Ne serait t’il pas mieux si, avec une allocation de ressources prudente, nous pourrions empêcher les interblocages? Ceci s’appel l’Évitement des interblocages (Deadlock Avoidance) Enseigant : AAMMOU Souhaib

Évitement des interblocages Module Systèmes d'exploitation BTS Génie Informatqiue Évitement des interblocages Pour éviter les interblocages, il est important de ne pas s’avancer vers un état non sécuritaire Un état est dit sécuritaire (sûr) si il n’est pas en interblocage et qu’il existe un ordre d’ordonnancement dans lequel chaque processus peut exécuter jusqu’à la fin, même si tout les processus demanderaient immédiatement toutes les ressources dont ils ont besoin pour finir leurs travaux Enseigant : AAMMOU Souhaib

Évitement des interblocages Module Systèmes d'exploitation BTS Génie Informatqiue Évitement des interblocages Un état est sûr si le système peut en sortir sans interblocages Ne pas allouer une ressource à un processus si l’état qui en résulte n’est pas sûr États sûrs É. non-sûrs Impasse Enseigant : AAMMOU Souhaib

Évitement des interblocages Module Systèmes d'exploitation BTS Génie Informatqiue Évitement des interblocages Si tout les processus demandent leurs maximum de ressources, est-ce que l’état de départ est sécuritaire? Note that we are dealing with a single resource type for this example. When showing this animation note that we are assuming that every process requests its maximum resources. First, Bs are satisfied. Once finished, it goes on. Parce que tout les processus pouvaient exécuter jusqu’à la fin, l’état initial était sécuritaire! Enseigant : AAMMOU Souhaib

Évitement des interblocages Module Systèmes d'exploitation BTS Génie Informatqiue Évitement des interblocages Et si le processus A a demandé une ressource simple en premier et qu’il l’a obtenu? Note that this did not HAVE TO lead to a deadlock. Only if all processes needed their maximum number of resources to complete was it a deadlock. If C can complete with 2, or release a single resource then everything will work out for the best. However, the state was unsafe... Parce que pas tout les processus ne peuvent pas compléter, l’état vers lequel on est allé était non sécuritaire!!! C’est ce déplacement vers un état non sécuritaire que nous devons détecter... Enseigant : AAMMOU Souhaib

Évitement des interblocages Module Systèmes d'exploitation BTS Génie Informatqiue Évitement des interblocages Une façon d’éviter les interblocages pour plusieurs instances d’une seul ressource est l’algorithme du banquier (Banker’s Algorithm) Modélisé sur la façon qu’un banquier pourrait approuver des demandes de prêts pour ses clients L’idée est que chaque client a un montant de crédit maximum qui est établit. Il est garantie que si ils sont alloués leurs crédit maximum, qu’ils seront capables de compléter leurs travaux pour lesquels les prêts étaient requis et qu’ils vont repayer la banque Note the resource with multiple instances Enseigant : AAMMOU Souhaib

Évitement des interblocages Module Systèmes d'exploitation BTS Génie Informatqiue Évitement des interblocages Algorithmes du banquier: Quand un client fait une demande d’argent, l’algorithme vérifie si la demande mènerait à un état non sécuritaire, si oui, la demande est refusée La détermination est comme nous avons vue précédemment SAFE So, really, the algorithm is just what we saw previously. We only give out resources if the state to which the process move is safe. Ask them: in this analogy the banker is the? (operating system) and the customers are (processes) Doesn’t this result in waste? We aren’t allocating all of our resources. Yes, but it prevents deadlocks Less waste than only allowing a process to take the maximum it will ever need at one More concurrent activity More resources in use (in general) REMEMBER!!! Unsafe is not necessarily a deadlock, but we can no longer guarantee that we can prevent a deadlock either. UNSAFE Enseigant : AAMMOU Souhaib

Évitement des interblocages Module Systèmes d'exploitation BTS Génie Informatqiue Évitement des interblocages L’algorithme du banquier fonctionne pour une ressource avec des instances multiples. Mais que faisons-nous pour les ressources multiples? L’algorithme peut être généralisé en utilisant des structures de données similaires à celles utilisées pour la détection des interblocages Un vecteur des ressources existantes (E) et disponibles (A) Une matrice de ressources couramment assignées à chaque processus (C) Une matrice des ressources que chaque processus pourraient encore avoir besoin (le maximum) pour compléter (R) Enseigant : AAMMOU Souhaib

Évitement des interblocages Module Systèmes d'exploitation BTS Génie Informatqiue Évitement des interblocages Algorithme du banquier pour les ressources multiples: Trouve une rangé dans, R, pour laquelle les ressources requises (ie: maximum potentiel) est plus petit ou égale au vecteur A. Si cette rangé n’existe pas, le système est non sécuritaire parce que si tout les processus demanderaient leurs maximum de ressources, aucun ne pourrait terminer 2) Assumez que le processus de la rangé choisi demande toutes les ressources dont il a besoin pour terminer. Marquez ce processus comme terminé et ajoutez les ressources au vecteur A 3) Répétez les étapes 1 et 2 jusqu’à ce que tout les processus soient marqués comme terminé (dans ce cas l’état est sécuritaire) ou jusqu’à ce qu’il soit démontré qu’un état non sécuritaire est présent Enseigant : AAMMOU Souhaib

Évitement des interblocages Module Systèmes d'exploitation BTS Génie Informatqiue Évitement des interblocages Est-ce que cet état est sécuritaire? Note vector P is simply the sum of assigned resources to speed in our calculation of vector A. Ask them if the state is still safe if B asks for a scanner (and is granted it). Then what if E asks for and is granted the final scanner? (no longer safe as nothing can complete so D can no longer finish and return its resources to the pool) Enseigant : AAMMOU Souhaib

Évitement des interblocages Module Systèmes d'exploitation BTS Génie Informatqiue Évitement des interblocages Est-ce que l’évitement des interblocages avec l’allocation prudente des ressources pratique? Désavantage: La vérification pour chaque demande prend du temps: overhead Désavantage : Les processus doivent savoir a priori toutes les ressources dont ils ont besoin Désavantage : Les processus sur le système peuvent changer, ce qui complique l’algorithme Réponse: peu de système, si il y en a, utilise l’algorithme du banquier pour éviter les interblocages Enseigant : AAMMOU Souhaib

Prévention des interblocages Module Systèmes d'exploitation BTS Génie Informatqiue Prévention des interblocages Si on brise une des quatre conditions pour l’interblocage, ils n’arriveront jamais Attaquer la condition de l’exclusion mutuelle Presque impossible à enlever. Au lieu d’avoir des interblocages, nous allons avoir des concurrences critiques et des données corrompus sur les CD-ROMs qui ont acceptés de l’information de deux processus simultanément Cependant, des fois les ressources peuvent être abstraites. Au lieu d’écrire sur une imprimante, dans Windows on écrit sur un spooler et les jobs sortent à leurs tour Note that even with the spooler the problem isn’t removed. A spooler is a finite size. It waits for a job to be completely entered before printing since if it starts and the process becomes blocked then we’ll have the same problem of mutual exclusion as before. But what if two processes write to the buffer at the same time and each fill up ½ of it and still have more data to print. Deadlock. Enseigant : AAMMOU Souhaib

Prévention des interblocages Module Systèmes d'exploitation BTS Génie Informatqiue Prévention des interblocages Attaquer la condition de Tenir et Attendre Requiert que tout les processus demande toutes les ressources dont ils ont besoin avant de commencer l’exécution. Cela fonctionne (et est utilisé parfois) mais il y a des problèmes Problème: Habituellement les processus ne savent pas de quelles ressources ils vont avoir besoin. Si ils le savaient tout le temps, on pourrait utiliser l’algorithme du banquier sans problèmes Problème: Si le traitement des données prend du temps avant que le périphérique est utilisé, on a une perte de ressources et un déclin de multiprogrammation Alternative: Demander à un processus de relâcher toutes les ressources qu’il a avant d’en demander un autre The last solution seems to be a better one, but may not be practical. Enseigant : AAMMOU Souhaib

Prévention des interblocages (note) Module Systèmes d'exploitation BTS Génie Informatqiue Prévention des interblocages (note) Verrouillage à deux phases (Two-Phase Locking) Une méthode qui brise la condition de tenir et attendre et qui est utilisé dans la vraie vie pour les bases de données Un processus qui veut mettre à jour un nombre d’enregistrements (records) essaie de tout les verrouillés. Si un des enregistrements est déjà verrouillé, il relâche tout les enregistrements et essaie encore Si il réussi, il met à jour tout les records et relâche les verrous Pas un choix santé pour les systèmes en temps réel par contre... Enseigant : AAMMOU Souhaib

Prévention des interblocages Module Systèmes d'exploitation BTS Génie Informatqiue Prévention des interblocages Attaquer la condition de non préemption Ceci est essentiellement pas possible. Très peux de périphériques peuvent souffrir une préemption durant l’utilisation et cela prendrait une grande quantité de matériel pour le permettre (si cela est possible en premier lieu!) C’est la même chose pour les ressources virtuelles. Il est très difficile de faire de la préemption sur les bases de données sans faire beaucoup de travail. Enseigant : AAMMOU Souhaib

Prévention des interblocages Module Systèmes d'exploitation BTS Génie Informatqiue Prévention des interblocages Attaquer la condition de l’attente circulaire Permettre au processus de tenir seulement une ressource à la fois Pas faisable. Pourquoi? Donner un numérotage des ressources global; exiger que tout les programmes demandes les ressources dans cet ordre De cette façon, un cycle ne peut jamais ce produire… un processus va toujours demander une ressource qui a été demandé et va bloquer Problème: Cela peut-être difficile de trouver un ordre qui fait à tout les processus. On peut ne pas savoir quel genre de brûleur CD à demander jusqu’à ce que nous ayons certaine autre information Draw this one out with a couple of sample resources and processes and show how it cannot occur. Enseigant : AAMMOU Souhaib

Prévention des interblocages Module Systèmes d'exploitation BTS Génie Informatqiue Prévention des interblocages Sommaire Les méthodes suivantes sont disponibles pour nous permettre de prévenir les interblocages. La plus part sont difficile ou non pratique. La plus part des systèmes utilisent la méthode de l’autruche... Condition Approche Exclusion Mutuelle Spool tout Tenir et attendre Demander toutes les ressources initialement Pas de Préemption Enlever les ressources Attente circulaire Ordre numérique des ressources Enseigant : AAMMOU Souhaib

Module Systèmes d'exploitation BTS Génie Informatqiue Quiz Time! Questions? How do we use the Banker’s algorithm to detect an unsafe state with multiple instances of each resource? find a process that can complete if it requests its maximum amount of resources Add its resources to the available pool Repeat until all process are complete. Any incomplete processes are deadlocked. Enseigant : AAMMOU Souhaib