provee un mecanismo que permite a los procesos comunicarse y sincronizarse entre s, normalmente a travs de un sistema de bajo nivel de paso de mensajes que ofrece la red subyacente.
Las tcnicas de IPC estn divididas dentro de
mtodos para: paso de mensajes, sincronizacin, memoria compartida y llamadas de procedimientos remotos (RPC).
En un sistema, los procesos pueden
ejecutarse independientemente o cooperando entre s. Los intrpretes de comandos son ejemplos tpicos de procesos que no precisan la cooperacin de otros para realizar sus funciones. En cambio, los procesos que s cooperan necesitan comunicarse entre s para poder completar sus tareas.
La comunicacin entre procesos puede estar
motivada por la competencia o el uso de recursos compartidos o porque varios procesos deban ejecutarse sincronizadamente para completar una tarea. Para que puedan realizarse ambos tipos de interacciones, es necesario que el sistema operativo provea de servicios para posibilitar la comunicacin entre procesos.El sistema operativo provee mnimamente dos primitivas, "enviar" y "recibir", normalmente llamadas send y receive. Asimismo, debe implementarse un enlace de comunicacin entre los procesos de la comunicacin (pipe). Este enlace puede ser unidireccional o multidireccional segn permita la comunicacin en uno o en varios sentidos. La comunicacin puede ser: Sncrona: Asncrona: Persistente: Momentnea (transient) Directa: Ejemplo: enviar(mensaje, A) enva un mensaje al proceso A. Es decir se debe especificar cul va a ser el proceso fuente y cul va a ser el proceso destino. Las operaciones bsicas send y receive se definen de la siguiente manera: send(P, mensaje); enva un mensaje al proceso P (P es el proceso destino). receive (Q, mensaje); espera la recepcin de un mensaje por parte del proceso Q (Q es el proceso fuente). Nota: receive puede esperar de un proceso cualquiera un mensaje, pero el send s debe especificar a quin va dirigido y cul es el mensaje. Indirecta Simtrica Asimtrica Uso de bfer automtico Razones por las cuales proporciar entornos que permitan la cooperacin entre procesos: Compartir informacin: Ante una eventual necesidad que mltiples usuarios necesiten la misma informacin (Archivo compartido), se debe proveer un entorno que habilite el acceso concurrente a dicha informacin Acelerar los clculos: Al desear que una tarea se ejecute mas rpido, se divide en subtareas, implementando un paralelismo de ejecucin entre si. Esto se consigue con con computadoras de multiples elementos de procesamiento, ya sea a nivel de cpus o canales de E/S. Modularidad: Al querer construirse un sistema de forma modular, se necesita dividir la informacin del sistema en distintos procesos, o hebras. Conveniencia: Ya sea para un solo usuario, puede ste querer trabajar en varias tareas simultneamente. Por ejemplo usando editor de texto, escuchando msica e imprimiendo al mismo tiempo. Dentro de los mecanismos ms usados, tenemos el paso por mensajes, la memoria compartida y los semforos. La memoria compartida es un medio que permite establecer una zona comn de memoria entre varias aplicaciones. Y los semforos, que son una herramienta puramente de sincronizacin. Permiten controlar el acceso de varios procesos a recursos comunes. El paso por mensajes se puede ver como una lista enlazada de mensajes dentro del espacio de direccionamiento del ncleo. Una aplicacin, siempre que tenga los derechos necesarios, puede depositar un mensaje (de cualquier tipo) en ella, y otras aplicaciones podrn leerlo. Es posible asignar atributos a los mensajes, de forma que se puedan mantener ordenados por prioridad en lugar de por orden de llegada. Esta informacin se detallar ms profundamente en la El mecanismo de memoria compartida permite a dos o ms procesos compartir un segmento de memoria, y por consiguiente, los datos que hay en l. Es por ello el mtodo ms rpido de comunicacin entre procesos. Al ser el objetivo de este tipo de comunicacin la transferencia de datos entre varios procesos, los programas que utilizan memoria compartida deben normalmente establecer algn tipo de protocolo para el bloqueo. Este protocolo puede ser la utilizacin de semforos, que es a su vez otro tipo de comunicacin (sincronizacin) entre procesos. La memoria que maneja un proceso, y tambin la compartida, va a ser virtual, por lo que su direccin fsica puede variar con el tiempo. Esto no va a plantear ningn problema, ya que los procesos no generan direcciones fsicas, sino virtuales, y es el ncleo (con su gestor de memoria) el encargado de traducir unas a otras. Un semforo es un mecanismo de sincronizacin que se utiliza generalmente en sistemas con memoria compartida, bien sea un monoprocesador o un multiprocesador. Su uso en un multicomputador depende del sistema operativo en particular. Un semforo es un objeto con un valor entero al que se le puede asignar un valor inicial no negativo y al que slo se puede acceder utilizando dos operaciones atmicas: wait y signal (tambin llamadas down o up, respectivamente). El estndar POSIX define dos tipos de semforos: Semforos sin nombre: Permiten sincronizar a los procesos ligeros que ejecutan dentro de un mismo proceso o a los procesos que lo heredan a travs de la llamada fork. Semforos con nombre: En este caso, el semforo lleva asociado un nombre que sigue la Tarea: Investigar el estandar POSIX. Viernes 31 antes de las 11:59pm