Entrada / Salida - CIMATalram/SO/clase16.pdf · Software de entrada salida Cuando se diseña...

14
Entrada / Salida Dr. Alonso Ramírez Manzanares 29-Oct-2009

Transcript of Entrada / Salida - CIMATalram/SO/clase16.pdf · Software de entrada salida Cuando se diseña...

Page 1: Entrada / Salida - CIMATalram/SO/clase16.pdf · Software de entrada salida Cuando se diseña software de entrada salida se debe de cumplir el concepto independencia del dispositivo.

Entrada / SalidaDr. Alonso Ramírez Manzanares

29-Oct-2009

Page 2: Entrada / Salida - CIMATalram/SO/clase16.pdf · Software de entrada salida Cuando se diseña software de entrada salida se debe de cumplir el concepto independencia del dispositivo.

Acceso directo a memoria DMA

Muchos adaptadores usan DMA, lo cual hace que se escriba directamente en la memoria o que lee, y libera al CPU de andar sacando los datos con un ciclo.

Page 3: Entrada / Salida - CIMATalram/SO/clase16.pdf · Software de entrada salida Cuando se diseña software de entrada salida se debe de cumplir el concepto independencia del dispositivo.

Software de entrada salida

Cuando se diseña software de entrada salida se debe de cumplir el concepto independencia del dispositivo. Lo cual significa que un programa que escribe en un dispositivo no tiene que cambiar el codigo dependiendo del dispositivo.

En los sistemas basados en unix, todos los archivos y dispositivos se direccionan de la misma manera, con un nombre de trayectoria.

Page 4: Entrada / Salida - CIMATalram/SO/clase16.pdf · Software de entrada salida Cuando se diseña software de entrada salida se debe de cumplir el concepto independencia del dispositivo.

Software de entrada salida

El manejo de errores debe de ser gerarquico, las capas de abajo (de bajo nivel) deben de tratar de corregir el error, si no pueden, entonces avisan a una de mas arriba. De esta forma, las capas superiores no se deberían de enterar de los errores transitorios (ejemplo: polvo en la cabeza de lectura de un disco duros).

Page 5: Entrada / Salida - CIMATalram/SO/clase16.pdf · Software de entrada salida Cuando se diseña software de entrada salida se debe de cumplir el concepto independencia del dispositivo.

Software de entrada salida

El sistema hace que accesos de datos que realmente son por interrupciones (asincronas) parezcan a los procesos que son por bloqueo (sincronas).

La estructura de capas de software es:

Page 6: Entrada / Salida - CIMATalram/SO/clase16.pdf · Software de entrada salida Cuando se diseña software de entrada salida se debe de cumplir el concepto independencia del dispositivo.

Software de entrada salida

En la capa 2, el controlador de software de disco es el único que sabe cuantos registros tiene el controlador de hardware y para que sirven.

Entonces, un controlador de este tipo, atiende peticiones abstractas del software independientes del dispositivo (arriba de el), como por ejemplo: lee bloque n.

Page 7: Entrada / Salida - CIMATalram/SO/clase16.pdf · Software de entrada salida Cuando se diseña software de entrada salida se debe de cumplir el concepto independencia del dispositivo.

Software de entrada salida

La función básica del software independiente del dispositivo es realizar las funciones de E/S comunes a todos los dispositivos y presentar una interfaz uniforme al software de nivel de usuario (si las unidades tienen tamaños de sectores distintos, esto se debe de ocultar a las capas de arriba).

También establece la correspondencia entre los nombres simbólicos del dispositivo /dev/tty00, el cual apunta a un i-node de un archivo especial que tambien tiene el número principal del dispositivo. Estos archivos se protegen con los bits rwx.

Page 8: Entrada / Salida - CIMATalram/SO/clase16.pdf · Software de entrada salida Cuando se diseña software de entrada salida se debe de cumplir el concepto independencia del dispositivo.

Software de entrada salida

En el espacio de usuario (última capa):

bibliotecas enlazadas a los programas de usuario: count = write(fd,buffer,nbytes);

El caso del spool de impresion es distinto, los procesos escriben los archivos completos en un directorio y un demonio los escribe a la impresora de manera segura. Asi se garantiza que un proceso no se va a quedar escribiendo indefinidamente sin dejar que los demas tengan acceso.

Page 9: Entrada / Salida - CIMATalram/SO/clase16.pdf · Software de entrada salida Cuando se diseña software de entrada salida se debe de cumplir el concepto independencia del dispositivo.

Resumiendo

Page 10: Entrada / Salida - CIMATalram/SO/clase16.pdf · Software de entrada salida Cuando se diseña software de entrada salida se debe de cumplir el concepto independencia del dispositivo.

Bloqueo mutuo (deadlock) de E/S

Ocurren cuando se otorga acceso exclusivo a dispositivos que llamaremos recursos.

Bloqueo: si un proceso A tiene acceso exclusivo al dispositivo 1 y necesita acceso al dispositivo 2, del cual tiene acceso exclusivo el proceso B que quiere acceso exclusivo al dispositivo 1: Estan en bloque mutuo!

Esto también sucede en esquemas de bases de datos (puro software).

Page 11: Entrada / Salida - CIMATalram/SO/clase16.pdf · Software de entrada salida Cuando se diseña software de entrada salida se debe de cumplir el concepto independencia del dispositivo.

Bloqueo mutuo de E/S

Un recurso apropiable es aquel que se puede arrebatar a un proceso sin tener prblemas, por ejemplo, la memoria RAM.

La impresora no es un recurso apropiable.

En general en los bloqueos mutuos intervienen recursos no apropiables.

Page 12: Entrada / Salida - CIMATalram/SO/clase16.pdf · Software de entrada salida Cuando se diseña software de entrada salida se debe de cumplir el concepto independencia del dispositivo.

Bloqueo mutuo de E/S

Formalmente

Un conjunto de procesos está en bloqueo mutuo si cada proceso del conjunto está esperando un evento que sólo otro proceso del conjunto puede causar.

Como todos estan esperando, no pueden causar el evento esperado...

Page 13: Entrada / Salida - CIMATalram/SO/clase16.pdf · Software de entrada salida Cuando se diseña software de entrada salida se debe de cumplir el concepto independencia del dispositivo.

Las 4 condiciones que se deben de cumplir son:

Bloqueo mutuo de E/S

Page 14: Entrada / Salida - CIMATalram/SO/clase16.pdf · Software de entrada salida Cuando se diseña software de entrada salida se debe de cumplir el concepto independencia del dispositivo.

Se puede modelar usando grafos dirigidos (cuadros son recursos, circulos son procesos):

Bloqueo mutuo de E/S

(a) retención de un recurso (b) petición de un recurso

(c) bloque mutuo