Fundamentos de la Gestión de Dispositivos y Planificación de E/S en Sistemas Operativos

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

Escrito el en español con un tamaño de 5,26 KB

Drivers de Dispositivos

Un Driver de Dispositivo es el código específico del dispositivo dentro del kernel que interactúa directamente con el hardware.

  • Tiene soporte para una interfaz interna estándar.
  • El mismo sistema de Entrada/Salida (E/S) del kernel puede interactuar con distintos tipos de drivers.
  • La configuración específica del dispositivo se lleva a cabo mediante la llamada al sistema ioctl().

Estructura de los Drivers

Los drivers normalmente se dividen en dos partes:

1. Parte Superior (Interfaz con la Llamada al Sistema)

  • Implementa los comandos estándar como open(), close(), read(), write(), ioctl().
  • Es la interfaz del kernel con el driver.
  • Inicia la E/S y puede suspender (dormir) el hilo de ejecución.

2. Parte Inferior (Rutina de Interrupción)

  • Consiste en una rutina de interrupción.
  • Toma la entrada o transfiere el siguiente bloque de salida.
  • Puede despertar un hilo suspendido si la operación de E/S está completa.

Mecanismos de Entrada/Salida (E/S)

El proceso de E/S puede llevarse a cabo mediante varios mecanismos:

  • Acceso a Registros Mapeados a Memoria: El espacio de registros del dispositivo está mapeado directamente a la memoria principal.
  • E/S Programada (PIO): La CPU principal recibe o envía cada byte o palabra y entra en un ciclo estrecho para esperar hasta que pueda obtener o enviar el siguiente byte.
  • E/S Controlada por Interrupciones: La CPU inicia una transferencia de E/S para un carácter o palabra y se dedica a otras tareas hasta que llega una interrupción, indicando que la operación de E/S se completó.
  • Acceso Directo a Memoria (DMA): Un chip separado administra la transferencia completa de un bloque de datos, y la CPU recibe una interrupción solo cuando se ha transferido todo el bloque completo.

Rendimiento en Discos

El rendimiento de los discos se mide y optimiza en función de varios factores clave:

Métricas de Tiempo

Tiempo Medio para una Búsqueda (Seek Time)
  • Típicamente de 8 ms a 12 ms.
  • Debido a la localidad en las referencias a disco, este tiempo se puede reducir al 25% o 30% del tiempo total.
Latencia Rotacional
  • Depende de la velocidad de rotación: 3.600, 7.200, 10.000 o 15.000 RPM (Revoluciones Por Minuto).
  • Aproximadamente 16 ms a 8 ms por vuelta.
  • La latencia promedio es la mitad de ese tiempo (ejemplo: 8 ms a 3600 RPM, 4 ms a 7200 RPM).

Tiempo de Transferencia

El tiempo de transferencia es una función de:

  • Tamaño de la Transferencia: Usualmente 1 sector (512 B – 1 KB por sector).
  • Velocidad de Rotación: 3600 RPM a 15000 RPM.
  • Densidad de Grabación: Bits por pulgada en una pista.
  • Diámetro: Varía de 1 a 5.25 pulgadas.
  • Valores Típicos: 2 a 50 MB por segundo.

Nota: El tiempo de la controladora depende del hardware específico.

Gestión de Dispositivos Dedicados: Spooling

El uso de colas (spooling) es una manera de lidiar con los dispositivos de E/S dedicados en un sistema de multiprogramación.

Proceso de Spooling

  1. Se crea un proceso especial, conocido como demonio (daemon).
  2. Se crea un directorio especial llamado directorio de cola de impresión.
  3. Un proceso genera primero todo el archivo que va a imprimir y lo coloca en el directorio de la cola de impresión.
  4. El demonio, que es el único proceso que tiene permiso para usar el archivo especial de la impresora, imprime los archivos contenidos en el directorio.

Planificación de Discos

La planificación de discos busca minimizar el tiempo de búsqueda y la latencia rotacional, optimizando el orden en que se atienden las solicitudes.

FIFO (First-In, First-Out)

Se atiende la primera solicitud en llegar. El orden de llegada aleatorio puede provocar tiempos de búsqueda elevados.

SSTF (Shortest Seek Time First)

Toma la solicitud que esté más cerca en el disco. Esto debe incluir un cálculo del tiempo de rotación, que puede ser tan largo como el tiempo de búsqueda. Puede generar espera indefinida (starvation) para solicitudes lejanas.

SCAN (Algoritmo del Ascensor)

Atiende la solicitud más cercana en la dirección actual (moviéndose de un extremo al otro del disco, como un ascensor). No hay espera indefinida y mantiene las ventajas de SSTF en términos de eficiencia.

C-SCAN (Circular SCAN)

Similar a SCAN, pero solo se mueve en una dirección (ej. de adentro hacia afuera). Al llegar al final, salta inmediatamente al inicio sin atender solicitudes en el camino de regreso. Es más equitativo que SCAN, que tiende a favorecer a los sectores centrales.

Entradas relacionadas: