Dispositivos de Almacenamiento (secundario-terciario)
Dispositivos de Comunicaciones
Dispositivos de E/S
Los sistemas operativos se esfuerzan para optimizar la E/S.
Debido a que son los mas lentos de todo el sistema, por ejemplo:
CPU ejecuta operaciones a 1-4 GHz aproximadamente.
El acceso a RAM es de nanosegundos.
Dispositivos de E/S: acceso de milisegundos o más.
Sistema de E/S
Ofrece una visión lógica simplificada de dispositivos de E/S:
Para otros componentes del SO: Ejemplo. el sistema de archivos.
Para el usuario.
Objetivos
Optimizar la E/S, implementando mecanismos para mejorar prestaciones.
Facilitar el manejo de los dispositivos periféricos.
Permitir conectar cualquier tipo de dispositivo físico sin remodelar el sistema operativo.
Permitir conectar dispositivos solventando automáticamente su instalación (plug&play).
Caracterización de los Dispositivos de E/S
¿Cómo se ven los dispositivo de E/S?
Los programadores: una caja negra que permite leer y
escribir datos a través de una funcionalidad bien definida.
Los fabricantes de dispositivos:
instrumento muy complejo, cientos o miles de componentes
electrónicos o electro-mecánicos.
Los diseñadores de sistemas operativos:
les interesa la funcionalidad, pero con gran detalle;
la interfaz física y su comportamiento interno para
poder optimizar el acceso.
Elementos del Sistema de Entrada / Salida
Periféricos o dispositivos de E/S
Son el componente físico.
Se conectan al computador a través del controlador de dispositivo.
Controladores de dispositivos
Son el componente electrónico
Se encargan de la transferencia de información entre la memoria
principal y los periféricos
Conectan el bus de la computadora con el dispositivo (generalmente mediante cables)
Controladores
Los estándares permiten usar un controlador
para distintos Dispositivos:
SCSI, Small Computer System Interface.
IDE, Integrated Drive Electronics.
USB, Universal Serial Bus.
El controlador es la interfaz del dispositivo
con el bus de la computadora y es el componente
que se ve desde el CPU. Poseen 3 registros principales,
necesarios para su programación:
Registros de Datos.
Registros de Estado.
Registros de Control.
Características de un controlador
Dirección de E/S:
Usando puertos.
Mapeado en memoria.
Unidad de transferencia:
De carácter.
De bloque.
Interacción computadora-controlador:
Interrupción.
E/S programada.
a) De acuerdo al direccionamiento de la E/S
Dispositivos por puertos de E/S (ej. arquitectura Intel):
Al controlador se le asigna un puerto de E/S, una
interrupción hardware. Se programa con operaciones de
E/S (portin y portout) para indicar que registro se quiere
manipular y como.
Dispositivos proyectados en memoria:
Se asigna a cada controlador un rango de dirección
es a través de las cuáles se accede a sus registros.
Se programa con instrucciones de acceso a memoria,
se reserva una zona de memoria física para asignar a
controladores de E/S.
Características de un controlador
En Windows
Características de un controlador
En Linux
Características de un controlador
b) De acuerdo a la unidad de transferencia
Operaciones (leer, escribir, posicionarse)
Posible acceso a través de ficheros proyectados en
memoria como los discos y cintas.
Características de un controlador
b) De acuerdo a la unidad de transferencia
Dispositivos de caracter
Acceso secuencial a nivel de carácter.
Operaciones: get, put, ....
Ejemplo: terminales, impresoras, interfaces de red.
Dispositivos de bloque
Accesso por bloques de datos, utilizan búffers.
El disco duro funciona de esta manera.
b) De acuerdo a la unidad de transferencia
L/E guiada por programa
El CPU programa las operaciones y monitoriza el estado del
dispositivo mediante sondeo.
Ejemplo de lectura de un único dispositivo:
configurar_dispositivo();
while(!fin_lectura())
{
programar_lectura();
while (!dato_recibido());
leer_dato();
}
b) De acuerdo a la unidad de transferencia
L/E guiada por programa
Ejemplo de lectura de un múltiples dispositivos:
configurar_dispositivo();
while(!fin_transferencias())
{
if (dispositivo_preparado(DISP1))
atender_disp(DISP1);
if (dispositivo_preparado(DISP2))
atender_disp(DISP2);
if (dispositivo_preprado(DISPN))
atender_disp(DISPN);
}
Prioridad uniforme
configurar_dispositivo();
while(!fin_transferencias())
{
if (dispositivo_preparado(DISP1))
atender_disp(DISP1);
else if (dispositivo_preparado(DISP2))
atender_disp(DISP2);
else if (dispositivo_preprado(DISPN))
atender_disp(DISPN);
}
Prioridad Escalonada
Controladores
Inconvenientes:
Espera ocupada.
Complicado coordinar gestión de dispositivos con otras actividades.
Usado en:
Sistemas empotrados.
Procesadores dedicados.
Sistemas monoprogramado.
Características de un controlador
c) De acuerdo a interacción computador-controlador
E/S por interrupciones:
Lista de IRQs en Windows
El procesador envía la orden de E/S al controlador
del dispositivo y se dedica
a otras tareas hasta que llega una interrupción del dispositivo.
c) De acuerdo a interacción computador-controlador
E/S por interrupciones:
Las rutinas de interrupción suelen tener dos partes:
Parte genérica:
Captura de la interrupción
Salvaguarda de estado del procesador
Activación de la rutina de manejo de la interrupción
Planificar la ejecución de la rutina:
Desactivación de la interrupción
Restauración del estado del procesador
Ceder de control (RET)
Arquitectura de dispositivos de E/S
Gestión de E/S en Linux
Linux provee 4 tipos de gestores de E/S o elevadores llamados: