Mecanismos de Sincronización y Transferencia de Datos: Interrupciones y Acceso Directo a Memoria (DMA)

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 7,3 KB

Mecanismos de Sincronización en Operaciones de Entrada/Salida (E/S)

Cuando se detiene el proceso debido a una operación de E/S, la rutina de inicio queda inactiva hasta que la operación finaliza. La Rutina de Tratamiento de Interrupción (RTI) se encarga de reactivar el proceso, pasando la rutina de inicio a estado activo.

Proceso de Interrupciones: Sincronización entre Hardware y Software

Para gestionar las interrupciones, se utiliza una combinación de hardware (controlador y CPU) y software, lo cual se estructura en 6 fases clave para la sincronización:

  1. El procesador envía la orden de E/S al controlador.
  2. El controlador ejecuta la operación de E/S y, al finalizar, activa los bits del registro de estado (Inicio de Sincronización).
  3. El hardware del controlador activa la señal de interrupción para notificar a la CPU (Petición de Interrupción). Esto implica activar la petición de interrupción del controlador y determinar qué interrupciones atender y cuáles dejar pendientes.
  4. La CPU detecta el cambio en la señal de petición de interrupción y decide si debe atenderla (Detección de la Interrupción). Se verifica si la petición no está enmascarada.
  5. El procesador ejecuta las acciones necesarias para identificar qué dispositivo solicitó la interrupción y qué rutina de atención debe ejecutar (Identificación de la Interrupción). Esto puede ser gestionado por software (rutina general) o hardware (rutina específica del dispositivo).
  6. Si existen múltiples peticiones simultáneas, se decide el orden de atención (Priorización de la Interrupción). La prioridad se establece mediante líneas de entrada/reconocimiento (hardware) o mediante programación (software).
  7. Se ejecuta la rutina de atención completa correspondiente (Tratamiento de Interrupción). Esto incluye salvaguardar el estado del programa interrumpido y desactivar la petición de interrupción. Finalmente, se retorna al programa interrumpido (Finalización de la Interrupción), restaurando los valores guardados.

El proceso de interrupciones involucra seis fases controladas por hardware o software:

  • 1. Petición de Interrupción: Generada por el hardware del dispositivo.
  • 2. Detección de Interrupción: Realizada por el hardware de la CPU.
  • 3. Identificación de Interrupción: Gestionada por hardware de la CPU o software externo.
  • 4. Priorización de Interrupción: Gestionada por hardware de la CPU o software externo.
  • 5. Tratamiento de Interrupción: Ejecución de la rutina específica por software para la operación de E/S.
  • 6. Finalización de Interrupción: Gestionada por el software de la propia rutina de atención o externo.

El hardware utilizado para la gestión de interrupciones puede ser reemplazado por un Controlador de Interrupciones dedicado.

Gestión de Interrupciones Concurrentes

Si se debe tratar una petición de interrupción mientras se atiende otra, existen dos modelos:

  • Nivel de interrupciones único: La rutina de interrupción se ejecuta hasta su finalización sin aceptar ninguna otra interrupción.
  • Interrupciones multinivel: Permite peticiones de interrupción anidadas. Esto puede complicar la gestión de prioridades y el guardado/recuperación de los distintos contextos.

TRANSFERENCIA DE DATOS POR DMA (Acceso Directo a Memoria)

El Acceso Directo a Memoria (DMA) es una técnica fundamental en la gestión de E/S, diseñada para manejar grandes volúmenes de datos y dispositivos de alta velocidad.

Las características principales del DMA son:

  • El DMA transfiere un bloque de datos desde un periférico directamente a la memoria.
  • La transferencia de periféricos a memoria se realiza sin intervención directa de la CPU.
  • El controlador DMA está conectado al bus del sistema.
  • La sincronización ocurre cuando el DMA completa la transferencia del bloque.

Las acciones involucradas en una transferencia DMA son:

  • Software de Gestión: El controlador DMA acepta peticiones del controlador de E/S y le envía órdenes.
  • Hardware DMA y E/S: El controlador de E/S realiza la operación y notifica al DMA al finalizar. El DMA ejecuta la transferencia a memoria y genera una interrupción al concluir.
  • Software de Gestión: La rutina de atención del DMA finaliza la operación de E/S.

El modelo de programación del DMA es análogo al de interrupciones, pero requiere un análisis específico de la transferencia de datos:

  • Inicio de operación E/S: Se inicia la función hasta que se transfiere el bloque de datos completo.
  • Rutina de atención: Finaliza el algoritmo verificando si es necesario transmitir bloques adicionales.

Además, el DMA posee un gestor de controlador propio. Entre las dos rutinas (inicio y atención), se detiene el proceso que solicitó la E/S, permitiendo que la CPU aproveche ese tiempo en otras tareas.

Componentes del Gestor del Controlador DMA

El gestor del controlador DMA incluye la siguiente información:

  • Información de la operación a realizar (tipo de operación in/out y esquema de transferencia).
  • Posición inicial en memoria y tamaño del bloque.
  • Avisos de error.

Toda esta información se suministra a través de los registros del controlador.

Esquemas de Transferencia Típicos del DMA

Los esquemas de transferencia típicos definen cómo el DMA interactúa con el bus del sistema:

  • Robo de ciclo: Utiliza uno o más ciclos de CPU por cada palabra transferida. Esto mantiene una alta disponibilidad del bus de sistema para la CPU, resultando en una interferencia muy baja con su operación.
  • DMA por ráfagas: Envía el bloque de datos en una ráfaga continua, ocupando el bus del sistema hasta completar la transmisión de datos a máxima velocidad. Sin embargo, la CPU no podrá acceder al bus durante esta transferencia y permanecerá inactiva.

DMA transparente: Este método utiliza el bus del sistema únicamente cuando la CPU no lo está requiriendo, evitando obstaculizar la comunicación CPU-bus. No obstante, resulta en la velocidad de transferencia más baja de los esquemas presentados.

Entradas relacionadas: