La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

GEF 435 Principes des systèmes d’exploitation

Présentations similaires


Présentation au sujet: "GEF 435 Principes des systèmes d’exploitation"— Transcription de la présentation:

1 GEF 435 Principes des systèmes d’exploitation
Interblocage: Évitement, prévention et revue (Tanenbaum 3.5, 3.6 et 3.7)

2 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)

3 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.

4 É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)

5 É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 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

6 É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!

7 Évitement des interblocages
Et si le processus A a demandé une ressource simple en premier et qu’il l’a obtenu? 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... 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...

8 É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

9 É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 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 once 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. Sécuritaire Non- Sécuritaire

10 É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)

11 Évitement des interblocages
Algorithme du banquier pour les ressources multiples: 1) 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

12 Évitement des interblocages
Algorithme du banquier pour ressources multiples: 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

13 É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)

14 É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: surcharge (overhead) Désavantage : Les processus doivent savoir à 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

15 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.

16 Prévention des interblocages
Attaquer la condition de Tenir et Attendre Requiert que touts 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.

17 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ée 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 verrouiller. 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...

18 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.

19 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ée 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.

20 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

21 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.


Télécharger ppt "GEF 435 Principes des systèmes d’exploitation"

Présentations similaires


Annonces Google