PRIMERO TENDREMOS UN PEQUEÑO REPASO DE QUE ES LA
COMUNICACION ENTRE PROCESOS
Comunicación
entre procesos
La
comunicación entre procesos (comúnmente IPC, del inglés Inter-Process
Communication) es una función básica de los sistemas operativos. Los procesos
pueden comunicarse entre sí a través de compartir espacios de memoria, ya sean
variables compartidas o buffers, o a través de las herramientas provistas por
las rutinas de IPC. La IPC provee un mecanismo que permite a los procesos
comunicarse y sincronizarse entre sí, normalmente a través de un sistema de
bajo nivel de paso de mensajes que ofrece la red subyacente.
La
comunicación se establece siguiendo una serie de reglas (protocolos de
comunicación). Los protocolos desarrollados para internet son los mayormente
usados: IP (capa de red), protocolo de control de transmisión (capa de
transporte) y protocolo de transferencia de archivos, protocolo de
transferencia de hipertexto (capa de aplicación).
Los procesos pueden
estar ejecutándose en una o más computadoras conectadas a una red. Las técnicas
de IPC están divididas dentro de métodos para: paso de mensajes,
sincronización, memoria compartida y llamadas de procedimientos remotos (RPC).
El método de IPC usado puede variar dependiendo del ancho de banda y latencia
(el tiempo desde el pedido de información y el comienzo del envío de la misma)
de la comunicación entre procesos, y del tipo de datos que están siendo
comunicados.
A CONTINUACION
ESTAN LOS PROBLEMAS MÁS COMUNES
El problema de la cena de los
filósofos
En 1965 Dijkstra planteó y resolvió un
problema de sincronización llamado el problema de la cena de los filósofos,
que se puede enunciar como sigue. Cinco filósofos se sientan a la mesa, cada
uno con un plato de espaghetti. El espaghetti es tan escurridizo que un
filósofo necesita dos tenedores para comerlo. Entre cada dos platos hay un tenedor.
En imagen se muestra la mesa.
Los filósofos se disponen a comer
La vida de un filósofo consta de periodos alternos de comer y pensar.
Cuando un filósofo tiene hambre, intenta obtener un tenedor para su mano
derecha, y otro para su mano izquierda, cogiendo uno a la vez y en cualquier
orden. Si logra obtener los dos tenedores, come un rato y después deja los
tenedores y continúa pensando. La pregunta clave es: puede el lector escribir
un programa para cada filósofo que permita comer equitativamente a los
filósofos y no se interbloquee?
El problema de la cena
de los filósofos es útil para modelar procesos que compiten por el acceso
exclusivo a un número limitado de recursos, como una unidad de cinta u otro
dispositivo de E/S. Otro problema famoso es el de los lectores y escritores
(Courtois et al., 1971), que
modela el acceso a una base de datos. Supóngase una base de datos, con muchos
procesos que compiten por leer y escribir en ella. Se puede permitir que varios
procesos lean de la base de datos al mismo tiempo, pero si uno de los procesos
está escribiendo (es decir, modificando) la base de datos, ninguno de los demás
debería tener acceso a ésta, ni siquiera los lectores.
En esta solución, el
primer lector que obtiene el acceso a la base de datos realiza un wait sobre el semáforo bd. Los lectores siguientes sólo
incrementan un contador, nl. Al
salir los lectores, éstos decrementan el contador, y el último en salir realiza
un signal sobre el semáforo, lo
que permite entrar a un escritor bloqueado, si existe.
Una hipótesis implícita
en esta solución es que los lectores tienen prioridad sobre los escritores. Si
surge un escritor mientras varios lectores se encuentran en la base de datos el
escritor debe esperar. Pero si aparecen nuevos lectores, y queda al menos un
lector accediendo a la base de datos, el escritor deberá esperar hasta que no
haya más lectores interesados en la base de datos.
Comunicación
cliente-servidor
En el modelo cliente-servidor, los procesos llamados servidores ofrecen una serie de servicios a otros procesos que se denominan clientes . El proceso servidor puede residir en la misma máquina que el cliente o en una distinta, en cuyo caso la comunicación deberá realizarse a través de una red de interconexión. Muchas aplicaciones y servicios de red, como el correo electrónico y la transferencia de archivos, se basan en este modelo.
Figura Procesos lectores y escritores.
En el modelo cliente-servidor, los procesos llamados servidores ofrecen una serie de servicios a otros procesos que se denominan clientes . El proceso servidor puede residir en la misma máquina que el cliente o en una distinta, en cuyo caso la comunicación deberá realizarse a través de una red de interconexión. Muchas aplicaciones y servicios de red, como el correo electrónico y la transferencia de archivos, se basan en este modelo.
Figura Procesos lectores y escritores.
Exelente recurso ,Gracias.
ResponderEliminar