Está en la página 1de 6

Remote Procedure Call

El Remote Procedure Call (RPC) (del ingls, Llamada a Procedimiento Remoto) es


un protocolo que permite a un programa de ordenador ejecutar cdigo en otra mquina remota
sin tener que preocuparse por las comunicaciones entre ambos. El protocolo es un gran
avance sobre los sockets usados hasta el momento. De esta manera el programador no tena
que estar pendiente de las comunicaciones, estando stas encapsuladas dentro de las RPC.

Tipos de semntica[editar]
Semntica tal-vez[editar]
Procedimiento remoto puede ejecutarse una vez o ninguna vez.
El cliente puede recibir una respuesta o ninguna.
Funcionamiento[editar]
1. El cliente enva una peticin y se queda a la espera un tiempo determinado.
2. Si no llega la respuesta dentro del tiempo de espera, contina su ejecucin.
3. El cliente no tiene realimentacin en caso de fallo (no sabe que pas).
Slo admisible en aplicaciones donde se tolere la prdida de peticiones y la recepcin de
respuestas con retraso (fuera de orden).
Semntica al-menos-una-vez[editar]
Procedimiento remoto se ejecuta una o ms veces.
El cliente puede recibir una o ms respuestas.
Funcionamiento[editar]
1. El cliente enva una peticin y queda a la espera un tiempo.
2. Si no llega respuesta o ACK dentro del tiempo de espera, repite la peticin.
3. El servidor no filtra peticiones duplicadas (el procedimiento remoto puede ejecutarse
repetidas veces).
4. El cliente puede recibir varias respuestas.
Slo es aplicable cuando se usan exclusivamente operaciones idempotentes (repetibles).
Nota: Una operacin es idempotente si se puede ejecutar varias veces resultando el mismo
efecto que si se hubiera ejecutado slo una. En ocasiones una operacin no idempotente
puede implementarse como una secuencia de operaciones idempotentes. Admisible en
aplicaciones donde se tolere que se puedan repetir invocaciones sin afectar a su
funcionamiento.
Semntica como-mximo-una-vez[editar]
El procedimiento remoto se ejecuta exactamente una vez o no llega a ejecutarse ninguna.
El cliente recibe una respuesta o una indicacin de que no se ha ejecutado el
procedimento remoto.
Funcionamiento[editar]
1. El cliente enva la peticin y queda a la espera un tiempo.
2. Si no llega respuesta o ACK dentro del tiempo de espera, repite la peticin.
3. El servidor filtra las peticiones duplicadas y guarda historial con las respuestas
enviadas (servidor con memoria). El procedimiento remoto slo se ejecuta una vez.
4. El cliente slo recibe una respuesta si la peticin lleg y se ejecut el procedimiento,si
no recibe informe del error.
Resumen[editar]

Sincronizacion en los Sistemas Distribuidos
La sincronizacin es un punto clave para los sistemas operativos distribuidos. Ya que ademas de la
comunicacion es fundamental la forma en el que los procesos cooperan y se sincronizan entre si
para la utilizacion de los recursos compartidos de la red.
El trmino sincronizacin se define como la forma de forzar un orden parcial o total en cualquier
conjunto de eventos, y es usado para hacer referencia a tres problemas distintos pero relacionados
entre s:`
1. La sincronizacin entre el Emisor y el Receptor.
2. La especificacin y control de la actividad comn entre procesos cooperativos.
3. La serializacin de accesos concurrentes a objetos compartidos por mltiples procesos.
En estos Sistema para sincronizar el trabajo comun entre procesos y evitar las complicaciones que
puden ir surgiendo con el uso de estos , emplean Algoritmos Distribuidos que cuenta con las
siguientes caracteristicas:
Como una caracterstica de los sistemas distribuidos, es inaceptable que se concentre en
un nodo, a toda aquella informacin que sea relevante para la toma de decisiones que
tengan que llevar a cabo los procesos, pues es comn que lo hagan basndose en la
informacin almacenada localmente.
Se debe contemplar o prever los posibles puntos de fallo del sistema, puesto que en un
sistema distribuido el flujo de trabajo no debe verse afectado si el proceso se interrumpe en
algn nodo.
Debido a que puede existir un gran nmero de nodos de procesamiento, no existe un reloj
o fuente de tiempo comn para todos ellos. Esto se simplifica al hecho de en que tiempo
ocurre un suceso con respecto de otro.
Se utiliza el trmino "reloj" para hacer referencia al dispositivo con que cuentan casi todas las
computadoras, y que se encarga de registrar el tiempo. Existen 2 tipos de Relojes
Logicos
Fisicos

RELOJES FSICOS Y LGICOS


RELOJES FSICOS

Los relojes fsicos son relojes que: Deben ser iguales (estar sincronizados).
No deben desviarse del tiempo real ms all de cierta magnitud. En ciertos sistemas es
importante la hora real del reloj:

Se precisan relojes fsicos externos (ms de uno).
Se deben sincronizar: Con los relojes del mundo real.

RELOJES LGICOS

El software del reloj lgico:
El software para el reloj toma generalmente la forma de un manejador de dispositivo,
aunque no es un dispositivo de bloque.

La principales funciones del software manejador del reloj son:
Mantener la hora del da o tiempo real
Evitar que los procesos se ejecuten durante ms tiempo del permitido.
Mantener un registro del uso del CPU:

-Controlar llamadas al sistema tipo "alarm" por parte de los procesos del usuario.
- Proporcionar cronmetros guardianes de partes del propio sistema
- Realizar resmenes, monitoreo y recoleccin de estadsticas.


Ncleo (informtica)
Para otros usos de este trmino, vase Ncleo.
En informtica, un ncleo o kernel (de la raz germnica Kern, ncleo, hueso) es
un software que constituye una parte fundamental del sistema operativo.
1
Es el principal
responsable de facilitar a los distintos programas acceso seguro al hardware de
la computadora o en forma bsica, es el encargado de gestionar recursos, a travs de
servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es
limitado, tambin se encarga de decidir qu programa podr hacer uso de un dispositivo de
hardware y durante cunto tiempo, lo que se conoce como multiplexado. Acceder al hardware
directamente puede ser realmente complejo, por lo que los ncleos suelen implementar una
serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una
interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador.


Hilo de ejecucin
En sistemas operativos, un hilo de ejecucin, hebra o subproceso es la unidad de
procesamiento ms pequea que puede ser planificada por un sistema operativo.

Diferencias entre hilos y procesos[editar]
Los hilos se distinguen de los tradicionales procesos en que los procesos son generalmente
independientes, llevan bastante informacin de estados, e interactan slo a travs
de mecanismos de comunicacin dados por el sistema. Por otra parte, muchos hilos
generalmente comparten otros recursos de forma directa. En muchos de los sistemas
operativos que dan facilidades a los hilos, es ms rpido cambiar de un hilo a otro dentro del
mismo proceso, que cambiar de un proceso a otro. Este fenmeno se debe a que los hilos
comparten datos y espacios de direcciones, mientras que los procesos, al ser independientes,
no lo hacen. Al cambiar de un proceso a otro el sistema operativo (mediante el dispatcher)
genera lo que se conoce como overhead, que es tiempo desperdiciado por el procesador para
realizar un cambio de contexto (context switch), en este caso pasar del estado de ejecucin
(running) al estado de espera (waiting) y colocar el nuevo proceso en ejecucin. En los hilos,
como pertenecen a un mismo proceso, al realizar un cambio de hilo el tiempo perdido es casi
despreciable.
Sistemas operativos como Windows NT, OS/2 y Linux (2.5 o superiores) dicen tener hilos
"baratos", y procesos "costosos" mientras que en otros sistemas no hay una gran diferencia.
Funcionalidad de los hilos[editar]
Al igual que los procesos, los hilos poseen un estado de ejecucin y pueden sincronizarse
entre ellos para evitar problemas de compartimiento de recursos. Generalmente, cada hilo
tiene una tarea especifica y determinada, como forma de aumentar la eficiencia del uso del
procesador.
Estados de un hilo[editar]
Los principales estados de los hilos son: Ejecucin, Listo y Bloqueado. No tiene sentido
asociar estados de suspensin de hilos ya que es un concepto de proceso. En todo caso, si un
proceso est expulsado de la memoria principal (RAM), todos sus hilos debern estarlo ya que
todos comparten el espacio de direcciones del proceso.
Cambio de estados[editar]
Creacin: Cuando se crea un proceso se crea un hilo para ese proceso. Luego, este hilo
puede crear otros hilos dentro del mismo proceso, proporcionando un puntero de
instruccin y los argumentos del nuevo hilo. El hilo tendr su propio contexto y su propio
espacio de la columna, y pasar al final de los Listos.
Bloqueo: Cuando un hilo necesita esperar por un suceso, se bloquea (salvando sus
registros de usuario, contador de programa y punteros de pila). Ahora el procesador podr
pasar a ejecutar otro hilo que est en la final de los Listos mientras el anterior permanece
bloqueado.
Desbloqueo: Cuando el suceso por el que el hilo se bloque se produce, el mismo pasa a
la final de los Listos.
Terminacin: Cuando un hilo finaliza se liberan tanto su contexto como sus columnas.
Ventajas de los hilos contra procesos[editar]
Si bien los hilos son generados a partir de la creacin de un proceso, podemos decir que un
proceso es un hilo de ejecucin, conocido como Monohilo. Pero las ventajas de los hilos se
dan cuando hablamos de Multihilos, que es cuando un proceso tiene mltiples hilos de
ejecucin los cuales realizan actividades distintas, que pueden o no ser cooperativas entre s.
Los beneficios de los hilos se derivan de las implicaciones de rendimiento.
1. Se tarda mucho menos tiempo en crear un hilo nuevo en un proceso existente que en
crear un proceso. Algunas investigaciones llevan al resultado que esto es as en un
factor de 10.
2. Se tarda mucho menos en terminar un hilo que un proceso, ya que cuando se elimina
un proceso se debe eliminar el BCP
1
del mismo, mientras que un hilo se elimina su
contexto y pila.
3. Se tarda mucho menos tiempo en cambiar entre dos hilos de un mismo proceso.
4. Los hilos aumentan la eficiencia de la comunicacin entre programas en ejecucin. En
la mayora de los sistemas en la comunicacin entre procesos debe intervenir el
ncleo para ofrecer proteccin de los recursos y realizar la comunicacin misma. En
cambio, entre hilos pueden comunicarse entre s sin la invocacin al ncleo. Por lo
tanto, si hay una aplicacin que debe implementarse como un conjunto de unidades
de ejecucin relacionadas, es ms eficiente hacerlo con una coleccin de hilos que
con una coleccin de procesos separados.

También podría gustarte