1 / 20

Operaciones de e/s

Operaciones de e/s. Adrian Germán Galván Mandujano Rodrigo Antonio López Rosciano Jorge Alberto Miranda Tavera. Introducción.

shalom
Download Presentation

Operaciones de e/s

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Operaciones de e/s Adrian Germán Galván Mandujano Rodrigo Antonio López Rosciano Jorge Alberto Miranda Tavera

  2. Introducción • Tanto en la E/S programada como la basada en interrupciones, la UCP debe encargarse de la transferencia de datos una vez que sabe que hay datos disponibles en el controlador. • Tecnica de Acceso directo de memoria. • Cuando se utiliza acceso directo a memoria, es el controlador el que se encarga directamente de transferir los datos entre el periférico y la memoria principal, sin requerir intervención alguna por parte del procesador.

  3. el procesador envía una orden al controlador indicándole : • Tipo de operación. • Periférico involucrado en la operación. • La dirección de memoria desde la que se va a leer o a la que va a escribir directamente con el controlador de dispositivo (dirección). • El número de bytes a transferir (contador).

  4. oPERACIONES DE E/S • Lectura: el canal transfiere a memoria principal un bloque de palabras de tamaño especificado en el campo nº de palabras, en orden ascendente de direcciones, empezando en la dirección especificada en el campo dirección del dato. • Escritura: el canal transfiere datos de memoria principal al dispositivo. Las palabras se transfieren en el mismo orden que en la operación de lectura. • Control: se utiliza esta orden para enviar instrucciones específicas al dispositivo de E/S, como rebobinar una cinta magnética, etc.

  5. Operacion con dma • 1. Programación de la operación de E/S. Se indica al controlador la operación, los datos a transferir y la dirección de memoria sobre la que se efectuará la operación. • 2. El controlador contesta aceptando la petición de E/S. • 3. El controlador le ordena al dispositivo que lea (para operación de lectura) una cierta cantidad de datos desde una posición determinada del dispositivo a su memoria interna. 7. • 4. Cuando los datos están listos, el controlador los copia a la posición de memoria que tiene en sus registros, incrementa dicha posición de memoria y decrementa el contador de datospendientes de transferir. • 5. Los pasos 3 y 4 se repiten hasta que no quedan más datos por leer. • 6. Cuando el registro de contador está a cero, el controlador interrumpe a la UCP para in dicar que la operación de DMA ha terminado.

  6. Lectura Interfaz: ssize_tptr_read (struct file *flip, char *buff, size_tcount, loff_t *offp) • Lee datos del dispositivo: • • count es la cantidad de bytes a leer • • buff es el buffer de usuario en el que se depositan los • datos • • offp la posición del fichero a la que se accede • • retorna el número de bytes leídos

  7. escritura Interfaz: ssize_tptr_write (struct file *filp, const char *buff, size_tcount, loff_t *offp) • Escribe datos del dispositivo: • • count es la cantidad de bytes a escribir • • buff es el buffer de usuario en el que están los datos • • offp la posición del fichero a la que se accede • • retorna el número de bytes escritos

  8. control Interfaz: intptr_ioctl (structinode *inodep, struct file *filp, unsigned intcmd, unsigned long arg) • Envía una orden de control al dispositivo: • • cmd es la orden • • arg es un argumento para ejecutar la orden • La interpretación de la orden es dependiente del dispositivo • Retorna cero si va bien, o un código de error si va mal.

  9. Open Interfaz: intptr_open (structinode *inodep, structfile *filp) • Abre el dispositivo: • • Chequea errores del dispositivo • • Inicializa el dispositivo si es la primera vez que se abre • • Crea y rellena si hace falta filp->private_data • • Incrementa el contador de uso del dispositivo con MOD_INC_USE_COUNT; • • Identifica el número menor y actualiza f_op si procede

  10. release Interfaz: void ptr_release (structinode *inodep, struct file *filp) • Cierra el dispositivo: • • Decrementa el contador de uso con MOD_DEC_USE_COUNT; (importante: el kernel descarga el módulo al solicitarse y llegar el contador a cero) • • Libera si hace falta la memoria asignada a filp->private_data • • Apaga el dispositivo si es el último cierre

  11. Estrategias de busqueda

  12. Estrategias de búsqueda de manejador de dispositivos • Una estrategia de búsqueda para el manejador de dispositivos de E/S es la política predeterminada que utiliza para dar acceso al dispositivo a los diversos procesos que pueden estar esperando. • Define el orden en el cual los procesos obtienen el dispositivo. • La meta es mantener el tiempo de búsqueda al mínimo.

  13. Estrategias de búsqueda de manejador de dispositivos • Las estrategias de búsqueda mas comunes son: • Primeras llegadas • Primeros servicios (FCFS) • Tiempo mas breve de búsqueda primero (SSTF) • SCAN y sus variaciones (LOOK, N-Step SCAN, c-SCAN y C-LOOK)

  14. Estrategias de búsqueda de manejador de dispositivos • Todo algoritmo de programación debe efectuar lo siguiente: • Minimizar el movimiento del brazo • Llevar al mínimo el tiempo medio de respuesta • Minimizar la variación en tiempo de respuesta

  15. Planificación FCFS (Primero en Llegar, Primero en Ser Servido) • Una petición no puede ser desplazada por la llegada de una petición con prioridad más alta. • No hay reordenamiento de la cola de peticiones pendientes. • Se ignoran las relaciones posicionales entre las peticiones pendientes. • Ofrece una varianza pequeña aunque perjudica a las peticiones situadas al final de la cola.

  16. Tiempo de búsqueda mas breve primero (SSTF) • Utiliza la filosofía donde los trabajos mas breves se procesan primero y se hace esperar a los mas largos. • Con SSTF la solicitud con la pista mas cercana a la que esta sirviendo(esto es, la que ofrece la distancia mas corta por recorrer) es la siguiente que se va a cubrir, con lo cual se minimiza el tiempo general de búsqueda

  17. SCAN • El brazo del disco se desplaza sirviendo a todas las peticiones que encuentra a su paso. • Cambia de dirección cuando ya no hay peticiones pendientes en la dirección actual. • Ha sido la base de la mayoría de las estrategias de planificación implementadas.

  18. Planificación SCAN de N - Pasos • La estrategia de movimiento del brazo es como en SCAN; solo da servicio a las peticiones que se encuentran en espera cuando comienza un recorrido particular. • Las peticiones que llegan durante un recorrido son agrupadas y ordenadas y serán atendidas durante el recorrido de regreso. • Posee menor varianza de los tiempos de respuesta si se compara con las planificaciones SSTF y SCAN convencionales.

  19. Planificación C - SCAN (Búsqueda Circular) • El brazo se mueve del cilindro exterior al interior, sirviendo a las peticiones sobre una base de búsqueda más corta. • Finalizado el recorrido hacia el interior, salta a la petición más cercana al cilindro exterior y reanuda su desplazamiento hacia el interior. • No discrimina a los cilindros exterior e interior. • La varianza de los tiempos de respuesta es muy pequeña.

  20. Estrategias • La estrategia SCAN es la mejor con carga baja. • La estrategia C - SCAN es la mejor con cargas medias y pesadas. • La estrategia C - SCAN con optimización rotacional es la mejor para cargas muy pesadas

More Related