Operaciones de e/s

20
OPERACIONES DE E/S Adrian Germán Galván Mandujano Rodrigo Antonio López Rosciano Jorge Alberto Miranda Tavera

description

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

Transcript of Operaciones de e/s

Page 1: Operaciones  de e/s

OPERACIONES DE E/S

Adrian Germán Galván Mandujano

Rodrigo Antonio López Rosciano

Jorge Alberto Miranda Tavera

Page 2: Operaciones  de e/s

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.

Page 3: Operaciones  de e/s

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).

Page 4: Operaciones  de e/s

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.

Page 5: Operaciones  de e/s

OPERACION CON DMA1. 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.

Page 6: Operaciones  de e/s

LECTURA

Interfaz: ssize_t ptr_read (struct file *flip, char *buff,

size_t count, 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

Page 7: Operaciones  de e/s

ESCRITURA

Interfaz: ssize_t ptr_write (struct file *filp, const char

*buff,

size_t count, 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

Page 8: Operaciones  de e/s

CONTROL

Interfaz: int ptr_ioctl (struct inode *inodep, struct file *filp,

unsigned int cmd, 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.

Page 9: Operaciones  de e/s

OPEN

Interfaz: int ptr_open (struct inode *inodep, struct file *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

Page 10: Operaciones  de e/s

RELEASE

Interfaz: void ptr_release (struct inode *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

Page 11: Operaciones  de e/s

ESTRATEGIAS DE BUSQUEDA

Page 12: Operaciones  de e/s

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.

Page 13: Operaciones  de e/s

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)

Page 14: Operaciones  de e/s

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

Page 15: Operaciones  de e/s

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.

Page 16: Operaciones  de e/s

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

Page 17: Operaciones  de e/s

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.

Page 18: Operaciones  de e/s

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.

Page 19: Operaciones  de e/s

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.

Page 20: Operaciones  de e/s

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