Академический Документы
Профессиональный Документы
Культура Документы
Tabla de Contenido
Concurrencia. Problemas clsicos de comunicacin y sincronizacin. Mecanismos de comunicacin.
1 /72
CONCURRENCIA
2 /72
Procesos concurrentes
Modelos Multiprogramacin en un nico procesador Multiprocesador Multicomputador (proceso distribuido) Razones Compartir recursos fsicos Compartir recursos lgicos Acelerar los clculos Modularidad Comodidad
3 /72
Tiempo
4 /72
U1 U2
Tiempo
5 /72
6 /72
7 /72
El problema de la seccin crtica El problema del productor-consumidor El problema de los lectores-escritores Comunicacin cliente-servidor
8 /72
Sistema compuesto por n procesos Cada uno tiene un fragmento de cdigo: seccin crtica Slo uno de los procesos en cada instante puede ejecutar en la seccin crtica. Cuando un proceso est ejecutando en la seccin crtica, ningn otro puede hacerlo
9 /72
10 /72
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 produccin.
11 /72
Proceso onsumidor
ecanismo de comunicaci n
12 /72
1. Varios procesos comparten datos. 2. Los procesos lectores slo leen los datos. 3. Los procesos escritores leen y escriben.
ec rso
4. Varios lectores p eden acceder sim ltneamente a los datos compartidos. 5. Se debe evitar q e accedan sim ltneamente n proceso escritor y c alq ier otro proceso.
13 /72
Comunicacin cliente-servidor
Computador
Peticin
Computador
Proceso servidor
14 /72
MECANISMOS DE COMUNICACION
15 /72
Mecanismos de comunicacin
1. Tuberas (pipes, I OS) 2. Variables compartidas 3. Paso de mensajes.
POSIX es el acrnimo de Portable operating system interface, Unix based (Sistema operativo portable basado en UNIX). Una familia de estndares 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.
16 /72
Tuberas (POSIX)
Mecanismo de comunicacin y sincronizacin Sin nombre: pipes Con nombre: I OS Slo puede utilizarse entre los procesos hijos del proceso que cre el pipe int pipe(int fildes[2]); Identificacin: dos descriptores de archivo Para lectura Para escritura lujo de datos: unidireccional Mecanismo con capacidad de almacenamiento
17 /72
i e Flu o de datos
18 /72
i e
Flu o de datos
i e
Flu o de datos
19 /72
Tuberas
read(fildes[0], buffer, n) Pipe vaco se bloquea el lector Pipe con p bytes
Si p u n devuelve n Si p < n devuelve p
Si pipe vaco y no hay escritores devuelve 0 write(fildes[1], buffer, n) Pipe lleno se bloquea el escritor Si no hay lectores se recibe la seal SIGPIPE ecturas y escrituras atmicas (cuidado con tamaos grandes)
20 /72
Igual semntica que los pipes Cierre de un I O mediante close() Borrado de un I O mediante unlink()
21 /72
Memoria compartida
Proceso A Texto Datos
var1
Pila
Pila
22 /72
Paso de mensajes
Exclusin mutua Sincronizar un proceso que recibe un mensaje y otro que lo enva Comunicacin de datos entre espacios de memoria diferentes (mismo computador, diferentes computadores)
Permite resolver:
Primitivas bsicas:
send(destino, mensaje) enva un mensaje al proceso destino receive(destino, mensaje) recibe un mensaje del proceso destino
23 /72
Paso de mensajes
Mltiples soluciones Aspectos de diseo
Tamao del mensaje lujo de datos (unidireccional, bidireccional) Nombrado Directo
Indirecto (puertos, colas)
24 /72
Proceso cliente
send
Proceso cliente
mensaje
25 /72
Bibliografa
http://es. ikipedia.org/ iki/POSIX
26 /72