You are on page 1of 12

Seccion B

funcin bsica de los sistemas operativos que


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

You might also like