Upload
others
View
19
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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