next up previous index
Next: Les systèmes distribués Up: La gestion des ressources Previous: Les politiques de prévention   Index

Subsections

Les politiques laxistes

En fait, pour deux raisons, les concepteurs de systèmes d'exploitation ignorent en partie le problème de l'interblocage.

Les solutions retenues sont en fait une combinaison des politiques de reprise et de prévention.

Mise en \oe uvre de la détection et reprise

La détection est assurée par l'utilisateur où l'ingénieur système. La reprise est une reprise par élimination d'un processus.

Mise en \oe uvre de la prévention

Exclusion mutuelle :
on utilise un spool pour toutes les ressources qui le permettent.
Tenir et attendre :
un protocole à deux phases est souvent mis en place pour les transactions dans les SGBD.
Pas de réquisition :
la solution proposée ne peut pas s'appliquer à toutes les ressources, mais c'est la solution utilisée avec l'UC et ses registres lors de chaque entrée-sortie.
Attente circulaire :
la solution ne peut pas être respectée par tous les utilisateurs, mais on peut demander aux programmeurs du noyau de la respecter. C'est la solution utilisée dans Linux comme l'indique cet extrait du fichier dma.c.

   1 /* $Id: dma.c,v 1.7 1994/12/28 03:35:33 root Exp root $
   2  * linux/kernel/dma.c: A DMA channel allocator. Inspired by linux/kernel/irq.c.
   3  *
   4  * Written by Hennus Bergman, 1992.
  11  */
  12 
  13 #include <linux/kernel.h>
  14 #include <linux/errno.h>
  15 #include <asm/dma.h>
  16 #include <asm/system.h>
  17 
  18 
  19 /* A note on resource allocation:
  20  *
  21  * All drivers needing DMA channels, should allocate and release them
  22  * through the public routines `request_dma()' and `free_dma()'.
  23  *
  24  * In order to avoid problems, all processes should allocate resources in
  25  * the same sequence and release them in the reverse order.
  26  *
  27  * So, when allocating DMAs and IRQs, first allocate the IRQ, then the DMA.
  28  * When releasing them, first release the DMA, then release the IRQ.
  29  * If you don't, you may cause allocation requests to fail unnecessarily.
  30  * This doesn't really matter now, but it will once we get real semaphores
  31  * in the kernel.
  32  */


next up previous index
Next: Les systèmes distribués Up: La gestion des ressources Previous: Les politiques de prévention   Index
Alain GRIFFAULT
2000-12-22