1. Mmio (Memory mapped i/o)
·
Proyectada en memoria.
·
Comparte cables con el acceso a
memoria.
2. Pmio (Port mapped i/o)
·
Bus separado, patas del procesador.
·
Puerto/dirección (donde en el
otro había direcciones físicas de memoria).
·
Numero de puerto, indicando el
dispositivo..
·
Instrucciones especiales (IN/OUT).
Mmio
Pmio
DMA
·
Desperdicio
el procesador con PIO.
·
Si
tengo que copiar 500 palabras son 500 instrucciones.
·
El
dispositivo (o un controlador) toma el bus de memoria y copia a la memoria directamente.
·
El
procesador puede hacer otras cosas mientras (tira de la cache de instrucciones/datos).
·
Para
no bloquear durante mucho rato hay buers en el dispositivo.
·
Aviso
con una interrupción (mejor) o en la propia memoria (por ejemplo USB), o
PIO.
·
Tengo
que tener cuidado condiciones de carrera (dispositivo y CPU accediendo a la memoria).
Northbridge/Southbridge
Interrupcion
Y Polling
·
Polling es espera activa comprobando
un valor, mmio o pmio.
·
Ejemplo, busyag.
· Interrupción on, el dispositivo me
interrumpe cuando tiene algo para el lector y el SO lo recoge, o despierta al
proceso y se lo da.
Maestro
Esclavo (Master Slave)
·
Quien controla el bus.
·
Un bus no es más que un cable, uno
puede usarlo el resto no.
·
Algunos usan tdm o cmda etc.
·
A veces hay un arbitro (master) y
otros arbitrados (slaves) esclavos.
· También se pueden negociar entre
ellos cual se queda con el bus. negociar cual es el master.
Discos
·
Dispositivos de bloques.
·
Usan direccionamientos normales (LBA,
bloques lógicos), raros.
·
Usan direccionamientos vectoriales, ya mas raro (CHS, cylinder, head, sector).
·
Antes exponían la geometría (discos apilados con cabezas).
·
Antes se optimizaba, algoritmo del
ascensor, etc.
·
Ahora no tiene mucho sentido.
·
Velocidad (de los magnéticos) todavía limitada por seeks (mover la cabeza).
·
Dentro fash, caches, traducción de direcciones (también hay de estado solido, fash).
·
El hw de los discos esta optimizado
para localidad temporal, leer junto lo que se escribe junto.
Ethernet
·
En Unix no se expone como tal.
·
Tiene un anillo para mandar y
recibir tramas (buering), sw y a veces hw.
·
Pilas de protocolos unas encima de
otro tcp/ip etc.
·
En Unix al final hay sockets para el
usuario (descriptores de fichero con propiedades extra).
Terminales
·
Dispositivos virtuales (se los
inventa el sistema operativo).
·
Texto o gráficos.
· Conexión, memoria (chan), red (ssh,
telnet), serie.
·
Procesamiento.
Procesamiento
·
Procesamiento, ninguno (mando los
caracteres y ya).
·
Eco (hago eco local para que el
usuario lo vea).
·
Disciplina de linea, modos.
·
Crudo, mando y recibo sin
intervenir.
·
Cocinado, le dejo al usuario editar
la linea hasta que de al enter.
No hay comentarios:
Publicar un comentario