Subsistema E/S , DMA

Subsistema E/S , DMA

de Diego Furrer Dellepiane -
Número de respuestas: 2

Buenas! Espero se encuentren bien.

Quería consultar sobre la siguiente slide

image.png

Al principio dice que "[...] los dispositivos orientados a caracteres interrumpen en cada transferencia. Esto puede generar una degradación importante en el sistema.", indicando que el hecho de que los dispositivos como el teclado y el ratón (orientados a caracteres) usen interrupciones puede degradar el sistema. Y después presenta el DMA como la solución a este problema.

Mi duda es si no debería decir "dispositivos orientados a bloque" (disco), ya que las interrupciones generadas por el teclado son mínimas en comparación con la velocidad de la CPU e intuitivamente no sobrecargan al sistema. Sin embargo, si los dispositivos orientados a bloque generaran una interrupción en cada transferencia, si podría degradar el sistema, ya que pueden ser necesarias millones de transferencias y a altas velocidades, por lo que el sistema estaría siendo interrumpido constantemente.

Muchas gracias!

Saludos,

Diego Furrer.

En respuesta a Diego Furrer Dellepiane

Re: Subsistema E/S , DMA

de Diego Furrer Dellepiane -

La PPT en la que aparece es la "Subsistema de Entrada/Salida". La duda se mantiene. Gracias!

En respuesta a Diego Furrer Dellepiane

Re: Subsistema E/S , DMA

de Alberto Castro -
Hola Diego,
Primero que nada te pido disculpas por la demora en responder a tu pregunta.
Motivos personales hicieron que no pudiera darte una respuesta completa a tiempo.
Tu pregunta es interesante y de hecho discutimos bastante este tema en clase cuando vimos DMA.

En un modelo tradicional, la CPU participa activamente en la transferencia de datos desde un dispositivo E/S hacia la memoria:
1- CPU emite una solicitud de lectura al controlador de E/S.
2- CPU espera hasta que el dato esté listo (polling o interrupción).
3- CPU transfiere el dato hacia la memoria.
Este proceso consume tiempo y recursos de la CPU.

Como el DMA permite que ciertos dispositivos de entrada/salida transfieran datos directamente hacia o desde la memoria principal del sistema, sin intervención directa de la CPU durante la transferencia, la libera de este trabajo repetitivo, mejorando el desempeño general del sistema al permitirle atender otras tareas mientras ocurre la transferencia.

Como bien planteas, el DMA se utiliza en transferencias desde dispositivos de almacenamiento secundario (discos SSD/HDD).
En ese caso el controlador DMA interactúa directamente con el controlador del disco. Los datos fluyen desde el disco hacia la memoria principal sin participación CPU. La CPU puede ejecutar otros procesos mientras sucede la transferencia. El DMA genera una interrupción cuando termina la transferencia.
Otro ejemplo de uso de DMA son las trasnferencias de datos desde las tarjetas de red (Ethernet, WiFi).
En estos casos, el DMA reduce el overhead de una transferencia masiva.

En el contexto de la clase, se presenta el escenario que para dispositivos orientados a caracteres (teclado/ratón) el problema no es el volumen de datos, sino la frecuencia de las interrupciones. Por ejemplo, un mouse puede generar hasta 1000+ eventos por segundo (especialmente los de gaming). El overhead no viene por la transferencia de datos, sino del cambio de contexto constante.

Saludos,
Alberto.