* Creation Carte De Visite Annecy-le-Vieux
Creation Carte De Visite Annecy-le-Vieux
Article:
La famine apparait comme un ème que peut avoir un algorithme d'exclusion mutuelle. Il résulte lorsqu'un algorithme n'est pas équitable, c'est-à-dire qu'il ne garantit pas à tous les threads souhaitant accéder à une section critique une probabilité non nulle d'y parvenir en un temps fini. Il est difficile de concevoir des systèmes à l'abri de famines. Pour ce qui est de l'exclusion mutuelle par exemple, il y a deux algorithmes garantissant qu'il ne se produira pas de famine, l'algorithme de Dekker et l'algorithme de Peterson, mais dans les deux cas, cette garantie est obtenue au prix d'une coûteuse attente active. Une des causes possibles de famine reste les algorithmes qui ne garantissent pas que les processus qui souhaitent entrer dans une section critique y entrent dans le même ordre que les demandes (c'est-à-dire un comportement FIFO). Un exemple typique de mécanisme de synchronisation qui ne garantit pas cet ordre est le synchronized du langage java. Un algorithme classique admettant la détection des interblocages à l'avance est l'Algorithme du Banquier. Celui-ci nécessite de connaître à l'avance les limites d'utilisation des ressources. Toutefois, pour beaucoup de systèmes, il est impossible de connaître à l'avance les demandes de chaque processus. Cela engage que l'évitement des interblocages est souvent impossible. Les algorithmes Attente/Mort (Wait/Die) et Blessé/Attente (Wound/Wait) semblent être deux autres méthodes d'évitement qui utilisent une technique de rupture de la symétrie. Dans ces deux algorithmes on prend en compte l'âge des processus et l'on distingue un processus âgé (A) et un processus jeune (J). l'âge d'un processus peut être déterminé par horodatage (timestamp) lors de sa création. Les dates les plus petites appartiennent à des processus plus âgés, les plus grandes à des processus plus jeunes. Il est important de se rendre compte qu'un processus peut être dans un état non sûr sans pour autant forcément conduire à un interblocage. La notion de sûr/non sûr fait uniquement référence à la possibilité que le système entre dans un interblocage ou non. Par exemple, si un processus fait une requête sur une ressource A qui résulte en un état non sûr, mais relâche une ressource B pour éviter une attente circulaire, alors l'état est non sûr mais le système n'est pas en interblocage. Une méthode consiste à toujours acquérir les mutex (exclusion mutuelle) dans le même ordre. En effet, si plusieurs processus légers (thread) nécessitent d'acquérir plusieurs verrous pour effectuer leur travail, s'ils acquièrent les verrous dans un ordre différent, il est possible qu'ils se bloquent lors de la séquence d'acquisition (comme dans l'exemple précédent). Il convient aussi de s'intéresser aux priorités des processus. En effet, si par exemple un processus de haute priorité utilise un verrou en commun avec un processus de basse priorité (voir aussi inversion de priorité), il est possible d'obtenir des situations de blocage.
Si besoin, Web2007 peut se déplacer dans toute la région Rhones-Alpes.
Pour info, j'habite personnellement à Gaillard-Haute Savoie et mon bureau est juste à coté à Genève-Suisse.