La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Comunicación y sincronización de procesos Comunicación por tuberías.

Presentaciones similares


Presentación del tema: "Comunicación y sincronización de procesos Comunicación por tuberías."— Transcripción de la presentación:

1

2 Comunicación y sincronización de procesos Comunicación por tuberías

3 Conceptos básicos •Mecanismo de comunicación entre procesos. •La transmisión se efectúa a través de un canal de comunicación: –Los datos escritos en un extremo del canal se leen en el otro extremo.

4 escritura lectura Conceptos básicos

5 •Comparable con una cola tipo FIFO. •La lectura de los datos es independiente de la escritura. •Ventaja: permite leer de una sola vez datos escritos en varias ocasiones.

6 Conceptos básicos • La gestión de las tuberías está integrada en el sistema de archivos. •El acceso a las tuberías se realiza por los descriptores de entradas/salidas • Tipo de tubería –Tubería anónima. –Tubería con nombre

7 Estructuras básicas •Estructura pipe_inode_info

8 Implementación •Para crear una tubería primero hay que crear un i-nodo •La creación del i-nodo se efectúa por la función get pipe_inode (fs/pipe.c).

9 Tuberías anónimas •La creación se efectúa con do_pipe (fs/pipe.c). •Esta llamada construye una tabla de dos descriptores de archivos –la salida (lectura) –la entrada (escritura)

10 Tuberías con nombre •La creación se efectúa con fifo-open (fs/fifo.c). •Opciones de la creación: –Lectura exclusiva (con o sin bloqueo) –Escritura exclusiva –Lectura y escritura

11 Operaciones de entrada/salida •Las lecturas y las escrituras se efectúan en una memoria intermedia de tamaño PIPE_BUF. •Todas las operaciones de entradas/salidas, ya se trate de tuberías con nombre o anónimas, se encuentran en el archivo fs/pipe.c.

12 Operaciones de entrada/salida •Vemos los detalles y su funcionamiento: –pipe_read  lectura en la tubería –pipe_write  escritura en la tubería –pipe_ioctl  recupera el nº de bytes almacenados –pipe_select  para la operación de multiplexado *multiplexado en lectura *multiplexado en escritura: *excepciones

13 Operaciones de entrada/salida •En el contexto de las tuberías con nombre, cuando al crear la tubería, ningún proceso ha abierto la tubería en escritura: –connect_read  modifica las operaciones realizables sobre el i-nodo –connect_select  modifica el campo f_op en el caso del multiplexado en lectura

14 Operaciones de entrada/salida •Funciones para cerrar descriptores (decrementa el nº de procesos): –pipe_read_release –pipe_write_release –pipe_rdwr_release

15 Operaciones de entrada/salida •Funciones de creación de un nuevo proceso que hereda la tubería (incrementa el nº de procesos): –pipe_read_open –pipe_write_open –pipe_rdwr_open


Descargar ppt "Comunicación y sincronización de procesos Comunicación por tuberías."

Presentaciones similares


Anuncios Google