Bus mastering
# Bus mastering

En informática, bus mastering es una característica soportada por muchas arquitecturas de bus que permite a un dispositivo conectado al bus iniciar operaciones de acceso directo a memoria (DMA). También llamada First-party DMA ("Primera parte del DMA"), para contrastar con Third-party DMA ("Tercera parte del DMA"), en realidad la situación es que el sistema controlador DMA hace la transferencia.

Algunos tipos de buses permiten a un único dispositivo (normalmente la CPU, o su proxy) iniciar las operaciones. La mayoría de las arquitecturas bus, incluyendo PCI, permiten múltiples dispositivos de bus master, ya que mejora considerablemente el rendimiento del objetivo general de los sistemas operativos. Algunos sistemas operativos de tiempo real prohíben que los periféricos se conviertan en bus master, porque el planificador ya no puede arbitrar para el bus y, por tanto, no puede proporcionar determinadas latencias.

Mientras que bus mastering en teoría permite que un dispositivo periférico pueda comunicarse directamente con otro, en la práctica casi todos los periféricos dominan el bus exclusivamente para ejecutar DMA a la memoria.

Si múltiples dispositivos están habilitados para controlar el bus, tiene que haber un sistema de arbitraje para evitar que múltiples dispositivos intenten manejar el bus de manera simultánea. Existen diferentes planificaciones que son usadas para esto; por ejemplo, SCSI fija una prioridad para cada SCSI ID. Por otra parte PCI no especificó el algoritmo a utilizar, dejando que cada implementación establezca sus propias prioridades.

