Академический Документы
Профессиональный Документы
Культура Документы
Temario ://
Introduccin
Principios del Software de I/O
Objetivos, I/O Programado, I/O con Interrupciones, I/O con DMA
Capas del Software I/O
Manejadores de interrupciones, controladores de dispositivos, SW de
SO independiente de dispositivo, SW de I/O de usuario
Discos
Relojes
Terminales de caracteres
Introduccin ://
Manejo de interrupciones,
controladores de dispositivos e
interfaces al usuario son algunos
de los componentes que se
estudian en esta unidad, que
permiten al SO orquestar el
conjunto de aparatos conectados
al computador.
Imagen: http://cs.nyu.edu/courses/spring05/G22.2250-001/lectures/lecture-02.html
Imagen: http://www.howstuffworks.com
Canal E/S 2
Canal E/S 1
Dispositivo Dispositivo
CPU RAM
1 2
Imagen: http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi/linux/bks/SGI_Developer/books/LX_DevDriver_PG/sgi_html/ch02.html
Imagen: http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi/linux/bks/SGI_Developer/books/LX_DevDriver_PG/sgi_html/ch02.html
Imagen: http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi/linux/bks/SGI_Developer/books/LX_DevDriver_PG/sgi_html/ch02.html
Imagen: http://www.necel.com/en/faq/f_tech.html
1. La CPU programa el controlador DMA escribiendo en sus registros desde donde debe
leer, a que direccin de memoria escribir y cuantos bytes.
Imagen: http://www.necel.com/en/faq/f_tech.html
Interrupcin Precisa :
Dependiendo del tipo de interrupcin, se pueden tambin soportar interrupciones imprecisas cuando no se requiere retomar
el punto anterior, como es el caso de error de programa (divisin por cero, acceso a memoria indebido, etc).
Manejador de Interrupciones
Hardware
El manejador de interrupciones es aquel invocado ante la ocurrencia de una interrupcin con estas
encendidas. Contiene las rutinas de servicio y es el encargado de realizar las llamadas a otros
procesos interesados en el I/O que acaba de concluir.
Manejo de Buffers
El uso de buffers permite agilizar las tareas
de entradas como de salida, permitiendo a
quien provee la informacin un lugar donde
dejarla sin terner que esperar por el receptor
final.
Los buffers de input permiten al dispositivo que genera los datos, enviarlos a la
velocidad que este se ejecuta, para luego ser ledos en conjunto por un proceso.
Los buffers de salida permiten, entre otras cosas, asegurar un flujo constante de datos
hacia el dispositivo, como es el caso de las tarjetas de red que deben enviar un
paquete completo cada vez, de lo contrario la labor fallar.
Sin uso de buffer Buffer en espacio de usuario Buffer en el kernel, copiado Doble uso de buffer en el kernel. Se
luego al buffer del usuario traspasa uno al usuario mientras que
se sigue recibiendo en el otro
Reporte de Errores
En el contexto de entrada/salida, los errores
son algo recurrente. Algunos errores pueden
ser manejados en la capa inferior (driver)
como errores de lectura que se solucionan
reintentando el proceso; otros requieren ser
informados a las capas superiores para su
tratamiento
Error de bsqueda: el brazo llego al track 50 en lugar del 51. Recalibrar el brazo.
Disk Crash: El cabezal topa con la superficie del disco hacindolo inutilizable.
Bibliotecas de Funciones
Entregan a los programas los mtodos reales que provocan I/O. Estos pueden realizar una
simple llamada a la syscall que aplica la operacin, o pueden aplicar transformaciones a la
entrada o salida segn establezca el programador.
Ejemplos en stdio.h:
int cantidad = write(fd, buffer, numeroBytes); Write solo traspasa los parmetros a la syscall
retornando el valor de esta directamente.
printf(Se han impreso %d bytes, cantidad); Printf realiza una transformacin de los
parmetros entregados antes de enviarlos a la
syscall.
Proceso de
Usuario
Solicitud de I/O Respuesta de I/O