26
Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupci´on y polling Entrada salida programada S.O.: Entrada salida, E/S, (Input Output I/O) Gorka Guardiola Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC 27 de agosto de 2010 S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

  • Upload
    others

  • View
    19

  • Download
    0

Embed Size (px)

Citation preview

Page 1: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

S.O.: Entrada salida, E/S, (Input Output I/O)

Gorka Guardiola

Laboratorio de Sistemas,Grupo de Sistemas y Comunicaciones,

URJC

27 de agosto de 2010

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 2: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

(cc) 2008 Grupo de Sistemas y Comunicaciones.

Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Attribution-ShareAlike.

Para obtener la licencia completa, vease http://creativecommons.org/licenses/by-sa/2.1/es. Tambien puede

solicitarse a Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 3: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Comunicacion

I Procesos con el exteriorI red, discos duros, teclado

I Entre ellosI pipes, fifos

I Hacen falta protocolosI Tcp, lınea de comandos, mensajes en buses

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 4: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Interfaces

I Controlador hw - Controlador sw (device driver) - Dispositivo(registros, memoria compartida)

I driver - Resto del sistema operativo

I Proceso - Interfaz del SO para el dispositivo

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 5: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Caracteres y bloques

I bloqueI bloque, se comunica a bloques (leer y escribir)I si quiero escribir parte tengo que leer y luego escribirI discos duros, cdroms

I caracterI stream (flujo de comunicacion)I raton, teclado

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 6: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Bloqueante

I si es bloqueante, leo, me quedo esperando hasta que hayrespuesta, si no es instantanea

I ¿si leo de un raton, me quedo bloqueado o devuelve el ultimo?

I A veces el dispositivo es bloqueante pero el interfaz no o alreves

I acceso exclusivo

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 7: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Entrada salida programada (pio)

I mmio (memory mapped i/o)I Proyectada en memoriaI Comparte cables con el acceso a memoria

I pmio (port mapped i/o)I Bus separado, patas del procesadorI Puerto/direccion (donde en el otro habıa direcciones fısicas de

memoria)I Numero de puerto, indicando el dispositivoI Instrucciones especials (IN/OUT)

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 8: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

mmio

0xfeff0045

DISPOSITIVO

MEMORIACPU CONTROLADOR

Bus datos

Bus direcciones 0x00000000

0x00e00000

Registro 0x34 Registro 0x34

Direccionesde memoria

BRIDGE/

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 9: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

pmio

datos

DISPOSITIVO

MEMORIACPU CONTROLADOR

Registro 0x34

BRIDGE/

Bus datos

Bus direcciones

BUS de E/Spuerto/direcc.

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 10: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

DMA

I Desperdicio el procesador con PIO

I Si tengo que copiar 500 palabras son 500 instrucciones

I El dispositivo (o un controlador) toma el bus de memoria ycopia a la memoria directamente

I El procesador puede hacer otras cosas mientras (tira de lacache de instrucciones/datos)

I Para no bloquear durante mucho rato hay buffers en eldispositivo

I Aviso con una interrupcion (mejor) o en la propia memoria(por ejemplo USB), o PIO

I Tengo que tener cuidado condiciones de carrera (dispositivo ycpu accediendo a la memoria)

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 11: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

DMA

PIO

CPU Memoria

buffer

2

1

DMA

HD

duroDiscoControlador

del disco

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 12: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Northbridge/Southbridge

I MCH, memory controller hub (antes Northbridge)

I ICH, I/O controller hub (antes Southbridge)

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 13: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Northbridge/Southbridge

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 14: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Northbridge/Southbridge

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 15: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

MCH/ICH

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 16: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Interrupcion y polling

I Polling es espera activa comprobando un valor, mmio o pmio

I Ejemplo, busy flag

I Interrupcion, el dispositivo me interrumpe cuando tiene algopara el lector y el SO lo recoge, o despierta al proceso y se loda

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 17: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Maestro esclavo (master slave)

I Quien controla el bus

I Un bus no es mas que un cable, uno puede usarlo el resto no

I Algunos usan tdm o cmda etc.

I A veces hay un arbitro (master) y otros arbitrados (slaves)esclavos

I Tambien se pueden negociar entre ellos cual se queda con elbus

I O negociar cual es el master

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 18: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Discos

I Dispositivos de bloques

I Usan direccionados normales (LBA, bloques logicos), raros,

I otros usan direccionados vectoriales, ya mas raro (CHS,cylinder, head, sector)

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 19: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Discos

I Antes exponıan la geometrıa (discos apilados con cabezas)

I Antes se optimizaba, algoritmo del ascensor etc.

I Ahora no tiene mucho sentido.

I Velocidad (de los magneticos) todavıa limitada por seeks(mover la cabeza)

I Dentro flash, caches, traduccion de direcciones (tambien hayde estado solido, flash)

I El hw de los discos esta optimizado para localidad temporal,leer junto lo que se escribe junto

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 20: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Relojes

I Varios tipos

I Marca de tiempo, calculo de diferencias (rapido, precisa acorto plazo, profiling)

I Interrupcion de reloj (planificacion)

I Hora del dıa (precisa a largo plazo)

I Suele accederse a los valores por mmio.I Se pone una lista de alarmas y una interrupcion

I Cuando salta la interrupcion, saco la cabezaI Pongo una interrupcion para la nueva cabezaI Para dar de alta un nuevo timer meto un elemento, si va el

primero, cambio la interrupcion

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 21: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Ethernet

I En unix no se expone como tal

I Tiene un anillo para mandar y recibir tramas (buffering), sw ya veces hw

I Pilas de protocolos unas encima de otras tcp/ip etc.

I En Unix al final hay sockets para el usuario (descriptores defichero con propiedades extra)

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 22: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Terminales

I Dispositivos virtuales (se los inventa el sistema operativo)

I Texto o graficos

I Conexion, memoria (chan), red (ssh, telnet), serie

I Procesamiento

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 23: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Procesamiento

I Procesamiento, ninguno (mando los caracteres y ya)

I eco (hago eco local para que el usuario lo vea)I disciplina de lınea, modos

I Crudo, mando y recibo sin intervernirI Cocinado, le dejo al usuario editar la lınea hasta que de al enter

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 24: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Nombrado

I Mayor/minor Unix (major, asociado al driver, minor eldispositivo), mknod crea el fichero

I Path, un fichero directamente en Plan9 #c/cons

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 25: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Buffering

I Desacoplo, mejor rendimiento, no hago esperar a losimplicados

I ejemplo buffering de pipes, buffering de youtube

I Audio, video etc.

I Si lleno el buffer, el escritor espera, si lo vacıo el lector espera

I Productor/Consumidor

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Page 26: S.O.: Entrada salida, E/S, (Input Output I/O)lsub.org/itso/traspas/6.pdf · I Dispositivos virtuales (se los inventa el sistema operativo) I Texto o gr a cos I Conexi on, memoria

Entrada salida Controlador, driver, dispositivo Caracteres y bloques Bloqueante Interrupcion y polling Entrada salida programada (pio) DMA Northbridge/Southbridge Discos Relojes Ethernet Terminales Nombrado Buffering Copias

Copias

I Evitar copyin, copyout

I aparecen en pilas de protocolos, pila tcp/ip, en discos (bufferde read, buffer de disco)

I Complicado con DMA (direcciones fısicas, tamanos de bloquefijos) y buffers de usuario, pequenos

I Necesito espacio para las cabeceras y no se cuales van a ser(trozos separados de memoria)

I cortocircuitar copias si se puede

I paso por referencia, anillo de paginas para el usuario,gather/scatter, iommu,

S.O.: Entrada salida, E/S, (Input Output I/O) Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC