La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Mg. Samuel Oporto Díaz Lima, 11 de junio 2005 Comunicación entre procesos SISTEMAS OPERATIVOS.

Presentaciones similares


Presentación del tema: "Mg. Samuel Oporto Díaz Lima, 11 de junio 2005 Comunicación entre procesos SISTEMAS OPERATIVOS."— Transcripción de la presentación:

1 Mg. Samuel Oporto Díaz Lima, 11 de junio 2005 Comunicación entre procesos SISTEMAS OPERATIVOS

2 1/72 Tabla de Contenido Concurrencia.Concurrencia Problemas clásicos de comunicación y sincronización.Problemas clásicos de comunicación y sincronización. Mecanismos de comunicación.Mecanismos de comunicación

3 2/72 CONCURRENCIA

4 3/72 Procesos concurrentes Modelos – Multiprogramación en un único procesador – Multiprocesador – Multicomputador (proceso distribuido) Razones – Compartir recursos físicos – Compartir recursos lógicos – Acelerar los cálculos – Modularidad – Comodidad

5 4/72 Sistema multiprogramado con una CPU

6 5/72 Sistema con multiprocesador

7 6/72 Tipos de procesos concurrentes Tipos de procesos – Independientes – Cooperantes Interacción entre procesos – Compiten por recursos – Comparten recursos

8 7/72 PROBLEMAS CLASICOS DE COMUNICACION

9 8/72 Prob. comunicación y sincronización El problema de la sección crítica El problema del productor-consumidor El problema de los lectores-escritores Comunicación cliente-servidor

10 9/72 Problema de la sección crítica Sistema compuesto por n procesos Cada uno tiene un fragmento de código: sección crítica Sólo uno de los procesos en cada instante puede ejecutar en la sección crítica. –Cuando un proceso está ejecutando en la sección crítica, ningún otro puede hacerlo 1

11 10/72 Solución al problema de la sección crítica Estructura general de cualquier mecanismo utilizado para resolver el problema de la sección crítica: Entrada en la sección crítica Código de la sección crítica Salida de la sección crítica Requisitos que debe ofrecer cualquier solución para resolver el problema de la sección crítica: –Exclusión mutua –Progreso –Espera limitada

12 11/72 Problema del productor-consumidor Existe una fuente de datos que se coloca en una cola para que sea consumido por otro proceso 1.El productor puede generar sus datos en cualquier momento 2.El consumidor puede coger un dato solamente cuando hay alguno 3.No se puede consumir un dato hasta que se termine su producción. producer: consumer: forever forever produce(item) take(item) place(item) consume(item) 2

13 12/72 Problema del productor-consumidor

14 13/72 El problema de los lectores-escritores 1.Varios procesos comparten datos. 2.Los procesos lectores sólo leen los datos. 3.Los procesos escritores leen y escriben. 4.Varios lectores pueden acceder simultáneamente a los datos compartidos. 5.Se debe evitar que accedan simultáneamente un proceso escritor y cualquier otro proceso. 3

15 14/72 Comunicación cliente-servidor 4

16 15/72 MECANISMOS DE COMUNICACION

17 16/72 Mecanismos de comunicación 1.Tuberías (pipes, FIFOS) 2.Variables compartidas 3.Paso de mensajes. POSIX es el acrónimo de Portable operating system interface, Unix based (Sistema operativo portable basado en UNIX). Una familia de estándares de llamadas al sistema definidos por el IEEE y especificados formalmente en el IEEE 1003, intenta estandarizar las interfaces de los sistemas operativos para que las aplicaciones se ejecuten en distintas plataformas.

18 17/72 Tuberías (POSIX) Mecanismo de comunicación y sincronización –Sin nombre: pipes –Con nombre: FIFOS Sólo puede utilizarse entre los procesos hijos del proceso que creó el pipe int pipe(int fildes[2]); Identificación: dos descriptores de archivo –Para lectura –Para escritura Flujo de datos: unidireccional Mecanismo con capacidad de almacenamiento 1

19 18/72 Comunicación unidireccional con tuberías

20 19/72 Comunicación bidireccional con tuberías

21 20/72 Tuberías read(fildes[0], buffer, n) – Pipe vacío se bloquea el lector – Pipe con p bytes Si p n devuelve n Si p < n devuelve p –Si pipe vacío y no hay escritores devuelve 0 write(fildes[1], buffer, n) – Pipe lleno se bloquea el escritor – Si no hay lectores se recibe la señal SIGPIPE Lecturas y escrituras atómicas (cuidado con tamaños grandes)

22 21/72 Tuberías con nombre en POSIX (FIFOS) Igual que los pipes Mecanismo de comunicación y sincronización con nombre Misma máquina Servicios –int mkfifo(char *name, mode_t mode); Crea un FIFO con nombre name –int open(char *name, int flag); Abre un FIFO (para lectura, escritura o ambas) Bloquea hasta que haya algún proceso en el otro extremo Lectura y escritura mediante read() y write() –Igual semántica que los pipes Cierre de un FIFO mediante close() Borrado de un FIFO mediante unlink()

23 22/72 Memoria compartida Declaración independiente de variables 2

24 23/72 Paso de mensajes Permite resolver: –Exclusión mutua –Sincronizar un proceso que recibe un mensaje y otro que lo envía –Comunicación de datos entre espacios de memoria diferentes (mismo computador, diferentes computadores) Primitivas básicas: –send(destino, mensaje) envía un mensaje al proceso destino –receive(destino, mensaje) recibe un mensaje del proceso destino 3

25 24/72 Paso de mensajes Múltiples soluciones Aspectos de diseño –Tamaño del mensaje –Flujo de datos (unidireccional, bidireccional) –Nombrado Directo Indirecto (puertos, colas) –Sincronización (síncrono, asíncrono) –Almacenamiento

26 25/72 Uso de colas y puertos

27 26/72 Bibliografía


Descargar ppt "Mg. Samuel Oporto Díaz Lima, 11 de junio 2005 Comunicación entre procesos SISTEMAS OPERATIVOS."

Presentaciones similares


Anuncios Google